Thursday, March 16, 2023

Bush 40 transceiver

Inspired by the VK3YE Beach 40, I have constructed the "Bush 40" which is a version tailored to The Australian outback. (Just kidding).

It is a direct conversion receiver and double sideband transmitter. I've replaced the VXO with a very simple, three component, VFO.

I'm joking a bit here too, it has an Arduino Nano, an Si5351 board, and a rotary encoder. On boot up it starts at 7.1MHz and you can tune up and down from there.

The mic amp, mixer, rf power stages and low pass filter are as per the Beach 40.

The receive audio stages are from the Soldersmoke High School DC receiver

Overall, this is a minimal design and the door is open to many improvements.

As you can see, it's a gadget of great beauty. At this stage the receiver is working but is quite deaf - I'll keep working on this.

Notes for future builds:

  • Use a larger baseboard so there's plenty of space for access to the boards
  • Always put a reverse diode on the relay coil - I killed an Arduino Nano presumably from inductive spikes on the power line.
  • Don't try to drive a mixer directly from an Si5351. (I was puzzled about why the balanced mixer was so far off balance when I switched from the VXO to Si5351, the reason is that the output RF is 0-3.3V not AC) A 0.1uF capacitor fixed this.
  • Building modules on their own boards for easy debugging is the way to go. Also, this means the successful stages can be re-used easily.
My thanks to many people including Bill, Paul, & Stephen for suggestions.

Friday, March 10, 2023

Minimal Si5351 VFO for Bush 40 DSB Transceiver

Recently I've been going a bit "old school" and built the Soldersmoke Direct Conversion receiver with its PTO VFO and another VK3YE Beach 40 DSB transceiver with a ceramic resonator based VFO (it can be slightly pulled).

I was thinking about a minimum VFO configuration using just an Arduino Nano, a rotary encoder and an Si5351. If you count a Nano as a single component you could argue that this is a three component VFO.

My implementation boots up on 7.1Mhz and can be tuned up and down with the rotary encoder. There's no display (although that can be easily added) but a frequency counter could be added. 

The wiring is like this circuit on the Arduino project hub but I haven't added the display.

Power enters through the VIN pin on the Nano which can take voltages up to 16V (I'm running 12V) and regulates down to 5V and 3.3V which I feed to the Si5351.

I prototyped this on a breadboard first:

Next I built the same circuit on matrix board with simple point to point wiring. Here it is driving the mixer on the Beach 40.

It's a very compact and usable VFO. I have a few ideas about some extra features such as stopping at band edges and maybe lighting an LED when you hit the band edge.

Observant readers will spot my LEDs on the boards and power wiring - I've been bitten by being buzzed about why things weren't working when the fault of in the power line. Adding a few LED power indicators makes it clear.

Here's my simple source code for this VFO (blogger messes code up so use the link to the Gist):

Simple VFO for a direct conversion receiver.

Si5351 controlled by a rotary encoder.
Based on code from Paul, VK3HN

const unsigned long int FREQ_DEFAULT = 7100000ULL;

#define ENCODER_A 3 // DT
#define ENCODER_B 2 // CLK

#include <RotaryEncoder.h> // by Maattias Hertel
#include <si5351.h> // Etherkit Si3531 library Jason Mildrum, V2.1.4
#include <Wire.h> // built in
Si5351 si5351; // I2C address defaults to x60 in the NT7S lib
RotaryEncoder gEncoder = RotaryEncoder(ENCODER_A, ENCODER_B, RotaryEncoder::LatchMode::FOUR3);
long gEncoderPosition = 0;

unsigned long int gFrequency = FREQ_DEFAULT;
unsigned long int gStep = 100;

void setup() {
gFrequency = FREQ_DEFAULT;
si5351.set_freq(FREQ_DEFAULT * SI5351_FREQ_MULT, SI5351_CLK0);
si5351.output_enable(SI5351_CLK0, 1);

void loop() {
// check for change in the rotary encoder
long newEncoderPosition = gEncoder.getPosition();
if(newEncoderPosition != gEncoderPosition) {
long encoderDifference = newEncoderPosition - gEncoderPosition;
gEncoderPosition = newEncoderPosition;

void setupRotaryEncoder() {
attachInterrupt(digitalPinToInterrupt(ENCODER_A), checkPosition, CHANGE);
attachInterrupt(digitalPinToInterrupt(ENCODER_B), checkPosition, CHANGE);

// This interrupt routine will be called on any change of one of the input signals
void checkPosition() {
gEncoder.tick(); // just call tick() to check the state.

void frequencyAdjust(int delta) {
Serial.print("Adjust: ");
gFrequency += (delta * gStep);

void setVfoFrequency(unsigned long int frequency) {
si5351.set_freq(frequency * SI5351_FREQ_MULT, SI5351_CLK0); //
Serial.print("set frequency: ");

void setupOscillator() {
bool i2c_found = si5351.init(SI5351_CRYSTAL_LOAD_8PF, 0, 0);
Serial.print("si5351: ");
Serial.println(i2c_found ? "Found" : "Missing");
si5351.set_correction(135000, SI5351_PLL_INPUT_XO); // Library update 26/4/2020: requires destination register address ... si5351.set_correction(19100, SI5351_PLL_INPUT_XO);
si5351.set_pll(SI5351_PLL_FIXED, SI5351_PLLA);
si5351.set_freq(500000000ULL, SI5351_CLK0);
si5351.drive_strength(SI5351_CLK0, SI5351_DRIVE_4MA);
si5351.output_enable(SI5351_CLK0, 1); // turn VFO on

Sunday, March 05, 2023

Soldersmoke Direct Conversion Receiver working

I didn't have a smooth run with this project, despite the best of help. Here's how it sounds now:

My tuning is very sensitive but at least it doesn't drift like it was with the original (not NP0) capacitors.

I ran into a few issues along the way that took me way too long to debug:

  • The audio chain was taking off at about 2MHz and upsetting the VFO via the power line.
  • I didn't use NP0 caps in the VFO and it was incredibly unstable at first.
  • The variable linear power supply I was using caused great audio hum - no idea why - another supply and the hum is gone.
My build is not very sensitive. I suspect I have the wrong diodes in the ring mixer.

My thanks to Stephen, VK2BLQ, for suggesting the addition of a 1k resistor to isolate the early stages of the audio chain from the output stage to stop the instability. And, of course, thanks to Bill for the design of this project!


Saturday, February 25, 2023

80m dipole stretched significantly

Very lucky here to have the space, and appropriately placed trees, to allow me to put up a full size dipole for 80m. By all reports it works very well. This week, prompted by VK3LRJ, I tested the antenna and found that resonance had moved down quite significantly.

The band edges (black bars) are 3.5Mhz and 3.8Mhz.

The weekly club net is on 3685 so that's quite a bit away from where the antenna is now. I pulled it down, cut off a bit and folded back the ends. I think I shortened it by about 500m.

Much better! The 7300's built-in tuner has no trouble but it's good to not suffer the losses in the tuner if possible. 

The wire I'm using is figure-8 speaker wire split so I guess it stretches quite a bit. So far it looks to be in good shape but I don't expect it to last forever.

Thursday, February 23, 2023

High School Direct Conversion receiver

After deviating from Bill's design I have come back to the fold and built the mixer as he described. Another insight is that I've come around to putting each functional stage on a board of its own rather than trying to build the whole project on one board. I don't have a 1k:8ohm audio transformer so I used a powered speaker purchased at the MRARC auction last week and that seems to hum for some reason when connected (I tried battery power on the radio).

My VFO drifts wildly but with care it can be made to work. Here's a bit of reception from 40m this morning.

Next I connected VK3HN's VFO up and see how that sounds.

Rock stable as expected but I get clicks as I tune. 

Friday, February 17, 2023

VK3HN's Si5351 VFO in a DC receiver

I built a DC receiver using the PTO VFO based on the "High School" receiver described by Bill, N2CQR, recently. It's a beautiful thing to behold but for various reasons (no NPO caps for one thing) my build drifts like mad. It would make a fine Theremin.

I mentioned this to Paul, VK3HN, and he commented that analog VFOs do drift. He had kindly sent me a sample VFO / Controller board he's been developing for his amazing home brew "Summit Prowler" rigs.

It's a nicely conceived board with an Atmel chip that can be programmed as an Arduino Nano, Si5351 clock generator - with output buffers, connections for a parallel LCD but also I2C, connections for a rotary encoder and spares for various buttons. I had promised to give him feedback on it many months ago.

Here's VK3HN's blog post about itHere's the circuit. Here's his firmware.

Paul's code has all sorts of specialisation for his various rigs but my needs are much simpler so I've created a stripped back version that is just a VFO. Here's my code. I'm using a 128x32 OLED display instead of the LCD and have swapped in a different rotary encoder library.

The rotary encoder tunes and pushing the button changes the tuning step.

Feeding a TUF-1 mixer and then to a few transistor stages and an LM386 module it does actually receive although I have hum which is not uncommon with DC receivers. My "bench spread" construction doesn't help of course.

Arduino boards.txt

There's always something to learn on these little projects. Paul's board inadvertently ended up with an ATMega328 instead of the ATMega328P that the Arduino IDE expects to see in a Nano. Paul suggested turning on logging of the upload phase, capturing the generated avrdude command line and editing the processor type to drop the "p". 

I did that for a while, and it worked fine, but I wondered how hard it was to add a slightly modified board to the IDE. I'm using Arduino IDE 2.x but the support files (on macOS) are at:


Documentation on how to add boards is here.

I just copied the Atmega328p and made a Atmega328noP

Thanks to Paul, VK3HN, for sharing his code and design.

Friday, February 10, 2023

VR Presentation at the Kyneton Men's shed

Kyneton local Tim Sullivan from Sullivan Studios kindly put on a presentation about VR (Virtual Reality) at the men's shed this morning.

We took turns experiencing a visit to Venice, fishing, shooting and flying in a Meta Quest 2 headset (which I see sells for A$629).

While this was totally new to most of the people present, (there was a suggestion that some had come to learn about Vic Rail), I had played with an Oculus Rift headset some years ago.

The response to head movements was pretty good and the graphics was much improved over the past but I feel there's a way to go and certainly the price of headsets needs to come down for mass market appeal.

Tim predicted that mobile phones will be "gone" in three years, which rather surprised the audience.

Some stories of people with restricted mobility being able to virtually travel and see the world - or in one case visit their home country of Italy during Covid - illustrate the power of this technology.

I look forward to even more resolution in the future and I showed Tim how Apple's "Look Around" feature in their maps looks to be ready for VR headsets already.

The headsets will need to get much less bulky to be worn for extended periods but that day will come.

It was great to have such an interesting presentation at the excellent Kyneton Men's shed.

ACMA should do more to prevent and trace scam SMS messages

Like everyone I'm sure, I receive regular SMS messages and calls which are clearly scams. While I think I'm pretty good at recognising them it wastes my attention and I worry about people less able to realise what they are.

This morning ACMA announced a penalty for a Telco who was allowing customers to send SMS messages with text names without having processes in place to check that they weren't being sent as part of a scam pretending to be a trusted organisation. I have received messages that appeared to come from NAB.

The ACMA scam page is worth a read. Here's a few recent messages I've received (The numbers are certainly fake and may belong to real people so please don't harass them):

OK, maybe that last one isn't strictly a scam...

Surely we have the technical capability to trace who is sending these and either prosecute or at least block them? I see the ABC has a report on this.

Thursday, February 09, 2023

Stephen, VK2BLQ's excellent build of the Soldersmoke Direct Conversion receiver

While I deviated from the design, mostly due to deficiencies in my parts collection, Stephen, VK2BLQ, has built a faithful copy and it works!

Stephen is on the way to fame and fortune (well, fame) and it's well deserved.

Here's bill's original post, but check the blog for updates.

Sunday, February 05, 2023

Ballarat radio fest - another excellent show

Today was the Ballarat radio fest. About an hour's drive from my place at Drummond and well worth the trip. There was a big turnout and we weren't disappointed with the second hand, and some new, gear on offer.

I bought some BNC through panel connectors, (female on both sides), some BNC crimp connectors, some adapters and the big purchase was an Emtron tuner for $90. It seems to be in excellent condition.

Since moving back from Sydney to Melbourne I've been very impressed with the quality of hamfests here. Perhaps not as big as Wyong but arguably better gear on offer at better prices.

My thanks to the Ballarat club who did an excellent job of organising the day.

Saturday, February 04, 2023

My terrible build of the Soldersmoke DC receiver

Bill Meara of the wonderful Soldersmoke blog and podcast, recently published a nice design for a direct conversion receiver. He was looking for people to build it as described to check that the design was reproducible. I'm sorry to say I diverged in a few ways:

  • Used a TUF-1 mixer
  • Used an LM386 audio amplifier
I've done all sorts of things wrong, leads are too long, I didn't have any temperature stable (NPO) capacitors so the VFO drifts terribly.

My lame excuse is a poorly stocked junk box.

It needs to be boxed up and shielded but it is now working and with care I can listen to stations on 40m sideband quite nicely.

This morning I watched Bill's video of his version and spotted a ground strap to the nut in the PTO. I thought that might have solved all my problems! I think it helps but it's certainly a good idea to reduce the effect on tuning of a hand being near by.

Not good but it's satisfying to build something and use it to do ham radio. This is just a start. I can certainly recommend a direct conversion receiver project for anyone who longs for the joy of oscillation.


I didn't have a 9.1V zener so had substituted a 6V three terminal regulator with two diodes on the earth pin. There was oscillation which I had reduced with bypass capacitors but still the waveform was a bit fuzzy on the peaks. Today some Zeners arrived so the regulator is gone. The VFO signal now looks excellent.

Temperature stability is poor and my hand affects the frequency. Paul, VK3HN, kind of predicted this. Still a fun project.

Wednesday, February 01, 2023

Tidy bench for a new month

My bench in the shack got very very messy. I had a desk lamp on there and all sorts of junk.

Of particular note is the LED strip light I bought at the Wyong field day a few years ago that I've screwed under the shelf. Removing the desk lamp was a big help. Electronic projects are sure to work for me from now on!

Monday, January 30, 2023

Headless Raspberry Pi to run WSJT-X: easier than ever

Normally I use an old Thinkpad as the shack computer. Works well, low RF noise, but takes up a lot of bench space. I've just done a fresh setup of a Raspberry Pi 4 and getting it to work headless is easier than ever. I installed the latest 64 bit Rasparian with the GUI enabled. To get it going headless is done via the raspberry pi config program.

Enable VNC

Choose a headless resolution.

There was a time when I had to use a little HDMI plug that pretended to be a monitor to get decent resolution. Here's how it looks from a remote machine:

Decoding is pretty slow. It can take more than 30 seconds to decode. This might not be a bad thing as WSPRnet gets very busy with all the uploads just after a 2 minute boundary. I have seen one strange thing, a "subprocess error":

Show details indicated that the decoder couldn't access a WAV file. This might be due to a decode taking so long that the files were being written again. Not sure.

The Pi produces a bit more noise via USB to the 7300 but that's compared to the old ThinkPad which is very good. Transmit works fine with no ill effects from RF. I have several clip-on ferrites on the USB cable.

I had a little trouble with unreliable networking over Wifi. Moving the router a bit (it's in another room and was hiding behind a desk) and also turning off Bluetooth on the Pi seemed to fix this.

Disconnecting from the VNC session does not terminate whatever is running on the Pi by the way.

Compact digital station

A headless Pi connected to a QDX makes the most compact digital station I can think of.

It certainly meets my objective of taking up as little bench space as possible. I'm seeing an excellent signal from VK3YE +13dB SNR from his 0.2W transmitted on 40m 154km away.

T95 Android TV box as a cheap raspberry pi alternative?

This is a story of failure, but I thought it worthwhile to share it. There are reports that some of the cheap (~$40) Android TV boxes advertised on sites like AliExpress, can be encouraged to boot Armbian linux and so can be used as a Linux server for very little money. A common one is called T95 so I ordered a 4GB ram version. Here's the board unboxed:

There is a push button switch cleverly mounted behind the 3.5mm "AV" socket so you can poke a toothpick through it to press it during power on to trigger an attempt to boot from the SD card.

The board I got is labelled: “H616-T95MAX-AXP313A-V3.0”

I have downloaded numerous promising linux images but each time I try it just sits silently during the attempted boot.

There are three pins between the SD card and one of the USB ports that are the serial console port. I soldered a header on to these and found that it sends debug messages during Android boot at 115200 8-N-1. Here's a snippet:

HELLO! SBOOT is starting

U-Boot 2018.05 (Jul 29 2022 - 19:51:27 +0800) Allwinner Technology

[01.301]CPU:   Allwinner Family

[01.304]Model: sun50iw9

I2C:   ready

[01.308]DRAM:  2 GiB

[01.311]Relocation Offset is: 75ec5000

[01.351]secure enable bit: 1

[01.354]pmu_axp152_probe pmic_bus_read fail

[01.358]PMU: AXP1530

[01.364]CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz  MBus=400Mhz


[01.401]__clk_enable: clk is null.

[01.407]drv_disp_init finish

[01.409]gic: sec monitor mode

[01.437]flash init start

[01.439]workmode = 0,storage type = 2

[01.443]MMC: 2

[01.444]get mem for descripter OK !

[01.453]get sdc2 sdc_boot0_sup_1v8 fail.

[01.457]io is 1.8V

Interesting that although I paid for, and the case is labelled, 4GB, the console says it's 2GB.

The box works quite well running Android. The Google Play store works (although you must log in with a Google Account). Installing UserLAnd gives you a pretty good linux command line running on top of Android. The supplied Android has been modified in various ways including a "root" switch.


There are reports of Android TV boxes coming from China with malware pre-installed. Once I had a command line and had switched the root switch on I was able to see that this box has the telltale files they mention.

"Your T95 is infected with malware pre-installed, ready to do whatever the C2 servers decide. Yes, malware from Amazon straight to your door! If they insist on selling these devices they really should add an "Includes Malware" category in the Android TV section.

A few months ago I purchased a T95 Android TV box; it came with Android 10 (with working Play store) and an Allwinner H616 processor. It's a small-ish black box with a blue swirly graphic on top and a digital clock on the front. There's got to be thousands (or more!) of these boxes already in use globally.

There are tons of them available for purchase on Amazon and AliExpress.

This device's ROM turned out to be very very sketchy -- Android 10 is signed with test keys, and named "Walleye" after the Google Pixel 2. I noticed there was not much crapware to be found, on the surface anyway. If test keys weren't enough of a bad omen, I found ADB wide open over Ethernet and WiFi - right out-of-the-box."

ADB is Android Debug Bridge, a command-line tool developed to facilitate communication between a computer and a connected emulator or Android device.

Scammy Play Store apps

I don't use Android very much but playing with this box led me to search for and install some apps from the Play store for things like BusyBox. My goodness! there are some truely evil apps that Google has let in to the Play store. One popular BusyBox insisted on playing a full screen video of a game at every use, another app demanded accessibility privileges which Android explained would give it full access to all keystrokes typed.


To be fair, the Armbian site makes it clear that boxes like this can't be supported. The H616 chip is pretty new and even if I got it working it's likely that vital things like Wifi might not work. Searching for bootable linux images is a bit of a mine field with several links being blocked by my browser's malware blocker.

Oh, and of course this story is an example of Betteridge's law of headlines.

Thursday, January 26, 2023

WSPR Watch - now with grey line display

An often requested feature in WSPR Watch is to display the grey line which is the transition from sun to night. I've had a few goes at this, first by simply drawing a circle on the map centred on the sun's position but now I've ported some code open sourced by John Boiles to swift and included in the app. (I have credited him in the app).

This feature is off by default so you'll need to go to settings to enable it.

App Store review times are better than ever

It used to take more than a week for the Apple App Store to review an app submission. This morning is the fastest I have experienced I think.

  • 08:34 Submitted app and waiting for review
  • 08:40 In review
  • 09:10 Submission accepted
  • 09:11 Approved for the App Store.
That's pretty good. I wish new version numbers didn't have to be reviewed before releasing to external TestFlight testers. One would think that a developer could be trusted after years of app submissions without incident.

Thanks as always to my testers and users who send suggestions and bug reports.

Wednesday, January 18, 2023

Growing tired of AirBNB

AirBNB was a great idea and for years we enjoyed staying at nice, but sometimes quirky, places around the world.

Our last experience, on a visit to Sydney, was not so great. Here are the house rules:

It was a very clean, modern, standalone unit. Everything about the experience lacked generosity. We were there for 5 nights but as you see from the rules above, virtually nothing was supplied. We had to shop for toilet paper, dish powder, laundry liquid, soap and rubbish bags.

There were just three knives, forks and spoons so we had to wash them regularly.

As there are two of us, we asked for a second key. The owner asked why and said no.

I took some ham radio gear but feared the worst if I was found to have run a wire out the window so didn't attempt that.

At least you know what you get at a hotel, even if the shower supplies are not legible. It seems we are not alone in this view.

Annoying trend: Unreadable shower items

I wear glasses, but take them off when I shower. We've been away for a few nights and stayed in hotels for a few of those nights. When I take off my glasses and try to figure out which of the bottles in the shower are soap, shampoo or conditioner they don't make it easy. This is what I see:

Why do shower product people think that their brand is more important than what the product actually is? Also, the graphics give no clue. Here's how they look with corrected vision:

The logical order for me would be soap, shampoo and then conditioner. Curse you Urban Skincare and all of the others that pull the same trick. 

Tuesday, January 17, 2023

40m antenna down

We've been away for a few days and I left the QDX doing WSPR on 40m. It ran for a few days, then stopped receiving any spots. It was still being heard for a day or so but then even that ceased.

The theory was that the Linux laptop had lost Wifi and when I returned I found that it was asking for Wifi authentication - which is puzzling as this is stored. I got it back on Wifi, and rebooted, but still no reception. I noticed that the pass through SO239 on the wall plate was a bit bent. Outside the carnage was clear.

A branch on the dead tree that holds up my various dipoles had fallen. Coax had somehow been ripped from the shack end. I wonder if perhaps a kangaroo had hopped through it and pulled the branch down in the process. Too hot today to go drone antenna flying but I'll get it back up probably tomorrow.

Hmm, now that I look it's clear that more damage was done than initially noticed. One leg of my magnificent 80m dipole was down. Up again now.

The coax to the 40m balun had been somehow ripped from the plate on the wall of the shack but interestingly the other end, normally high in the air connected to the balun, seems to have been attacked by something nibbling at it.

My guess is that a bird was attracted by the bright red heat shrink but there is also bites in the coax near by.

I'll re-terminate both ends and use black heat shrink this time.