Friday, December 30, 2022

Reducing RF noise from solar inverter by replacing capacitors

Old friend and new ham, Richard, VK3LRJ,  has been setting up his station at his off-grid property near me at Drummond. We put up an off centre fed dipole over the shed which houses the shack and also his solar and battery installation. The noise level was very bad.

The next step was to move the antenna away from the shed via a run of suspended coax. Noise was lower but still not great. 

We quickly identified that the culprit was the Australian Selectronic SE42 inverter. Richard spoke to the supplier and they suggested "servicing" the bypass capacitors. 

A high power inverter is an impressive piece of equipment. It seems that the electrolytic capacitors you can see on the left degrade after ten years and should be replaced. This has had a noticeable effect on the noise floor.

We also tried a noise canceller which did work better than it did for me in the suburbs, presumably because the sense antenna could pick up the noise signal effectively. 

The next step was to add an EMI filter in line with the mains coming out of the inverter on its way to the radio shack.

This has helped even more.

Richard says there are still noise "farts" at S3 but overall it looks much much better. We're going to run WSPR to compare with my place.

Thursday, December 15, 2022

Was a guest on ABC Download This Show - end of year wrap

A pleasure to be a guest once again on ABC RN Download This Show with star host Marc Fennell. Co-host Alice Clarke and I talked about the eventful year just passed in technology.

Marc has had a very successful year of radio and TV presentation and production.

You can listen to the show on radio or here.

Fast pin toggling on a Raspberry Pi Pico

Over the past few years I've built a few WSPR transmitters using an Arduino driving an Si5351 clock generator. They work well. I was thinking about the cheapest possible WSPR beacon transmitter and wondered if a Raspberry Pi Pico might be fast enough to toggle a pin at radio frequencies?

Although I've installed and tinkered with the native developer tools, I find the Arduino library convenient and familiar. 

The Pico has an interesting capability in that you can create little I/O state machines that run on the pins to take the bit banging overhead away from the CPUs. I found a nice library called RP2040_PWM by khoih-prog.

A few lines of code showed that it could easily generate RF. I tried on 7MHz. Here it is on 3MHz:

A decent waveform! Unfortunately to generate WSPR you need to be able to generate very small frequency steps and I wasn't able to do this with the library. Despite small changes in the float value of the frequency, the actual frequency would jump in quite large steps. I wrote to the author who explained:

"That sounds interesting project, but your concern, IMHO, is more accurate than what the RP2040 can provide.

The TOP register to control PWM is only 16-bit, giving 64K resolution can't provide the 1.4648 Hz increments in MHz range (nearly 32-bit resolution)"

The more obvious approach was to test if the Arduino library had extended the existing functions to fully use the extra speed of the 2040 chip.

I tried the tone() function but it wouldn't go up as high as 20kHz. (Worked at 10kHz and I didn't try to find the actual limit).

Next was simply toggling a pin in the loop() function.

The maximum is 862kHz. If I put the toggle code in a while(1) dead loop I could squeeze 957kHz out of it.


There is a PWM method in machine in Micropython for the Pico so I gave that a try. The code is super simple:

When run, this starts a PWM oscillator on GPIO16 that keeps going. There does seem to be a bit of jitter for some reason visible on the CRO:

The same problem remains, while you can generate frequencies well up into the MHZ, you don't have the fine grain control needed for WSPR generation. Looks like the Si5351 is a good way to go.

Tuesday, December 06, 2022

WSPR Watch 3.47 now in the App Store

A modest update to WSPR watch is now in the iOS App Store. This one moves a few settings around, makes it easier to see how to edit the list of past callsigns and provides an option for small dots on the graphs.

This was requested by someone with a lot of spots to display.

There are changes under the hood too. My networking code was quite old and I've started taking advantage of innovations in Swift to make the code cleaner and, perhaps even a bit faster.

I do have a niggling bug, sometimes the map freezes and I think this started with iOS 16.1.

Monday, December 05, 2022

Vertical wire antenna against ground stake for SDR reception

Now that I'm getting good at hauling wires up to the tops of trees I've hammered in a ground stake and raised a wire vertical high into my antenna tree. This makes an excellent broadband receive antenna.

I'm loving SDR++ and it works brilliantly with an AirSpy HF+ (I recommend the nightly builds). Recently I decided to wipe the shack Linux laptop and have switched over to Ubuntu Mate Linux. To get the AirSpy going I was pleased to see that I simply needed to do:

sudo apt install airspyhf

This is a much better experience than all the messing around with an SDRPlay device.