Features
What PicoDeck gives the PicoCalc, from the launcher to the APIs apps are written against. The v0.6.0 release notes list what's new.
Apps
An app is a folder on the SD card. Write it in Lua, or in C and C++ when you need the speed.
Lua 5.4
Apps run in a sandboxed Lua 5.4 runtime with a 6 MB heap in PSRAM, and reach the hardware through one
picocalcAPI. There's nothing to compile.Native apps
Emulators, ports and CPU-heavy renderers are position-independent ELF binaries. They load from the SD card into PSRAM and get the same API as Lua, through a C table.
A sandbox per app
An app reads its own folder and writes its own data folder. Anything more, such as the network or the whole card, is a requirement it declares in
app.json.Saves and settings
Per-app config and save files survive reboots, and an app can add up to four items of its own to the system menu.
Shared libraries
Libraries in
/system/lib/load with one call. Download streams a file from the web to the card; Panels turns a Lua table into an interactive comic.
Graphics
A 320×320 screen, double-buffered at 60 frames a second, with 2D, 3D, text grids and video built in.
Images and sprites
Load BMP, JPEG, PNG and GIF images, draw them as sprites, spritesheets, animations and tilemaps, and finish the frame with framebuffer effects.
A game framework
A 2D camera that follows, zooms and shakes, a scene manager, particles and save files, so a new game starts with the plumbing done.
3D
gfx3ddraws flat-shaded, low-poly scenes with a camera, a light, fog, sky bands and camera-facing sprites. Lua builds the meshes; transform, lighting and clipping run in C.Character grids
picocalc.chargriddraws a full screen of character cells in about 3 ms, with the xterm-256 palette, UTF-8 text and your own glyphs. Its shader language colours whole grids every frame.Video
MJPEG video from AVI files on the SD card, with an MP3 soundtrack decoded on the second core.
Terminal
A terminal emulator widget with scrollback, colours, word wrap and line numbers, for consoles, editors and remote shells.
Sound
One mixer plays everything at 44.1 kHz, so sound effects play over the music.
Samples and streams
WAV samples play from memory. WAV, QOA and MP3 files stream from the SD card without loading the whole file.
Tracker music
ProTracker MOD files with 1 to 32 channels, rendered on the second core.
Tones and raw audio
Play a tone with one call, or feed your own PCM samples to the output stream.
Controls
The PicoCalc's keyboard, a gamepad players can rebind, and Bluetooth controllers.
The keyboard
Every key, typed characters and key events. The keyboard is read in the background, so a key press reaches the app within about 22 ms.
A rebindable gamepad
Games read a 12-button gamepad instead of raw keys. Players bind each button to two keys in the system menu, and the game needs no code for it.
Bluetooth controllers
Pair a Classic HID gamepad from Settings → Bluetooth. It presses the same buttons as the keys, and its Home button opens the system menu.
Network
Wi-Fi on the Pico Plus 2 W, with TLS that checks certificates.
HTTP and HTTPS
An HTTP client with up to 8 connections at once. HTTPS verifies the server's certificate.
TCP and TLS sockets
Non-blocking sockets, with or without TLS, run by a network stack on the second core. An app can pin a self-signed server by its certificate's fingerprint.
Crypto
Hashing, encryption, key exchange and signature verification, with random bytes from a hardware-seeded generator.
JSON and ZIP
Encode and decode JSON, and read or extract ZIP archives, so an app can ship its assets as one file.
System
The launcher, and the parts of the OS every app shares.
The launcher
Apps sorted into six categories, with 24×24 icons and a status header for Wi-Fi, the battery and the clock.
The system menu
Sym opens it over any app: brightness, screenshots, USB Disk Mode and Exit App, with Settings for the controls, Bluetooth, the battery percentage and an FPS counter.
App Store
Browse and install apps over Wi-Fi on the device. A public GitHub repository tagged
picodeck-appis listed within 30 minutes, with no review.System Update
Installs new releases over Wi-Fi. Each image must match a signature checked against a key built into the firmware, before anything is flashed and again at boot.
USB Disk Mode
Puts the SD card on your computer as a USB drive, so you can copy apps over without taking the card out.
Crash logs
CPU faults and Lua errors are shown on screen and written to the SD card. After three failed boots in a row, PicoDeck halts instead of rebooting forever.
Fast boot
A boot animation plays from first light while the system starts underneath it: about 3.1 s to the launcher after a warm reboot.
Developers
Run and test apps without the device, then watch them on it.
Browser simulator
The launcher and Lua apps, compiled to WebAssembly, with the keyboard and browser gamepads.
Desktop simulator
A Linux build that runs Lua apps on the device's own bridge and native apps under a CPU emulator, with a control socket for scripted tests.
USB dev console
Over USB serial, launch and list apps, move files on the card and profile a running app. An MCP server lets an AI agent drive the device the same way.
Lua SDK reference
Every
picocalcfunction, documented with its parameters, return values and examples.
See it running
The browser version runs the launcher and Lua apps. On real hardware, PicoDeck needs a PicoCalc fitted with a Pimoroni Pico Plus 2 W.