PicOS (Pimoroni Pico Plus 2W only firmware/sdk)

Note: PicOS requires executable QMI PSRAM and currently only runs on the Pimoroni Pico Plus 2 W (RP2350). Support for the non-WiFi Pico Plus 2 is planned once I get one for testing.

There was a lot of AI involved in building this. If that’s a dealbreaker for you, fair enough - this project isn’t for you.

Hi all, a few weeks back, I started a personal project to make developing apps on the PicoCalc easier. The existing firmware options are great, but I wanted something that handles more of the boilerplate for app developers who want to focus on software development rather than wrangling hardware.

So what is PicOS? It’s a bare-metal firmware for the PicoCalc that acts as a small operating system with a built-in app runtime. It manages the hardware - display, keyboard, SD card, WiFi, audio - and exposes it all through an API. Apps are Lua scripts (or native C ELF binaries) that live on the SD card. Drop a folder in /apps/, and the launcher picks it up.

What it gives you out of the box:

  • Double-buffered display with drawing primitives, image/sprite support, and MJPEG video playback

  • WiFi + HTTP/HTTPS client with async callbacks

  • Audio - tones, PCM streaming, WAV samples, and MP3 playback

  • Raw TCP/TLS sockets for anything HTTP doesn’t cover

  • Filesystem sandboxing - apps get their own read/write space by default, with opt-in full SD access

  • System menu overlay (F10 key) with app-registerable items

  • Shared UI widgets - text input dialogs, confirmation modals, headers/footers

  • Per-app and system-wide config persistence

Lua has first-class support - apps get a fresh VM with the full picocalc.* API pre-registered. Native C apps are also supported via an ELF loader that relocates PIE binaries into PSRAM. Other language bridges could follow (Micropython etc.).

It’s still a work in progress, and the SDK isn’t as polished as I would like, and will likely break as things stabilise, but I wanted to open this up for feedback.

Source is here: https://github.com/jeffory/PicOS
Current release is here: Release v0.0.8 · jeffory/PicOS · GitHub

(Just need to flash the firmware and copy any apps you want to the apps/ folder)

Please let me know what you think of it.

Thanks to the UF2 Loader and Picoware projects, which were used for reference when debugging a few rough issues.