I’m a big fan of the RaspberryPi single board computers (SBCs) and have been using them since the very first model was released. (I still have the first model even now!)
Over the years I have used RaspberryPi computers for all sorts of things. These days I use them for running services on the local LANs here at home along with a number of virtual machines providing services both locally and publicly on the internet. (Yes, you can run virtual machines (VMs) on RaspberryPi computers)
I currently have 4 x RaspberryPi 5 SBCs running 24/7 and have had them stored in a simple rack that I designed when I first got into 3D printing. The rack worked ok but, it was difficult to get access to the Pi’s without removing those around the one I wanted to access. This is a real nuisance when you have services running on them all.
I’ve now had my 3D printer for a while and decided it was time to design a better solution. Before I set about diving into the CAD software I decided to have a look on Makerworld to see if anyone else had already come up with something more suitable.
The nice thing about this design is that each Pi module connects to the other using a simple sliding, locking pin system. This means that over time you can add more and more modules to the rack as your RaspberryPi collection grows. The other nice thing is that each Pi SBC is held on its own removable sled making it possible to remove each Pi with ease and without disturbing any of the others.
I downloaded the design into BambuStudio and went through all the component parts. I was really pleased to see that there were two sizes of module available, a single board Pi only module and a tall module for housing a RaspberryPi with a HAT installed.
Since the 4 x Pi5’s that I am using have either an NVME + 2nd Gigabit Ethernet HAT or a NVME SSD Baseboard installed I will need the taller module for each unit.
To make it easy to identify each SBC in the rack I printed each module in the same colour as the hostname of the Pi, bluepi, redpi, greenpi, orangepi and a spare slot for purplepi when I get it.
My RaspberryPi rack with 4 x Pi5’s in place and operational
These 4 little Pi’s work hard and CPU temperatures can exceed 50 degrees Celsius very easily. They all have the Official Pi Cooler with fan installed however, this doesn’t come on until the CPU reaches 50c and so I decided to added some extra cooling in the form of a small USB fan onto the back of each module. This reduces the operating temperature of each Pi down to around 25c under full load.
The purple slot on the end is a spare ready to house another Pi SBC. I’d love another Pi5 16GB model but, at the current ridiculous prices it makes no sense to invest in another and so I will fit my spare Pi4 into the slot for now and find something for it to do.
This has been a fun little project to print and put together and will provide the perfect solution to my Pi management woes.
I’ve recently built another AllStarLink node to compliment my personal 70cm band SHARI node as I thought since I have a full duplex dual band handheld it would be great to have another node that I could connect to FreeStar or HUBNet at the same time as monitoring the Matrix node.
Rather than build another personal node I decided this time I would build a public node, obtain a callsign from the RSGB and make it available to the HAM’s locally on the 2m band.
Initially I thought I may be able to use my old Retevis RT85 handheld and AIOC board for the 2m node but, after a little testing it soon became apparent that it overheats during long overs (which are common on AllStarLink) and so, I needed to find another solution.
AIOC connected to the Retevis RT85.
Chatting about this in the main Matrix HAM Radio roomSteve, M0XVT sent me a message saying he had an old Key KM-4000 converted PMR radio that had been reprogrammed for the 2m band that he was looking to sell and that it might be ideal for the new node. Wasting no time, we came to an agreement and I was soon the proud owner of a converted PMR transceiver.
Key KM4000 2m Band PMR Radio
The KM4000 transceiver has a standard output of 15w, 10w more than I needed for the gateway and so I had to reduce the output. A quick search on the internet and I found the Thames Valley Repeater Group website that had all the information required to turn down the output.
I also had to reprogramme channel 1 to the frequency and CTCSS tone allocated to me by the RSGB so that in the event of a power outage when the radio came back on it automatically jumps to channel 1 which would be correctly setup for operation.
Unfortunately the software for programming the radio is only available for windows and so I had to build a virtual machine running windows 10 to be able to reprogramme the radio.
Once this was done I rewired the AIOC USB audio device to work with the KM4000 radio and built the AllStarLink node on a spare RaspberryPi 4.
For an antenna I made a simple end fed vertical dipole from some RG58 coax and mounted it 8m up on one of my Spiderpoles in the garden. Running a coax feed out to the antenna I did some tests into the Parrot to get the audio levels setup and checked that the DTMF codes were interpreted correctly and that the node switched connections without error.
MB7IBW Internet Gateway hardware at the M0AWS QTH
Once this was done I had a few test conversations with stations on the Matrix node and FreeStar to ensure all was fine and then set the gateway status to “Operational” on the RSGB website.
This worked fine for a while with myself and some local stations using the node regularly but, then the hot weather arrived and things started to overheat. The transceiver was getting incredibly hot in the 30c+ summer temperatures and the power supply was also running extremely hot and so I decided to add some cooling.
Cooling the PSU was simple, it has a perforated top panel to which I strapped a cooling fan. This worked great and brought the temperature of the PSU down considerably.
The radio wasn’t so easy to cool. It has a solid case cover top and bottom and so cooling wasn’t going to be a simple affair.
I decided to remove the covers and drill some holes into them to allow airflow through the unit and strapped a fan to the top cover to pull the hot air out. This worked well however, on both transmit and receive I now had a warbling sound on the audio that was caused by the motor of the fan when powered up.
I found that lifting the fan up away from the case of the radio the warbling audio disappeared and things were back to normal and so, I decided to design a cooling tube to fit to the top of the radio to allow full airflow from the fan but, with the fan raised up away from the radio to resolve the audio problem.
Jumping into my CAD software I quickly designed a cooling tower to fit on the top of the radio that would allow the fan to sit far enough away from the radio so as to not affect the audio whilst at the same time pulling the hot air out of the radio and drawing cooler air in through the bottom of the case.
The cooler worked great with the radio staying cool to the touch and no longer overheating and reducing O/P power.
It’s amazing how much dust and dirt is in the air from all the farming activities going on at the end of our garden and how much of it is sucked in by the cooling fan. Regular cleaning is a must!
The MB7IBW Internet Gateway has been on air since mid June 2026 and has worked well. It spends most of its time connected to either FreeStar or HUBNet with connections to the Matrix Node when we have our nets.
Details on Frequency, CTCSS etc can be found under the MB7IBW menu above.
Sadly the initial interest from local HAMs has now wained and I am mostly the only user of the gateway. I was hoping more people would use it and bring some life to the 2m band, I guess time will tell.
It’s been a fun project and was interesting to go through the callsign allocation process with the RSGB representative. It was much easier than I thought it would be.
I now have all the parts to build another Internet Gateway for the 4m band. Hopefully that may attract some more interest. It’s certainly worth a try!
I’ve spent some time this afternoon modifying my Node-Red Dashboard for controlling AllStarLink nodes to work with the new AllStarLink version 3.
My original AllStarLink Control Dashboard was designed to work with AllStarLink 2 which I have running on an old RaspberryPi 3b on the 70cm band. The dashboard has worked reliably ever since deployment and is in use daily.
With the release of AllStarLink 3 and all the changes that it entails I’ve had to make a few changes to the dashboard flows in order to make it compatible with AllStarLink 3 nodes.
This entails not only flow changes but also the addition of two new bash scripts that are called by Asterisk to log connect and disconnect messages as they are not logged by default any more. (Seems a bit of a step backwards)
Node-Red AllStarLink Control Dashboard v3.0 for ASL3
The changes also entail disabling the temporary filesystems used by default in the new ASL3 build so that log files etc become persistent.
I’ll spend some time using the new dashboard to ensure it’s working correctly and then will release it into the wild for all those that are brave enough to move over to AllStarLink 3.
I’ve recently been trying out the FreeDV RADEv1 digital voice mode on the HF bands with great success. The audio quality is astounding when compared to the normal analog SSB mode. Using only 20w I’ve been surprised how successful I’ve been talking to stations in the UK and Europe as can be seen in my FreeDV Log.
FreeDV has been around for quite a few years with development being funded by an ARDC grant and financial sponsorship from the Software Freedom Conservancy.
“FreeDV is a suite of digital voice modes for HF radio. Our flagship mode is the Radio Autoencoder (RADE). You can run RADE using a free GUI application for Windows, Linux and macOS that allows any SSB radio to be used for high quality digital voice.“
And the most important part:
“All software is open source, released under the (a) GNU Lesser Public License version 2.1 (GUI and legacy FreeDV modes) and two-clause BSD license (RADE).“
FreeDV running under KDE-Plasma on Kubuntu PC
Looking at the digital voice (DV) community in the HAM Radio world, it’s stuffed full with proprietary DV modes from small software houses and black box transceiver manufacturers with no real OpenSource alternatives, until now.
Installing FreeDV is pretty simple regardless of which operating system (O/S) you use. Being a Linux user I grabbed the AppImage from the website and set about reading up on how it works and how it is configured.
I decided to take the two sound card approach since I have 2 USB sound cards connected to my shack Kubuntu Linux PC.
Configuring the audio routing isn’t straight forward as both the receive and transmit audio to/from the radio needs to be routed via the FreeDV app. To make this even more complicated I am using my Hermes Lite 2 SDR transceiver and PiHPSDR software, a complete OpenSource/OpenHardware Amateur Radio Station.
M0AWS FreeDV and PiHPSDR Audio Routing Diagram
Trying to clearly describe the audio routing using words alone would be impossible and very confusing so, I put together the diagram above.
Using two USB sound cards I’ve configured the system such that USB Sound Card 1 (an old Griffin iMic USB sound device) handles just the audio from/to the headphones and microphone. All the audio at this point in the system is analogue.
The second USB sound card, a cheap Plug and Play (PNP) USB audio device from Amazon, handles all the digitised signals from/to FreeDV and PiHPSDR.
Taking this 2 sound card approach keeps confusion to a minimum and separates the analogue and digital components of the audio routing.
So, how does this translate to the FreeDV and PiHPSDR audio settings?
Transmit Audio Chain
FreeDV Transmit Audio Settings
Starting at the beginning of the transmit audio chain, let’s look at the transmit audio settings in FreeDV.
Looking at the FreeDV Transmit audio settings screenshot below we can see that the Input From Microphone to Computer device is set to:
This is the digitised audio output from FreeDV (via USB Sound Card 2) to PiHPSDR and is used as the transmit audio that is sent to the Hermes Lite 2 transceiver.
FreeDV Transmit Audio Settings
PiHPSDR Transmit Audio Setting
To complete the transmit audio path we next need to look at the PiHPSDR transmit audio setting.
PiHPSDR Transmit Audio Settings
As can be seen in the screenshot above, the Local Microphone device in PiHPSDR is set to the Monitor of USB PnP Audio Device Analogue Stereo.
This effectively routes the digitised output audio from FreeDV (Output From Computer to Radio device) to the Input audio of PiHPSDR.
The reason for using the Monitor audio feed is because FreeDV does not recognise the Mic Input in PiHPSDR as a valid output device for FreeDV to use, hence we just need to monitor the FreeDV output device and use it as our input audio device in PiHPSDR.
This completes the transmit audio chain.
Receive Audio Chain
PiHPSDR Receive Audio Setting
Starting at the beginning of the receive audio chain we first look at the PiHPSDR receive audio setting.
PiHPSDR Receive Audio Setting
In the screenshot above we can see that the receive audio output from PiHPSDR is set to USB PnP Audio Device Analogue Stereo (USB Sound Card2). This is the DX station’s digitised audio as received by the Hermes Lite 2.
FreeDV Receive Audio Settings
Next let’s look at the receive audio setting in FreeDV.
FreeDV Receive Audio Settings
The Input To Computer from Radio device is set to the monitor of the USB PnP Audio Output Device:
This is the analogue audio output on the iMic USB Sound card (Sound Card 1) that routes the analogue audio to the headphones and completes the receive audio chain.
Summary
The audio routing required by FreeDV can appear very daunting when first attempting to configure it on the Linux platform but, hopefully the diagram and screenshots above will help in understanding the complete end-to-end audio chain that is required to make this mode work.
PiHPSDR can of course be replaced by your black box radio CODEC entries that will appear in the device lists shown above if you have your radio connected via USB. The config is basically the same but, just uses a different device instead of USB sound card 2 shown in the diagram above.
I hope this article is useful to those wanting to try FreeDV on the Linux platform and I look forward to hearing you on RADEv1.
Over the last few weeks I’ve been working on my install-pihpsdr script to build a version of the DL1YCF PiHPSDR fork that will work with the Adalm Pluo, Pluto+ and LibreSDR transceivers.
Since I don’t own any of these devices, Steve M0XVT has loaned me his Adalm Pluto and LibreSDR devices to test with.
Initially neither of the devices would work with the PiHPSDR build that my script was creating. After some investigation I found this was due to the fact that the developer build script was only building the SOAPYSDR library, it wasn’t building the modules for each device type.
This was easily fixed by adding some extra code that would build the necessary SOAPYSDR modules so that the devices were discovered on the local LAN.
Since I had the devices to hand I took the opportunity to test the updated build script on a number of Linux Distro’s that I have to hand.
PiHPSDR running on Linuxmint 22.1 Cinnamon Edition using the LibreSDR transceiver
I tested the updated build script on Kubuntu 22.04LTS, Linuxmint 22.1 Cinnamon Edition and RaspberryPi 4/5 running the latest RaspberryPi OS 64bit version.
These all worked great with the transceivers and will now make a great platform for QO-100 stations that use either the Adalm Pluto, Pluto+ or LibreSDR devices.
Of course this build of PiHPSDR will also work with the Hermes Lite 2 and RadioBerry devices that I use most of the time in my own radio shack.
The updated PiHPSDR install script can be downloaded from my original blog article on the subject that is located here: https://m0aws.co.uk/?p=3686
The updated build script will most likely work on most Debian based Linux distro’s and build a working version of PiHPSDR. If you find a distro where you have problems please email me and let me know the details and I’ll happily look at the issue and try to resolve it.
Thanks to Steve for the loan of his precious SDR transceivers, I had a lot of fun with them!
Sometime back I purchased a RadioBerry HAT for my RaspberryPi 4 single board computer (SBC) to use as an experimental platform to test PiHPSDR software modifications and to test changes to the actual RadioBerry software. With these two projects completed I decided that the receiver on the RadioBerry was so good it would be a shame not to put it to good use.
RadioBerry HAT
For many decades I’ve been an avid Short Wave Listener (SWL) but, haven’t had a general coverage receiver for many years. The RadioBerry fills this gap in my radio lineup perfectly but, needs to be put into a suitable cabinet with speakers, display, control knobs and antenna connections.
Rather than just buy another bland square box I decided it would be nice to repurpose an old, vintage radio receiver from a bygone era and bring it into the 21st Century.
1946 Philips valve radio receiver
After much searching on the popular auction sites online I eventually found the perfect old receiver for the project, a vintage Philips 170A-15 valve receiver from 1946.
This lovely old Art Deco looking receiver is made from Bakelite which was an early type of plastic made from phenol-formaldehyde resin, obtained from coal tar and methanol.
The full specification for the receiver can be found on the Radio Museum Website.
Sadly this is a non working example of this lovely old receiver and so I don’t feel so guilty stripping it out and replacing it’s internals with the RadioBerry.
1946 Philips receiver Serial Number plate1946 Philips receiver Licence Plate
Having the original serial number and Licence plate on the radio is nice, it also makes it easy to search for information about the old receiver.
One nice thing I did discover during the disassembly of the receiver was the signature of the person that put the radio together during manufacture on the inside of the Bakelite cabinet.
1946 Philips receiver builder signature
Getting the internals out of the cabinet was fun, so many little screws holding the old valve electronics and tuning display in place.
1946 Philips Receiver – Internal View1946 Philips receiver – removing the original control knobs
Once the electrical part of the radio was removed I gained access to the old speaker that was fitted to the front panel of the receiver. Unfortunately the speaker cone had a tear in it rendering it useless so I’ll need to get a new speaker(s) for the rebuild.
1946 Philips receiver speaker view
Once I got the speaker and fittings removed I set about cleaning the cabinet inside and out to remove the 79 years worth of dirt and grime that had collected within. The fascia of the receiver cabinet seems to have lost it’s shine and will need to be polished to get it back to it’s original beauty.
79 years worth of grime and dirt to be removed!Washing the Bakelite receiver case
It took 5 lots of fresh water and washing up liquid to get the cabinet clean. The first three lots of water looked like mud in no time at all such was the state of the cabinet.
With the cabinet now cleaned and put to one side to dry thoroughly I have started to search for the best type of polish to use to put the sheen back onto it.
Once I’ve got the cabinet looking good again I’ll start fitting the new internals. I also need to find a source for a new piece of material to cover the speaker hole at the front of the cabinet as the original material is looking somewhat tired.
The old Philips Emblem from 1946 on the receiver case
Since I’ve had my Hermes Lite 2 (HL2) and Xiegu XPA125B amplifier combo I’ve had to manually change the band setting on the amp as I never purchased the HL2 I/O board when I initially purchased the kit.
At the time I didn’t think I would need it but, changing band manually on the amp (and sometimes forgetting causing tuning issues) is a nuisance and so I put my hand in my pocket once again and ordered the I/O board for the HL2.
Hermes Lite 2 I/O Board
The HL2 I/O board is a small RaspberryPi Pico controlled device that can be used for a multitude of functions depending on the software loaded. Many people are writing their own software for the Pico to do things like control transverters, remote antenna switches, amplifiers and just about anything else you can think of. It’s a really versatile little add on board for the HL2.
The I/O board arrived after about 10 days from Makerfabs, all nicely packaged as always. Unfortunately due to Christmas, New year and other priorities it’s sat in the box since it arrived.
A couple of days ago I finally got round to getting it out of the box and set about configuring it to control the Xiegu amp.
The Xiegu amp needs three connections from the I/O board. They are PTT, Band Switching Voltage and Ground. These are easily accessed from the I/O board via 3 jumper wires to connect to the DB9 connector on the rear of the board.
The other thing that is required is some software for the RaspberryPi Pico to control the whole process. Steve, M0XVT has kindly supplied me with a copy of the software.
Soldering the jumpers from the relevant points on the circuit board to the DB9 connector was pretty straight forward. You can use any of the pins on the DB9 connector that you like as from the factory the DB9 connector isn’t connected to anything. I decided to use pins 2, 6 and 8 and so will refer to those pins from this point forward.
HL2 I/O Board Jumpers
I used a different colour for each of the jumpers so that I knew which jumper was for which connection. The colours used also match the colours of the wire in the old RS232 serial lead that I cannibalized to make the connection between the I/O board and the amp thus making it easy to ensure continuity.
The colours are as follows:
Black Jumper - Ground - Pin 2 on DB9 Connector
White Jumper - PTT - Pin 6 on DB9 Connector
Red Jumper - Band Control - Pin 8 on DB9 Connector
The I/O board gets its power feed directly from the HL2 main board however, the 3 pins it needs to connect to don’t have any headers in place and so, it’s necessary to solder a short row of 3 header pins onto the HL2 main board.
I found the easiest way to do this was to put the 3 header pins into the correct position and then use the HL2 to N2ADR filter board connector to hold them in place whilst soldering. This worked perfectly and I soon had the header pins soldered onto the main board.
Extra 3 header pins soldered to the main HL2 board
It’s important to note that the 3 extra header pins need to be placed 2 holes away from existing header pins as shown above. Take care to get these pins in the right position so as not to cause any damage to the 3 circuit boards once all are connected and powered up.
Note: The HL2 main board must be removed from the case to solder the extra 3 header pins in place. Take care to ensure the correct fitting of the PA heatsink when when refitting the HL2 main board into the case.
At this point I refitted the N2ADR Filter board back into the HL2 case so that the two sets of header pins aligned correctly ready for the placement of the new I/O board that would connect all 3 circuit boards together.
Preparing the N2ADR Filter board for reconnection
Once the filter board was in place I fitted the new I/O board taking care to ensure all pins aligned with the socket and then gently pushed it home.
Close up of the HL2 I/O board fitted to the main HL2 board and N2ADR Filter board
The close up of the I/O board connector above shows how the extra 3 header pins connect to the last 3 sockets in the I/O board connector. It’s a snug fit with the N2ADR filter board below it.
View of the fitted HL2 I/O board from above
Before the HL2 case can be put back together it’s necessary to load the software onto the RaspberryPi Pico (top left in photo above) that controls the I/O board.
This is accomplished by pressing the tiny button on the Pico whilst connecting a USB lead to the USB socket on the board that had already been plugged into my PC. Once connected the Pico appeared as a USB drive on my Kubuntu Linux desktop. All I then had to do was to copy the software file onto the drive. Once the software file is on the drive the Pico will reboot automatically and the little LED on the board will start to flash to show it has booted successfully. At this point I could safely unplug the USB cable.
The software for the RaspberryPi Pico is available for download below.
The I/O board comes with a new back panel for the HL2 to accommodate the extra connectors on the rear. Refit the top of the HL2 case and then attach the new rear panel using the original 4 counter sunk screws.
Supplied HL2 I/O board replacement rear panel fitted to the case
The final part of this project is to make the lead that will go from the HL2 rear DB9 ACC connector to the Xiegu XPA125B mini din ACC socket.
DB9 Pin 2 (BLACK) to Mini Din Pin 6 (GND)
DB9 Pin 6 (WHITE) to mini Din Pin 2 (PTT)
DB9 Pin 8 (RED) to Mini Din Pin 3 (Band Switching Voltage)
Below are a couple of screenshots from the Xiegu XPA125B user manual showing the Mini Din pin layout and the data interface connections for the amplifier.
Before I connected the lead to the two devices, I tested the end-to-end continuity of the lead to ensure all pins were correctly connected and that there were no shorts between any of the pins.
It’s important that the wires are connected to the correct pins on each end of the lead. Failure to ensure correct connection could cause damage to your HL2 and/or amplifier.
Once the lead had been tested, I connected it to both the Hermes Lite 2 and the Xiegu XPA125B amplifier. I also had to switch the amplifier band switching to AUTO.
Now when I change band on my HL2 in the PiHPSDR software the amplifier also changes band at the same time keeping the two devices in sync. No more manual band changing for me!
I hope this article is of use to other Hermes Lite 2 users who have purchased the Xiegu XPA125B but, have yet to setup auto band switching between the two devices.
Thanks to Steve, M0XVT for all the jumper information and the RaspberryPi Pico Software to get this all working.
UPDATE: The RaspberryPi Pico software originally came from Ramon, KP4RX. More information can found in this Google Groups article where he released the binary into the wild.
A full table of I/O resources available on the HL2 I/O board can be found on the KP4RX Guthub page.
The source code for the main.uf2 file above can be found at KP4RX.com
(This information is also for the Hermes Lite 2, Adalm Pluto, Pluto+ and LibreSDR)
During my RadioBerry build I started out using the version of PiHPSDR that was created just for the RadioBerry. The problem with this is that it is hard coded for a very small screen making it hard to use on a big screen since the user cannot resize the window dynamically.
I decided to look for a forked version of the PiHPSDR software that had the ability to change the window size to suit all use cases. During my search I stumbled across the DL1YCF fork of the source code that has some enhancements, one of which is the ability to change the display size.
In no time at all I had the source code downloaded and compiled only to find that it didn’t work with the RadioBerry. After some investigation I found that this was due to the fact that the RadioBerry software has compiled into it code that is used to access the GPIO pins on the RaspberryPi so that it can communicate with the RadioBerry HAT. This is fine except that the DL1YCF version of PiHPSDR also has code in it to use the GPIO pins. This of course causes a conflict and the net result is that nothing works.
Reading through the source code and Makefile I found that all I needed to do was to compile a version of PiHPSDR without GPIO support. This would then remove the conflict and allow the RadioBerry software to operate correctly.
To this end I put together a download/compile/install script for the DL1YCF version of PiHPSDR that will work on a RaspberryPi with a RadioBerry HAT and give the ability to resize the window to fit any size screen.
The script also works on a Linux Desktop PC running Ubuntu/Kubuntu/Linuxmint/Debian operating systems. (It will most likely work on other distro’s too but, these are all I have to hand currently). You can of course also use this software with a Hermes Lite 2 transceiver.
DL1YCF PiHPSDR running on RaspberryPi 4 with RadioBerry HAT on a large monitor
To install this enhanced version of PiHPSDR on your RaspberryPi/Desktop PC with GPIO support disabled, download the installation script below, unzip it and run it in a terminal on your RaspberryPi/Desktop PC in your home directory. (/home/<your-username>).
The script will download the latest source code from the DL1YCF github, disable the GPIO code and then compile and install it to your computer. If installing on a RaspberryPi it will create an icon on the desktop for you to use to start the software.
If installing on a PC then you will need to create your own desktop icon as the one created only works on a RaspberryPi. You can of course just start the software from the command line in a terminal. (My preferred method).
If you have a RaspberryPi 5 then I highly recommend that you run this version of PiHPSDR on it as it has a lot more computing power and handles using dual receive with ease. It will run on a Pi4 but, you will load the CPU more as it’s not as powerful as the later model Pi5.
The script will ask if you want to compile in SOAPYSDR support so that PiHPSDR will work with RTL-SDR, Adalm-Pluto, Pluto+ and LibreSDR. Enter Y to compile in support or N if you don’t need it.
Many years ago when I lived in France I had a Flex-3000 transceiver, one of the first fully SDR transceivers on the market. It was paired with a proprietary Windows XP application called PowerSDR (now Opensource and called Thetis) and connected via a firewire connection.
17 years later I am once again venturing into the world of SDR transceivers in the form of a Hermes Lite 2. (HL2)
The HL2 hardware is available via the Makerfabs website in kit form. I ordered the HL2 motherboard, the N2ADR Filter Board to ensure a clean signal from the transceiver and the enclosure. Total cost for all the parts and shipping was £288.00 including all taxes.
The kit took about 10 or so days to arrive and was very easy to put together making sure to fit the PA transistor heat sink the right way round so that it doesn’t short out the main board. (There are many videos about this on YouTube)
Once the hardware was put together I needed to install some software to control/drive the HL2. Being a heavy weight Linux user my software choice had to come from the Opensource world.
M0AWS Hermes Lite 2 SDR Trasnceiver and Xiegu XPA125B Amplifier
After much research and chatting with other HAMs on the Matrix who have the HL2 I found that most people use the closed source SDR Console software to control the transceiver. Since this software is for Windows it’s not something I can use as I don’t have any Windows PCs, they’re all Linux only.
To this end I started researching Linux SDR software for the HL2 and decided that PiHPSDR was the one I was going to try first.
PiHPSDR was originally written for the RaspberryPi 3/4/5 single board computers (SBCs) but, I wanted to have a go at compiling it on my Kubunu Linux desktop PC. I found it straight forward to follow the instructions in the pihpsdr-install.pdf file and in no time at all I had the software compiled and running.
PiHPSDR running on Kubuntu Linux 22.04LTS
PiHPSDR is infinitely configurable and thus it feels like it has an infinite number of menus and options. Since the HL2 has two separate receivers, it’s possible to listen to two bands at the same time. This is the one feature I really missed more than anything with my FTDX10 so, I’m glad to have dual receive capability back once more!
Going through all the settings I realised that the A and B VFOs have individual settings. Initially I setup the software using just VFO A but, when I switched over to VFO B none of my settings were there. I then had the realisation that the settings apply only to the active VFO. I quickly went through all the settings again for VFO B and all was well.
In no time at all I was on the air with just 5w as my Xiegu amp hadn’t arrived. Not being perturbed I tuned up on the 15m band and started searching for stations. Interestingly it was CQWW SSB weekend and the band was full of contest stations. Working my way along the spectrum I found I was able to work quite a few stations with ease using my vertical and inverted-L antennas.
Contacts of note were VE3KG at 3406 Miles, VE3JM at 3382 Miles, RW9DX at 2380 Miles, KC1XX at 3331 Miles and N1DE at 3600 Miles. I also worked a bunch of European stations and had a great time giving away points with my little QRP rig.
Contests are a good time to try out new radios as all the big stations with good ears are on the bands and make the effort to get us QRP guys in their logs.
I have been extremely impressed with the receivers in the HL2 radio. It handles both strong and weak stations exceptionally well. PiHPSDR really does have brick-wall filtering and I was able to work the weaker stations right next to large contest stations with ease. At no time did the front-end of the receiver get overloaded.
Below is a short video clip of a conversation on the 80m band. The band was quite noisy however, with a reduction of the AGC gain and the 2700Hz filter it’s possible to remove almost all the noise.
Hermes Lite 2 SSB reception on the 80m Band
On CW the radio is a real delight. With the filtering and AGC gain control I am able to use extremely narrow receive filters without any ringing whatsoever. I would say that on CW the HL2 is as good as my FTDX10 when it comes to receiving even the weakest of stations.
I’m sure on paper the FTDX10 receiver has better numbers however, to the ear there really is no discernible difference.
Below is a short video clip of D4DX on CW on the 80m band. The band was noisy but, with the 100Hz filter enabled and clever use of the AGC Gain I was able to remove almost all the noise completely, reducing fatigue on the ears and making reception very easy even though there was some fairly deep QSB at times.
Receiving D4DX on CW on the 80m band using 100Hz filter and reduced AGC gain
A few days later my Xiegu XPA125B amplifier arrived. Unfortunately the amp didn’t come with the normal PTT lead that comes from the factory and is detailed in the user manual. For some bizarre reason this is a chargeable option when you buy the amp from Martin Lynch and Sons even though it is included from the factory.
This meant I had to make a lead which was a problem as I didn’t have one of the mini DIN plugs required for the connection to the amplifier. Jumping onto Amazon I ordered a packet of two and sat back and waited for their arrival.
A couple of days later the DIN plugs arrived and I quickly made up the necessary phono/RCA to mini DIN lead and got the amp operational.
The Xiegu XPA125B isn’t cheap but, it’s a really nice bit of kit. The neat little LCD display keeps you informed of power O/P, I/P and O/P SWR, voltage, current draw, temperature and band selected.
With just 0.7w of input from the HL2 I’m able to get a full 100w O/P from the amp. On the lower bands I have to reduce the O/P from the Hermes Lite 2 even further so that I don’t over drive the amp.
Being an avid Short Wave Listener (SWL) I wanted to see how the HL2 performed when listening to the big AM broadcast stations. To my surprise it makes an excellent SWL receiver with better AM demodulation than many of the more expensive radios. Having the option to select receive filters up to 16Khz wide I found I was able to get the best audio possible from many of the broadcast stations including Radio Caroline on 648Khz. It’s quite an improvement over the 12Khz maximum on the FTDX10.
Listening to AM Broadcast stations
What makes this project even more exciting is that both the hardware and software are from the OpenHardware/OpenSource world. The complete circuit diagram, PCB layout and information is available for all to download, something you don’t often see these days!
PiHPSDR is one of the nicest SDR applications I’ve seen in the Linux world and even comes with a 200 page downloadable user manual. Something you don’t see in many Opensource projects. The source code for the application is downloadable and you are able to make your own changes to it without restriction.
Overall I am really pleased with the Hermes Lite 2 SDR transceiver. It has two excellent receivers, is infinitely configurable via the PiHPSDR software and performs extremely well under all conditions. Since getting the radio I haven’t even switched on the FTDX10.
Please note: This build is now deprecated and will no longer work. Please use the new AllStarLink 3 build process as documented on the AllStarLink website.
We’ve recently added a new room to the Matrix HAM Radio Space for Digital Voice modes as this was an area of interest that didn’t really fit into any of the other rooms.
The new Digital Voice room has attracted a lot of attention from members, with a lot of the focus being on the AllStarLink system. Michael, DK1MI built an AllStarLink node in the cloud for us all to use for Matrix Nets and so I decided I had to get in on the fun.
Jumbospot SHARI SA818 Amateur Radio AllStarLink Radio Interface Front Panel ViewJumbospot SHARI SA818 Amateur Radio AllStarLink Radio Interface Rear ViewJumbospot SHARI SA818 Amateur Radio AllStarLink Radio Interface stripped down View
The two USB connectors on the SHARI device are position such that they plug into two of the available 4 USB ports on the RaspberryPi without the need for cables. This keeps the whole solution together in one neat package.
Before you start you will need to obtain a node number and secret (password) from the AllStarLink Portal. To get this you will need to provide proof to the AllStarLink administrators that you are a licensed Amateur Radio (HAM) operator. This is done by uploading a copy of the first page of your HAM licence to the website for the admin team to check. This can take 24hrs to be completed so make sure you get this all done before trying to build your node. You cannot build a node successfully without a node number and secret.
Of course you will also need a transceiver that can operate on the 438.800Mhz frequency or other frequency of your choice on the 2m or 70cm HAM band.
You will also need to open port 4569 on your internet router and setup port forwarding to the IP Address that you will be using on your RaspberryPi node. It’s important to use a static IP Address on your RaspberryPi.
There are quite a few different Linux based operating system (O/S) images that are available for the RaspberryPi devices that have been specifically tailored for the AllStarLink node and include all the necessary software and library packages out the box.
Once downloaded you need to burn the ISO image onto a suitable SD card for your RaspberryPi. I use BalenaEtcher as it’s extremely quick and reliable at burning ISO images to SD cards.
Of course if you are a hardline Linux command line junkie you can always use dd to create the SD card.
Once you’ve got your O/S onto your SD card, slot it into your RaspberryPi making sure your SHARI device is connected to the two USB ports and then power it up. Make sure you have a good PSU for the RaspberryPi as the two devices together draw around 3A of current during the transmit cycle. (I use a 3.6A PSU from Amazon).
The default login for the Raspbian O/S is shown below. Login via SSH and configure your RaspberryPi for your local network. It’s important to use a static IP Address configured either directly on the RaspberryPi or via DHCP in your router.
Next you need to change directory into the asterisk config file directory using the command shown below:
cd /etc/asterisk
In this directory you will find all the default config files that come as part of the distro. For this build we’re not going to use them and so we need to move them out of the way ready for a set of config files that have already been configured correctly.
Using the following commands create a new directory, move into that new directory and then move all the unwanted configuration files into it:
mkdir ORIGINAL-CONF-FILES
cd ./ORIGINAL-CONF-FILES
mv ../*.conf ./
ls -la
cd ../
You should now be back in the /etc/asterisk directory which will now be empty apart from the custom directory which we left in place.
You now need to copy the correctly configured configuration files into the /etc/asterisk directory. Start by downloading the zip file containing the new configuration files
Download removed as deprecated.
Once downloaded, copy the .zip file into the repeater users home directory (/home/repeater) using either scp on the Linux command line or if using Windows you can use the FileZilla Client in SFTP mode using the login details above.
Once you have the .zip file in the repeater user’s home directory you need to copy the file into the /etc/asterisk directory as user root:
Next as user root, change directory into the /etc/asterisk directory and unzip the .zip file:
cd /etc/asterisk
unzip ./AllStarLink-Config-v3.zip
Once the file is unzipped you will have a directory called AllStarLink-Config in the /etc/asterisk directory. You now need to cd into the directory, copy all the files out of it into the /etc/asterisk directory leaving a copy in the AllStarLink-Config directory for future reference:
cd /etc/asterisk/AllStarLink-Config
cp ./* /etc/asterisk
cd /etc/asterisk
You now need to move a couple of files into the repeater users home directory using the following commands:
The gpioBASH script and configuration details were supplied by Mark, G1INU in the Digital Voice room on the Matrix. It adds the COS light functionality to the setup. The COS light will now light every time the SA818 hears RF on the input.
The next thing you need to do is configure the SA818 radio device in the SHARI. The script I used was originally from https://wiki.fm-funknetz.de/doku.php?id=fm-funknetz:technik:shari-sa818 all I’ve done is change the entries to switch off CTCSS and change the frequency to 438.800Mhz. Configuring the SA818 is done by running the SA818-running.pyPython programme that you moved into the repeater user home directory. Making sure you are still user root, run the following commands:
cd /home/repeater
./SA818-running.py
At this point your SHARI SA818 device will be configured to operate on 438.800Mhz and CTCSS will be disabled.
If you want to change the frequency or enable and set a CTCSS tone to access the node you will need to edit the Python programme using your favourite text editor and change the entries accordingly. Once changed rerun the program as shown above and your SHARI will be reconfigured to your new settings.
Next you need to move the allmon.ini.php file into the correct directory so that it enables access to the Allstar Monitor web page on the device so that you can manage connecting/disconnecting nodes. Use the following commands as user root to achieve this:
The allmon.ini.php file needs to have your node name entered into it to work correctly. As user root, change directory and edit the file using your favourite editor.
cd /var/www/html/allmon2
Using your text editor, search for the line starting [XXXXX] and change the XXXXX to your node number. Save the change and exit the file.
At this point you are almost complete, all that is left to do is add your node number and node secret into the appropriate configuration files in the /etc/asterisk directory.
Since I am a Linux command line junkie I use vi to edit all the configuration files on the command line as user root, but you can use any editor of your choice.
cd /etc/asterisk
Start with the extensions.conf file. Search for the line starting with NODE = and delete the XXXXX entry and insert your node number. Save the file and exit it.
Next you need to edit the iax.conf file. This time search for the line starting with register= and change the XXXXX for your node number and the YYYYYYYYYYYY for your node secret. Be careful not to accidentally delete any other characters in the lines otherwise it will corrupt the configuration file.
In the same file search for the two lines that start with secret = and change the YYYYYYYYYYYY for your node secret. Once you have changed both of the secret entries, save and exit the file.
The final file to edit is the rpt.conf file. Once again open the file using your favourite editor and search for the line starting with XXXXX = radio@127.0.0.1:4569/XXXXX, change the XXXXX entries for your node number making sure not to delete any other characters next to the XXXXX entries.
Further down in the same file there is a line that starts with [XXXXX], once again change the XXXXX for your node number making sure to keep the square brackets at each end of the node number as you edit it.
Finally move down to the very bottom of the file and find the two lines that start with /home/repeater/gpio, once again change the XXXXX entries for your node number.
The final thing to change in the rpt.conf file is to replace my callsign with your own callsign so that the node identifies itself correctly. Scroll through the file until you find the two lines shown below, delete M0AWS and add your own callsign instead making sure you keep all the spaces between words as shown below.
idrecording = |i DE M0AWS
idtalkover = |i DE M0AWS
Once this is done, save and exit the file. At this point your node should be fully configured and will only require a reboot to get it working.
As user root, reboot your raspi using the reboot command.
reboot
Once your raspi comes back online, login using SSH as user repeater and then become root user using the sudo command detailed above.
You now need to create the admin user password for the Allstar Monitor web page on the device. This is done using the following commands as user root:
cd /var/www/html/allmon2
htpasswd -c .htpasswd admin
You will be asked to enter a password twice for the admin user. Make sure you make a note of this user/password as you will need it to login to the web page.
Finally check that the controlpanel.ini.php file is in the /var/www/html/allmon2 directory:
ls -la /var/www/html/allmon2/controlpanel.ini.php
If the file isn’t shown in the directory, enter the following commands to create the file in the correct place as user root and then exit the SSH session:
cd /var/www/html/allmon2
cp ./controlpanel.ini.txt ./controlpanel.ini.php
cd
exit
Once this is done your configuration is complete, logout from the terminal session by entering exit once more and your SSH session will terminate.
Using your favourite web browser enter the IP Address of your raspi into the URL bar as shown below:
http://<Your-Raspi-IP>/allmon2
Note: remove the <> from the URL once you have entered the required information.
Once this is done you should be presented with your node control panel as shown below.
First visit to the AllStar Monitor Web Page
Login using Admin and the password you set above and you are now ready to start using your node.
It’s a good idea to connect to node 55553 which is a parrot test node to check your audio levels. You can do this by entering the node into the field at the top left and pressing the connect button.
M0AWS AllStarLink Node 61928 connected to 55553 Parrot
Once connected, tune your radio to 438.800Mhz FM and transmit a test message using your callsign and test123, or something similar. The parrot will then play your recording back to you so that you can hear how you sound. It will also comment on your audio level as to whether it is OK or not.
You are now connected to AllStarLink network and have the world at your finger tips. Below is a small list of nodes in the UK, Australia and America to get you started chatting with other HAMs via your node.
57881 Matrix HAM Radio Space AllStarLink Node (Hosted by Dk1MI)
55553 ASL Parrot for testing
41522 M0HOY HUBNet Manchester, UK
60349 VK6CIA 439.275 Perth, Western Australia
51077 VK6SEG South West Hub B Albany WA
2167 M0JKT FreeSTAR UK HUB 2 freestar.network
53573 NWAG NW AllStar Group Lancashire, UK
27339 East Coast Hub Wilmington NC USA
M0AWS AllStarLink Node 61928 sitting on the equipment rack
Thanks to Michael, DK1MI for building and hosting the Matrix HAM Radio Space AllStarLink Node (57881) and getting us all started in the world of AllStarLink!
We hope to be having regular Matrix Net’s on the node soon for all Matrix members and visitors. We’ll organise days/times via the Digital Voice room.
More soon …
We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.