{
  "generated": "2026-04-01T11:51:55Z",
  "apps": [
    {
      "id": "bootloader",
      "name": "TBD Bootloader",
      "description": "Custom bootloader with boot menu for selecting and flashing RP2350 apps from SD card",
      "author": {
        "name": "dadamachines",
        "github": "dadamachines"
      },
      "license": "MIT",
      "tier": "system",
      "category": "system",
      "tags": [
        "bootloader",
        "boot-menu",
        "system"
      ],
      "sdFilename": "BOOT2350.uf2",
      "alwaysInstalled": true,
      "releases": [
        {
          "version": "1.1.0",
          "firmwareCompat": "0.4",
          "date": "2026-03-23",
          "sha256": "e3c5af9c013c2dbff4e179c112c6237d4720e2fe95c095b24b3cc45002fa89b7",
          "size": 14336,
          "changelog": "Initial seed binary (v1.1 bootloader with boot menu)",
          "cdnPath": "apps/bootloader/bootloader-1.1.0.uf2"
        }
      ]
    },
    {
      "id": "debug-probe",
      "name": "Debug Probe",
      "description": "CMSIS-DAP debug probe for flashing STM32 UI firmware via SWD",
      "author": {
        "name": "dadamachines",
        "github": "dadamachines"
      },
      "license": "MIT",
      "tier": "system",
      "category": "utility",
      "tags": [
        "debug",
        "swd",
        "cmsis-dap",
        "openocd",
        "stm32"
      ],
      "sdFilename": "dbg_prb.uf2",
      "alwaysInstalled": true,
      "releases": [
        {
          "version": "1.0.0",
          "firmwareCompat": "0.4",
          "date": "2026-03-23",
          "sha256": "7a935d0ab1440fdaeae1bd17122d56f563c9963d6093c9688ba9f36b0f7cb2c6",
          "size": 122880,
          "changelog": "Initial seed binary",
          "cdnPath": "apps/debug-probe/debug-probe-1.0.0.uf2"
        }
      ]
    },
    {
      "id": "doom",
      "name": "Doom",
      "description": "Doom (1993) running on the TBD-16 RP2350 with OPL music and sound through the P4 codec",
      "author": {
        "name": "dadamachines",
        "github": "dadamachines"
      },
      "repo": "https://github.com/dadamachines/dada-tbd-doom",
      "license": "GPL-2.0",
      "tier": "official",
      "category": "utility",
      "tags": [
        "game",
        "doom",
        "retro"
      ],
      "sdFilename": "doom.uf2",
      "releases": [
        {
          "version": "1.0.0",
          "firmwareCompat": "0.4",
          "date": "2026-03-28",
          "sha256": "dc0806337dbe4c65ec0f5c6eab9255090bbc9c733ec0fded7469ff46331ee5aa",
          "size": 527360,
          "changelog": "Initial release — Doom on TBD-16 with OPL music, 15 dithering modes, OLED display",
          "cdnPath": "apps/doom/doom-1.0.0.uf2"
        }
      ]
    },
    {
      "id": "flash-nuke",
      "name": "Flash Nuke",
      "description": "Erases the RP2350 flash memory — use to factory-reset the Pico",
      "author": {
        "name": "Gadgetoid / Raspberry Pi",
        "github": "Gadgetoid",
        "url": "https://github.com/Gadgetoid/pico-universal-flash-nuke"
      },
      "repo": "https://github.com/Gadgetoid/pico-universal-flash-nuke",
      "license": "BSD-3-Clause",
      "tier": "system",
      "category": "system",
      "tags": [
        "flash",
        "erase",
        "reset",
        "nuke",
        "system"
      ],
      "releases": [
        {
          "version": "2.0.0",
          "firmwareCompat": "0.4",
          "date": "2026-03-24",
          "sha256": "6844e23a76f7be4d2dc1b94657db0a3db6f17e44e47ededbb95ff7663e83e6ea",
          "size": 27136,
          "changelog": "Rebuilt with PICO_COPY_TO_RAM — works with Picoboot WebUSB (App Manager) and BOOTSEL drag-and-drop",
          "cdnPath": "apps/flash-nuke/flash-nuke-2.0.0.uf2"
        },
        {
          "version": "1.0.0",
          "firmwareCompat": "0.4",
          "date": "2026-03-23",
          "sha256": "3e26888f1393bee4fd0cc6a5191be470910c838feab751cba6c5fa254e9131b6",
          "size": 28160,
          "changelog": "Initial seed binary (PICO_NO_FLASH — BOOTSEL only, not compatible with Picoboot WebUSB)",
          "cdnPath": "apps/flash-nuke/flash-nuke-1.0.0.uf2"
        }
      ]
    },
    {
      "id": "game",
      "name": "Game",
      "description": "Game demo for the RP2350",
      "author": {
        "name": "dadamachines",
        "github": "dadamachines"
      },
      "license": "MIT",
      "tier": "official",
      "category": "utility",
      "tags": [
        "game",
        "demo"
      ],
      "sdFilename": "game.uf2",
      "releases": [
        {
          "version": "1.0.0",
          "firmwareCompat": "0.4",
          "date": "2026-03-23",
          "sha256": "defd57f9d44e9473851888a04ad30e0163849b788debb99ba688d76ff684f35d",
          "size": 33792,
          "changelog": "Initial seed binary",
          "cdnPath": "apps/game/game-1.0.0.uf2"
        }
      ]
    },
    {
      "id": "groovebox",
      "name": "Groovebox",
      "description": "16-track drum machine and sequencer with Ableton Link support",
      "author": {
        "name": "Per-Olov Jernberg",
        "github": "possan",
        "url": "https://possan.codes/"
      },
      "repo": "https://github.com/possan/tbd-pico-seq3",
      "license": "MIT",
      "tier": "official",
      "category": "instrument",
      "tags": [
        "sequencer",
        "drums",
        "midi",
        "link"
      ],
      "sdFilename": "groovebox.uf2",
      "releases": [
        {
          "version": "0.4.1",
          "firmwareCompat": "0.4",
          "date": "2026-03-23",
          "sha256": "906f3a60aa97e944e6248747f52cbde022a4e70785bf9d010dfcfbdabb4387ff",
          "size": 808960,
          "changelog": "Initial seed binary matching firmware v0.4.1",
          "cdnPath": "apps/groovebox/groovebox-0.4.1.uf2"
        }
      ]
    },
    {
      "id": "tusb-msc-pico",
      "name": "USB Mass Storage (Pico)",
      "description": "Exposes the RP2350 SD card as a USB mass storage device for file transfer",
      "author": {
        "name": "dadamachines",
        "github": "dadamachines"
      },
      "license": "MIT",
      "tier": "system",
      "category": "utility",
      "tags": [
        "usb",
        "mass-storage",
        "sd-card",
        "file-transfer"
      ],
      "sdFilename": "tusb_msc.uf2",
      "alwaysInstalled": true,
      "releases": [
        {
          "version": "3.1.0",
          "target": "flash",
          "firmwareCompat": "0.4",
          "date": "2026-03-24",
          "sha256": "d7d77670b95b0b6a96c418c8356ed78366e80339507ae8b19fba723c5a0eaff3",
          "size": 236544,
          "changelog": "Flash-targeted with OLED feedback. For Picoboot WebUSB flashing.",
          "cdnPath": "apps/tusb-msc-pico/tusb-msc-pico-3.1.0.uf2"
        },
        {
          "version": "3.0.0",
          "target": "ram",
          "firmwareCompat": "0.4",
          "date": "2026-03-24",
          "sha256": "5da03adf0a20c3802f39c00ed9e71454440ad444d5e77bd6dd1a8728dbac720f",
          "size": 146944,
          "changelog": "OLED feedback: boot/mounting/ready/eject status. PICO_NO_FLASH fix for stable startup.",
          "cdnPath": "apps/tusb-msc-pico/tusb-msc-pico-3.0.0.uf2"
        },
        {
          "version": "2.0.0",
          "target": "flash",
          "firmwareCompat": "0.4",
          "date": "2026-03-23",
          "sha256": "feb1943c9e6268b8ba1748d682b3ad3c818a720cbffd36b15768b9cb26145963",
          "size": 208384,
          "changelog": "Flash-targeted (0x10000000). For Picoboot WebUSB flashing.",
          "cdnPath": "apps/tusb-msc-pico/tusb-msc-pico-2.0.0.uf2"
        },
        {
          "version": "1.0.0",
          "target": "ram",
          "firmwareCompat": "0.4",
          "date": "2026-03-23",
          "sha256": "d9b421c786cfadd8d03ab843718a9f3d785f828ffc1fdbb141935898030592d7",
          "size": 168960,
          "changelog": "RAM-targeted (0x20000000). For SD card — bootloader loads into RAM.",
          "cdnPath": "apps/tusb-msc-pico/tusb-msc-pico-1.0.0.uf2"
        }
      ]
    },
    {
      "id": "ui-test",
      "name": "UI Test",
      "description": "Default TBD-16 app — MIDI routing, OLED display, NeoPixels, encoder/button UI, and SPI API to the ESP32-P4 DSP engine",
      "author": {
        "name": "dadamachines",
        "github": "dadamachines"
      },
      "license": "LGPL-3.0",
      "tier": "system",
      "category": "utility",
      "tags": [
        "ui",
        "midi",
        "oled",
        "neopixel",
        "default"
      ],
      "sdFilename": "ui_test.uf2",
      "alwaysInstalled": true,
      "releases": [
        {
          "version": "1.0.0",
          "firmwareCompat": "0.4",
          "date": "2026-03-24",
          "sha256": "ba826313d2746c792c0c0a7cfa3946862c1bb9796b27e58e91a09aea54e32ae6",
          "size": 351232,
          "target": "flash",
          "changelog": "Initial release — built from dada-tbd-app-template main branch",
          "cdnPath": "apps/ui-test/ui-test-1.0.0.uf2"
        }
      ]
    }
  ]
}
