From Linux to NuttX on the Adafruit Fruit Jam
Article excerpt
User speccy88 on the Adafruit Forums posts: I’ve been chasing a real OS for Fruit Jam. Started by forking Mr-Bossman’s Linux port, Fruit Jam’s a great target with its HDMI, USB, NeoPixels, speaker, buttons, IR receiver, and generous PSRAM/Flash. Got a lot of hardware working, plus HTTP, FTP, and Telnet servers, but Linux is […]
User speccy88 on the Adafruit Forums posts:
I’ve been chasing a real OS for Fruit Jam. Started by forking Mr-Bossman’s Linux port, Fruit Jam’s a great target with its HDMI, USB, NeoPixels, speaker, buttons, IR receiver, and generous PSRAM/Flash. Got a lot of hardware working, plus HTTP, FTP, and Telnet servers, but Linux is a heavy lift for a microcontroller. The more I packed in, the more it crashed. The ESP32 NINA-W102 WiFi firmware didn’t help either, great for CircuitPython/Arduino, but no raw-frame access meant slow sockets and broken network tooling. Swapping in Espressif’s ESP-Hosted-MCU fixed that.
So I went looking for something lighter and found Apache NuttX, a small POSIX/ANSI-compliant Unix-like OS with its own shell (NSH), scaling from 8-bit MCUs to 64-bit systems. My NuttX port is far more stable, with all hardware under /dev. I ported USB keyboard/mouse/Xbox controller support from wili8jam, got DVI and a framebuffer driver working, and now it runs Doom and LVGL demos with keyboard and mouse.
Currently building two things on top: a TRMNL dashboard for HDMI (needs a BYOD API key), and “FruitClaw”, a tiny on-device agent (inspired by ESP-Claw/PicoClaw) talking to DeepSeek’s API, sharing ~20 tools between a local agent and an MCP server. Both are beta.
Thinking about a clean NuttX release, hardware fully mapped, experiments trimmed, let me know what features matter to you.
See more on the forums.