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 …

Update to my NodeRed QO-100 Dashboard

Ever since my QO-100 ground station has been operational I’ve been using my NodeRed QO-100 Dashboard to control my IC-705 and GQRX SDR software to drive my NooElec SmartSDR receiver. This gives me a full duplex ground station with both transmit and receive VFO’s synchronised.

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

More soon …

The Art of Articulation

Since I’ve been using my Icom IC-705 on the QO-100 satellite I’ve been getting no end of unsolicited great audio reports with one Op even saying I have the best audio he’s ever heard on the satellite.

Most people are surprised when I tell them that I am using the stock fist mic that comes with the radio. It’s nothing special, in fact it’s rather cheap and plastic, not particularly good quality however, it does seem to have a good sounding mic insert.

The other great thing about the IC-705 is that it has a two channel parametric equaliser built into the radio. Many people don’t realise this and miss out on the massive improvement they can make to their transmitted audio with just a few simple adjustments.

The stock fist mic has a very flat response across the audio frequency range out of the box and doesn’t sound particularly inspiring. Many see this as a negative and often just replace the mic with either a headset (probably from Heil), a boom mic (again probably from Heil) or another, better quality fist mic. All of these options cost varying amounts of money when in reality none of them are necessary.

Starting from a flat audio response is actually a good thing as it makes the equaliser adjustments more pronounced, making it easier to adjust the settings to suit your voice.

We all have different voices but, there is one thing that is pretty much the same for everyone and that’s the frequency range in which the articulation of the words and sounds we make can be found. It’s this part of the voice that is often lacking when we struggle to understand what the DX station is saying.

It’s become common place on the HAM bands these days for stations to boost the bass frequencies and reduce the mid and high frequencies with the net result of a horrible bass ringing sound and muddy mid range often making it very difficult to understand what is being said.

Having spent some considerable time watching the great videos on audio from the late Bob Heil, K9EID it’s clear that the most important frequencies to enhance are those around 2.5khz as this is where all the articulation is in the human voice.

To this end I set about setting up the audio on my IC-705 QRP radio so that my voice sounded such that it is easy to comprehend even in the most difficult of situations on air. This doesn’t mean that it has to be very harsh and overly bright, quite the opposite in that to be heard clearly in all conditions on air one’s audio needs to be balanced across the frequency range with an enhancement in the 2.5Khz frequency range.

M0AWS IC-705 Transmit audio settings - part 1
M0AWS IC-705 Transmit audio settings – part 1

To reduce the unwanted, muddy bass the first thing to do is change the transmit bandwidth for the “Wide” setting to 200-2900Hz. This will cut off the bottom 100Hz from the voice reducing the overall bass output from the standard fist mic that comes with the radio. This will ensure a 2700Hz wide SSB signal, the recommended max for QO-100 operations and the preferred bandwidth on the HF bands.

On top of this I made a further reduction of 2dB on the TX Bass setting to help balance out the overall audio response of the mic insert.

Next I set about enhancing the higher frequency response of the mic insert and found that it required an increase of 4dB to bring out the articulation of my voice. This enhanced my audio considerably compared to the standard output from the fist mic and improved the intelligibility of my voice considerably, especially in difficult band conditions.

To complete the setup I set the compression to 3 and mic gain to 35 so that the overall drive level is increased slightly giving a greater average output from the radio.

M0AWS IC-705 Audio Settings - part 2
M0AWS IC-705 Audio Settings – part 2

Once I’d got the audio setup correctly I enabled the configuration by setting the Transmit Bandwidth (TBW) to the “Wide” config in the IC-705 Function menu so that the correct settings were made active.

Ever since making these relatively easy changes I have had no end of unsolicited great audio reports from stations asking me what mic I am using and how I’ve managed to get such good audio from the IC-705. Many are surprised that I am using the OEM fist mic that comes with the radio and I’m sure there are those who don’t believe me!

Of course all voices are slightly different and these settings may not be perfect for your voice but, all those that have tried these settings have told me that their audio sounds better than ever and that DX stations often comment on how good their audio is.

I also went through the same exercise with my Yaesu FTDX10 with it’s standard fist mic and again achieved excellent results with it’s 3 channel parametric equaliser. I’ll go through the somewhat more complicated setup for the FTDX10 in another article soon.

Antenna Analysers – The New World

Many years ago I had an MFJ-259B antenna analyser that I used for all my HF antenna projects. It was a simple device with a couple of knobs, an LCD display and a meter but, it provided a great insight into the resonance of an antenna.

MFJ-259B Antenna Analyser
MFJ-259B Antenna Analyser

Today things have progressed somewhat and we now live in a world of Vector Network Analysers that not only display SWR but, can display a whole host of other information too.

Being an avid antenna builder I’ve wanted to buy an antenna analyser for some time but, now that I’m into the world of QO-100 satellite operations using frequencies at the dizzy heights of 2.4GHz I needed something more modern.

If you search online there are a multitude of Vector Network Analysers (VNAs) available from around the £50.00 mark right up to £1500 or more. Many of the VNAs you see on the likes of Amazon and Ebay come out of China and reading the reviews they aren’t particularly reliable or accurate.

After much research I settled on the JNCRadio VNA 3G, it gets really good reviews and is very sensibly priced. Putting a call into Gary at Martin Lynch and Sons (MLANDS) we had a long chat about various VNAs, the pros and cons of each model and the pricing structure. It was tempting to spend much more on a far more capable device however, my sensible head kicked in and decided many of the additional features on the more expensive models would never get used and so I went back to my original choice.

Gary and I also had a long chat about building a QO-100 ground station, using NodeRed to control it and how to align the dish antenna. The guys at MLANDS will soon have a satellite ground station on air and I look forward to talking to them on the QO-100 transponder.

Getting back to antenna analysers, I purchased the JNCRadio VNA 3G from MLANDS at £199.96 + postage and have been trying it out on a couple of antennas here at the M0AWS QTH.

Initially I wanted to check the SWR of my QO-100 2.4GHz IceCone Helix antenna on my satellite ground station to ensure it was resonant at the right frequency. Hooking the VNA up to the antenna feed was simple enough using one of the cables provided with the unit and I set about configuring the start and stop stimulus frequencies (2.4GHz to 2.450GHz) for the sweep to plot the curve.

The resulting SWR curve showed that the antenna was indeed resonant at 2.4GHz with an SWR of 1.16:1. The only issue I had was that in the bright sunshine it was hard to see the display and impossible to get a photo. Setting the screen on the brightest setting didn’t improve things much either so this is something to keep in mind if you plan on using the device outside in sunny climates.

(My understanding is that the Rig Expert AA-3000 Zoom is much easier to see outside on a sunny day however, it will cost you almost £1200 for the privilege.)

A couple of days later I decided to check the SWR of my 20m band EFHW vertical antenna. I’ve known for some time that this antenna has a point of resonance below 14MHz but, the SWR was still low enough at the bottom of the 20m band to make it useable.

Hooking up the VNA I could see immediately that the point of resonance was at 13.650Mhz, well low of the 20m band and so I set about shortening the wire until the point of resonance moved up into the band.

JNCRadio VNA3G showing 20m Band EFHW Resonance
JNCRadio VNA3G showing 20m Band EFHW Resonance

With a little folding back of wire I soon had the point of resonance nicely into the 20m band with a 1.35:1 SWR at 14.208Mhz. This provides a very useable SWR across the whole band but, I decided I’d prefer the point of resonance to be slightly lower as I tend to use the antenna mainly on the CW & FT4/8 part of the band with my Icom IC-705 QRP rig.

Popping out into the garden once more I lengthened the wire easily enough by reducing the fold back and brought the point of resonance down to 14.095Mhz.

JNCRadio VNA3G showing 20m Band EFHW Resonance 14Mhz to 14.35Mhz Sweep
JNCRadio VNA3G showing 20m Band EFHW Resonance 14Mhz to 14.35Mhz Sweep

The VNA automatically updated the display realtime to show the new point of resonance on the 4.3in colour screen. I also altered the granularity of the SWR reading on the Y axis to show a more detailed view of the curve and reduced the frequency range on the X axis so that it showed a 14Mhz to 14.35Mhz sweep. With an SWR of 1.34:1 at 14.095Mhz and a 50 Ohm impedance, the antenna is perfectly resonant where I want it.

It’s interesting to note that the antenna is actually useable between 13.5Mhz and 14.5Mhz with a reasonable SWR across the entire frequency spread. Setting 3 markers on the SWR curve I could see at a glance the SWR reading at 14Mhz (Marker 2) , 14.350Mhz (Marker 3) and the minimum SWR reading at 14.095Mhz (Marker 1).

I’ve yet to delve into the other functionality of the VNA but, I’m very happy with my initial experience with the device.

More soon …

First full power day on QO-100

The male to male SMA connector that Neil, G7UFO kindly posted to me arrived late this afternoon and I wasted no time getting it connected between the 2.4Ghz up-converter and the 12w amplifier.

Male to Male SMA connector for QO-100 Ground Station
Male to Male SMA connector for QO-100 Ground Station

Initially when I powered up the 12v to 28v converter board the output voltage was only showing 22v and so I had to adjust the onboard variable resistor to get the voltage closer to the recommended 28v for the amplifier. I decided to run the amplifier at 27v so that it wasn’t being pushed to it’s full and so readjusted the voltage converter back down to 27v. This seems to work very well with the amplifier not getting very warm at all during use.

M0AWS QO-100 2.4Ghz Uplink Hardware.
M0AWS QO-100 2.4Ghz Uplink Hardware.

Getting on air I was really impressed at how strong my signal was on the 10Ghz downlink. With my own signal peaking 5/9+10dB I was very happy with the performance of the ground station.

I made a few contacts very quickly with the first being OH5LK, Jussi from Helsinki Finland. Jussi was actually the first station I worked on CW too when I was running just 200mW, it was great to have him for both of my first contacts on QO-100.

I then went on to work a few stations from Wales, Germany, Poland and Belgium but, the one that I was totally shocked to get on my first real day of QO-100 operations was ZD7GWM, Garry (HuggyBear) on St. Helena Island, South Atlantic Ocean. This is an Island that I have never had a contact with before on any band and so I was extremely happy to get a new first especially on my first QO-100 day.

Garry and I chatted for some 25 minutes covering many topics, it was great to have an armchair copy over such a distance, something that would be impossible on the HF bands. What a great way to start my QO-100 satellite career!

One of the things I really like about the operators on QO-100 is that they have time to stop and chat, this is so refreshing and a rarity today. I’m really going to enjoy this satellite.

You can see all the details of my QO-100 contacts in my Online Satellite log.

More soon …

My First QO-100 Satellite QSO

I’ve been waiting for over a week so far for a male to male SMA connector to arrive from Amazon so that I can connect the 2.4Ghz up-converter to the 2.4Ghz amplifier. Since it still hasn’t arrived I decided to connect the up-converter directly to the IceCone Helix antenna to see if I could get a signal into the QO-100 satellite.

To my surprise I could easily hear my CW signal on QO-100 even though the total output from the up-converter is only 200mW.

I didn’t expect to be able to hear my signal since it’s a tiny amount of power that has to travel some 22500 miles to the satellite but, I could hear it and was amazed that it was peaking S8 on my SDR receiver.

2.4Ghz Up-COnverter connected directly to the antenna bypassing the 2.4Ghz Amplifier
2.4Ghz Up-Converter connected directly to the antenna bypassing the 2.4Ghz Amplifier

Being excited I put out a CQ call that was soon answered by OH5LK, Jussi in Finland. Jussi gave me a 579 report which I was extremely pleased with. He was of course much stronger at a 599+ at my end. We had a quick QSO and exchanged details without any problems at all. Its really nice to get a QRPp contact without any QSB or QRM.

M0AWS QO-100 1.1m off-set Dish and IceCone Helix antenna ground station
M0AWS QO-100 1.1m off-set Dish and IceCone Helix antenna ground station

Neil, G7UFO who I chat with regularly in the Matrix Amateur Radio Satellites room has posted a connector out to me so I’m hoping it will arrive on Monday and then I’ll be able to connect the amplifier and hopefully get a few SSB contacts.

UPDATE: I’ve since had 2 SSB contacts via QO-100 using just the 200mW O/P from the up-converter. Both times I got a 3/3 report not brilliant but, perfectly acceptable for the amount of power I’m putting out.

More soon …

JS8 Logs now online

I’ve now added my JS8/JS8CALL logs to the website for both QRO (25w Max) and QRP (<10w) QSOs.

The JS8 logs are available from the Logs menu above.

I’ve updated the adi2html program to now be capable of processing the JS8CALL log file and will be releasing it into the public domain soon.

M0AWS QRP JS8 Online Log

More soon …

Whispering around the world

The Weak Signal Propagation Reporting Network (WSPR) known as “Whisper” in the HAM community is a QRP/QRPp beacon mode that is used by many HAMs around the world to see pretty much realtime propagation on the HF bands.

I first started using WSPR when I lived in France some years ago and it proved invaluable for assessing antenna performance and directivity. It’s not a new mode by any means and nowhere near as popular as it used to be as it’s really been superseded by FT4/8 these days that provides the same functionality but, with QSO capability too.

Having an old RaspberryPi hanging around and reading about the WSPR software that’s available for it now I decided to put the Raspi to good use and build a WSPR beacon for the 20m band that I could leave on 24/7.

Having the EFHW Vertical at the end of the garden means that I can connect it directly to the Raspi without the need for an ATU as it’s fully resonant. (It’s actually resonant on 20m and 10m)

I normally run both my RaspberryPi mini computers completely headless and then SSH in to them from my MacBook Pro and decided this was the best way to go with the WSPR beacon too since the WSPR software is command line based and doesn’t require a GUI.

First thing to do was to upgrade the OS from Debian Buster to Bullseye. It’s been a while since I used the Raspi but, it fired up perfectly and connected to the LAN without issue.

After a little time I had the O/S updated to Bullseye and the Raspi was ready for the software build.

The WSPR program comes in source code only so, this means you have to compile it yourself. This isn’t a big job as it comes complete with a makefile.

Using a terminal run the following commands to download and compile the WSPR source code.

So first thing to do is install git.

sudo apt-get install git

Once git is installed I downloaded the software from the git repository.

git clone https://github.com/JamesP6000/WsprryPi.git

It only takes a few seconds to download the software which is stored in a new directory called “WsprryPi”.

Before the code can be compiled there’s a small issue with the includes in one of the source code files that needs to be resolved so that the code compiles without error.

cd WsprryPi
vi mailbox.c

Using your favourite command line editor, ‘vi‘ in my case I added the following line into the include statement at the top of the code.

#include <sys/sysmacros.h>

Once added the full include statement looked like this:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <assert.h>
#include <stdint.h>
#include <sys/mman.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <sys/sysmacros.h>

#include "mailbox.h"

Once done, I saved the file ready for compilation.

Compiling the code is easy, just run the make command and sit back and watch all the compiler messages scroll across the screen.

make
Compiling the WSPR source code

Once compiled without errors, I just needed to install the binary.

make install

At this point the software is ready to go.

I quickly soldered up a lead to go from the RaspberryPi GPIO pins to the Coax cable that is connected to the EFHW vertical antenna in the garden and connected it all up ready to test.

RaspberryPi 2 WSPR Beacon connected to EFHW vertical for 20m/10m bands

Pins 7 and 9 on the Raspberry Pi’s GPIO pins are where the signal is output. Pin 9 is the Ground pin, and pin 7 is the Signal pin. Pin 7 goes to the inner of the coax and pin 9 to the ground side of the coax.

The purple cable is the ethernet cable connecting the Raspi to my local LAN so that I can access it remotely via SSH. I’ve powered the Raspi off of the USB port on the wifi access point in the radio shack which is always on.

Once it’s all connected it’s just a case of starting the WSPR program from the command line as user root.

wspr -s -r M0AWS JO02 10 20m > ./wspr.log &

I run the WSPR program as root user so that it has the correct privileges to access the devices to communicate with the GPIO headers, if you want too start it as your normal user then you’d need to use sudo to gain the root privileges.

The command line options I’ve used are as follows:

-s

Check NTP before every transmission to obtain the PPM error of the crystal

-r


Repeatedly, and in order, transmit on all the specified command line freqs.

M0AWS

My Callsign

JO02

My Locator Square

10

The power being used in dBm

> ./wspr.log &

Redirects all output to wspr.log in the current directory and then puts the program into the background so that it is left running when I log out.

Once the program is started you can monitor progress by using tail on the log file.

tail -f ./wspr.log

The output you will see will be something like this.

Desired center frequency for WSPR transmission: 14.097100 MHz
  Waiting for next WSPR transmission window...
  TX started at: UTC 2022-07-17 16:06:01.015
  TX ended at:   UTC 2022-07-17 16:07:51.638 (110.623 s)
Desired center frequency for WSPR transmission: 14.097100 MHz
  Waiting for next WSPR transmission window...
  TX started at: UTC 2022-07-17 16:08:01.015
  TX ended at:   UTC 2022-07-17 16:09:51.639 (110.624 s)
Desired center frequency for WSPR transmission: 14.097100 MHz
  Waiting for next WSPR transmission window...
  TX started at: UTC 2022-07-17 16:10:01.015
  TX ended at:   UTC 2022-07-17 16:11:51.642 (110.627 s)
Desired center frequency for WSPR transmission: 14.097100 MHz
  Waiting for next WSPR transmission window...
  TX started at: UTC 2022-07-17 16:12:01.015
  TX ended at:   UTC 2022-07-17 16:13:51.639 (110.624 s)
Desired center frequency for WSPR transmission: 14.097100 MHz
  Waiting for next WSPR transmission window...
  TX started at: UTC 2022-07-17 16:14:01.015
  TX ended at:   UTC 2022-07-17 16:15:51.639 (110.624 s)
Desired center frequency for WSPR transmission: 14.097100 MHz
  Waiting for next WSPR transmission window...
  TX started at: UTC 2022-07-17 16:16:01.014
  TX ended at:   UTC 2022-07-17 16:17:51.639 (110.624 s)
Desired center frequency for WSPR transmission: 14.097100 MHz
  Waiting for next WSPR transmission window...
  Obtained new ppm value: 4.09996
  TX started at: UTC 2022-07-17 16:18:01.015
  TX ended at:   UTC 2022-07-17 16:19:51.640 (110.624 s)
Desired center frequency for WSPR transmission: 14.097100 MHz
  Waiting for next WSPR transmission window...
  TX started at: UTC 2022-07-17 16:20:01.014
  TX ended at:   UTC 2022-07-17 16:21:51.638 (110.624 s)
Desired center frequency for WSPR transmission: 14.097100 MHz
  Waiting for next WSPR transmission window...
  TX started at: UTC 2022-07-17 16:22:01.004
  TX ended at:   UTC 2022-07-17 16:23:51.628 (110.624 s)

You can pass multiple bands on the command line if you want to hop around bands.

It’s also recommended that you add a low pass filter between the Raspi and coax connection to help suppress any harmonics that may be generated. You can make one easily enough using just a capacitor or there are a number of prebuilt low pass filters specifically made for the GPIO hat on the Raspi online.

With only 10dBm (10mW) output from the RaspberryPi it’s surprising the distances that the signal travels. In no time at all I had reports from all over Europe and as the day progressed reports started coming in from Iceland, the USA and Russia.

Map showing stations that heard M0AWS on WSPR

I used http://wspr.aprsinfo.com WSPR monitoring website to watch progress as the day went on and after 24hrs had been heard by a number of stations over 3000 miles away.

You can also get a more detailed view of reports from the WSPRnet website where you can query the database and create a detailed list of all decodes over a set period of time.

Detailed list of WSPR decodes

Since my EFHW Vertical is resonant on both 20m and 10m I’ll now run it for the next 24hrs on both bands to see what results I get.

More soon …

How low can you go?

Now that I’ve got my new radio shack up and running I decided to give my Icom IC-705 QRP rig an outing and see if I could work a distance of 2000 miles with 1w output.

This is something I’ve been wanting to do for a while but, only being able to sit at the picnic table in the garden or in the summer wasn’t particularly conducive to a long stint on the radio.

Icom IC-705 wirelessly connected to my MacBook Pro

For this challenge I decided to use FT4 or FT8, whichever was active on the bands. This is a great mode for QRP operations and can get a tiny signal through when other more traditional modes fail.

I used both my EFHW vertical for 20m/10m and my EFHW vertical for 30m that can also be tuned on most of the other HF bands too. This gave me most of the HF bands for the challenge.

Initially I worked a lot of stations in the 600-700 mile range, conditions weren’t brilliant and there was a lot of deep QSB.

My first notable distance QSO was with YO4DG near Mangalia Romania at 1383 miles, this equates to 0.72mW/Mile, my lowest mW/Mile achievement up until this point.

Not long afterwards I saw SV8DCY on the WSJTX waterfall, I wasn’t sure if he’d hear me or not but, I gave a call. To my surprise he came back and became the longest distance QSO for a short time. At 1485 Miles to Kalloni Lesvos Island, Greece this equates to a new low of 0.67mW/Mile.

I then went on to work a bunch of stations in the 1000 miles or less range for a while as conditions on the bands were up and down. It’s amazing how many times I got an answer from a station only for them to disappear completely before the QSO was completed.

The next contact of note was with CU3HN in the Azores, 1713 Miles at 0.58mW/Mile, a new lowest mW/Mile record set. it’s amazing how far you can get a signal with such a tiny amount of power.

RV6F in the Stavropol region of Russia was the next big mile marker, 1932 miles at 0.51mW/Mile. It took a number of attempts to get the QSO to complete as we kept losing each other due to the deep QSB that was between us on the 20m band but, with a little patience and persaverance we eventually got the QSO to complete and it was in the log.

At this point I decided to switch over to the 10m band to see if it had opened up to more than just Europe. When I checked earlier there were only European stations being heard, most being well under 1000 miles. Sure enough the band had indeed opened up and I was hearing stations out to the east that were in excess of 2000 miles.

PSKReporter map showing signals heard on the 10m band

After tuning up and listening for a bit my first call was to RL9F in Perm Russia. This was the one that I’d been looking for, 2084 miles at 0.47mW/Mile this was the one that could complete the challenge.

After a few failed attempts due to deep QSB we eventually got a complete QSO in the log finishing the challenge.

2000 miles using 1w is a lot of fun, frustrating at times when you’re being heard by stations on the east coast USA but, none are answering your reply to their CQ calls.

PSKReporter has proven invaluable, being able to see who can hear you makes a big difference when trying to eek out the last mile when using next to no power.

In total 31 stations were worked over a 9 hour period, not huge numbers but, for many an M0AWS call sign isn’t exotic enough to answer and so many of my calls to stations were ignored. Sad really.

You can view all the log entries for the 2000 Mile 1 Watt challenge on my WSJTX Log.

So, what next? Well I guess it has to be 3000 miles or more using just 1w from my trusty Icom IC-705.

More soon …