gotnull
A development blog. Mostly low-level stuff: bare-metal firmware, fantasy consoles, games, and whatever else I happen to be building. Notes written as I go, for anyone who finds them useful.
The SPI panel saga: from a blank screen to 25 MHz
Getting the desktop off the USB stream and onto a real LCD. A dead-end controller that latches on the wrong clock edge, a switch to the ST7735, and climbing from 1 MHz to 25 MHz without losing the audio.
Getting sound out of it
An I2S DAC, SAI plus DMA, and three gotchas that each ate a session: a mute pin nobody pulls high, a data cache fighting the DMA, and an async executor that starved the audio to silence.
Running real PICO-8 Lua on a Cortex-M7
Vendoring Lua 5.4 into a bare-metal firmware, the 64-bit integer bug that printed 42 minus two-to-the-32, and why a hardware watchdog beat an instruction-count hook for stopping runaway carts.
A fantasy console that boots on a dev board
Rusty Nail is a windowed pixel-desktop OS running bare-metal on a Nucleo-H753ZI. How it is put together, and why the display layer is an abstraction from day one.
Starting this blog
A place to write up the things I build, mostly low-level. Short note on why it exists.