Building a new Desktop Environment for the RaspberryPi 5

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 writing this article on
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 Liite (64bit)
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
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.

More soon …

Using the DL1YCF version of PiHPSDR with the RadioBerry

(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
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.


I hope this proves useful to all the RadioBerry, Hermes Lite 2 and Pluto users out there who want to use PiHPSDR on a big screen.

More soon …

RadioBerry Software Install

For the last week or so I’ve been playing with a RadioBerry HAT for my RaspberryPi computer. The RadioBerry is a cut down version of the Hermes Lite 2 with just 20mW output power and separate TX and RX antenna ports. It’s a really neat little package that sits on top of a RaspberryPi4/5 and creates a neat little HF transceiver.

RadioBerry HAT
RadioBerry HAT

I initially started with the RadioBerry HAT on my Pi5 but, I soon realised that the software really doesn’t work well at all on the Pi5. I’m not 100% sure as to why but, for some reason it holds one core at 100% continuously. It seems that the RadioBerry software is single threaded. The end result is that on the Pi5 you cannot use a sample rate above 9600 before the IQ stream starts to stutter.

By contrast, installing the RadioBerry software onto a Pi4 it performs perfectly upto the maximum sample rate of 384000 without any stuttering. I’ll need to spend some time going through the source code to try and determine why it doesn’t work correctly on a Pi5.

Whilst going through the source I discovered that the developer has put some code in that collects data from the running computer and sends it to the developer’s website. Some of this data is then made public via his website, http://www.pa3gsb.nl/radioberry/api/read.php

One of the things displayed on the website is the Mac address of the RaspberryPi on which the RadioBerry is running. This is a security risk and should never be done!

The most annoying thing is that this is done without authorisation. The installation doesn’t state that it’s going to collect data every time you start your RaspberryPi computer nor does it offer the ability to opt out. It also doesn’t inform the user that it’s going to pass the data on to a third party. In some cases it even collects HAM Radio Callsign and location data and displays it on a public website, a clear breach of the UK/European Data Protection Law.

Finding spyware in open source software is really poor and something most open source developers would never consider doing.

To this end I have disabled the spyware in the version of the RadioBerry software that I am using and am making it available to everyone else to use via this blog.

So, to install the RadioBerry software you just need to download the installation script and run it in a terminal on your RaspberryPi computer.

The script will download the modified source code, compile it and install it on your RaspberryPi ready for you to use.


I encourage everyone that downloads the script and the source code to take a look at it and ensure you are happy with it. It’s important to know what you are running on your computer and what it does.

You can find the spyware code in the register.c file (It’s all commented out with “//” marks). The function now doesn’t pass any data at all to the public website.

I hope some of my readers who are experimenting with the RadioBerry transceiver find this useful.

I will soon be publishing an article on an enhanced version of PiHPSDR from DL1YCF to use with the the RadioBerry to complete the project.

Important Update:

There is an issue with the RadioBerry code that renders it useless if you use a kernel later than the version shown below:

Linux Radioberry 6.6.51+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.51-1+rpt3 (2024-10-08) aarch64 GNU/Linux

Updating the O/S Kernel to any version later than the version shown above will stop the RadioBerry software from working. Recompiling of the code also fails due to the Kernel update and at the time of writing this cannot be fixed without a code rewrite by the original developer.

I also recommend that once you have built a working RadioBerry on a RaspberryPi 4 you should disable the automatic updates of the O/S to stop the system from failing in the future.

You can disable the automatic updates by entering the following commands into a terminal:

sudo systemctl disable apt-daily.service
sudo systemctl disable apt-daily.timer

sudo systemctl disable apt-daily-upgrade.timer
sudo systemctl disable apt-daily-upgrade.service

You can check the version of the kernel you have installed using the following command in a terminal:

uname -a

Hopefully this will help anyone that is having issues with their RadioBerry after an O/S update.

More soon …

Another new radio!

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
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.

PiHPSDT running on Kubuntu Linux 22.04LTS
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.

More soon …

AllStarLink Control Dashboard v2.0

I recently updated my Node-RED AllStarLink Control Dashboard to v1.2 to squash a few bugs with the help of Steve, M0XVT who did a lot of testing for me. This spurred me on to get v2.0 completed, tested and released into the wild.

M0AWS AllStarLink Control Dashboard Menu View
M0AWS AllStarLink Control Dashboard v2.0

v2.0 comes with a bunch of new functionality that I think many will find useful. I’ve added a Manual Node Connect section that provides the functionality to enter a node number and connect to it, something I wanted to have from the outset but, saved for the second release.

M0AWS AllStarLink Control Dashboard Manual Node Connect View
M0AWS AllStarLink Control Dashboard v2.0 Manual Node Connect View

I’ve also updated the the Hubs/Repeaters section so that it provides better global coverage of the AllStarLink network with new nodes in Australia, South Africa and the USA added to the default set.

M0AWS AllStarLink Control Dashboard Hubs/Repeaters View
M0AWS AllStarLink Control Dashboard v2.0 Hubs/Repeaters View

In the Personal Nodes section of the app I’ve added my own node so, if you do download the app and use it, please connect to my node and say hello! I’d love to hear from people that are using the app and get your feedback.

M0AWS AllStarLink Control Dashboard Personal Nodes View
M0AWS AllStarLink Control Dashboard v2.0 Personal Nodes View

In the Test Nodes section there are now two parrot nodes for audio testing. iParrott is still my favourite however, I’ve also added the HubNet parrot as a second option.

M0AWS AllStarLink Control Dashboard Test Nodes View
M0AWS AllStarLink Control Dashboard v2.0 Test Nodes View

There’s now a new ASL Information section that provides direct access to the network bubble map for your node, a keyed nodes list (Useful for finding nodes that are being used right now), an Active Nodes List and the Full Nodes List for the ASL network. Having access to this information means there really is no need to access Allmon/Supermon to find this information as it’s all available via the app.

M0AWS AllStarLink Control Dashboard ASL Information View
M0AWS AllStarLink Control Dashboard v2.0 Information View

Finally, the Manage Node section of the app also gets an update with the addition of a Disconnect All Nodes button. This comes in handy when you’re connected to a bunch of nodes and need to clear down quickly.

M0AWS AllStarLink Control Dashboard Manage Node View
M0AWS AllStarLink Control Dashboard v2.0 Manage Node View

As you can see there’s been quite a few changes to the app providing some new functionality whilst updating the previous version to make it even more useful. You can download the AllStarLink Control Dashboard v2.0 flow below.

To import the flow, open the Node-RED flow editor and import the flow from the burger menu. Once imported, double click the Get ASL Node Number node at the top of the flow, delete the credentials and then create new credentials for connecting to your RaspberryPi/SHARI AllStarLink node. Then go to each blue BigSSH Node in the flow and select your new credentials entry in the drop down list. Once this is done deploy the flow and you’re ready to go.

Note: If you have a v1.x version of the app already running you will need to either delete the flow or disable it by disabling all the trigger (inject) nodes and deploying so that the old and new apps aren’t trying to control the ASL node at the same time.

For more detailed information on how to deploy the app (v1.x/v2.0) from scratch please see my original article for the v1.0 deployment as it covers everything you will need to know.

Thanks to Steve, M0XVT for his help testing v2.0 of the AllStarLink Control Dashboard and getting it out into the wild so quickly.

More soon …

Wouxun KG UV-980PL Quad Band Radio

I recently decided to look into a 2m/70cm FM radio for the shack for use on the local 2m/70cm repeaters and was considering the offerings from Yaesu and Icom however, the Wouxun KG UV-980PL caught my eye as it is a quad band, full duplex radio. Not knowing much about Wouxun radios I had to do some research to get an idea of what it’s like. Generally the radio gets very good reviews and most mention the excellent build quality.

There are two versions of the 980P radio, the 980PL that offers 6/4/2m and 70cm bands and the 980P that offers 10/6/2m and 70cm. The 4m is a band I’ve been wanting to try for some time and the 980PL with it’s 4m band coverage became even more appealing.

Wouxun KG UV-980PL Quad Band FM Duplex Transceiver
Wouxun KG UV-980PL Quad Band FM Duplex Transceiver

I decided to take a trip down to Martin Lynch and Sons (MLANDS), a good 2 hours or more drive for me, so that I could get hands on with the radios that I had been looking at.

I invited Alan, G1SQB along for the ride and a day out playing with radios as he lives 3 miles away and we often chat on air.

Arriving at the store we grabbed a hot brew and set about playing with the great selection of radios on display.

I initially looked at the Icom IC-2730E, a dual band full duplex transceiver that has been around for about 10 years and has good reviews. As expected the build quality is excellent and very easy to use. I found I was soon able to set up memories etc via the front panel controls. The only draw back is that it isn’t supported by the CHIRP programming software that I use. Other than that it certainly meets all the requirements for a 2m/70cm FM transceiver

Icom Ic-2730E Duplex FM Transceiver
Icom IC-2730E FM Duplex Transceiver

Next I moved on to the offerings from Yaesu including the FTM-500DE 2m/70cm transceiver. The colour screen is very nice and the menu system very easy to use however, the price is getting on for close to double that of the other radios and it doesn’t really offer anything more that interests me since I’m only looking for an analog radio.

Yaesu FTM-500DR dual band FM Transceiver
Yaesu FTM-500DR dual band FM Transceiver

Sadly there wasn’t a Wouxun UV-980PL out on display and so I had to persuade the salesman to get one out of stock for me to play with. Unpacking the radio I was surprised at how good the build quality is, it really is comparable to the other radios that I had been looking at.

The Wouxun menu system is fairly easy to use once you’ve looked at the manual and got to grips the abbreviations used. The big plus is that this radio is CHIRP compatible with an optional programming cable (£19) and so loading the memories with repeaters etc will be extremely easy.

The Wouxun has dual receivers built in with a quad-plexer so, you can transmit on one band whilst listening to another band on the other receiver. One thing to note is that the 1st receiver covers all the bands, 6/4/2m and 70cm however, the 2nd receiver only covers 2m and 70cm so, it’s not possible to receive 4m and 6m at the same time. The radio also only has one antenna connection on the rear, would had been great if it had one connector for each receiver.

The really good thing about the Wouxun UV-980PL is that it comes with everything you will need, apart from the programming cable!

After much tinkering I decided to purchase the Wouxun KG UV-980PL, a Diamond V2000 6/2m and 70cm antenna plus 20m of Hyperflex-13 coax cable and connectors.

In the box you’ll find two mounting options for the removable head. There is a short connecting cable for use when the head is mounted directly on the radio body and a 5m long connecting cable for mounting the head remotely. This is really useful as I wanted to mount the head on a mic boom arm so that it’s easily accessible and didn’t clutter the desk space in the shack.

M0AWS Shack
Wouxun KG UV-980PL head mounted on a Mic boom arm

Since the radio also comes with the mobile mount I’ve fixed the radio body on the wall behind the PC monitor out the way. This setup has proven to be extremely good as I can see what’s happening on the display at a glance and easily grab the mic if called.

Programming the radio memories is extremely quick and easy using CHIRP. I had the local repeaters and my AllStarLink node frequencies and offsets uploaded to the radio in no time at all and was soon on air.

Programming the memories on the Wouxun UV-980PL using CHIRP
Programming the memories on the Wouxun UV-980PL using CHIRP

The microphone that comes with the radio is extremely good. You can operate most of the controls on the radio directly from the mic with ease and it has a good feel in the hand. Audio reports have also been very good and there’s no need to change it.

I’ve not yet got the new Diamond V2000 antenna erected but, I’ve been using the radio with my homebrew 2m/70cm end fed vertical dipole and my 4m band end fed vertical dipole and am getting excellent results. I can access all the local repeaters using the lowest power output setting and only have to use the medium/high setting for the repeaters that are further afield.

On the 4m band the radio performs well and I’ve been surprised at the distances I’ve been able to cover even though my 4m antenna is only 6-7m above the ground currently.

A few days after I got the new Wouxun radio there was an ARISS event whereby a group of Girl Guides would be talking to Astronaut Sunita Williams aboard the ISS. This was a great opportunity to test the receive capability of the radio and so I setup ready for the pass. Using just my simple 2m/70cm end fed vertical dipole I got great reception as can be heard in the video below.

Overall I’m extremely pleased with the Wouxun KG UV-980PL quad band radio and considering it’s much cheaper than the offerings from the main radio manufacturers it’s well built and performs extremely well. If you’re looking for a simple, analog FM radio for 6/4/2m/70cms then you can’t beat it!

More soon …

AllStarLink Control Dashboard v1.2 update

I’ve been working on squashing some bugs in my Node-RED AllStarLink Control Dashboard with the help of Steve, M0XVT which has resulted in a new version of the flow now being available for download below.

If you’re reading this and aren’t too sure what it is all about then, have a look at my original article detailing the Node-RED AllStarLink Control Dashboard that I developed and wrote about back in September 2024 and hopefully it’ll all make sense.

This new version of the flow resolves an issue whereby the dashboard used an incorrect node number for the node it connects to resulting in it not working unless a piece of code was changed. The update was a simple change to add a couple of nodes that connect to the RaspberryPi and read the Asterisk/AllStarLink node number from the asterisk configuration files at startup.

Node-RED AllStarLink Control Dashboard v1.2 additional sub flow
Node-RED AllStarLink Control Dashboard v1.2 additional sub flow

I also fixed another bug whereby the buttons could show a false connect on a button when the user connects to another node via AllMon2/Supermon instead.

This flow no longer has the blue spare button as it now connects to a node in Melbourne Australia.

Node-RED AllStarLink Control Dashboard v1.2
Node-RED AllStarLink Control Dashboard v1.2

You can download the new, v1.2 updated flow below and import it to your Node-RED flow editor using the standard import tool from the burger menu in the flow editor.


Huge thank you to Steve, M0XVT for his patience and testing skills during the debugging and testing of the fixes to the flow.

More soon …

Node-RED Dashboard 2.0

Ever since I started using Node-RED I’ve been using the standard node-red-dashboard set of user interface (UI) nodes to build my numerous dashboards to enhance my radio hobby and add new functionality to the operating of the station. The series of UI nodes are very simple to use and have served me well however, they are no longer being developed and are now deprecated in the overall Node-RED project.

To this end flowfuse.com have stepped up to the mark and developed Dashboard 2.0. This new series of UI nodes brings a new, more modern look and feel to the Node-RED dashboard along with some new functionality.

Short video showing the new Node-RED Dashboard 2.0 Linear gauge

I’ve only just started investigating Dashboard 2.0 but, it’s proving to be fairly easy to use. The short video clip above shows an S-Meter display developed using Dashboard 2.0 for my FTDX10 transceiver.

Full instructions on how to install and configure Node-RED Dashboard 2.0 can be found on the flowfuse.com website.

Be aware though, Node-RED dashboards developed using Dashboard 1.0 will not work under Dashboard 2.0, you will have to import the old v1.0 flow(s) and manually go through them and change all the UI nodes to new Dashboard 2.0 nodes. Since some of the new nodes work differently to the old nodes you’ll also find you will need to make code changes to get the same/similar functionality.

I’m finding it easier not to import old flows but to recreate them afresh under Dashboard 2.0 using the old flow version for reference.

Overtime I will migrate my dashboards over to the new 2.0 version however, this is going to be a lot of work, especially in the case of my QO-100 Ground Station Dashboard as it contains a considerable number of UI nodes, and will take a fair amount of time to migrate.

I’ll document my findings as I go as I’m sure there will be a few trials and tribulations along the way.

Thanks to Neil, G7UFO for pointing me to the new Dashboard 2.0 information.

More soon …

AllStarLink Control Dashboard

Ever since I built my RaspberryPi/SHARI AllStarLink node I’ve had to manage connecting/disconnecting to/from other nodes using the Allmon2 or Supermon web admin interfaces. These work fairly well albeit, a bit clunky and buggy. It’s impossible to use from a mobile device though and so I have to get my Macbook out each time I want to connect/disconnect nodes.

Being a Node-RED fanatic I decided that I should put something together that was more portable, mobile friendly and much easier to use. A simple user interface is all that is required and can be achieved very easily using the standard Node-RED dashboard nodes.

Initially I started investigating the Linux command-line interface for Asterisk, the VOIP system that underpins AllStarLink (ASL). I very quickly discovered that the ASL node can be very easily controlled directly from the command-line and that this would be an ideal interface to use to enable node management via a Node-RED dashboard.

In very little time at all I had an experimental control dashboard working with the ASL node and was able to connect/disconnect to/from a single node. All that was required now was to extend this so that I could connect to a number of nodes with nothing more than a push of a button.

AllStarLink Control Dashboard - Node-RED Flow
Completed v1.0 AllStarLink Control Dashboard – Node-RED Flow

The resultant flow consists of 3 sections, Connect/Disconnect Main Flow, Manage Node Subflow and /var/log/asterisk/connectlog Subflow.

The Connect/Disconnect Main Flow handles all the input from the buttons on the dashboard and the communication to the underlying Asterisk VOIP system.

The button status is denoted by 3 colours, green (Ready to connect), orange (Transitioning to/from connect) and red (Connected). Each button is updated automatically by the button refresh function that is triggered every 2 seconds.

The Manage Node Subflow provides a simple interface to restart the Asterisk VOIP system, reboot the RaspberryPi and shutdown the RaspberryPi. The node status is automatically updated every 45 seconds and will show when the Asterisk subsystem is being restarted or the node is being rebooted or shutdown.

Finally the var/log/asterisk/connectlog Subflow monitors the Asterisk connectlog looking for connect/disconnect messages so that it can signal to update each button status.

Node-RED AllStarLink Dashboard
Node-RED AllStarLink Dashboard

Each section of the dashboard can be collapsed/opened by touching/clicking the little blue arrows on the right of the dashboard. The dashboard works fine on Android, iOS, Windows, MacOS and Linux.

If you’re not familiar with Node-RED and haven’t yet installed it to your PC, take a look at the Node-RED Getting Started Page. The information takes you through installing Node-RED onto a multitude of devices including PC and RaspberryPi devices.

Once you have Node-RED installed all you need to do is download the AllStarLink Control Dashboard Flow and import it to your Node-RED flow editor.

Note: The link above is now for v1.2 of the flow which includes some critical bug fixes. You can read about the bug fixes in the v1.2 release article.

Once downloaded, select Import from the burger menu icon on the right-hand side of the flow editor as shown below and import the flow file.

Node-RED Flow Editor import Menu Item
Node-RED Flow Editor import Menu Item

Once imported you will find that some of the nodes in the flow are not available. This is because you need to add them to the flow editor palette before being able to deploy the flow.

Drop down the same menu as shown above but, this time select Manage Palette. This will open another window where you will need to select the Install tab as shown below.

Node-RED Flow Editor Palette Install Tab
Node-RED Flow Editor Palette Install Tab

You need to install two node sets to complete the flow, node-red-contrib-bigssh and node-red-dashboard. Type in the name of each package one at a time in the search bar and then click the Install button.
Once the two packages are installed you then need to configure the credentials for logging into your RaspberryPi. This is simply done by double clicking the blue Send Command to ASL node at the top of the main flow and then clicking the Pencil button at the end of the Credentials field. This will open another window where you will need to type in the IP Address of your ASL RaspberryPi into the Host field, then enter 22 into the port field, add repeater into the Username field (repeater is the default username, if you have changed this then you will need to add the new username name in instead) and then the password associated with the repeater login into the Password field. (Normally allstarlink)

Once this is done, do the same on the other blue nodes, namely “Get Node Uptime“, “Command =>> RaspberryPi” and “Tail ConnectLog”.

The final thing to setup is the dashboard size. Click on the downward pointing triangle at the top right of the menu bar (under the burger menu) and select dashboard. Check that the sizes are set the same as in the image below. For some reason, these settings aren’t always imported (Possible bug?) so, if your dashboard layout isn’t like shown above it will be because these settings failed to import.

ASL Dashboard Settings
ASL Dashboard Settings

You are now ready to deploy your AllStarLink Control Dashboard!
Press the red Deploy button at the top of the flow editor window.

To access the dashboard from any device, open your favourite web browser and enter the following URL: http://IP-Address-of-Node-RED-Computer:1880/ui

Finally, if you want to change the nodes that each button connects/disconnects you will need to edit the set flow var’s function at the top of the main flow. All you will need to do is replace the existing node numbers taking care not to alter the rest of the code in any way otherwise, it could stop the flow from working.

Once you’ve edited the node numbers, double click on the associated button node and change its Label to show the new node name.

Once your changes are complete, Deploy the flow again and your changes will be live.

This is version 1 of the ASL Dashboard, I already have ideas for version 2 that will also have the ability to enter a node number into a field and connect to it without the need to program it into a button.

More soon …

Power surge kills UPS/RAID Array and more

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.

More soon ….