Iβve been making a few improvements to my QO-100 Node Red Dashboard whilst waiting for the 2.4Ghz hardware to arrive. Iβve added the ability to split the RX and TX VFOs so that I can tune away from the TX frequency for working split stations or for tuning to slightly off frequency stations. I also added a series of tuning buttons to the top of the GQRX side of the dashboard to enable easy tuning using the trackball connected to my Kubuntu PC. This worked well but, I really missed having a real VFO knob like a conventional radio.
As I had a Griffin Powewrmate USB VFO from a previous SDR radio I added it to the flow as well so that I had a physical VFO knob for the SDR receiver. Details on how I got it working using evtest and a simple BASH script are in the Griffin Powermate article.
The Node Red flow is looking a little busier with the addition of split mode and the Griffin Powermate USB VFO which has really enhanced the useability of the solution. Itβs very impressive what can be achieved with Node Red with a little imagination. You really donβt need to be a heavy weight programmer to make things work.
I also put together some code to calculate the S Meter reading from the dBFS data the GQRX SDR software generates. Itβs not 100% accurate but, itβs close enough to be useful.
On the IC-705 side of the Dashboard I also now display the 2.4Ghz uplink frequency so that itβs available for logging.
So with the QO-100 Dashboard ready to go live I have now started putting together the 2.4Ghz transmit path of the ground station. I have the 2.4Ghz transverter and matching 12w amplifier from DXPatrol, the IceCone Helix 2.4Ghz antenna from Nolle Engineering, some LMR-400-UF and connectors from Barenco and an appropriate water proof enclosure from Screwfix to fit all the kit into however, Iβm now being held up by one simple little SMA male to SMA male connector that I need to connect the transverter and amp together.
The SMA connector has been ordered but, is taking a month of Sundays to arrive! Hopefully itβll arrive soon and Iβll finally get on the QO-100 satellite and start enjoying the fun.
Iβve been gradually building my QO-100 ground station over the last few months and have had the receive path working for some time now. One of the things I really miss with the Funcube Dongle Pro+ (FCD) SDR is a real VFO knob for changing frequency.
My QO-100 Node Red dashboard is configured so that I can have the FCD track the uplink frequency from the IC-705 but, sometimes I use the FCD without the IC-705 in the shack and so a physical VFO would be handy.
Many years ago when I lived in France (F5VKM) I had a Flexradio Flex-3000 SDR, a great radio in itβs time and one that gave me many hours of enjoyment. One addition I bought for that station was a Griffin Technology Powermate VFO knob. It worked extremely well with the PowerSDR software for the Flex-3000 and I used it for many years.
Many years later Iβm back in the UK and much of my equipment is packed away in the attic, including the Griffin Technology Powermate VFO.
I decided to dig it out and see if I could get it working with GQRX SDR software. Sadly I couldnβt get it working with GQRX however, I did find a way of getting it working with Node Red and thus could add it to my QO-100 Node Red Dashboard and then control GQRX with it via a simple Node Red flow.
Griffin Technology Powermate VFO
Plugging the Powermate VFO into my Kubuntu PC it wasnβt immediately recognised by the Linux O/S. After a little searching I found the driver on Github. I added the PPA to my aptitude sources and installed the driver using apt.
Once installed the default config for the Powermate device is to control the default audio device volume. To make the device available for use as a VFO knob you need to change the configuration so that the default setting is disabled. To do this is relatively easy, just edit the config file using your favourite command line editor (Vi/Vim in my case) and add the following entry.
vi /etc/powermate.toml
# Entry to control HDMI volume with Powermate
#sink_name = "alsa_output.pci-0000_01_00.1.hdmi-stereo"
# Set powermate not to work with volume control
sink_name = ""
As shown above, comment out the default βsink_nameβ entry (Yours may be different depending on audio device in your PC) and add in the Powermate βsink_nameβ entry that effectively assigns it to nothing.
Once this is done, save the file and exit your editor and then reboot the PC.
Next youβll need to install a small program called evtest.
sudo apt install evtest
To check the evtest program has installed correctly, plugin your Powermate VFO to any available USB port and run the following command in a terminal.
evtest /dev/input/powermate
Turning the Powermate knob you should see output on the screen showing the input from the device. You should also see BTN events for each press of the Powermate device.
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x77d product 0x410 version 0x400
Input device name: "Griffin PowerMate"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 256 (BTN_0)
Event type 2 (EV_REL)
Event code 7 (REL_DIAL)
Event type 4 (EV_MSC)
Event code 1 (MSC_PULSELED)
Properties:
Testing ... (interrupt to exit)
Event: time 1685816662.086666, type 2 (EV_REL), code 7 (REL_DIAL), value -1
Event: time 1685816662.086666, -------------- SYN_REPORT ------------
Event: time 1685816662.318638, type 2 (EV_REL), code 7 (REL_DIAL), value -1
Event: time 1685816662.318638, -------------- SYN_REPORT ------------
Event: time 1685816662.574615, type 2 (EV_REL), code 7 (REL_DIAL), value -1
Event: time 1685816662.574615, -------------- SYN_REPORT ------------
Event: time 1685816663.670461, type 2 (EV_REL), code 7 (REL_DIAL), value 1
Event: time 1685816663.670461, -------------- SYN_REPORT ------------
Event: time 1685816664.030421, type 2 (EV_REL), code 7 (REL_DIAL), value 1
Event: time 1685816664.030421, -------------- SYN_REPORT ------------
Event: time 1685816664.334389, type 2 (EV_REL), code 7 (REL_DIAL), value 1
Event: time 1685816664.334389, -------------- SYN_REPORT ------------
Event: time 1685816665.334255, type 1 (EV_KEY), code 256 (BTN_0), value 1
Event: time 1685816665.334255, -------------- SYN_REPORT ------------
Event: time 1685816665.558230, type 1 (EV_KEY), code 256 (BTN_0), value 0
Event: time 1685816665.558230, -------------- SYN_REPORT ------------
Event: time 1685816666.030161, type 1 (EV_KEY), code 256 (BTN_0), value 1
Event: time 1685816666.030161, -------------- SYN_REPORT ------------
Event: time 1685816666.182151, type 1 (EV_KEY), code 256 (BTN_0), value 0
Event: time 1685816666.182151, -------------- SYN_REPORT ------------
At this point youβre ready to stop evtest (CTRL-C) and then create the following little BASH shell script that Node Red will run to collect the O/P from the Powermate USB device.
#!/bin/bash
###############################################
# Griffin Technology Powermate control script #
# for Node Red. #
# #
# 04/06/23 - M0AWS - v0.1 #
# #
###############################################
VAL="1"
echo "STEP-1Hz"
/usr/bin/evtest /dev/input/powermate | while read LINE
do
case $LINE in
*"(REL_DIAL), value 1") echo "$VAL"
;;
*"(REL_DIAL), value -1") echo "-$VAL"
;;
*"(BTN_0), value 1") case $VAL in
"1") VAL="10"
echo "STEP-10Hz"
;;
"10") VAL="100"
echo "STEP-100Hz"
;;
"100") VAL="1000"
echo "STEP-1Khz"
;;
"1000") VAL="10000"
echo "STEP-10Khz"
;;
"10000") VAL="1"
echo "STEP-1Hz"
;;
esac
;;
esac
done
Once the BASH script is copied and pasted into a file called powermate.sh you need to make it executable by using the following command.
chmod 700 ./powermate.sh
If you now run the shell script in a terminal youβll see a similar output to that shown below from the device when used.
As you can see above the shell script outputs a positive or negative number for VFO tuning and changes the VFO step size each time the Powermate is depressed.
Getting this output from the BASH shell script into Node Red is really simple to achieve using just 3 or 4 nodes.
In the Node Red development UI create the following nodes.
Griffin Powermate Node Red Nodes
The first node in the flow is a simple inject node, here I called it trigger. This sends a timestamp into the next node in the flow at startup to set the flow running.
The Griffin Powermate node is a simple exec node that runs the script we created above.
M0AWS Powermate exec node
Configure the node as shown above and connect it to the inject node thatβs used as a trigger. Note: Change βuserβ in the Command field shown above to that of your username on your Linux PC)
Once done create the third node in the flow, a simple switch node and configure as shown below.
Switch Node for Powermate
The switch node has two outputs, the top one is a text output that is fed into a text field to show the current step size of the Powermate device and the lower output is the numeric output that must be fed into your VFO control flow so that the VFO value is incremented/decremented by the amount output by the Powermate device.
Iβve found the Griffin Technology Powermate USB device works extremely well with Node Red and GQRX that I use for controlling the FCD SDR radio and itβs now part of my QO-100 ground station build.
M0AWS QO-100 Dashboard with Powermate Step Display at bottom
As shown above you can see the Powermate Step size at the bottom of the dashboard, this text changes each time the Powermate device is depressed and will set a step size of 1Hz, 10Hz, 100Hz, 1Khz, 10Khz in a round-robin fashion.
The next stage of the build is the 2.4Ghz transmit path. I now have all the necessary hardware and so this part of the build can finally commence.