Let me start this article by confessing that I hate Snap on Linux!
The whole idea that you’d need a container type environment to install an application on a Unix system is very far from where I want to be.
It annoys me that snaps are updated automatically too. I know you can disable this but, I shouldn’t have too. App’s should only get updated when I want to update them, not before.
What I really hate is the fact that the Snap back end system is proprietary and owned solely by Canonical, the Ubuntu people. This goes against my OpenSource ethos.
Sadly I had to install Snap to get the Signal messenger app installed on my RaspberryPi 5 desktop computer. App’s installed via Snap are extremely slow to start, run slow and are heavy on resources. Snap also mounts a whole bunch of dependency Snaps via loop devices to make the app work. Snaps make a real mess of your system.
The final straw that broke the camel’s back for me was when Snap did an automatic upgrade to Signal to a version that has a serious bug in it causing it to crash a minute or so after startup. I initially reverted to the previous version to get it working again but, sure enough Snap did another auto-update and broke it again.
This time I couldn’t revert back to the previous version as Canonical, in their infinite wisdom decided to remove the previous version of Signal from their Snap store!
At this point I removed the Signal Snap from my computer, along with all the “hanger on” snap packages that were clogging up the RaspberyyPi 5 and finally did a complete purge of snapd using dpkg to get rid of all the horrendous snap mount points on the file system.
After a reboot I then went hunting for the Signal messenger app source code. Looking through the code it’s not a 5min job to get it compiled on a RaspberryPi and so I followed a few of the forked versions to see if someone had already done all the hard work for me.
After disappearing down a few Rabbit Holes I eventually stumbled into the world of Pi Apps.
Pi Apps is a neat little app that provides access to the “most popular app store for RaspberryPi computers”. It’s 100% free, OpenSource and written in shell scripts. Perfect!
Installing the “Pi Apps” app is straight forward and only takes a few moments.
Pi-Apps – App store for RaspberryPi
Opening Pi-Apps I found a multitude of OpenSource apps all ready to be installed at the click of a button. In no time at all I’d found Signal and had it installed without getting anywhere near the dreaded Snap.
The version of Signal available at the time of writing this article is v7.39.0 which is fine as this is a stable, bug free version that works reliably.
If you’re using a RaspberryPi computer I can highly recommend you install the Pi-Apps app to enhance your collection of great OpenSource programmes to make your little raspberry flavoured buddy even more useful.
Regular readers of my blog will already know that I am a huge fan of the Linux operating system, it’s clearly evident in most of the content on this website.
I am also a very enthusiastic user of one of the first credit card sized computers that came to be, namely the RaspberryPi. I own all the iterations of this wonderful little computer from the very first version to the latest and greatest, RaspberryPi 5.
This little computer has done more for computing in education than Microsoft and Apple will ever achieve and it’s done it at an incredibly low price making it more accessible to schools, colleges and students than any other platform.
The RaspberryPi has what most consider to be the best support on the planet when it comes to single board computers (SBCs). From the dedicated team that build Raspberry Pi OS, to all the amazing projects and forums that are available, for free on the internet today.
The RaspberryPi computer really has revolutionised computing for the masses.
My RaspberryPi 5 that I am using to write this article.
Raspberry Pi OS really is very good. It’s based on the great Debian distro’ that many of us seasoned Linux users dearly love. It’s light weight, fast and meets the needs of everyone that is venturing into the exciting world of Linux and SBCs for the first time.
Overtime as we all become more experienced with Linux on the RaspberryPi we become more demanding and start to find the Raspberry Pi OS desktop environment lacking. Sure it can be enhanced by adding more and more to it however, it never quite reaches the point of satisfaction and we are always wishing for something more.
With the Pi-5, the latest iteration of this great credit card sized computer, users are now able to seriously think about building a more powerful desktop environment for their little berry flavoured computers.
On my desktop PCs dotted around the house I have used Kubuntu for decades. It’s a slick and powerful desktop environment that has met my needs for many years and I love it more than any other Linux desktop. Sadly Kubuntu isn’t easily available out the box for the RaspberryPi and so I decided that it was time to replicate it as closely as possible on my new, super powerful RaspberryPi 5.
When I ordered my RaspberryPi 5 from Pimoroni I added the NVMe base and 250GB M.2 SSD drive to the order. Up until now I’d always used SD cards however, they are slow and unreliable and so I decided that since the Pi-5 has PCIe it was time to take the step away from SD cards and start using SSD technology.
Getting the OS onto the SSD is a two stage affair. First you have to create a bootable SD card to boot the Pi-5 from and then use it via the RaspberryPi Imager to install the OS onto the SSD. It’s a bit long winded but, easy enough.
Since I’m a huge Kubuntu fan I decided my desktop of choice for my new Pi-5 was going to be KDE-Plasma. I had tried to install this desktop before on older model Pi’s however, it ran so slow that it was unusable. With the new Pi-5’s increased computing power and the speed of the SSD I was confident that this was now possible.
I started out installing the Lite version of Raspberry Pi OS on the SSD. This is a command line only version of Linux that doesn’t include any desktop environment, a nice clean slate to start from.
RaspberryPi Imager showing Pi OS Lite (64bit)
Once the Lite version of the OS was installed on the SSD I shutdown the Pi-5 and removed the SD card and then powered the Pi-5 back up again so that it booted from the SSD.
Upon booting I was presented with the simple Linux Login prompt. After entering my username and password as setup during OS install I landed at the Linux command prompt.
sudo su -
I used sudo to become root user as shown above and then set about building my new KDE based super computer. First I needed to update the operating system with all the latest patches and security fixes.
apt update && apt dist-upgrade
The update and upgrade process ran for a while but, it was soon complete.
reboot
I issued the reboot command and then logged back in again, I was now ready to start building the KDE desktop environment.
sudo su -
apt install kde-plasma-desktop gldriver-test
Becoming root again I type the command to install the KDE-Plasma desktop and the graphics-related config services. There’s a lot of packages to download and install so, I left it to do its thing.
A little while later all the packages were installed and ready to go. I now needed to tell the system to boot into the new graphical user interface instead of the command prompt using systemctl.
systemctl set-default graphical.target
Once this was done I needed to make a change to the display settings using the raspi-config program.
raspi-config
Selecting No.2 on the menu, Display Options and then D2 Screen Blanking, I disabled screen blanking so that I got the full 4K support for my KDE Desktop.
Once the system had been configured for a graphical user interface there was only one thing left to do and that was to shutdown the RaspberryPi.
shutdown -h now
The beautiful KDE-Plasma Desktop on RaspberryPi 5
Powering the Pi-5 back up again I was greeted by the standard KDE Plasma login screen and then, after logging in I was transported to the beautiful KDE desktop. I was now smiling like a Cheshire cat!
The KDE desktop is incredibly snappy on the Pi-5 with an SSD, app’s open instantly and run with minimum CPU exertion. It was now time to load the rest of the KDE application suite to complete the build. Popping open a terminal I hit the command line once more.
sudo su -
apt install kde-full vim yakuake vlc firefox rsyslog
This loads the full set of KDE applications adding just about everything you’ll ever need to the desktop environment. It’s about 1GB of packages and so depending on your internet speed it could take a while but, it’s well worth the wait.
Once complete you are ready to go with a fully functional, snappy, powerful desktop.
I’m extremely pleased with the performance of the Pi-5. KDE is super fast, snappy and responsive. With 8GB of RAM on tap the RaspberryPi has no problem with performance. The Pi-5 and KDE-Plasma really do make a great desktop computer at an incredible cheap price.
Looking for a new computer?
Add a cheap USB sound card and a pair of speakers and this little setup will meet the needs of 90% of the population with ease and go on to satisfy the more seasoned, demanding Linux user or programmer without breaking the bank.
(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.
Ever since we moved into the village of Eyke we’ve suffered with power cuts and power surges. It’s been that bad that we have a number of uninterruptible power supplies (UPS) dotted around the house to keep important things running when the power goes out.
Of late it’s been getting worse, not just the power cuts but, the power bouncing on and off very quickly for period of 10-15secs when the power comes back on. Unfortunately we had a particularly bad power bounce when the power came back on and it killed the main UPS for the IT equipment rack and also took out my RAID storage array that I use for backups.
On top of this the main server computer also took a hit and its solid state (SSD) drives started to fail. This left me in a position where I had no backups to recover from and had to get all the data off the running virtual machines (VMs) before the SSDs failed.
My old server that I decommissioned some months ago was now my radio shack PC and so had a desktop operating system on it and lots of HAM radio software installed and configured but, I needed to press it back into service as a server again, very quickly!
So after backing up the desktop data I rebuilt the computer as a server again and began the tedious job of building new VMs and migrating the configuration and data over from the old VMs.
You’re probably wondering why I didn’t just transfer the VMs over hole to the replacement server? To do this I’d need to shut them down to get a clean snapshot however, when I tried it with a small, unimportant VM it became corrupt during the shutdown process and could no longer be transferred to the replacement server.
Not wanting to take the risk with any of the other VMs due to having lost all the backups, I decided to replicate all the VMs manually. Needless to say this isn’t a 5min job!
So, after a rather long week rebuilding everything I now have all the services up and running on the replacement server and the damaged server ready to be stripped down to an empty case and rebuilt from scratch.
This has meant that at times my M0AWS Blog, The Matrix server and other online services have been offline for short periods but, sadly there was nothing I could do about it. Unfortunately the national grid/power companies take no responsibility for such events and say they only guarantee the frequency of the mains power (50Hz) not the voltage!
The last entry in the old UPS log was an over voltage alert showing 1000v!
With a new UPS in place and online, we’ve already had a number of power cuts and it’s handled them well, lets hope we don’t get another big one!
Backups are now running again on external drives that are disconnected when not in use to protect them from power surges and all the services successfully migrated over to the replacement server.
I get quite a few emails from readers of my blog asking how my QO-100 satellite station is put together and so, I thought perhaps now is a good time to put together an article detailing the complete build.
My QO-100 satellite ground station is built around my little Icom IC-705 QRP transceiver, it’s a great little rig and is ideal for the purpose of driving a 2.4Ghz transverter/up-converter.
Of course all the software used for the project is Opensource and freely available on the internet.
M0AWS QO-100 Ground Station Build Visual (Click to Enlarge)
The station comprises of the following building blocks:
QO-100 Ground Station Dashboard developed using Node-RED
LMR400-UF/RG58 Coax Cable
M0AWS QO-100 1.1m (110cm) off-set Dish with IceCone Helix antenna and Bullseye LNB.
To get a good clear view of the QO-100 satellite I have the dish mount 3.2m above the ground. This keeps it well clear of anyone walking past in the garden and beams the signal up at an angle of 26.2 degrees keeping well clear of neighbouring gardens.
The waterproof enclosure below the dish houses all the 2.4Ghz equipment so that the distance between the feed point and the amplifier are kept to a minimum.
The DXPatrol amplifier is spec’d to run at 28v/12w or 12v/5w, I found that running it at 28v produced too much output for the satellite and would cause the LEILA alarm on the satellite to trip constantly. Running the amp at 12v with a maximum of 5w output (average 2.5-3.5w) is more than enough for me to have a 5/9+10 signal on the transponder.
The large 1.1m dish gives me quite an advantage on receive enabling me to hear the very weak stations with ease compared to other stations.
2.4Ghz ground station enclosure ready for testing
The photo above shows the 2.4Ghz equipment mounted in the waterproof enclosure below the dish. This photo was taken during the initial build phase before I rewired it so, the amplifier is shown connected to the 28v feed. To rewire the amp to 12v was just a matter of removing the 28v converter and connecting the amp directly to the 12v feed instead. This reduced the output from a maximum of 12w down to a maximum of 5w giving a much better (considerate) level on the satellite.
It’s important to keep all interconnects as short as possible as at 2.4Ghz it is very easy to build up a lot of loss between devices.
For the connection from the IC-705 to the 2.4Ghz Up-Converter I used a 7m run of LMR-400 coax cable. The IC-705 is set to put out just 300mW on 144Mhz up to the 2.4Ghz converter and so it’s important to use a good quality coax cable.
Once again the output from the 2.4Ghz amplifier uses 1.5m of LMR-400-UF coax cable to feed up to the 2.2 turn Icecone Helix Antenna mounted on the dish. This keeps loss to a minimum and is well worth the investment.
Bullseye 10Khz High Stability Unversal Single LNB for 10.489-12.750Ghz
The receive path starts with a Bullseye LNB, this is a high gain LNB that is probably one of the best you could use for QO-100 operations. It’s fairly stable frequency wise but, does drift a little in the summer months with the high temperature changes but, overall it really is a very good LNB.
The 12v feed to the LNB is via the coax and is injected by the Bias-T device that is in the radio shack. This 12v feed powers the LNA and associated electronics in the LNB to provide a gain of 50-60dB.
Bias-T to inject 12v feed into the coax for the Bullseye LNB
From the Bias-T the coax comes down to the NooElec SmartSDR receiver. This is a really cheap SDR device (<£35 on Amazon) based on the RTL-SDR device but, it works incredibly well. I originally used a Funcube Dongle Pro+ for the receive side however, it really didn’t handle large signals very well and there was a lot of signal ghosting so, I swapped it out for the NooElec SDR and haven’t looked back since.
The NooElec SmartSDR is controlled via the excellent Opensource software GQRX SDR. I’ve been using GQRX SDR for some years now and it’s proven itself to be extremely stable and reliable with support for a good number of SDR devices.
To enhance the operation of the SDR device I have added a Griffin Powermate VFO knob to the build. This is an old USB device that I originally purchased to control my Flex3000 transceiver but, since I sold that many moons ago I decided to use it as a VFO knob in my QO-100 ground station. Details on how I got it working with the station are detailed in this blog article.
Having the need for full duplex operation on the satellite this complicates things when it comes to VFO tracking and general control of the two radios involved in the solution and so I set about creating a QO-100 Dashboard using the great Node-RED graphical programming environment to create a web app that simplifies the management of the entire setup.
M0AWS QO-100 ground Station Control Dashboard built using Node-RED.
The QO-100 Dashboard synchronises the transmit and receive VFO’s, enables split operation so that you can transmit and receive on different frequencies at the same time and a whole host of other things using very little code. Most of the functionality is created using standard Node-RED nodes. More info on Node-RED can be found on the Opensource.radio Wiki or from the menu’s above.
I’ll be publishing an article all about the QO-100 Dashboard in the very near future along with a downloadable flow file.
I’m extremely pleased with how well the ground station works and have had well in excess of 500 QSO’s on the QO-100 satellite over the last last year.
This solution has worked incredibly well from the outset and over time I’ve added extra functionality that I’ve found to be useful to enhance the overall setup.
The latest addition to the ground station solution is a Sennheiser Headset that I picked up for just £56 on Amazon (Much cheaper than the Heil equivalents at the HAM stores!) and have found it to be excellent. The audio quality from both the mic and the headphones is extremely good whilst being light and comfortable to wear for extended periods.
M0AWS – Sennheiser SC 165 Headset
To incorporate this into the ground station the headset is connected to my Kubuntu PC and the audio chain to the IC-705 is sent wirelessly using the latest version of WFView. This works extremely well. The receive audio comes directly from the GQRX SDR software to the headphones so that I have a full duplex headset combination.
Audio routing is done via pulse audio on the Kubuntu PC and is very easy to setup.
Since I no longer have a mic connected to the IC-705 directly I found that I needed a way to operate the PTT wirelessly and this is where the latest addition to my NodeRed QO-100 Dashboard comes in.
Adding a little functionality to the NodeRed flow I was able to create a button that toggles the IC-705 PTT state on and off giving me the ability to easily switch between receive and transmit using a simple XMLRPC node without the need for a physical PTT button.
M0AWS – Additional NodeRed PTT Flow
The PTT state and PTT button colour change is handled by the Toggle PTT function node shown in the above flow. The code to do this is relatively simple as shown below.
M0AWS – NodeRed Toggle PTT Function to change button colour
The entire QO-100 Dashboard flow has grown somewhat from it’s initial conception but, it provides all the functionality that I require to operate a full duplex station on the QO-100 satellite.
M0AWS – NodeRed QO-100 Dashboard complete flow
This simple but, effective PTT solution works great and leaves me hands free whilst talking on the satellite or the HF bands when using the IC-705. This also means that when using my IC-705 it only requires the coax to be connected, everything else is done via Wifi keeping things nice and tidy in the radio shack.
M0AWS – Updated NodeRed QO-100 Dashboard with PTT button
The image above shows the QO-100 ground station in receive cycle with the RX/TX VFO’s in split mode as the DX station was slightly off frequency to me. The PTT button goes red when in TX mode just like the split button shown above for visual reference.
As you can probably tell, I’m a huge fan of NodeRed and have put together quite a few projects using it, including my HF Bands Live Monitoring web page.
Meshtastic is a relatively new thing in the internet of things (IOT) world and is gaining traction in the U.K. at the moment.
So what is Meshtastic?
Meshtastic is an open source, off-grid, decentralised mesh network built to run on affordable, low-power devices on the 868Mhz industrial, scientific, and medical (ISM) band. (Some devices can also run on the 433Mhz 70cm HAM band.)
The ISM band is licence free but, has limits on the RF power levels that can be used. The one plus over the HAM bands is that you can legally transfer encrypted messages over the ISM band making it secure.
The best way to think of Meshtastic is a radio version of the online decentralised Matrix chat system but, without the large server requirements and ever growing database!
Heltec ESP32 v3 Wifi, Bluetooth and 868Mhz device for Meshtastic
There are quite a few Meshtastic compatible devices on the market today with many costing around the £20 mark whilst others like the LillyGo T-Echo costing over £100 in the U.K. even though they are less than half the price in the USA.
Since I’m just starting out on my Meshtastic adventure I thought I’d start with a pair of Heltec ESP32 v3 devices that are normally readily available on Amazon but, due to the current push to build a U.K. wide mesh, they are currently out of stock pretty much everywhere.
Loading the Meshtastic firmware onto the devices is fairly straight forward and can be done using the web installer via either the Edge or Chromium web browsers. (Note: If using Windows O/S you will need to install some drivers from the Meshtastic website to be able to communicate with the devices)
Having neither of the two browsers and being a Linux command line junkie I decided to use the Python programme to load the firmware onto the two devices. It’s worth noting that you don’t need any drivers to be able to communicate with the devices if you’re using either Debian or one of the many Ubuntu flavours of Linux O/S.
Using the Python command line program sounds like a more complicated approach but, in reality it’s super simple, extremely reliable, quick and if like me you use a Linux PC in the radio shack then you most likely already have most of what you need to get the job done. Just follow the simple steps as laid out on the Meshtastic web site and you’ll have the firmware loaded in no time at all.
Installing the Meshtastic firmware onto my Heltec ESP32 v3 using the Python command line tool
The firmware takes less than a minute to copy across to the Heltec device and is automatically rebooted ready for configuration once the transfer has completed.
It is possible to configure the device via the command line tool however, since there is a nice GUI app for both Apple iOS and Android devices I decided to install the Meshtastic app on my iPad and connect to the device via Bluetooth to configure it.
Once you’ve got the Meshtastic app installed on your device and have connected via Bluetooth you’ll be ready to start configuring the device to join the mesh. The first thing you want to do is set the region. This is different in each country but, in the UK we use the EU_868 region settings. This will set the device to use the 868Mhz ISM band which is the band being used to build the U.K. wide mesh.
View of the Meshtastic app on iOS showing the configuration options for the Heltec ESP32 v3
There is a multitude of configuration options within the app which I will go into in greater detail in a series of articles at a later date.
Heltec ESP32 v3 running Meshtastic Firmware
For those of you that, like me aren’t near any other nodes you can connect the devices to the internet and use the Meshtastic MQTT server to communicate with other nodes. This of course isn’t off-grid but, it will get you started until the mesh grows into your local area at which point your device will automatically start communicating with the other nodes over radio.
Meshtastic MQTT connectivity
Once you are connected to either the MQTT server or other nodes via radio you will see the other node details appear in the Meshtastic app. It’s interesting to look at the information and see signal strengths and traffic levels etc for each node.
View of the Meshtastic app on iOS showing Nodes in the Mesh and Device Metrics for the M0AWS-1 Node
There are a multitude of cases available for the Heltec v3 devices, especially if you have access to a 3D printer. One of the nicest cases I have seen is the Bender from IKB3D (I know, it’s a strange name!) but, it really is a super little case for the Heltec series of devices.
Bender case for Heltec ESP32 v3 devices
You can either buy the 3D print files for £8.99 and print it yourself or just order a pre-printed and assembled case directly from the website although, due to demand there is a long lead time currently.
I’ve been on the QO-100 satellite for about 7 months now and I have to admit I love it!
Having a “Repeater In The Sky” that covers a third of the world really is a wonderful facility to have access to however, there is one thing that I find tiring and that is the high level of background noise that is always present.
Even though the signals are mostly 59-59+15dB the background “hiss” is very pronounced and gets very tiring after a while, especially if like me you have tinnitus.
Currently I’m using a NooElec Smart SDR for the receiver and GQRX SDR software on my Kubuntu Linux PC. This works great but, there is one short fall, there is no DSP Noise Reduction (NR) in the software or hardware.
To fix this I recently invested in a BHI Dual In-Line Noise Eliminating Module. The unit itself is nicely put together and has a good combination of inputs and outputs making it easy to connect up to my MacBook Pro to record QSOs and connect my headphones at the same time.
M0AWS BHI Dual In-Line Noise Eliminating Module
At £189.95 plus postage from BHI direct it’s not cheap but, it is nicely put together and comes complete with a power lead and a couple of cheap audio cables. The quality of the knobs and mechanisms is good apart from the little grey DSP Filter Level knob that feels cheap and is very wobbly on the switch below. I’m not sure how long this is going to last with prolonged use and will most likely need replacing with something a little sturdier at some point in the future.
Overall noise reduction is good but, the audio amplifiers on the Audio Input Level and Line Out Level distort very early on in their range and you cannot get them much above level 5 before distortion starts to appear on the received signal. This is disappointing as my headphones are of reasonable quality and are let down by the distortion creeping in from the audio amplifier in the BHI unit.
I’ve tried altering the levels on the input from the IC-705 and no matter what I cannot get a good audio signal in my headphones without some distortion on the higher frequency ranges.
Overall the device does do what I want, it reduces the background “hash” considerably reducing the fatigue whilst chatting on the satellite. Below is a recording from a conversation on the satellite showing the noise reduction performance of the BHI module.
M0AWS Example BHI DSP NR Recording
The recording starts with the BHI DSP NR off, at 00:07 the DSP NR is switched on, you can clearly hear the difference. At 00:23 the DSP NR is turned off again and at 00:36 the DSP NR is turned on again. The BHI DSP NR Module is set with the DSP Filter Level set at 3 out of 8 which appears to be the best level to use. Switching to level 4 starts to introduce digital artefacts to the audio which only gets worse the higher the DSP Filter Level goes.
With a setting above level 3 there really isn’t much improvement in noise reduction and the audio becomes progressively more affected by the digital artefacts than it does from the background noise.
M0AWS BHI Dual In-Line Noise Eliminating Module with Icom IC-705 QO-100 Ground Station
The only other problem I have with the BHI Dual In-Line Noise Eliminating Module is that is comes in a plastic case. The case itself is solid and of good quality however, it offers no RF shielding whatsoever and the unit is extremely susceptible to RF getting into the audio chain and then being heard during transmit in the headphones and via the line out connections. For the money I would had expected the unit to come in a metal case that provides proper RF shielding. This is a real shame as it lets the unit down considerably.
As setup in the photo above I am using 300mW O/P on 144Mhz from the IC-705 into a perfect 1:1 SWR presented by the DX Patrol 2.4Ghz Upconverter via some very high quality LMR-400 Coaxial cable from Barenco but, I get terrible RF interference via the BHI unit during the transmit cycle. Considering I am only using 300mW I dread to think what it may be like if I was using a 100w HF radio. This is something I need to investigate further as it really is very annoying.
Moving the unit to a different location in the radio room does help a bit but, doesn’t solve the problem completely. At 300mW RF O/P I really didn’t expect there to be a problem with RF getting into the BHI unit.
Having a proper line-out facility on the BHI unit really is nice as it makes it very easy to connect to my MacBook Pro to obtain good quality recordings of signals on the QO-100 satellite as can be listened to above.
Overall I am happy with the BHI Dual In-Line Noise Eliminating Module but, do wish that more care had been taken over using a metal case instead of a plastic case to protect the unit from RF ingress and better audio amplifiers within the unit that don’t distort/clip so early on in their O/P levels.
Is this the perfect noise reduction unit?
No but, overall it is better than nothing and does help to reduce the background noise to a more acceptable level reducing the overall fatigue during prolonged conversations on the QO-100 satellite.
UPDATE: I tried the BHI unit with my FTDX10 on the HF bands and the RF interference is horrendous, even when using QRP power levels! This device clearly hasn’t been designed to work in an RF environment and the total lack of shielding or isolation lets it down terribly. If you are an SWL then this unit is fine but, if like me you like to monitor your transmitted audio whilst on air through headphones then this isn’t the unit for you. To prove the problem isn’t in the radio shack I put the BHI unit in the house some 30m away powered by 12v battery with nothing connected but a pair of headphones and still the unit suffered from RF interference even at QRP levels.
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.