Waking up a 23-year old GPS module

The adventure of bringing an early consumer GPS module (23 years old!) to life and connecting it to a Raspberry Pi to make a stratum-1 NTP server. Bonus: some reflections on tech that was built to last.

Posted on

Adventures in abstraction with Rust's embedded-hal

An experiment with Rust’s embedded-hal abstraction: I have a common implementation of Game Of Life rendering to an OLED display on three different platforms: an SDL simulator on my desktop, and via I2C on Raspberry Pi running Linux, and bare metal on an STM32 ARM Cortex-M.

Posted on

Fixing a reject mains voltage sensor

I tell a story (mostly with photos) about replacing my incorrectly assembled ZMPT101B mains voltage sensor module by replacing an incorrect op-amp after figuring out what the correct part is (through some internet sleuthing).

Posted on

Calibrating a Ruideng RD6006 power supply

I work out how to save RD6006 power supply calibration register values (by sniffing serial port output from the RDTech Windows software) and then write two Python scripts: one to adjust the calibration and another to check it by sweeping through the output voltage range, measure and then plot actual output values.

Posted on

Conway's Game of Life in Verilog and C++

A story about implementing Conway’s Game Of Life while learning the Verilog hardware description language. I do a performance comparison between a hand-implemented C++ version and a simulator generated with the fantastic Verilator. Along the way there is some Python bashing and a minor existential crisis. Fun times!

Posted on