DEV Community

Cover image for Porting Apache NuttX to the Adafruit Fruit Jam to Run Doom
circuitrocks
circuitrocks

Posted on • Originally published at blog.circuit.rocks

Porting Apache NuttX to the Adafruit Fruit Jam to Run Doom

The first frame of Doom flickering onto an HDMI monitor is a familiar rite of passage, but this time it ran off a board barely bigger than a credit card. A forum maker known as speccy88 had spent weeks coaxing a real operating system onto the Adafruit Fruit Jam, and the payoff was a keyboard, a mouse, and the 1993 shooter responding in real time on hardware built around the RP2350.

What got built

The result is a stable port of Apache NuttX, a small POSIX-compliant Unix-like OS that scales from 8-bit chips to 64-bit systems and ships with its own shell called NSH. On the Fruit Jam, every peripheral now shows up under /dev, the same way it would on a Linux box: DVI/HDMI video, USB input, NeoPixels, the speaker, buttons, and the IR receiver. On top of that base, the port already runs LVGL graphics demos and a build of Doom with live keyboard and mouse control.

How it came together

It did not start with NuttX. speccy88 first forked an existing Linux port and got HTTP, FTP, and Telnet servers alive, but Linux is a heavy load for a microcontroller and the build grew unstable as more features piled on. Networking was another wall. The stock ESP32 NINA-W102 WiFi firmware has no raw-frame access, so sockets crawled, and swapping in Espressif's ESP-Hosted-MCU fixed the throughput. The real turning point was dropping Linux for NuttX, then porting USB keyboard, mouse, and Xbox controller support from another community project and writing a DVI framebuffer driver. Two experiments sit on top now: a TRMNL dashboard over HDMI, and a tiny on-device agent called FruitClaw that shares roughly 20 tools between a local process and an MCP server.

The takeaway

For anyone learning embedded systems, this is a rare look at the layer between bare-metal firmware and a full desktop OS. NuttX is small enough to read and hack, yet real enough to run a shell, a network stack, and a windowing demo on the same chip. If you have a Fruit Jam on your bench, the full write-up and progress notes live on the Adafruit forum thread. Start by flashing NSH and poking around /dev before you tackle the graphics stack.


Originally published on blog.circuit.rocks.

maker #electronics #diy #engineering #circuitrocks

Top comments (0)