Wednesday, January 21, 2026

3D printed box for USB-C CYD (Cheap Yellow Display)

I've been getting in to the CYDs which have an ESP-32 attached to a 2.8" touch screen. Recently I bought some new versions with a USB-C connector and wanted a case. Pretty happy with how it turned out.


The design is done in OpenSCAD which I now feel very comfortable with. The design files and STL for the box and lid are available here on Thingaverse

Sunday, January 18, 2026

FreeDV net - poor conditions but a good roll up

Quite a few stations on the frequency this morning but only a few could talk to each other. Seen were: VK2AWJ, VK2BLQ, VK2CJB (who was heard while using a dummy load!), VK2DWG, VK2GMH, VK2VCO, VK3FAR, VK3FFB, VK3JCO, VK3KEZ, VK3KR, VK4APF, VK4YA, VK5ABE, VK5KHZ, VK5KVA, VK3PCC and me, VK3TPM.

Macedon Radio Club annual picnic with lots of radio

My local radio club, the Macedon Ranges Amateur Radio Club, held its annual picnic day and several of us brought along portable radios and antennas.


There was an interesting collection ranging from a uSDX up to a very new Yaesu portable radio.


I brought my trusty KX3 which has a great advantage in these conditions of having a very readable LCD display compared to the more fancy rigs.


Perhaps one day Electraft will update the KX3 or KX2 to add a USB port for audio and control so we can more easily do digital modes.

A lovely day in Victoria today.

Wednesday, January 14, 2026

Tech talk on ABC Radio - Consumer Electronics Show highlights

Every January the consumer electronics show takes over Las Vegas. The event of the year where tech companies flex their muscles and show off their line up of upcoming products and ready to buy ideas that feel as if they've been pulled out from the future. 

What will the latest tech trends be in 2026? Will we get a robot in our homes to fold the washing? Maybe not but at least home automation is improving with a torrent of Matter and Thread compatibile devices shown.

Peter Marks, mobile software developer and technology commentator from Access Informatics joined Philip Clark and listeners to Nightlife with the latest tech news.

 https://www.abc.net.au/listen/programs/nightlife/nightlife-tech-talk-with-peter-marks/106226200 

Tuesday, January 13, 2026

Sunday, January 11, 2026

FreeDV net - very poor conditions

A small group today and many stations could not hear each other. Apparently there's a solar wind. Seen on frequency were VK2AWJ, VK2CJB, VK2GMH, VK2JAB, VK2UMZ, VK3FAR, VK3FFB, VK3GTP, VK3KEZ, VK3KR, VK3MS, VK5AG, VK5COL, VK5KVA and me, VK3TPM. 

Thanks to those who joined in, and hopefully propagation will be better next weekend. 

Saturday, January 10, 2026

Happily untouched by fires in the area

Yesterday was being described as going to be a possibly catastrophic fire day here in Victoria. Hot and windy.


I live on a 5 acre bush block with a dirt road. On the other side of the road is state forest. The "fire plan" here is simply to get out if there's any danger. All seemed well for the morning but a fire at Taradale, about 23km away, had it's area extended in our direction.


(My location is where the binocular icon is). At that point we left for the refuge of nearby town Kyneton. Unfortunately when we arrived we found that the power had already been off for three hours - everything was shut - and there was not the respite of an air-conditioned bowling club we'd dreamed of. The power outage was over quite a large area and we were lucky not to have lost power here in Drummond already.


All power was out and this included the traffic lights which made it difficult for a queue of cars to get through an intersection so my visitor, VK2EMU, helped out by directing traffic for a while.


The pie shop had some warm pies still in the oven so we ate there, walked around the very hot town for a while and when the Taradale fire was downgraded we headed home.

Other areas were not so lucky and this included nearby Mount Alexander where our broadcast TV and FM is transmitted. Now we have no broadcast TV.


At this stage I'm not sure how serious the problem is. It could just be a power outage or the transmitters or towers might be damaged. We won't miss broadcast TV terribly much as we mostly stream.

We were lucky, this time. These fires are terrifying and I keep a pure wool blanket and water in the car. I'm also prepared with an amateur radio station that can operate from battery power if all else has gone.

Wednesday, January 07, 2026

CYD "Cheap Yellow Display" useful with Micropython

I discovered these low cost ESP32 boards with useful IO and peripherals about a year ago. Recently I came across an excellent 3D printable case and started using Micropython for development. Here's one in our kitchen monitoring the solar power:


There's a great resource at Random Nerd Tutorials that I won't duplicate here. 

I'm just using the generic ESP32 Micropython with good success along with libraries for the screen and touch panel. (There is a variant of CircuitPython for it but I didn't have much luck with it).

As well as the display, it's a very capable platform:

  • Onboard 2.8inch 240×320 pixels 65K color Touch LCD display.
  • Integrated 2.4GHz WiFi and Bluetooth wireless communication.
  • SPI Touch, Display and SD card slot.
  • Amplified GPIO26 for PWM audio output.
  • Uses the ILI9341 display driver via SPI.
  • Uses the XPT2046 touchscreen driver via SPI.

The boards sell for about AU$24 on AliExpress and I see there's a new version with USB-C in place of micro-USB.

Micropython is a great way to develop for embedded systems. One excellent feature is that the source code is stored in the device so it's easy to grab one and continue tinkering.

Managing files with ftp

While Thonny and other programs are adequate for editing and transferring files to a Micropython device the drag and drop facilities, things like moving a file into the lib folder, are lacking. If you have a device with Wifi, there's a great little ftp library and server program that makes this really easy.


Untouched in 4 years and it just works!

Monday, January 05, 2026

Installing a later hamlib on Linux

I'm currently using Ubuntu 24.04.3 LTS in the shack. Choosing an older stable version of the bleeding edge where I find changes to the sound system give me trouble with the apps I use including FreeDV, WSJT-X, and Fldig.

Unfortunately, the version of libhamlib either in the OS or bundled in the apps doesn't have some of the radios I use, including the QMX, so I wanted to upgrade it. Here are the steps I took, although there may be an easier way.

First, to find the path to the hamlib library that wsjtx is using:

ldd /usr/bin/wsjtx|grep hamlib

Next I had a look at that file to see where it symbolically linked with:

ls -l /lib/x86_64-linux-gnu/libhamlib.so.4

I downloaded the latest hamlib source tar archive from: https://github.com/Hamlib/Hamlib/releases

Unpacked and built the source (I already developer tools installed but I'll leave that out of this note):

tar xzvf hamlib-4.6.5.tar.gz
cd hamlib-4.6.5/
./configure
make
sudo make install

This put a new hamlib in:

/lib/x86_64-linux-gnu/libhamlib.so.4

I moved aside the old sym link:

sudo mv /usr/local/lib/libhamlib.so.4 /usr/local/lib/libhamlib.so.4.orig

And made a sym link to the newly built library:

sudo ln $HOME/Documents/hamlib-4.6.5/src/.libs/libhamlib.so.4 /usr/local/lib/libhamlib.so.4

I may not have this entirely accurate but it will serve as a note to myself. Anyhow, the programs now have a later version of hamlib.

Sunday, January 04, 2026

FreeDV Australian net - 21 stations

An excellent Sunday morning FreeDV net with several stations who were on for the first time or just installed a few days before. Stations included: VK2CJB, VK2GRF, VK2JAB, VK2JCB, VK3CKY, VK3GTP, VK3JCO, VK3KEZ, VK3MTV, VK3PCC, VK3SRC, VK3TPM, VK3XCI, VK4WGR, VK5ABE, VK5KFG, VK5KVA, VK5MH, VK5RA, VK7JB.


I run on Ubuntu 24.04 LTS linux but there was some discussion of the woes people have with Hamlib on windows. Recently here I built Hamlib from their Tar release and managed to get FreeDV (and FLDigi) to use it by changing sym links.

Thanks to VK5KVA, Jack, who will host a net on 7045 from 8:30pm eastern time tonight (Sunday).

Friday, January 02, 2026

A contact on the LARCSet radio

I'm having some trouble with this radio. Extremely low modulation with the mic amp as it comes. Not sure what's wrong. To get enough power out I'm vastly over-driving it with an external mic amp. Richard, VK3LRJ, kindly humoured me and recorded a bit of how I'm received there. I've overlayed that bit of audio in this video recording from my shack.


Not great. An interesting little radio though. https://www.hfsignals.com/index.php/larcset/ 


Developing for Apple platforms - we're in a good place

My most popular app, WSPR Watch, is now 14 years old and it's not surprising that the underlying technology has changed a lot in that time. It started out in Objective C using UIKit, was ported to Swift over time and most recently migrated to SwiftUI.

I am not a brilliant programmer, I know this because I've met and worked with some who are - they are amazing. I'm a plodder. It takes me a long time to get comfortable with a new language, new framework, the right ways to avoid problems with multi-threaded code.

Recently, I re-watched a Worldwide Developer Conference (WWDC) video on migrating to Swift 6 which has new, compiler based, features for letting me know when something I'm doing is dangerous in a multi-threaded program. When I enabled Swift 6, Xcode showed me dozens of errors. The video gave good advice: "Don't Panic". I worked through the complaints and in the end my program not only worked but a subtle bug in the map display was gone!

The other day, I read a brilliant post about Swift Concurrency, which not only helped me understand what I was doing but also showed how easy it is to do network requests with URLSession. Up until now I've been using a thirdparty package called Alamofire which provided a nice wrapper over the underlying code. Apple has cleaned things up and it all works nicely with async/await.

With the help of ChatGPT, (which gave me useful example code), I manually converted one of my network loader classes to no longer use Alamofire. The code was shorter and clearer after this effort.

LLMs are fantastic for programmers. Normally when I need to do something new, I have to read documentation, watch WWDC videos, try to find recent sample code, and generally mess around until I figure it out. An LLM can give me a code snippet that does what I want and that's a great start. They aren't perfect but they're close.

After manually porting my network code I thought I'd try the built-in AI in Xcode on one of the other data loaders. I opened the file and asked it to modify the code to use URLSession instead of Alamofire. It did and the code was better than mine in a few ways. 

It's taken time for SwiftUI to mature but today I feel more productive than ever and, with the help of the LLMs, can start projects I never would have attempted. We are in a good place as developers for Apple platforms.