David Turnbull

Amateur Radio: AE9RB



The lingua franca of 70s and 80s personal computers. BASIC programs were widely distributed in books and magazines for users to type in. I wanted to get good at Rust so I wrote this as a compiler and process virtual machine. What started as a learning exercise turned into a preservation project.

Peaberry SDR

Screenshot Screenshot

This radio uses skywave propogation to make 7000 km contacts across the Pacific Ocean with only one watt of transmitted power. Imagine an LED or a candle blinking on your roof in the United States and someone in Australia decoding the message.

It uses a quadrature mixer to sample I/Q with a Delta-Sigma ADC/DAC and connects as a USB device. The radio has its own PC and Mac software written in C++. The Cypress PSoC was programmed in C and Verilog.

I sold this as a kit for a few years. Reviews are in the November 2013 issue of QST pg 57-59 and on eHam (alt).



Swift was new and lacking native libraries, so I created an OpenGL interface, math library, and image decoding library. Despite type annotating everything possible, the inference system hit a performance wall when I was about 80% done. It’s 100% done now. Apple later deprecated OpenGL from all its products.

Iambic Keyer


This is a device radio operators use to send morse code. I forced myself to build it with thru-hole parts as an Arduino shield, which made the hardware expensive and software complicated. But it works perfectly with shaped sine waves and zero-lag.



The text adventures from Infocom ran on a VM called the Z-machine. Making it run on Palm simply required the entire VM to be implemented as a state machine.

Mr. Label Maker


For the Commodore 64. Create labels for your 5.25” floppy diskettes using the built-in graphics editor. The source and manual are lost to time, but this is a cracked copy that survived because of the warez scene.