Friday, December 22, 2023

Olivia experiments

There seems to be increasing interest in Olivia. It's a keyboard chat digital mode built in to Fldigi that gets through when signal to noise is poor. 


The Olivia Digital Mode website gives some useful information including suggested calling frequencies and sub-modes. Because Olivia can be decoded well in to the noise you can't always see the calling station on the waterfall so knowing where to listen is important.

You might notice that I've changed the waterfall scale in Fldigi to show actual frequencies rather than audio frequencies - I find this helps. Most of the time I use 8/250 and Stephen, VK2BLQ, and I have had several contacts between my QTH in Victoria and his home in Chatswood.

Over Xmas there is a "QSO Party" which I plan to participate in.

 

Wednesday, December 20, 2023

Talking Tech on ABC Radio

This week I was a guest on the national ABC radio program Nightlife with Philip Clark. My tech topics are:

  • EU investigating Twitter under the Digital Services Act which could lead to a fine that is up to six percent of global turnover
  • Apple moving to protect iPhone owners who have their phone and PIN stolen.
  • Vodafone turned off their 3G network last week. Telstra and Optus will follow in 2024. What impact will this have?
  • A child's toy has been launched that uses generative AI to converse with the kid. Is this a good idea?
  • Generative AI is being used to call voters as part of a political campaign. Every call is unique and tailored to the interests of the voter.

This week I used a Sennheiser USB microphone and called in over Zoom. 

Sunday, December 17, 2023

Join an Amateur Radio club to build a real social network

It's now two years since I moved to country Victoria. One of the first things I did was find the local amateur radio club. For me it's the Macedon Ranges Amateur Radio Club.

During this relatively short time I feel like I've made some significant new friends and I have no feeling of isolation which I imagine might affect people who've made a move like this.

We had our annual Xmas meeting this week with an amusing quiz and some finger food. I wrangled the group to stand up for a photo.


There's some very interesting people in the group and I very much enjoy the weekly club nets, coffee mornings, and meetings. I'm looking forward to the picnic in January.

My thanks to those that created the club and do the work to make it all run so smoothly.

If you are feeling a bit isolated, I heartily recommend becoming a part of your local amateur radio club.

Friday, December 08, 2023

WSPRnet down with database error

Users of my WSPR Watch app have been reporting problems over the last day. It looks like WSPRnet.org is down with a database error. "PDOException: SQLSTATE[HY000] [1040] Too many connections in lock_may_be_available (line 167 of /data/var/www/drupal-7.98/includes/lock.inc)."


Unfortunately, my error handling code is looking for a connection error but is failing to pick this up and fails silently as if there's no new data.

WSPRnet handles a huge amount of traffic and I hope they're able to fix this soon.


Wednesday, December 06, 2023

Talking tech on ABC Radio

Another chat with Philip Clark last night on ABC Radio across Australia. If you like, you can listen here.

I've purchased a new microphone, a Sennheiser Profile USB. Frequency response is mostly flat but it has a nice peak in the high frequency which I think makes it sound clear.

Knobs on the front make it easy to set mic gain, headphone level and the mix between return audio and local foldback. There is a quiet to operate mute button.

The era of USB-C is giving me an excuse to upgrade many things.

Tuesday, December 05, 2023

Five acres and antenna bliss

After a life in dense suburban settings where HF reception is poor, I am enjoying the benefits of five acres in the bush. 

The radio shack is in a shed somewhat distant from the main house (which does generate a bit of HF noise). 

Happily there is a convenient dead tree next to the shed that I use to support my antennas. Other trees hold the ends of dipoles up.

Getting lines up over these branches has been done in several ways, including a long squid pole skilfully wielded by Dallas, VK3EB, but the current method is a (rather beaten up) drone.

I tie a line around the drone, fly it up over the branch or tree top and then hit the motor kill switch. The drone falls, pulling the line as it goes.

This is very reliable and so far hasn't damaged the drone too much. It's a repeatable method but only one of my drones can be commanded to kill the motor without complaining.

There's a port on the wall of the shed where I have SO-239 through connectors. I have experienced quite a bit of frustration when an antenna stops working. I check the coax, the patch cord inside the shed, the balun and in the end the problems have been the through connectors.


The left connector, from China, is very unreliable. The centre pin disconnects. The middle one seems better and the right hand one is the best.

They don't fail without some trauma and in my case my coax has been attacked by birds or, more dramatically, by a kangaroo getting tangled up and ripping the coax from the connectors. To avoid this somewhat, I've run coax through some PVC pipe.

The current configuration is separate dipoles for each of 80m, 40m, 20m and 10m with a switch on the wall.


Also there is a vertical wire going to the top of the tree and a ground stake. This is used for general reception on SDRs. With a little extra length or inductive load it would also tune up on 40m.


I'm happy with the configuration here and am considering a horizontal loop as an interesting comparison.

Wednesday, November 22, 2023

Adapting Ozito battery for ham radio power

We have quite a few low cost Ozito (Bunnings) battery powered tools around here even though I've been transitioning to Makita. The battery packs put out about 20V when fully charged which is too much for nominal 12V radios. I purchased a variable buck converter that can regulate this voltage down. 

To get power from an Ozito battery I butchered a spare single battery charger with pins like this:


Internally, there's quite a bit of circuitry - a bit surprising considering the low cost. The metal pins are soldered right through the board so rather than trying to remove the board I just clipped the power input and soldered on to the back of the battery + and - pads:


A few cables later and we were up and running receiving FT8:


Regrettably, the buck converter produces noticeable noise peaks on the waterfall:


Threading the output DC cable through a toroid improved things quite a bit:


The spectrum looks much better although there is room for improvement:


Credit to VK3KR, David, for the inspiration for this project.

Talking tech on ABC Radio

After contributing technology commentary for many years on ABC radio, I've had a break this year but now I'm back. This week I did a spot with Philip Clark on ABC local radio's Night Life program.

You can stream it here.

ABC Radio Sydney is turning 100 about now although NightLife is a national program.

It looks like I'll be a regular contributor to the program presented by Philip Clark.

Sunday, November 12, 2023

Rosebud Radiofest excellent again this year

Like 12 months ago, I joined Richard, VK3LRJ in the journey down to the Rosebud Radiofest.


It seemed bigger than last year. Certainly there was lots of great gear on sale.


Even Ralph, VK3ZZC, was tempted with some exotic equipment.


I came away with just one item. A rather mysterious Ten-Tec "Energy Amplifier":


It turned out to be what I had hoped - a nice little amplifier with decent speaker in a box. Very handy for monitoring projects on the workbench. It was missing a screw but on disassembly it was found stuck to the speaker magnet.


There were wonderful antique radios on display again this year.


Like last year it was a very well organised event with lots to see. I was tempted by quite a few items but managed to hold back. Great to catch up with a few friends.

Friday, November 10, 2023

FreeDV 700e contact with VK3RV

It's been a while since I've fired up FreeDV. For some reason there isn't a pre-made build for Linux so I grabbed the source code and simply followed the instructions to build it (really just a few dependencies and the build script does the rest).

The user interface looks nicer and there's a better initial setup dialog that makes it easier than when I last tried it. Peter, VK3RV, (who incidentally I first met on FreeDV), was kind enough to have a contact with me.



We first talked on 700e, then tried 1200 and finally 2200. Each sounded better although Peter couldn't copy me on 2200 but it looks like he had some local interference which was pretty severe:


Amazing he could hear me at all with that going on! His screen shot reminded me that you can have several of the visualisations showing at once. It's not obvious how to do this but the trick is to drag the additional tabs up and a bit to the left, until you see an area highlighting, then drop.

A terrific innovation is the new FreeDV reporter window which shows who's on and what frequency and mode they're set to:


FreeDV is looking better than ever and I know David, VK5DR, has received some funding to support additional work on the project.

Sunday, October 15, 2023

Latest OpenWebRX on Raspberry Pi 4 excellent

With a little travel on the agenda soon, I thought I'd run up OpenWebRX on a Raspberry Pi 4 in the shack.

The simplest approach is to download the pre-made SD Card image and boot from that.


The "whistlers" I've been seeing on 10m are less today than they were.

Getting started with OpenWebRX using the Pi image is a bit mysterious. There is a setup guide but I couldn't figure out how to log in. They say:

"The default user "pi" no longer exists. Please use the included agent"

What is the "included agent"?

My Pi is headless so to get it on the Wifi network here I had to use the Raspberry Pi imager which let me set a user and password and configure the Wifi.

Once logged in over ssh I created an admin user for OpenWebRX with:

sudo openwebrx admin adduser adminusername

If I edit the /var/lib/openwebrx/settings.json file directly, I found that it would be overwritten unless I forced a restart of openwebrx with:

sudo systemctl restart openwebrx 

Anyway, all good in the end. It works very well on a Raspberry Pi 4 and it's great to have FreeDV, M17 and DMR all built right in.

Friday, October 13, 2023

Put up a dipole for 10m - a very active band

Several people have commented that the 10m (28MHz) band is very active at the moment. Compared to my 80m dipole, a little dipole for 10m was not too much of a challenge.

The first thing I notice is that it's alive with quickly sweeping signals which I don't think are over the horizon radar of anything made by people.


Even in the middle of the day I can hear US stations piling on to DX stations that I can't hear. There's also some AM activity which doesn't sound like hams. I called CQ and got a reply from an Indonesian station that gave me a good report despite his local noise.

Very interesting patterns to be seen:


A commenter on YouTube suggested looking up Whistling Atmospherics for more information.

Sliding down to the old 27Mhz CB band shows that things haven't changed there. Stations seem to be yelling at each other or playing distorted music. There is sideband but also quite a lot of AM in use.

Here's a screen recording of me tuning around a bit using an AirspyHF+ remotely operated using SDR++ in server mode - which I really like.


It's an interesting band for sure. I now have a dipole for each of 80, 40, 20 & 10m. The antenna tree is looking rather busy.

Monday, September 25, 2023

Solar shack battery monitor mark 2 - simpler is better

After the failure of my ESP32 web server to monitor battery voltage I reverted back to a simple system with an Arduino Nano reading analog voltage from a 5k-1k resistor divider to bring 15V down to 3V. Every second it takes a reading and sends on serial over USB to a Linux computer.


I love these little nano boards - very cheap and easy to use. The code is very simple, here's a screen shot from my favourite Arduino environment PlatformIO.

The battery (a 105Ah flooded lead acid battery charged from a 100W panel), is charged for some of the day and over night runs the computer and any radios I have on for WSPR. Here's a plot from 5pm until the next 5pm.

It's a deep cycle battery so I think there's a fair bit of voltage drop to go if required.

At the moment I'm taking a sample every second which is clearly way too much and rather hammers the spreadsheet. I'll back it off to every 10 minutes.

I mentioned that I like PlatformIO and one reason is that it's so fast compared to the Arduino IDEs. Here is a screen recording of building and uploading that little sketch above.


This is not sped up! The Arduino IDE v2 is better than v1 but still not a patch on Visual Studio Code with PlatformIO. There's more to set up and learn but it's worth it.

There is one complexity that needs to be solved. Reading ASCII voltage readings from the serial port and writing them to a file is more complex than it should be. I think the problem is that I'm using python 3 which defaults to unicode. I've got it working but it's more complex than it should be.

Writing serial data from Arduino to a file

I ran into a few puzzling issues getting this simple thing to work. Firstly, writing to the file is buffered quite a bit so nothing appears for some time. I thought it wasn't working. In the end I use this command to write the lines written by the voltage logger (now only once a minute) to a file with a prepended timestamp.

nohup tail -f /dev/ttyUSB0 | gawk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0 }' > voltMinutes.txt&


The file looks like this:


2023-09-26 11:29:07 14.46

2023-09-26 11:29:57 14.40

2023-09-26 11:30:57 14.37

2023-09-26 11:31:57 14.51

2023-09-26 11:32:57 14.46

2023-09-26 11:33:57 14.54

2023-09-26 11:34:57 14.49

2023-09-26 11:35:56 14.46

2023-09-26 11:36:56 14.46

2023-09-26 11:37:56 14.49

2023-09-26 11:38:56 14.46

2023-09-26 11:39:56 14.29

2023-09-26 11:40:56 14.49


The nohup and ampersand mean that I can kick it off and disconnect from the terminal and it keeps going.

A problem with this simple approach is that Linux buffers the writes to the file so tailing the output file shows results from hours before. A possible solution I found is to install the expect package and then use the unbuffer command like this:

nohup tail -f /dev/ttyUSB0 | unbuffer -p gawk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0 }' >> voltMinutes.txt &


This isn't quite working as I expect so I'll continue to search for the simplest and working solution.

Update

Here's a neater solution. There's a ts (timestamp) command in the moreutils package. Install that and then:

ts </dev/ttyUSB0 >>received.log &


produces a file like this:

Sep 27 07:49:48 12.26

Sep 27 07:51:48 12.23

Sep 27 07:52:48 12.23


(There are time stamp format options).

Here's a Gnuplot showing several days. The last day has been very dark with lots of rain.


Smoothed:


set terminal png size 800, 600
set title "Solar Battery Voltage"
set output "Volts.png"
set xlabel "DATE"
set ylabel "Volts"
set xdata time
# Sep 28 09:19:21
set timefmt "%b %d %H:%M:%S"
set xtics format "%d/%m %H"
set datafile separator ","
plot "volts.log" using 1:2 title 'Volts' with points smooth bezier


Here's the Arduino Nano code. (Note that I use PlatformIO these days). I found that if I sent serial with println() I get an extra timestamp line from ts so I manually add the \n.

#include <Arduino.h>

// divide the ADC by this to get volts (with my divider)
const float kVoltageFactor = 35.0;

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
pinMode(LED_BUILTIN, OUTPUT);
// analogReadResolution(10);
}

void loop() {
// put your main code here, to run repeatedly:
int pin = 0;
int voltageRaw = analogRead(pin);
float voltage = voltageRaw / kVoltageFactor;
String voltageString = String(",") + String(voltage) + String("\n");
Serial.print(voltageString);
// briefly flash the LED at each read
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(50); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(950); // wait for a second
//delay(1000UL * 59UL); // wait for a minute
}

Sunday, September 24, 2023

Solar shack battery monitor mark 1 - failed project

The radios in my shack are now powered by a 12V flooded deep cycle lead acid battery with 105Ah capacity charged from a 100W solar panel. So far all seems well. I'd like to know how low the voltage drops in the early morning so my project is a voltage monitor that can be logged to disk.

An ESP32 board with Wifi and an OLED screen was used. The analog input has a resolution of 12 bits. I grabbed bits of sample code from the ESP32 Arduino examples and created a tiny web server that registers itself on the network using multicast DNS so that a web browser can simply poll the ADC value.


The maximum that the analog input can take is 3.3V so I used a resistor divider with 5k and 1k to divide down up to 15V to something the input can handle.


A 7805 regulator was used to give 5V to power the board. All seemed well.

Unfortunately the Wifi is not strong in the shack and the ESP32, while it could see the network on a scan, could not connect.


As you can see from the photo above, I tried cutting the on-board antenna and attaching a wire antenna. I'm not sure that this improved things but in any case it didn't fix my problem.

Of course doing all this over Wifi with a web server is a rather complex arrangement so I have another, simpler plan under way. I'll post when it's been running long enough to draw a graph.

Wednesday, September 20, 2023

WSPR Watch version 4 is out

Timed to coincide with the release of iOS 17, WSPR Watch version 4 is now in the iOS App Store. It's a long overdue re-write of the app in the modern SwiftUI framework. The biggest change is on iPad which (I humbly think) looks great, particularly in dark mode:


There has been a bit of feedback about the changes and I'm working on a 4.1 release in the weeks ahead. My thanks, as always, to the dedicated testers and those that write in with suggestions and feedback.

Low cost Intel PC that runs on 12V battery

As part of my project to convert the shack to off-grid power I thought it might be good to replace the shack laptop (with its mains charger) with a low cost PC that Lindsay, VK3GX, brought to my attention.

The Beelink PC was on special on Amazon so I purchased one for AU$224.25


Others report that the discount varies. I did not choose to pay $30 more to get 16G RAM and 512G SSD.

The machine comes with Windows 11 and it was interesting to go through the Windows setup. They are up to their old tricks. A screen popped up saying that I would get Office 365 free for a year, but would need to give them my credit card. I declined. (Presumably they'll quietly bill people a year later when they've forgotten).

The first thing I did was go to install the Chrome browser. As soon as I went to the download page they tried to talk me out of that.


I'm not sure that my level of trust in Microsoft is a positive factor in choosing a browser.

Windows 11 looks beautiful, it's getting similar to macOS in many ways. I was struck that the application dock is now centred like on the Mac. The login screen on Windows looks like this:


macOS Sonoma looks very similar:


I tried to install Linux Mint Cinnamon in a dual boot configuration but for some reason this didn't work - perhaps some sort of secure boot restriction. In the end I gave up on Windows and wiped the disk to install Linux.

The machine is now running on the shack 12V battery and the x11vnc server means that I can control it remotely. Currently it's connected to a QDX for WSPR and makes a very small dent on the workbench.


There is no noticeable noise from this computer running on 12V DC.

I control the machine using the built-in VNC from macOS.


Works very well over the wifi network.

Sunday, September 17, 2023

Amazingly decodable spots from a QDX transmitter, displayed in WSPR Watch

During the beta phase of iOS 17, which will be released in a day or two, I've been working on a re-write of my iOS app "WSPR Watch" using Apple's fantastic SwiftUI framework. While the re-written app loses a few features of the old version, one big improvement is to how it appears on an iPad.

Highly successful WSPR receiver, Phil, VK7JJ now looks like this on the iPad:


(Click the image for an enlarged version). Now that my radio shack is battery powered (with solar charging), I thought it wise to run something that draws less current than an IC-7300 for full time WSPR operation so I set up the QDX. I think it's not quite as good a receiver as the Icom but there's no doubt that the clean signal it transmits is superior, at least in terms of the number of stations that decode my WSPR signals.


Operating on 20m, just now at dusk, my 4.7W transmission was reported by 168 stations which is pretty good given that I'm in country Victoria and not in the middle or Europe or whatever.

The new version of WSPR Watch is scheduled for release on 18 September, just after iOS 17. It is compatible with iOS 16 but I know there are some users who won't be able to update as they run older devices. They can keep running the old version but I must move on and adopt new technology.

Wednesday, September 13, 2023

Shack is off-grid again

Visiting the emergency communications exercise a few weeks ago inspired me to make sure my radio shack can operate without mains power if required. This could be important if this summer is a fire season as seems possible.

I had a folding solar panel claimed to generate 100W from the old days of my camper van.


For now it's on the ground but I may put it on the roof at a later date for more sun during the day.

I purchased a 105Ah flooded lead acid deep cycle battery for $249. As it's just sitting on the floor weight isn't a problem. 


A cheap Chinese PWM charger got me started and worked fine but I ordered a more efficient MPPT charger made by Renogy. It seemed to work well...


Unfortunately it generates a lot of radio noise. Even up on 20m it leaves bands of noise all over the dial.

The cheap Chinese PWM charger doesn't produce any noticeable noise. (You can see it mounted on the wall with the blue face plate above).


To be fair, my noise floor here is very low and I haven't tried to suppress the noise from the Renogy unit at all so far. It is disappointing though.

I powered my IC-7300 all night receiving WSPR last night and the battery was down to 12.3V in the morning. It is good to know that I can make radio contact after a long term power outage if required. It is a very useful feature of an Amateur radio station.