PicoDeck

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 picocalc API. 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

    gfx3d draws 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.chargrid draws 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-app is 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 picocalc function, 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.