Tinkering with Electronics

One of my favourite things is getting something new to work — especially when I've never used it before. I've been lucky to spend my career in IT, but I've always wanted to make sure my life isn't just work, work, work (aside from cooking!). That led me to explore microcontrollers and electronics in my spare time.

Nordic NRF5340 and BLE

A recent arrival on my bench is the Nordic NRF5340. I got it to explore Bluetooth Low Energy (BLE). Nordic uses the Zephyr RTOS, which I've worked with before (in C/C++), and I've used FreeRTOS on ESP32s — so this feels like a natural next challenge. And who doesn't want a good challenge in IT?

Nordic NRF5340 Development Board

The EEPROM Project

One of the first things I built was a programmer for an AT28C256 EEPROM using an Arduino Nano (ATmega4809, 8-bit). These chips are compatible with the 6502 processor — like the one in the Commodore 64. The programming logic is straightforward, but getting everything wired up was a solid weekend of fun. Most of the credit goes to Ben Eater — if you've been down this rabbit hole, you've probably heard of him. You can find the circuit diagram on my wiki. The Nano costs about $26.

eeprom module with Arduino Nano

A Bit of Fun

Sometimes it's just about making myself laugh. I made this silly animation using a GC9A01 round LCD screen (about $5) and an ESP32. It runs MicroPython, but any compatible microcontroller would work. I borrowed a lot of the setup from Tod Kurt (worth a Google), but I did write my first Rust driver for the GC9A01 — based on someone else's C driver, admittedly. Still, a milestone. You'll find it here on Gitea.

LoRa and Long-Range Communication

I've always liked connecting systems — one of my first jobs involved linking a System/38 to a brand-new AS/400. So when I learned about LoRa (long-range radio — up to 2–5 km), I had to try it. It's hard to make electronics sound interesting; the fun is in the doing. I've documented some of it — including experiments with Wi-Fi and SD cards — on my wiki, and you can find some Rust demo code here. A LoRa module costs about $30 — really just an ESP32 with extra radio.

LoRa Communication Module

FPGA: Build a CPU, Run Linux

FPGAs are just fantastic. You can literally build a processor from logic gates — and then boot Linux on it. That's one of my goals when I next get the chance. FPGA work is about defining digital circuits inside a Field-Programmable Gate Array. A person I follow on X (Twitter) built a RISC-V CPU and ran Linux on it using a ULX3S board — check it out on GitHub.

Here's what a simple Verilog "blinky" program looks like — the electronics version of "Hello, World":

timescale 1ns / 1ps

module blinky(
    input clk,
    output led
    );

    reg [24:0] count = 0;

    always @ (posedge(clk)) count <= count + 1;

    assign led = count[24];
endmodule

And here's a slightly fancier version I made using buttons:

FPGA board with Buttons

Love for Microcontrollers

Whether it's the Raspberry Pi Pico, ESP32, or STM32 — I enjoy working with them all. Each has its own quirks and strengths, but I especially enjoy diving deeper, right down to the bare components. Building things like this clock module with the classic 555 timer gives me a real ground-up understanding of how things tick — literally.

Clock Module Circuit

Building a Commodore 64 (Sort Of)

As part of my journey to recreate a Commodore 64, the yellow wire connects to the clock module shown above. I use LEDs to help debug the wiring along the way. The clock module I built is adjustable from 1Hz up to a few hundred Hz and drives the 6502 CPU you see below — all inspired by Ben Eater's outstanding YouTube tutorials.

6502 CPU Circuit