PicoDeck

An operating system for the PicoCalc

PicoDeck gives the ClockworkPi PicoCalc a launcher, an App Store and a Lua 5.4 runtime. Apps are folders on the SD card, and emulators and ports written in C run natively.

The browser version runs the launcher and Lua apps. On real hardware, PicoDeck needs a PicoCalc fitted with a Pimoroni Pico Plus 2 W.

The launcher from the latest release, with the apps in the browser version. Click or tap the screen to start the simulator.

What it does

The firmware does the heavy lifting in C, for every app to use.

  • Graphics

    Sprites, tilemaps, flat-shaded 3D, character grids with shaders, and video, on a 320Ă—320 screen at 60 frames a second.

  • Sound

    WAV, MP3 and QOA streamed from the SD card, and MOD tracker music, through one mixer that plays them all at once.

  • Gamepads

    A gamepad players rebind in the system menu, and Bluetooth controllers paired from Settings.

  • Wi-Fi

    HTTPS that checks certificates, TCP and TLS sockets, and crypto, for apps that talk to the internet.

  • App Store and updates

    Install apps over Wi-Fi, and firmware updates that are checked against a signature before they're flashed.

  • Simulators

    Run apps on your computer or in the browser, and drive a real device over USB.

All features

An app is a folder

Put app.json and main.lua in a folder under /apps/ on the SD card and the app appears in the launcher. There's nothing to compile and nothing to reflash.

Write your first app

/apps/hello/app.json
{
  "name": "Hello",
  "description": "Says hello",
  "version": "1.0",
  "category": "demos"
}
/apps/hello/main.lua
local pc = picocalc

while true do
  pc.input.update()
  -- Esc returns to the launcher
  if pc.input.getButtonsPressed() & pc.input.BTN_ESC ~= 0 then
    return
  end

  pc.display.clear(pc.display.BLACK)
  pc.display.drawText(100, 150, "Hello, World!", pc.display.WHITE)
  pc.display.flush()
  pc.sys.sleep(16)
end

What runs on it

Lua apps run in a sandboxed Lua 5.4 runtime. Emulators and ports written in C or C++ load as native apps. The launcher sorts everything into six categories.

  • Gamesblock.exe, C-Dogs, DOOM, Minesweeper, Neurogram, Snake
  • ToolsCalculator, DOS/86, File Manager, PicoForge, Text Editor
  • SystemApp Store, Burn-In Fixer, System Update
  • Demos3D Test, Guinea Pig Run, Platformer Demo
  • EmulatorsCommodore 64, Game Boy Color, TIC-80
  • NetworkLLM Chat, SSH, Wikipedia

Install

  1. Fit a Pico Plus 2 W

    PicoDeck only runs on the Pimoroni Pico Plus 2 W. Other Pico boards, including the one that comes with the PicoCalc, won't run it: PicoDeck runs its code straight from the Pico Plus 2 W's 8 MB of PSRAM. Swap the board in before you flash.

    Get a Pico Plus 2 W
  2. Download

    Get picodeck.uf2 from the v0.6.0 release.

    Download picodeck.uf2

    Other files and release notes

  3. Flash

    Hold BOOTSEL on the Pico Plus 2 W while you connect USB, then copy picodeck.uf2 to the drive that appears. It restarts into the launcher.

  4. Add apps

    Open App Store on the device to install over Wi-Fi, or copy app folders into /apps/ on the SD card.