The Three Amigos are pleased to announce piHPSDR-Improved v2.451, bringing another round of enhancements to our evolving Linux SDR application.
Our aim remains simple: to build on the excellent original piHPSDR software and make it even more capable, intuitive and enjoyable to use.
What’s New?
A Better Large-Screen Experience
We’ve continued refining the VFO for LARGE Screens layout, with improved dual-VFO presentation, independent RX1 and RX2 S-meters, clearer filter displays and a more flexible floating toolbar. The result is a cleaner, more informative layout that makes better use of available screen space.
Improved Passband Tuning
The Var1/Var2 filter controls have been renamed PBT1/PBT2 and now behave like passband tuning on Icom radios. Adjust filter width and shift to fine-tune the received audio, with consistent operation across modes.
A More Informative Toolbar
Toolbar buttons now provide clear visual feedback when functions such as Split, Duplex, SAT, noise reduction and transmission are active. The indicators follow changes made through CAT, MIDI, GPIO and keyboard controls too.
piHPSDR-Improved v2.451 – Floating Toobar
Smarter Memories and Waterfall Controls
Memory slots now retain Split and Duplex settings, while RX1 and RX2 waterfall levels are remembered independently for each band. The 60-metre bandplan has also been refined to accommodate receive-only Volmet channels and labels without permitting transmission out of band.
Installation and Usability Improvements
We’ve fixed installation issues involving directory paths containing spaces, improved the floating toolbar and menu positioning, and increased the rigctl TCP/IP CAT server capacity to six simultaneous connections.
As always, we’ve also included smaller fixes and refinements to improve day-to-day operation. (Full details in the CHANGELOG)
Tested in Our Shacks, Ready for Yours!
Development and testing have covered Raspberry Pi OS, Kubuntu (KDE Plasma), LinuxMint and Debian 12/13 across both Intel/AMD systems and Raspberry Pi hardware. We’ve been working hard to make piHPSDR-Improved a practical and accessible choice for Linux-based amateur radio stations.
piHPSDR-Improved v2.451 – New Big Screen Display with dual S Meters
Get piHPSDR-Improved
If you’re already using piHPSDR-Improved, this release brings plenty of reasons to update. If you’re discovering it for the first time, our GUI installer makes getting started with Linux SDR software easier.
piHPSDR-Improved GUI Installer
We’re three radio amateurs developing and testing the software because we believe there’s still plenty of potential to unlock in piHPSDR.
Steve (M0XVT), Alan (G1SQB) and I are pleased to announce piSync v0.9, bringing synchronised WebSDR access to Linux users running piHPSDR-Improved and now, a much wider range of transceivers through FLRig.
Windows users have enjoyed this kind of functionality through applications such as CatSync for some time. To the best of our knowledge, piSync may be the first Linux application to offer an equivalent solution for both piHPSDR-Improved and the huge range of transceivers supported by FLRig.
piSync v0.9 with FLRig support
Bringing New Life to Existing Radios
The addition of FLRig support is a significant step forward. piSync can follow your radio’s frequency, operating mode, active VFO and PTT status, allowing a compatible WebSDR receiver to follow you around the bands.
Whether you’re using a modern SDR or a conventional transceiver, piSync opens up new possibilities for exploring propagation and comparing signals received at different locations around the world — without replacing your existing radio.
What’s New in v0.9?
This release also introduces several improvements:
Persistent WebSDR list: Your receiver URLs are now saved on your PC and restored after restarting piSync, rather than being stored in your web browser.
WebSDR map: A new launcher button provides quick access to the WebSDR World Map.
piSync v0.9 – Synchronising WebSDR’s to your Radio.
Easy Installation for Linux Users
Getting started with piSync is easier than ever, thanks to its new GUI installer. Designed to simplify installation and setup, it makes piSync more accessible to everyone, including amateur radio operators making the move from Windows to Linux.
Alongside the GUI installer developed for piHPSDR-Improved, this is another step towards making Linux a practical and welcoming platform for amateur radio enthusiasts.
piSync GUI Installer – One Double Click and it’s ready to use.
We’ve Kicked the Tyres, So You Can Hit the Airwaves!
piSync has been tested on Raspberry Pi, Kubuntu (KDE Plasma), Linux Mint (Cinnamon), Debian 13 (Trixie) and Ubuntu. While we can’t test every Linux distribution, it should work on most Debian and Ubuntu based systems. We’ve done the testing so you can spend less time setting up and more time enjoying your radio!
Get piSync
If you’re a Linux-based amateur radio operator, whether using piHPSDR-Improved or a transceiver supported by FLRig, piSync is worth a look.
Synchronised WebSDR access, on Linux, using the radio you already own.
It’s been a busy week of software bug fixes and enhancements on piHPSDR-Improved and piSync.
piSync v0.9 is currently in test after we added the support for FLRig. This extends the support for many transceivers new and old along side piHPSDR-Improved and makes it useful to HAMs who aren’t using SDR’s.
piSync v0.9 with FLRig support in test
piHPSDR-Improved has also had a lot of work done to it this week with a splurge of bug fixes and enhancements being made. We decided to bring the release forward as we can then concentrate on writing the new modules to bring even more functionality to the SDR solution.
piHPSDR-Improved v2.45 in Test
We’ve put some effort into tidying up the user interface in piHPSDR-Improved along with the new, second S Meter for VFOB. This is a really nice enhancement we’ve been wanting to do for some time but, haven’t had the time to devote to it until now.
piHPSDR-Improved v2.45 in test with Horizontally stacked RX
The floating toolbar has also had some upgrades and is not only looking good but, we’ve added new functionality to it as well.
piHPSDR-Improved v2.45 Floating Toolbar in Test
We’re hoping to release both of these updated software packages very soon once we’ve completed all our testing and are happy that’s it ready for release.
piHPSDR-Improved Logo from The Three Amigos Development Team
For some time now Steve (M0XVT), Alan (G1SQB) and I have been working on a version of piHPSDR to use with our Hermes Lite 2, Anan 200D, Adalm Pluto, Pluto+ and LibreSDR transceivers. The biggest problem we’ve had is the constantly changing code on github that often would stop the software from working on one device or more each time we updated and then we’d have to spend hours finding the issue and fixing it.
Eventually we got tired of this and decided to build our own stable version that doesn’t get anything from github and is made up of all the parts necessary to create a version that just works on the devices that we use on a daily basis.
Using piHPSDR on the QO-100 satellite and the HF bands across a number of very different types of hardware is a challenge in itself, especially when the devices use different protocols and only certain library sets work with certain firmware on some devices, the combinations get complicated to say the least.
To differentiate our build of piHPSDR from all the others available on the internet today we decided to call it piHPSDR-Improved.
So what is piHPSDR-Improved?
piHPSDR-Improved is a version of piHPSDR that has the fixes and enhancements in it that we’ve dreamt of having over the last couple of years. Some of the fixes are simple things like being able to detach the toolbar from the main window thus giving more space for the two panadapter/waterfall displays and have all the toolbar buttons on another screen in a floating toolbar. Other enhancements were more involved and addressed some of the most annoying issues like none of the settings for VFOB (RX2) were saved and so, every time you started the program you had to setup the RX2 all over again from scratch. These sound like simple fixes but, believe me, they’re not.
Another thing we wanted to do was make piHPSDR-Improved easy to install. Many Windows users transitioning from Windows to Linux often regret it the moment they have to use the Linux command line to install piHPSDR.
We’ve committed to having GUI installers for all the applications that we develop and release, regardless of how much extra work this entails.
It’s time installing software on Linux desktop PCs was as easy as it has been on Windows PCs for decades.
piHPSDR-Improved GUI Installer
We’ve taken a modular approach to building piHPSDR-improved. Rather than putting everything into the one application, we’re going to be releasing add on modules that will bring new functionality over time. This way we can build on a structured, stable base keeping everything operational all of the time.
The first module we’re releasing is piSync and we’ve included it in the zip file that you’ll download to install piHPSDR-Improved.
piSync Logo
piSync adds functionality to piHPSDR-Improved that Windows Thetis users have had for a long time, namely the ability to use an online WebSDR along side their own SDR transceiver and have it track the frequency, band and mode automatically. This functionality has proven to be incredibly useful when you are struggling to hear a weak DX or QRP station.
With piSync you can now use an online WebSDR receiver closer to the DX station to aid getting that QSO in the log. It’s like having another receiver in your radio that is located anywhere in the world, for free!
We believe this is a first for the Linux platform and we’re really pleased to be able to share it with the Linux community.
We’ve had great fun with piSync during testing and we think you’re all going to find it extremely useful too.
We’re also planning on adding support for FLRig in the next version of piSync so that you’ll be able to use a WebSDR with any transceiver that is supported by FLRig.
Of course it goes without saying, all of our software is Opensource. When you download and install piHPSDR-Improved or any of the new modules you will get the full source code every time and be free to do whatever you like with it. Every module will also have it’s own GUI installer, no more command line, just double click and go.
Both piHPSDR-Improved and piSync have been tested on RaspberryPi 5/500+, Linuxmint Cinnamon, Kubuntu, Debian 12 (Bookworm) and Debian 13 (Trixie) so, we’re pretty confident it’ll work on most Debian/Ubuntu based Linux distro’s on Intel/AMD PCs and the current versions of the RaspberryPi SBCs.
piHPSDR-Improved, piSync and a WebSDR running on a pi 500+
Inside the zip file you’ll find a file called README.1st, do make sure you read this before installing any of the software as it contains some important information that’ll make installation as easy as possible.
To download both piHPSDR-Improved and piSync in an easy to use zip file, just click the Download button below.
We’ve got lots of ideas for new features, modules and bug fixes (Yes there are still some bugs in there!) which we will be releasing over time. Don’t expect this to happen overnight as Steve still works full time and Alan and I are both enjoying our retirement.
This is just another facet of our hobby and we don’t like to rush things. We do like to use our radios on air, pretty much daily and so we do this software development in between all the other fun things that Amateur Radio has to offer.
To be clear and open we do use Claude Code to help with development. I go through as much of the code as I can without spending days and days just reading code. I am retired after all and have spent enough of my life professionally writing and debugging both my own code and other people’s code. We do a lot of testing on a good number of Linux distros before we even consider releasing the software to the wider world and use it on air as part of the testing process, so we’ve done as much as we can to ensure we’ve not introduced new bugs to the software. Keep in mind we do this as part of our Amateur Radio hobby and so, it needs to be fun and enjoyable.
We hope you enjoy using the software and find it useful. If you’ve got ideas for new things you’d like to see in future versions then please feel free to contact any of us via our contact details on QRZ.
UPDATE: We’ve fixed a little bug in piSync and released an updated version. You can download it from this article.
The articles I write for the blog are mostly technical but, I thought it was about time that I wrote this article as it’s been buzzing around inside my head for some time now.
So, what are the 5 things that I have found revolutionary in my shack that have brought new, exciting ideas and projects to life making amateur radio more enjoyable.
1: A RaspberryPi Single Board Computer
RaspberryPi 5 Single Board Computer
Ever since the first RaspberryPi Single Board Computer (SBC) was released I’ve been a huge fan. This little credit card sized number cruncher has been the base for so many projects, it has to be the first on my list.
The RaspberryPi SBC has been through a few iterations since its initial conception and is now powerful enough to take on most tasks that any radio HAM is going to throw at it.
So, what have I done with them?
Well I’ve used them to run Node-Red services for my many web app dashboards that control things like my QO-100 Satellite Ground Station, UPS power monitoring, Internet speed graphs, server and virtual machine monitoring, AllStarLink nodes, hosting websites, building an SDR shortwave receiver, running HAM Clock / Open HAM Clock, developing my own software, hosting virtual machines and a whole host of other fun and interesting things. I’m even writing this article using my RaspberryPi 500+ computer that is my daily desktop PC.
There are an endless number of things you can do with a RaspberryPi to bring new life and functionality to your radio hobby.
Want to get into Amateur TV? Want to decode digital modes real time? Want to track aircraft in the sky real time on a virtual radar screen? Want to search the shortwave bands for stations of interest? Want to host your own blog and website?
All these things and a lot more are easily within reach with a RaspberryPi.
The RaspberryPi is only limited by your imagination, the more imaginative you are the more your number crunching little friend will do.
2: A 3D Printer
Bambu Lab A1 Combo 3D Printer
Every HAM should have a 3D printer. These manufacturing marvels bring a new level of quality, design and simplicity to your HAM radio projects. I’ve found it incredibly useful since venturing into the rabbit hole that is 3D printing. When I think back to the weeks and months of my life I’ve spent making cabinets and boxes out of sheet metal, aluminium or wood for the numerous projects I’ve built over the years, a 3D printer would had made my life so much easier. 3D printing has revolutionised the making of things for the Amateur Radio home brewer.
There’s a multitude of useful things on websites like Printables, Thingiverse , Makerworld and others where you can just download the files and print high quality designs for all those things you’ve wanted to do but, don’t have the time or inclination to craft by hand.
The real satisfaction with 3D printing comes from designing your own things and making them. My first project was to design and print a fan cooling system for my Xiegu XPA125B amplifier.
From the factory the amp is passively cooled and doesn’t take long for the heat-sink to become saturated resulting in a high operating temperature. I was never happy with this and so was determined to resolve the problem.
Getting to grips with TinkerCAD was a bit of a vertical learning curve but, after a few mistakes and design mishaps I soon had it under my belt and pressed on with designing the cooler unit.
Designing the Xiegu XPA125b cooling system using tinkerCAD.
It’s not until you start designing and manufacturing things that you suddenly realise how much effort goes into them but, I persevered and over the period of about a week or so I had a perfectly fitting, operational cooling system that kept the amp super cool regardless of how long I waffled on for on the HF bands.
Once you’ve got your first design made you suddenly find yourself wanting to improve it and add things. In my case this was adding a Hermes Lite 2 holder to the top of the amp cooler and then a top shelf to hold my cross needle SWR and power meter.
Since then I’ve progressed massively with my designs and have even designed and printed things for other HAMs and family members, it’s totally addictive!
I can highly recommend the Bambu Lab A1 Combo (As shown above). It’s a quality piece of equipment that has operated faultlessly since purchase. Right now it’s printing a case for my RaspberryPi 4, just one of the many projects I’ve used it for since becoming a happy owner.
RaspberryPi 4 case from printables.com
Go on, release your inner creativity and treat yourself to a 3D printer, you won’t regret it and it’ll help you bring to life all of those radio projects you’ve dreamt of doing but, never got round to starting.
3: An AllStarLink Node
M0AW AllStarLink Node 61928 sitting on the equipment rack
Many people say that using VOIP over the internet isn’t real radio, I know because I used to be one of those people however, it has become an invaluable resource for keeping in touch with people all over the world.
Being part of an online HAM Radio Community it’s important that as a group we are able to talk to each other regardless of where we live, what bands we have access to and whether there is any propagation.
The AllStarLink (ASL) network gives global FM quality audio no matter where you are in the world. We use it daily for our breakfast net, general chatter throughout the day and even hold a weekly Matrix ASL Net on a Thursday evening.
Using our VHF/UHF handhelds (Real Radios!) and an easy to make AllStarLink Node we’re able to join in with the conversation regardless of propagation, licence type or distance, it really is great for bringing people together.
With devices like the SHARI and AIOC board now being readily available for minimal cost it really is very easy to get onto the AllStarLink network and talk to people even if you live in an antenna restricted location.
Why be alone when you can use the Matrix ASL node ( 642332 ) and join in the conversation.
4: Node-Red
M0AWS – Updated NodeRed QO-100 Dashboard with PTT button
Node-Red is a low-code programming tool for event-driven applications.
Node-RED’s goal is to enable anyone to build applications that collect, transform and visualise their data; building flows that can automate their world. Its low-code nature makes it accessible to users of any background, whether for home automation, industrial control systems or anything in between.
I’ve been using Node-Red for a number of years now and have developed a suite of web app’s that control and monitor just about every aspect of my Amateur Radio hobby and IT infrastructure.
Node-Red forms an integral part of my QO-100 Satellite Ground Station providing control of both the uplink and down link radios whilst synchronising the VFO’s, controlling filter selection and more, all from one simple to use interface using nothing more than a web browser.
It doesn’t stop there, my AllStarLink (ASL) nodes are also managed through a user friendly Node-Red Dashboard that removes all the need for technical know how and makes ASL node management as simple as clicking on a button to connect or disconnect to the many global networks.
Much of this functionality is achieved without writing a single line of code. If you can use a mouse, drag and drop objects on the screen you can develop Node-Red web app’s, it really is that easy.
M0AWS Interactive Log Flow
It doesn’t end there, Node-Red is great for presenting data in easy to digest formats.
Whether it be HAM Radio Log data presented on an interactive world map or monitoring of your server, RaspberryPi, virtual machine or UPS using gauges and graphs, this can all be achieved easily with nothing more than a mouse. There’s no need to spend hours writing thousands of lines of code, just drag and drop a few nodes onto the screen and join them up. You’ll be amazed how easy it is.
I believe every Amateur Radio enthusiast should have Node-Red available in their radio shack. It’s easy to install on your RaspberryPi 4 or 5, Linux or Windows PC and Apple Mac with the same great functionality available on all platforms.
Once you’ve developed your first web app you’ll suddenly find a million more ideas will come into your head and before you know it, you’ll be where I am today with Node-Red at the centre of your radio hobby.
5: A Hermes Lite 2 HF SDR Transceiver
For years I used black box HF radios from the big 3 manufacturers along with the odd radio from the smaller enterprises like TenTec but, they all had their foibles and there was often nothing I could do about it.
My last acquisition from the big 3 was a Yaesu FTDX10, a competent hybrid SDR radio with a good receiver however, the menu system is terrible, the button layout not much better and the user experience not as good as it could be. Of course the software is closed source so there is nothing you can do about it. The radio did its job but, it wasn’t fun to use, it wasn’t what I really wanted and it didn’t put a smile on my face.
I looked at moving to software defined radios (SDR) but, with prices in the many thousands of pounds bracket and the software being closed source I came to the conclusion that they wouldn’t give me what I really wanted either.
So what was it that I was searching for?
Thinking long and hard about it I came to the conclusion that what I really wanted was a radio that gave me the same satisfaction that OpenSource software has given me for decades, namely an HF radio that I have complete control over, from the hardware through to the software and everything in between.
I wanted something that I could tailor to my exact needs. Something that was built using open hardware and open software, something where if I wasn’t happy with it I could change it, improve it and do the things I wanted with it.
At this point my search for the ideal radio headed in a completely different direction.
Xiegu XPA125b Cooler with Hermes Lite 2 cradle – front view
The Hermes Lite 2 SDR HF Transceiver (HL2) has been around for a number of years. I was first introduced to it by Michael, DK1MI and then Roger, G8VLR via the Matrix. Both Michael and Roger use the HL2 on a regular basis and have often waxed lyrical about how good it is.
Being designed by radio amateurs for radio amateurs it’s based on an open architecture from the ground up. Being an OpenSource junky this really appealed to me and as I looked deeper into it from both a hardware and software point of view I soon realised that it had the potential to be exactly what I was looking for.
It wasn’t long before I found myself on the Makerfabs website placing an order for the HL2 mainboard, filter board, I/O board and case. A couple of weeks later it arrived and I dived head first into the SDR rabbit hole.
2 years later and the HL2 has become my main HF radio in the shack. Partnered with a Xiegu XPA125B amplifier and PiHPSDR software running on my Kubuntu Linux PC it is everything I have been looking for in an HF radio.
I’ve made modifications to the software to suit my operating style and needs with the user interface being exactly how I want it, no unnecessary buttons or knobs, just the controls that I use on a daily basis cleanly placed in a logical, easy to use layout, the way I want it.
My understanding of software defined radio and how it works has improved a hundred fold. Having access to the software and being able to go through the code and understand the architecture has been an interesting journey and one that has enhanced my radio enjoyment considerably. I now have a smile on my face every time I go on air.
Do I miss the FTDX10?
No, not in the slightest!
So, those are the 5 things that I feel have revolutionised my radio amateur hobby and made it a more enjoyable experience. I’m sure over time I will add to this list as I venture down future rabbit holes in our wonderful radio hobby.
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.
For sometime I’ve been using PiHPSDR software to drive my Hermes Lite 2 (HL2) SDR transceiver. It’s a great piece of OpenSource software for SDR transceivers and has the best documentation that I have ever seen from an OpenSource project.
I must admit, I’ve had to make a few changes to get the software how I like it but, that’s the great thing about OpenSource software, you get the source code and can do what you like to it.
Following in this thread I recently decided to give DeskHPSDR a try. DeskHPSDR is a fork of the original PiHPSDR but, with some changes mainly aimed at larger display computers.
After compiling DeskHPSDR on my Kubuntu Linux PC in the radio shack, I found there were a few issues, mainly the colours were hard on the eyes and band/channel markers wrong/missing on a few of bands.
DeskHPSDR default colour scheme on Kubuntu 22.04LTS (KDE-Plasma)
I decided to dive in and take a look at the source code and try and sort out the colour issues as blue writing on dark buttons made them almost impossible to read under a KDE-Plasma desktop.
Delving through the appearance.c and css.c files I found that there were many changes required to get the end result I wanted. The biggest pain is that you have to recompile the source code after each change to see if the code change had worked, this results in many recompiles, a tedious task.
After spending many hours making changes I decided to email Heiko, DL1BZ who is the developer of DeskHPSDR. Over a number of emails we discussed getting the colour management code changed such that it was read in at start time from a separate css file rather than having to be compiled into the main program.
After a few emails back and forth, Heiko changed the code so that a separate CSS file could be read in at start up instead of the hard coded CSS in the C code files, this worked great and made it much easier to make colour changes without constant compilations of the code.
Next I needed to edit the bands.c file to change some of the band edge markers to show the UK band plan as, by default they are incorrect even though I have the region set to UK.
Editing the appearance.c file once more I was able to change the colour of the rather bright green panadapter signal display to a much more pleasing blue fading to red as the signal gets stronger.
One thing I really like about PiHPSDR was the channel markers on the 60m band. Anyone that uses the 60m band will know that the UK allocation is split into 11 different channels separated by spaces used by the primary user of the band. The channel markers make it just that bit easier to ensure you don’t stray out of the allocated channels however, this code had been removed from DeskHPSDR as Heiko didn’t consider it necessary.
Once again I pinged an email over to Heiko explaining how useful it is to UK HAMs and he very kindly put the code back into DeskHPSDR so that the 60m channels are once more clearly visible on the panadapter.
DeskHPSDR modified colour scheme on Kubuntu 22.04LTS (KDE-Plasma)
Feeling happy with the new colour configuration I decided to test it out on Linuxmint Cinnamon. Sadly the scheme that looked so nice under Kubuntu 22.04LTS didn’t look the same under Linuxmint and so I had to set about coming up with a version of the CSS file for this platform too.
After quite a few hours tinkering with CSS code I found it to be impossible to get the colour scheme on Linuxmint Cinnamon Edition identical to that I’d created under Kubuntu KDE-Plasma so, I settled for a look that was as close as possible.
DeskHPSDR on Linuxmint Cinnamon Edition with colour modifications.
Chatting with Steve, M0XVT we thought it would be a good idea to test it on his Kubuntu Linux and Linuxmint PCs. He is using a later version of Kubuntu than I am (24.04LTS) and so, it would be a good test to see if the colour scheme looked the same.
Sadly it turns out that for some bizarre reason the colours come out different in the later version of Kubuntu. This is a real nuisance as it means we’d need a separate colour scheme defining for each version of the O/S. Perhaps using CSS isn’t the best way to define a colour scheme in applications.
For some very strange reason the colours were also rendered differently on his Linuxmint PC even though he was using the same version of the O/S as I am.
DeskHPSDR running on Kubuntu 24.04LTS with colour scheme not rendering correctly
Another issue was found whilst testing on Steve’s computers which seems to be caused by the fact he uses an Anan 200D SDR.
Looking at the documentation on github in theory DeskHPSDR should support the Anan range of SDR transceivers however, we found that it’s impossible to select the sample rate as the drop down selection list is completely missing from the Radio menu with the radio defaulting to its lowest sample rate of 48k resulting in not being able to see the full spectrum of frequency ranges on the bands.
DeskHPSDR Sample Rate drop down missing when using an Anan SDR
The other thing to note is that the Remote Server functionality has also been removed from the code by Heiko as he feels it’s not necessary. This may be a deal breaker for some and so they may choose not to use DeskHPSDR and to continue using PiHPSDR instead.
I will at some point make the O/S specific CSS files and source code available for download for those that want to use DeskHPSDR with my colour scheme changes.
I’m not sure at the moment whether I will continue using DeskHPSDR or go back to PiHPSDR, time will tell.
As I detailed in my QO-100 Satellite Ground Station Complete Build article I use a Griffin Powermate VFO knob to control the receive VFO frequency when in split mode or needing to RIT a DX station to get on frequency with them. Since building the ground station this setup has worked perfectly and without error however, for the last couple of days every time I start my Kubuntu Linux PC the USB VFO knob appears on a different USB event queue.
For the last two years the VFO knob has always appeared on /dev/input/event11 but, after connecting a Pluto+ SDR transceiver to the PC via USB the VFO knob now appears randomly on the /dev/input/events tree. This normally doesn’t cause any problems but, my Node-Red QO-100 Ground Station Control Dashboard expects the device to always be on /dev/input/event11.
Griffin Technology Powermate VFO
Initially I tried to find a way to lock the USB VFO knob to /dev/input/event11 however, there doesn’t appear to be a way to do this as the event tree is built at boot time by udev.
Digging deeper into udev I discovered that it’s possible to create a udev rule that is read at boot time, that will search for the device and then create a symlink to it with the same name each time making the USB VFO Knob appear as if it’s always in the same place. This is exactly what I need so I set about writing the udev rule.
To find out what event the USB VFO knob is currently on I ran evtest on the Linux command-line and got the following output.
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: Sleep Button
/dev/input/event1: Power Button
/dev/input/event2: Power Button
/dev/input/event3: Video Bus
/dev/input/event4: Telink Wireless Receiver Mouse
/dev/input/event5: Telink Wireless Receiver Consumer Control
/dev/input/event6: Telink Wireless Receiver System Control
/dev/input/event7: Telink Wireless Receiver
/dev/input/event8: Kensington USB/PS2 Orbit
/dev/input/event9: PixArt USB Optical Mouse
/dev/input/event10: USB PnP Audio Device
/dev/input/event11: HDA Intel PCH Front Mic
/dev/input/event12: HDA Intel PCH Rear Mic
/dev/input/event13: HDA Intel PCH Line
/dev/input/event14: HDA Intel PCH Line Out Front
/dev/input/event15: HDA Intel PCH Line Out Surround
/dev/input/event16: HDA Intel PCH Line Out CLFE
/dev/input/event17: HDA Intel PCH Line Out Side
/dev/input/event18: HDA Intel PCH Front Headphone
/dev/input/event19: HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event20: HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event21: HDA Intel PCH HDMI/DP,pcm=8
/dev/input/event22: HDA Intel PCH HDMI/DP,pcm=9
/dev/input/event23: HDA Intel PCH HDMI/DP,pcm=10
/dev/input/event24: Griffin PowerMate
/dev/input/event25: Realtek RTL2832U reference design
This shows that currently the Griffin Powermate VFO knob is on event 24.
Having this information I now needed to use the udevadm command to obtain the Vendor and Product ID of the USB VFO knob.
udevadm info -a /dev/input/event24
This returns a lot of information about the USB device, more than I was expecting but, upon close inspection I found the Vendor and Product IDs.
Note: That should all be on one line in the file not wrapped as shown above.
This one line rule sets the subsystem to input events, sets the Product and Vendor IDs to that of the Griffin Powermate USB VFO knob and then creates the symlink /dev/powermate
Once I’d completed the rule, I saved the file and exited the vi text editor.
Next I needed to use udevadm to get it to re-read the udev rules as if it were boot time and check that it created the symlink.
udevadm control -R
Once the udevadm command completed I used the ls command to see if the symlink had been created.
As shown above the symlink had been created and I could now enter /dev/powermate into my Node-Red code so that it always finds the VFO knob regardless of what event number it appears on.
Just to make sure it worked correctly at boot time, I shutdown my Kubuntu linux PC and started it from a cold boot. Sure enough the /dev/powermate symlink was created and pointed to the new event number in the /dev/input tree, problem solved!
I hope this information is useful to Linux users especially as it can be used for any USB input device.
It’s worth noting that you will need to be root user to run most of the commands or use sudo from your regular user account.
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!
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
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.