Having fun building my own hardware and firmware.
Interested in bare-metal Rust on cool microcontrollers like the RP2040 and RP2350, low-power designs, PCB design + assembly, and impractical projects.
Selected work
pokeemerald-rp2350
A Game Boy Advance game ported from ARMv4T to Cortex-M33 and running natively on a $6 microcontroller. Not an emulator. GBA’s video hardware is reimplemented in software and ouput at 60 fps to HDMI.
pico-remote-probe
A network-attached SWD debug probe on a single Pico 2 for remote flashing and debugging. The probe runs a GDB stub
so a bare gdb-multiarch can flash and debug a
target over the network. No host-side tooling required. Plus a host-free
RTT viewer and an OpenOCD bridge for RISC-V cores.
pico-10base-t-rs
10BASE-T Ethernet TX and RX bit-banged out of PIO and DMA. No MAC or PHY. Just a transceiver, magnetics, and software. Bridged to a TCP/IP stack to make the Pico 2 W into a working wireless router.
pico-llm
Transformer language model inference on bare metal with only 520 KB of RAM. The model weights are stream off a micro SD card through double-buffered DMA on one core. The other core runs quantised matrix multiplication. Tested with a custom 9M-parameter model and Qwen3 models. Write-up in progress.
Siri Remote dictation dongle
Uses the ESP32-S3 as a Bluetooth -> USB HID dongle to capture audio and button presses from the Siri Remote gen 3. The audio stream is decoded on the host machine and processed by a local ASR model. The output text is fed back to the dongle over USB and the dongle types the text back to the host allowing the remote to be used as a custom dictation tool.
Minnow E-reader
A tiny e-reader powered by a CR2450 coin-cell. Built to magnetically attach to the back of your phone and keep you focused on a single book. Instantly turns on and is ready to read unlike my experience with Linux based e-readers. Able to last years on a single coin-cell.
HBCam
A handheld monochrome camera inspired by the Game Boy Camera. PIO for frame capture, live viewfinder, dithering and palettes, gallery, and USB mass storage.