Sunday, May 04, 2025

AI in FreeDV presentation at the Bendigo Technology Festival

The Bendigo Amateur Radio and Electronics club today held their first Bendigo Technology Festival. It was an ambitious affair with information and sales tables and a series of technology talks.

The Macedon Ranges Amateur Radio Club had a table with information for potential new members. 

ALARA, WIA and many others had tables and there was quite a bit of gear for sale at excellent prices.

I presented a talk on how AI is being used in the new versions of FreeDV.

Congratulations to the organisers and I hope they do it again.

Thursday, April 24, 2025

RF Noise Bridge for antenna tuning?

An early electronics project for me was to construct an RF noise bridge. This remarkably simple device, combined with a receiver, let me measure resistive and reactive impedance by adjusting for a null in the noise on the receiver.

I'm putting together a compact station for portable operation and it occurred to me that a noise bridge might be a good way to adjust an antenna tuner used to match an end fed wire in a tree. Sometimes it's hard to find the resonant point.

I tried this with a random wire, a Z match and a QMX transceiver (with the recent SSB software). It was not a good way to tune up, partly because of the QMX's excellent AGC.

To see what's going on I hooked up an SDR as the receiver, so I can see the noise over a broad bandwidth:


The antenna is an off centre fed dipole and the tuner is a simple L match. The dip can be seen above up the top end of 40m after tuning. A traditional antenna analyser confirms the tuning:


So it does work but is difficult compared to other options such as minimising an LED on the Z-match or using a NanoVNA. 

I wonder if I'm not doing this correctly. I'm not seeing what I would characterise as a "deep null".


The Palomar bridge is a nice bit of gear and I rather like the warning on the back of the manual:


They have an article about using the noise bridge for antenna tuning. Oh, and this story is another example of Betteridge's law of headlines.

Wednesday, April 16, 2025

Rotary encoder in MicroPython

Sample code for rotary encoder handling that I've found seems to double step with my encoder. I guess there's other that have half steps or something. Anyhow, here's how I've been doing it and it's working just fine.

CLKPin.irq(trigger=Pin.IRQ_FALLING, handler=rotary_callback)

def rotary_callback(pin):
"""Interrupt handler for rotary encoder falling edge"""
global frequency
if DTPin.value() == 1:
frequency += int(math.pow(10, step_power))
else:
frequency -= int(math.pow(10, step_power))
setFrequency(frequency)

So, the interrupt triggers just on the falling edge of the clock pin and then looks to see if the data pin is high (for clockwise) or low (counter-clockwise).

A full project is stored here.

Thonny alternative for MicroPython - MicroPico

Recently, I've been enjoying developing embedded projects on an RP2040 zero board using MicroPython. The RP2040s are fast and cheap and the zero board is much more compact than the Pi Pico but has more than enough I/O for my needs. (Actually, all the I/O is there if you need it).

MicroPython is a wonderful language and I like the fact that the source code is on the device so I can always find it again.

The normal way to develop MicroPython is Thonny. It's fine but the editor is rudimentary compared the modern code editors with completion and AI suggestions.

Recently I've discovered the MicroPico extension for VSCode and it is working pretty well.


The environment does all the things I need including showing the files on the board, letting me run the current file, stop it, and use the REPL console.



Most impressive is the AI code completion which often stuns me with its guesses about what I was about to type. (The suggestion is the italic stuff after time. below).

MicroPico doesn't do the firmware install but that's quite easy on the RP2040 (hold the boot button and plug in). 

The files stored on the device are shown in the "Mpy Remote Workspace" area on the left and a project folder is above. You can drag files up or down between areas but it moves the file. To copy a file on macOS you option-drag as is the normal convention here.

I wish single step debugging was available for MicroPython but if I'm debugging pure python algorithmic code it can be debugged locally if needed.

There are other MicroPython extensions for VSCode but this one seems to work quite well for me.

Saturday, April 12, 2025

Low cost display and rotary encoder board for VFO building

As part of my objective to take the SolderSmoke DC receiver forward to be a double sideband transceiver I've been messing about with an Si5351 based VFO. The CPU is an RP2040 Zero board which I program in Micropython. I've just bought a couple of these handy boards that include a 1.3 inch OLED display, a rotary encoder and two extra push buttons.


No documentation comes with it but the edge pins are nicely labeled on the back.


When I hooked it up and tried my existing code, written for an SSD1306 OLED, the display showed mostly noise. It turns out the boards with a larger, 1.3 inch, display require the SH1106 driver which I found here. Both drivers subclass the Micropython Framebuffer class which is a very interesting thing in its own right.


The display / encoder board has nice big mounting holes on the corners as you can see.

I paid AU$6.79 each for the larger display version on AliExpress. For you in America I guess they'll be about $100. ;-) The board seems to be widely available and is called "0.96/1.3-inch OLED Display Module With Button EC11 Rotary Encoder IIC Interface LCD Screen"

Wednesday, April 09, 2025

MicroPython OSError error numbers on RP-2040

I've seen an OSError stack trace when trying to talk to an I2C device on the wrong address and wondered what EIO means. It would be nice to have a list of all the error codes and what they mean.

From what I've read, error numbers are different for each hardware port of MicroPython. I'm using a Raspberry PI PICO and can get a list like this:

MicroPython v1.24.1 on 2024-11-29; Raspberry Pi Pico with RP2040
Type "help()" for more information.
>>> import errno
>>> print(errno.errorcode)
{1: 'EPERM', 2: 'ENOENT', 5: 'EIO', 9: 'EBADF', 11: 'EAGAIN', 12: 'ENOMEM', 13: 'EACCES', 17: 'EEXIST', 19: 'ENODEV', 21: 'EISDIR', 22: 'EINVAL', 95: 'EOPNOTSUPP', 98: 'EADDRINUSE', 103: 'ECONNABORTED', 104: 'ECONNRESET', 105: 'ENOBUFS', 107: 'ENOTCONN', 110: 'ETIMEDOUT', 111: 'ECONNREFUSED', 113: 'EHOSTUNREACH', 114: 'EALREADY', 115: 'EINPROGRESS’}

But it doesn’t really tell much. They all start with ‘E' and so 'EIO' just means IO error, which makes sense.

In face they're all more readable if you know to drop the E.

{1: 'PERM', 
2: 'NOENT', 
5: 'IO', 
9: 'BADF', 
11: 'AGAIN', 
12: 'NOMEM', 
13: 'ACCES', 
17: 'EXIST', 
19: 'NODEV', 
21: 'ISDIR', 
22: 'INVAL', 
95: 'OPNOTSUPP', 
98: 'ADDRINUSE', 
103: 'CONNABORTED', 
104: 'CONNRESET', 
105: 'NOBUFS', 
107: 'NOTCONN', 
110: 'TIMEDOUT', 
111: 'CONNREFUSED', 
113: 'HOSTUNREACH', 
114: 'ALREADY', 
115: 'INPROGRESS’}


Technology talk on ABC Radio

Cyber criminals were able to breach a number of super funds, stealing hundreds of thousands of dollars from members.

The breach was unsophisticated, and likely came about because some super funds had not implemented basic security protocols on members' accounts

Peter Marks, a software developer and technology commentator from Access Informatics, joined Philip Clark on Nightlife to discuss the latest news in technology. https://www.abc.net.au/listen/programs/nightlife/nightlife-tech-talk-with-peter-marks/105152996


Sunday, April 06, 2025

How DRM is shaping the future of digital radio

An interesting discussion of Digital Radio Mondiale. Some comments about how the west has retreated from Shortwave broadcasting are particularly pertinent at the moment.


The good news, to me, is that there are modules coming that will make it easy to make consumer receivers with DRM reception.


Thanks to the good folks at World Radio TV Handbook.

Thursday, March 27, 2025

Fascinating talk on the Shepparton International High Frequency Transmitting Station

The Melbourne chapter of the Radio Amateurs Old Timers club had an informative and entertaining presentation by Nigel Holmes, VK3DZ about the role of the Shepparton International High Frequency Transmitting Station in researching the ionosphere and even reflecting HF signals from the Moon’s surface.

It turns out that quite a few of my fellow members of the Macedon Ranges Amateur Radio Club are also members of the Old Timers.

There's a good train service from central Victoria down to Melbourne and then on to the Caulfield RSL where we meet so, naturally, we ended up on the train together. Here is VK3MO, VK3ACR, VK3XW, VK3WQ and VK3RV. Also in attendance was VK3CCR.


The meeting was well attended and the food was very good. 


The Radio Old Timers Club is a national organisation but to my knowledge only Melbourne and Perth have lunch events.

Wednesday, March 26, 2025

Technology talk on ABC Radio

If you are a 23andMe customer, like me, you should consider deleting your data. Are you a Windows 10 user? Microsoft is suggesting that you trade in your old computer soon to upgrade to 11. Do you read the lengthy terms of use many sites require - there may soon be an alternative that puts the user in the drivers' seat. Apple's Intelligence rollout hasn't gone well and now they're being sued for false advertising. All in Nightlife tech with Peter Marks. https://www.abc.net.au/listen/programs/nightlife/nightlife-tech-talk-with-peter-marks/105095170 

Sunday, March 23, 2025

QRP field ops with VK3CDO

Graeme, VK3CDO, came and gave a great presentation about portable operations gear at the Macedon Ranges Amateur Radio Club recently. He brought along a terrific folding chair and table which I immediately ordered. He suggested an outing and I was up for it. We set up on a beautiful day here in Victoria on Mount Macedon.


The weather was perfect. We both brought our chairs and tables. I brought a tent in case the weather turned (not likely). Graeme used a very nice MA-12 vertical antenna which was easy to set up and worked well. I strung up an end fed but had problems tuning it to either 40 or 20m. (I think the Unun I grabbed was not working).

Graeme operated a low cost, uSDX QRP radio with just the internal battery and easily made a contact.


We both brought small metho stoves which worked very well for cups of coffee & tea. Later we each cooked up a lunch. Graeme went for gourmet sausages while I tried a freeze dried meal which was very nice.





Graeme put me on to the chair and table. Both excellent: "Naturehike Camping Chair, Portable Backpacking Breathable Chair with Storage Bag, Compact Collapsible Lightweight Camp Chair (Green-M)" & "Naturehike Camping Detachable Table with Aluminum Alloy Material, Portable, Lightweight, Outdoor Furniture for Camping, Picnic, Hiking, and Other Outdoor Activities".

The tent is a "Night Cat Backpacking Tent fo 1 Person 2 Persons Easy Setup by Clip Waterproof Lightweight protable Camping Hiking Tent for Adults Kids Scouts Tent". I like it because it's under 2kg and has a convenient side entrance.

I kept John “lofty” Wiseman’s excellent SAS survival handbook at hand but luckily there were no emergencies requiring reference to it.

I look forward to even more ambitious outings in the future.

Friday, March 21, 2025

First sideband contact on a QRP-Labs QMX

The much anticipated wait for the amazing software update to the QRP-Labs pocket radio, the QMX, is out in beta. Today I installed the third release and called CQ from my location in central Victoria. Dave, VK7DD in Northern Tasmania responded and gave me up to a 57.

The radio is sure to be popular with portable operators. It must be one of the tiniest SSB transceivers available.


Reports of my transmit audio are good and as you can hear in this clip, reception quality is beautiful.


Hans has a page about the beta software and as you'll see it's been a huge project for him. 

The microphone plugs in to the paddle port and is wired with PTT on the tip and audio on the ring. I had several mics around from Xeigu radios and they have the connections the other way but it wasn't hard to swap one over.

I found that extra audio gain was needed but this is easily adjusted via the serial terminal interface or built-in menu.

Even without SSB capability the QMX is a fantastic transceiver for FSK digital modes (and CW) but now it can do modes that need SSB such as PSK31.

Fantastic work from QRP-Labs!

Sunday, March 16, 2025

A simple Si5351 VFO for RP2040 zero in Micropython

Having had a wonderful time with the Soldersmoke direct conversion receiver and after that a very simple double sideband transmitter, I'm now formulating a DC/DSB transceiver. From the experience of those that have tried, it seems that a traditional VFO on the transmit frequency is not a good idea as the transmit signal gets back in to the VFO and causes problems.

My plan is to use an Si5351 clock generator (<$2) based VFO which should not be affected. Recently I've been playing with the tiny RP2040 Zero boards which can be purchased for under $2 and are an impressively powerful computer.


The RP2040 CPU is powerful enough to run MicroPython. While I'm comfortable in C++ I love python's clean syntax and library. The code is quite simple and I've put it up on GitHub here: https://github.com/peterbmarks/micropython_vfo

Pushing the rotary encoder button changes the step size. You can see it in action here:


My display is a tiny 128x32 OLED board with an ssd1306. I imagine many builders will swap this out for something grander.

The hard part is done with libraries created by smart people:

ssd1306.py from https://github.com/kwankiu/ssd1306wrap/

si5351.py from https://github.com/hwstar/Si5351_Micropython

I like the way all the source code is stored on the MicroPython device.

You can see which pins I've wired the i2c and encoder devices to in vfo.py. You may wish to change these.

This is early days and there are sure to be bugs and improvements to be made. Send me a pull request!

Saturday, March 15, 2025

Guest spot on ABC RN's Download This Show

I'm on ABC RN Download This Show again this week. Generative AI has officially infiltrated the world of gaming, could games created entirely by AI be the future we've all been dreading?


Also, speaking of, so many games, so little time... could a dating app for choosing games be the answer?

Plus, what are personality rights and could they help us defend against deepfakes. And what ever happened to those astronauts stranded in space?! 

https://www.abc.net.au/listen/programs/downloadthisshow/gaming-app-artificial-intelligence-deepfakes-astronauts/104970260 

Wednesday, March 12, 2025

Technology talk on ABC Radio

AI is being used to check for errors in research papers, but just how accurate are its results? And is your collection of classic DVDs still playable? You might be surprised. Peter Marks, a software developer and technology commentator from Access Informatics, joined Philip Clark on Nightlife to discuss the latest news in technology.  

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

Sunday, March 09, 2025

Rebuilt the Soldersmoke DC receiver in compact form

Lots of fun and lots to learn from the Soldersmoke Direct Conversion receiver.  It seems simple but there are some traps for young players like myself. Building with others and being able to compare observations is incredibly helpful.

My approach is Manhattan construction spaced out and arranged to look like the circuit diagram. This makes it easier to spot the inevitable errors but there is a downside that it's more likely to have instability. In the past few days I've re-built each stage in a more compact form and the result works well and has no instability. As an example of before and after here's the diode ring mixer prototype laid out for clarity:


Here's the new compact version of the mixer:



The compact VFO board:
Most challenging and most improved is the audio chain which is now stable even with the gain turned all the way up and the pot off the board connected with platted wires.

I did have a wiring error on the audio board that took me a little time to figure out. Having a working board to compare with really helped of course.


I'm about done with this project but it has been a wonderful learning experience. I would recommend this as a group project for any beginning constructors like me.

Wednesday, March 05, 2025

A licensed amateur for 80 years appreciates the Soldersmoke DC receiver

I visited my dear uncle Robert Glasser yesterday. Yes, Bob is really my uncle! He's 96 years old and doing pretty well considering.


Robert's short term memory is in serious decline. He introduced me to a carer about a dozen times. His long term memory is as sharp as ever and he was most entertained when I showed him a video of the Soldersmoke Direct Conversion receiver I'd built. He knew exactly what a direct conversion receiver is and was pleased that I'd gone on and built a double-sideband transmitter.

Robert told me that he'd got his call at age 16 and was W6HA (which he spelt out in phonetic letters). His carer was rather astonished at his sudden detailed technical conversation I think.

80 years a ham! I suggested he might be eligible to join the Radio Old Timers Club we have here. He doesn't get out much these days though. Here's a photo I took when I was quite young and clearly my focus was more on the gear than the person.


Wonderful to have him around but I fear our time is limited.

Si4732 Mini Receiver gets better firmware

At AU$33 I couldn't resist ordering one of these little all band receivers with sideband.


Putting aside the speaker, which is so tiny as to be a joke, it does actually work rather well. Plugging in headphones or a powered speaker and you have a reasonable radio. However, the operation is quite annoying. The single knob with centre push must be double pressed to bring up a menu to choose things including volume by scrolling up and down.

A large part of the excellent screen is taken up with a silly dial display. Happily clever people have created improved firmware that makes better use of the screen and makes it more pleasant to use.


The device has an ESP32-S3 and the improved firmware is available here: https://github.com/G8PTN/ATS_MINI/

I'm using version 1.0. I tried, and failed, to flash it with esptool.py, so relented and used the Windows only Flash Download Tool from Espressif from here: https://docs.espressif.com/projects/esp-test-tools/en/latest/esp32/production_stage/tools/flash_download_tool.html

Run it and choose the ESP32-S3 and USB:


Then select the three files and enter the memory addresses like this (click to enlarge):


Note that you must use the "..." buttons and choose the files from your own downloaded and unzipped files. The offsets are 0x0, 0x8000, 0x10000.

When plugged in via the USB-C port and powered on, my radio came up as COM4 but yours might be different.

Click the Start button. When it finished, unplug the radio, power it off and on again. If all went well, it will show the version number. The first time I powered on I long pressed the encoder to wipe the flash.


There is at least one video showing this process but I find reading a web page a much better way to find out this stuff than watching a video.

The software is written using the Arduino platform and the ATS_MINI.ino file gives lots of technical information about the configuration of the radio including the display which is a TFT-eSPI device.

A wonderful open source contribution.

------------------------------------------------------------------------------------------
ATS_MINI
------------------------------------------------------------------------------------------
This firmware is for use on the SI4732 (ESP32-S3) Mini/Pocket Receiver
Based on the following sources:
Ralph Xavier: https://github.com/ralphxavier/SI4735
PU2CLR, Ricardo: https://github.com/pu2clr/SI4735
Goshante: https://github.com/goshante/ats20_ats_ex
------------------------------------------------------------------------------------------
G8PTN, Dave (2025)


Using esptool to flash the firmware

I had a shot at building the software in the Arduino IDE but ended up bricking the device. The Windows flash download tool was unable to write to it, even though the serial device was visible. Reading up on how other people got over this they recommended esptool which I used on the Mac and was able to get it running again.

 % esptool.py --chip esp32-S3 -p /dev/tty.usbmodem101 write_flash -z 0x10000 ATS_MINI.ino.bin 

esptool.py v4.8.1

Serial port /dev/tty.usbmodem101

Connecting...

Chip is ESP32-S3 (QFN56) (revision v0.2)

Features: WiFi, BLE, Embedded PSRAM 8MB (AP_3v3)

Crystal is 40MHz

MAC: e8:06:90:a8:26:38

Uploading stub...

Running stub...

Stub running...

Configuring flash size...

Flash will be erased from 0x00010000 to 0x0006dfff...

Compressed 381552 bytes to 222197...

Wrote 381552 bytes (222197 compressed) at 0x00010000 in 2.8 seconds (effective 1082.1 kbit/s)...

Hash of data verified.


Leaving...

Hard resetting via RTS pin...


There is a PDF in the zipped firmware file that contains lots of information about the capabilities.

In the top bar there are two circular indicators. The first one flashes green each time the screen is updated. The second one flashes red each time settings are written to EEPROM. Saving settings happens about ten seconds after a change so delay turning the receiver off until you see the red flash or it will forget your latest setting change.

I see there is a version 1.0.1 now.

Saturday, March 01, 2025

Enjoyed the Yarra Valley Hamfest

Victoria seems to have a good number of hamfests and today's at Yarra Valley was excellent. I bought a variable power supply which I hope is lower noise than my current one (remains to be seen), a bag of trim pots and capacitors for $2, an excellent electrical engineering text book, but mostly it was a chance to meet up with friends.

Nigel Holmes VK3DZ and Jim Gordon VK3ZKK


Ralph Klimek VK3ZZC




Drew Diamond VK3XU and Dave Stuart VK3ASE.


Warm congratulations to the organisers for a fantastic event.

Wednesday, February 26, 2025

On the cover of Rolling Stone!

Regular readers will know that I'm a big fan to the SolderSmoke blog and podcast. Inspired by their recent direct conversion receiver challenge I built the receiver. It did not go smoothly and in retrospect that's good as I learned many valuable lessons along the way.

After the success of the receiver, it's not a big leap to make a double sideband transmitter. I built one for 80m using some circuits described by Peter VK3YE and Drew VK3XU. It went amazingly well and last Wednesday I called in to two 80m nets and got good reports. My audio was described as "highly fidelic" and a glance at an SDR showed that my audio bandwidth was over 10kHz (and because of double-sideband twice that). Bad boy!

Along the way, I made videos of the receiver and transmitter, including audio sent in of my signal received in Tasmania and Bill posted a nice item about it all on his blog.


I would be calling for Bill and Dean to grace the cover of Time Magazine but that may not be a positive thing any more. 

Now I'm worried that he'll have a link to this post which links back to his post and this could cause internet feedback.

Thanks Bill.

Tech talk on ABC Radio

A breakthrough in computer chips, a new and supposedly cheap phone from Apple and how to avoid to paying higher prices for Microsoft Office 365. Peter Marks, a software developer and technology commentator from Access Informatics, joined Philip Clark on Nightlife to discuss the latest news in technology. 

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

Wednesday, February 19, 2025

Joined two 80m nets with the double sideband transmitter

Great fun tonight. First I joined the Tasmanian tech net with the double sideband transmitter and later the Macedon Ranges net. Good reports from both. It's a pretty rough and ready transmitter:


There were reports of my wide bandwidth, not just the other sideband, and I can see on a local SDR that my signal is very wide.


Despite all this reports were quite positive and I'm grateful for that.


It's a very encouraging start. Thanks for the valuable feedback.

Victorian country train radio chatter

With all the government radio going to digital trunk radio I was surprised to find that communication between driver and guard, and sometimes station and driver, is via standard FM radio. Today I caught a train from Kyneton to Southern Cross station and recorded what I heard.

Mostly it's the guard saying when passengers have finished getting on and off but at about 48 seconds you'll hear Sunbury station ask us to wait due to a train broken down ahead.


To record this I made a 30dB pad with DC isolation so I could listen in headphones and also feed audio into the powered mic input on a voice recorder.

Amusingly I heard the driver refer to a city train as "the sparks". I guess they are electric while the country trains are diesel electric.


A visit to the National Communications Museum

Today Nigel, VK3DZ, Ralph, VK3ZZC and I visited the National Communications Museum in Hawthorn, Melbourne, Victoria. It's a very modern museum, a bit expensive to get in the door but they have a great collection of old communications gear of historical note.


There's a huge collection of telephones, from payphone, to dial to mobiles.




There is also a working telephone exchange and some wonderful switchboards.



A fine collection of test gear is on display although we have some concerns about the CROs which are left on sometimes with a very bright spot showing.

I particularly enjoyed the optical disk talking clock.


We had the place to ourselves today although I imagine at times it's teeming with kids. I do recommend a visit although I'd have to say at $30 to get in it's a bit steep. The website is very modern looking and very bad to use. The staff seemed nice though.