{
  "name": "BuildDeck",
  "description": "Machine-readable BuildDeck manifests. Treat every draft as incomplete or unconfirmed.",
  "disclosure": "Some links are affiliate links. If you buy through them, BuildDeck may earn a commission at no extra cost to you.",
  "builds": [
    {
      "slug": "beepy",
      "title": "Beepy",
      "author": "SQFMI",
      "sourceUrls": [
        "https://beepy.sqfmi.com/",
        "https://github.com/beeper/beepy"
      ],
      "summary": "A pocket Linux handheld: Raspberry Pi Zero 2 W, BlackBerry keyboard and a sunlight-readable Sharp Memory LCD.",
      "story": "Beepy started as a community-funded hardware project and grew a following because it does one thing well: an always-readable, low-power terminal you can carry in a pocket.",
      "status": "draft",
      "difficulty": "Easy (kit) / Medium (from parts)",
      "parts": [
        {
          "id": "rpi-zero2w",
          "name": "Raspberry Pi Zero 2 W",
          "qty": 1
        },
        {
          "id": "sharp-memlcd",
          "name": "Sharp Memory LCD 2.7-inch 400x240",
          "qty": 1,
          "note": "Included on the Beepy board"
        },
        {
          "id": "bb-keyboard",
          "name": "BlackBerry Q10/Q20-style keyboard",
          "qty": 1,
          "note": "Included on the Beepy board"
        }
      ],
      "printed": [],
      "verifyNotes": "Confirm current board revision, battery spec and whether the official case files are published.",
      "formFactor": "Handheld",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/beepy/"
    },
    {
      "slug": "hackberry-pi-cm5",
      "title": "Hackberry Pi CM5",
      "author": "ZitaoTech",
      "sourceUrls": [
        "https://github.com/ZitaoTech/HackberryPiCM5",
        "https://github.com/ZitaoTech/HackberryPiCM5/tree/main/Assembly"
      ],
      "summary": "A Raspberry Pi Compute Module 5 handheld with a 4-inch square touchscreen, an original BlackBerry keyboard and a 5,000mAh battery.",
      "story": "Zitao designed the Hackberry Pi CM5 as a compact Linux computer that invites owners to explore its hardware and software. The base device combines a custom carrier, metal plates and a printable middle section, while the buyer installs the CM5.",
      "status": "draft",
      "difficulty": "Easy (base unit) / Hard (from design files)",
      "parts": [
        {
          "id": "hackberry-cm5-base",
          "name": "Hackberry Pi CM5 base unit",
          "qty": 1,
          "note": "Repository README: base unit includes the carrier, 3.95-inch 720×720 touchscreen, 5,000mAh LiPo and Q10/Q20/9900 keyboard variant."
        },
        {
          "id": "cm5",
          "name": "Raspberry Pi Compute Module 5",
          "qty": 1,
          "note": "Repository README and Assembly guide: the base unit is sold without the CM5."
        },
        {
          "id": "cm5-passive-heatsink",
          "name": "Passive heatsink for Raspberry Pi CM5",
          "qty": 1,
          "note": "Assembly guide requires a passive heatsink and thermal silicone pad; exact heatsink model is not specified."
        }
      ],
      "printed": [
        {
          "name": "Middle section, display support and keyboard-specific shell parts",
          "note": "STL and STEP files are in the repository's 3D-Modell directory; repository license is MIT."
        }
      ],
      "verifyNotes": "Official README, assembly guide, 3D-model index, MIT license and current repository state rechecked at source commit 479b852055ee31c6611b50ff1d67851e9b29ee4a on 2026-10-26. It remains draft because the exact passive heatsink and thermal-pad specifications are not stated, and keyboard/base-unit contents vary by version.",
      "formFactor": "Handheld",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/hackberry-pi-cm5/"
    },
    {
      "slug": "recovery-kit",
      "title": "Recovery Kit (Pelican case deck)",
      "author": "Jay Doscher",
      "sourceUrls": [
        "https://github.com/jdoscher/Back7co-Raspberry_Pi_Recovery_Kit",
        "https://www.reddit.com/r/cyberDeck/comments/dt9rt5/i_made_the_raspberry_pi_recovery_kit_a_cyberdeck/"
      ],
      "summary": "The case-style cyberdeck that started a wave of copies: a Raspberry Pi and touchscreen inside a rugged Pelican case.",
      "story": "A prepared, off-grid computer in a hard case. Many later decks borrow its layout: screen in the lid, keyboard and ports in the base.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "rpi4",
          "name": "Raspberry Pi 4 Model B",
          "qty": 1
        },
        {
          "id": "ws-10in",
          "name": "10.1-inch HDMI touchscreen, 1280x800",
          "qty": 1
        },
        {
          "id": "pelican1200",
          "name": "Pelican 1200 case (or compatible)",
          "qty": 1
        },
        {
          "id": "mini-bt-kbd",
          "name": "Compact 60% mechanical keyboard",
          "qty": 1
        },
        {
          "id": "ws-ups-hat",
          "name": "Waveshare UPS HAT (18650)",
          "qty": 1
        },
        {
          "id": "m25-kit",
          "name": "M2.5 brass standoff + screw kit",
          "qty": 1
        }
      ],
      "printed": [
        {
          "name": "Lid screen bezel",
          "note": "Original used custom panels; verify source and license"
        },
        {
          "name": "Base deck plate",
          "note": "Verify"
        }
      ],
      "verifyNotes": "Original build used custom parts. Treat this as a 'build-alike' and label it so.",
      "formFactor": "Case deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/recovery-kit/"
    },
    {
      "slug": "uconsole",
      "title": "ClockworkPi uConsole",
      "author": "ClockworkPi",
      "sourceUrls": [
        "https://www.clockworkpi.com/",
        "https://github.com/clockworkpi/uConsole"
      ],
      "summary": "A commercial kit deck with a 5-inch screen and built-in keyboard, running a Compute Module.",
      "story": "The easiest way into decks: a kit you assemble in an evening, with a big mod community.",
      "status": "draft",
      "difficulty": "Easy",
      "parts": [
        {
          "id": "cm4",
          "name": "Raspberry Pi Compute Module 4",
          "qty": 1,
          "note": "Kit is sold with or without a module; check options"
        }
      ],
      "printed": [
        {
          "name": "Community mod parts (stands, covers)",
          "note": "Many on Printables; check each license"
        }
      ],
      "verifyNotes": "Kit contents and supported modules change; confirm on vendor page.",
      "formFactor": "Handheld",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/uconsole/"
    },
    {
      "slug": "hyper-pi",
      "title": "Hyper-pi",
      "author": "Rop Gonggrijp",
      "sourceUrls": [
        "https://github.com/ropg/hyper-pi"
      ],
      "summary": "A pocket-sized Raspberry Pi Zero handheld centered on Pimoroni's 4-inch HyperPixel touchscreen, with a rechargeable 2,500mAh battery.",
      "story": "Rop Gonggrijp built Hyper-pi as an experiment in a small, owner-controlled Linux communicator. The repository documents the tabletop prototype, software setup and printable enclosure files without pretending it can match a commercial phone.",
      "status": "verified",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "hyperpixel4",
          "name": "Pimoroni HyperPixel 4.0 Touch",
          "qty": 1,
          "note": "Named in the repository README under Hardware > Buying the components."
        },
        {
          "id": "rpi-zero-wh",
          "name": "Raspberry Pi Zero WH",
          "qty": 1,
          "note": "The source specifies a Pi Zero WH with a pre-soldered header, not a Zero 2 W."
        },
        {
          "id": "sandisk-extreme-pro-64gb",
          "name": "SanDisk Extreme PRO 64GB microSDXC card",
          "qty": 1,
          "note": "The source names a SanDisk Extreme PRO 64GB microSD card."
        },
        {
          "id": "adafruit-lipo-2500",
          "name": "Adafruit 3.7V 2500mAh lithium-polymer battery",
          "qty": 1,
          "note": "The source links Adafruit product 328."
        },
        {
          "id": "powerboost",
          "name": "Adafruit PowerBoost 1000C",
          "qty": 1,
          "note": "The source specifies the Adafruit PowerBoost 1000C."
        },
        {
          "id": "eg1248-switch",
          "name": "E-Switch EG1248 slide switch",
          "qty": 1,
          "note": "The source links the E-Switch EG1248 slide switch."
        },
        {
          "id": "thin-stranded-wire",
          "name": "Thin stranded insulated hookup wire",
          "qty": 1,
          "note": "The creator requires thin insulated multicore wire but does not specify gauge or brand."
        }
      ],
      "printed": [
        {
          "name": "Top half, bottom half and microSD-card extender",
          "note": "STL and FreeCAD files are in the repository's case/CAD directory; repository license is MIT."
        }
      ],
      "verifyNotes": "Official README, component links and repository tree checked on 2026-10-24. Every creator-named required component is represented; generic hookup wire is explicitly unspecified by the source, and no additional fasteners are required by the published assembly.",
      "verifiedOn": "2026-10-24",
      "formFactor": "Handheld",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/hyper-pi/"
    },
    {
      "slug": "little-luggable",
      "title": "Little Luggable",
      "author": "Jason Morley",
      "sourceUrls": [
        "https://github.com/jbmorley/little-luggable",
        "https://github.com/jbmorley/little-luggable/blob/main/docs/docs/components/compute/assembly/index.md",
        "https://github.com/jbmorley/little-luggable/blob/main/docs/docs/components/keyboard/assembly/index.md",
        "https://github.com/jbmorley/little-luggable/tree/main/manufacture"
      ],
      "summary": "A Pelican 1150 cyberdeck with a Raspberry Pi, the original 7-inch Touch Display, battery-backed power and a custom 64-key wireless mechanical keyboard.",
      "story": "Jason Morley designed Little Luggable around two fitted modules: a compute panel in the case and a custom keyboard in the lid. The repository publishes PCB, firmware and fabrication files, but its overview now mentions Raspberry Pi 5 while the detailed compute assembly still lists Pi 4, so this manifest remains a draft.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "rpi4",
          "name": "Raspberry Pi 4 Model B",
          "qty": 1,
          "note": "Detailed compute assembly names Pi 4; the overview now says Pi 5, so confirm the current revision."
        },
        {
          "id": "rpi-touch-display-7-v1",
          "name": "Raspberry Pi Touch Display (original 7-inch)",
          "qty": 1,
          "note": "Compute assembly."
        },
        {
          "id": "pijuice-hat",
          "name": "PiJuice HAT",
          "qty": 1,
          "note": "Compute assembly."
        },
        {
          "id": "pijuice-12000mah",
          "name": "PiJuice 12,000mAh battery",
          "qty": 1,
          "note": "Compute assembly."
        },
        {
          "id": "pelican1150",
          "name": "Pelican 1150 Protector Case",
          "qty": 1,
          "note": "README and compute assembly."
        },
        {
          "id": "pelican1150-panel-frame",
          "name": "Pelican 1150 panel frame",
          "qty": 1,
          "note": "Compute assembly."
        },
        {
          "id": "m3-washer",
          "name": "M3 flat washer",
          "qty": 4,
          "note": "Compute assembly."
        },
        {
          "id": "m3-spacer-3mm",
          "name": "M3 spacer, 3mm",
          "qty": 6,
          "note": "Compute assembly."
        },
        {
          "id": "rpi-standoff-11mm",
          "name": "Raspberry Pi standoff set, 11mm",
          "qty": 1,
          "note": "One linked set in the compute assembly."
        },
        {
          "id": "usb-c-keystone-jack",
          "name": "USB-C keystone jack",
          "qty": 2,
          "note": "Compute assembly."
        },
        {
          "id": "rj45-keystone-jack",
          "name": "RJ45 keystone jack",
          "qty": 1,
          "note": "Compute assembly."
        },
        {
          "id": "usb-a-keystone-cable",
          "name": "USB-A keystone extension cable",
          "qty": 1,
          "note": "Compute assembly."
        },
        {
          "id": "nice-nano",
          "name": "nice!nano wireless keyboard controller",
          "qty": 1,
          "note": "Keyboard assembly; revision unspecified."
        },
        {
          "id": "rama-grid-set-a-kuro",
          "name": "Rama Works GRID Set A keycaps, Kuro",
          "qty": 46,
          "note": "Keyboard assembly."
        },
        {
          "id": "rama-grid-set-b-noct",
          "name": "Rama Works GRID Set B keycaps, Noct",
          "qty": 18,
          "note": "Keyboard assembly."
        },
        {
          "id": "m3-spacer-5mm",
          "name": "M3 spacer, 5mm",
          "qty": 7,
          "note": "Keyboard assembly."
        },
        {
          "id": "tactile-button-6mm",
          "name": "6mm tactile push button",
          "qty": 1,
          "note": "Keyboard assembly; exact model unspecified."
        },
        {
          "id": "kailh-mx-hotswap-socket",
          "name": "Kailh MX hotswap socket",
          "qty": 64,
          "note": "Keyboard assembly."
        },
        {
          "id": "lipo-90mah",
          "name": "3.7V 90mAh lithium-polymer battery",
          "qty": 1,
          "note": "Keyboard assembly; dimensions and connector unspecified."
        },
        {
          "id": "m3-knurled-insert-nut",
          "name": "M3 knurled insert nut",
          "qty": 5,
          "note": "Keyboard assembly; verify dimensions."
        },
        {
          "id": "1n4148-through-hole",
          "name": "1N4148 through-hole switching diode",
          "qty": 64,
          "note": "Keyboard assembly."
        },
        {
          "id": "latching-button-12mm",
          "name": "12mm latching push-button switch",
          "qty": 1,
          "note": "Keyboard assembly; electrical configuration unspecified."
        },
        {
          "id": "m3-low-profile-screw",
          "name": "M3 low-profile screw",
          "qty": 7,
          "note": "Keyboard assembly explicitly leaves length unknown."
        },
        {
          "id": "m3-nut",
          "name": "M3 hex nut",
          "qty": 2,
          "note": "Keyboard assembly."
        },
        {
          "id": "usb-c-right-angle-adapter",
          "name": "90-degree USB-C adapter",
          "qty": 1,
          "note": "Keyboard assembly."
        },
        {
          "id": "m25-screw-generic",
          "name": "M2.5 screw",
          "qty": 4,
          "note": "Keyboard assembly; length and head style unspecified."
        },
        {
          "id": "broaching-nut-unspecified",
          "name": "Broaching nut (size unspecified)",
          "qty": 4,
          "note": "Keyboard assembly; dimensions unspecified."
        },
        {
          "id": "m25-spacer-3mm",
          "name": "M2.5 spacer, 3mm",
          "qty": 4,
          "note": "Keyboard assembly."
        },
        {
          "id": "female-dupont-connector",
          "name": "Female Dupont connector",
          "qty": 4,
          "note": "Keyboard assembly; pin count unspecified."
        },
        {
          "id": "cherry-mx-red",
          "name": "Cherry MX Red switch",
          "qty": 64,
          "note": "Keyboard assembly."
        },
        {
          "id": "right-angle-header-2way",
          "name": "Two-position right-angle pin header",
          "qty": 2,
          "note": "Keyboard assembly; pitch unspecified."
        }
      ],
      "printed": [
        {
          "name": "Compute fascia and mounting plate",
          "note": "DXF files are in manufacture/; repository license is CC BY 4.0. The fascia is 3mm acrylic and mounting plate is 1mm aluminium."
        },
        {
          "name": "Keyboard fascia, mounting plate, PCB and mounting brackets",
          "note": "DXF, KiCad and STL sources are published; repository license is CC BY 4.0."
        }
      ],
      "verifyNotes": "Official repository checked on 2026-10-14. Kept as draft because the overview says Raspberry Pi 5 while the detailed compute assembly lists Pi 4, and several keyboard fastener dimensions, header pitch, connector details and the nice!nano revision remain unspecified.",
      "formFactor": "Case deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/little-luggable/"
    },
    {
      "slug": "boostbox",
      "title": "Boostbox",
      "author": "veebch",
      "sourceUrls": [
        "https://github.com/veebch/boostbox"
      ],
      "summary": "A command-line Linux terminal built reversibly inside a Hanimex E300 Super 8 film viewer, using a 7-inch 4:3 display and a compact BM40 keyboard.",
      "story": "veebch turned an obsolete film viewer into a practical terminal while preserving the removed projector parts so the conversion can be reversed. The documented build combines a Raspberry Pi Compute Module 5, an unusual 4:3 panel and keyboard-driven mouse emulation for a deliberately minimal interface.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "cm5",
          "name": "Raspberry Pi Compute Module 5",
          "qty": 1,
          "note": "Repository parts list; the creator says another Linux SBC with HDMI output can also work."
        },
        {
          "id": "hanimex-e300",
          "name": "Hanimex E300 Super 8 film viewer",
          "qty": 1,
          "note": "Repository parts list; this discontinued viewer is the enclosure."
        },
        {
          "id": "claa070ma0acw",
          "name": "Chunghwa CLAA070MA0ACW 7-inch LCD with controller",
          "qty": 1,
          "note": "Repository names the 7-inch CLAA070MA0ACW as the example panel used."
        },
        {
          "id": "mt3608-boost",
          "name": "Adjustable MT3608 DC-DC boost converter module",
          "qty": 1,
          "note": "Repository says an adjustable MT3608 converts 5V to the display's required 9V."
        },
        {
          "id": "bm40-keyboard",
          "name": "KPRepublic BM40 RGB 40% hot-swap keyboard PCB",
          "qty": 1,
          "note": "Repository links the KPRepublic BM40 and uses QMK mouse-emulation keys."
        },
        {
          "id": "ac-5v-supply",
          "name": "Regulated AC-to-5V 3A power supply",
          "qty": 1,
          "note": "Creator specifies an AC-to-5V supply attached to the original switch, or a 5V USB-C PD trigger, but does not name an exact unit."
        }
      ],
      "printed": [],
      "verifyNotes": "Official repository README and parts list rechecked against the verification rubric on 2026-10-26. Kept as draft because the exact 5V supply, CM5 carrier, panel controller and wiring components are not specified, and the repository explicitly allows substitutions.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/boostbox/"
    },
    {
      "slug": "penkesu-computer",
      "title": "Penkesu Computer",
      "author": "Penk Chen",
      "sourceUrls": [
        "https://github.com/penk/penkesu"
      ],
      "summary": "A clamshell handheld built around a Raspberry Pi Zero 2 W, a wide 7.9-inch touchscreen and a 48-key low-profile ortholinear keyboard.",
      "story": "Penk Chen designed Penkesu as a compact, retro-style homebrew computer with deliberately minimal internal electronics. The repository publishes the bill of materials, enclosure files, keyboard firmware and assembly notes needed to reproduce or remix it.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "waveshare-7-9-hdmi",
          "name": "Waveshare 7.9-inch HDMI LCD",
          "qty": 1,
          "note": "Named and linked in the repository BOM."
        },
        {
          "id": "adafruit-hdmi-right-angle-3550",
          "name": "Adafruit DIY HDMI right-angle adapter",
          "qty": 1,
          "note": "Exact Adafruit product linked in the repository BOM."
        },
        {
          "id": "adafruit-mini-hdmi-3552",
          "name": "Adafruit DIY mini-HDMI adapter",
          "qty": 1,
          "note": "Exact Adafruit product linked in the repository BOM."
        },
        {
          "id": "adafruit-hdmi-ribbon-3561",
          "name": "Adafruit DIY HDMI 20cm ribbon cable",
          "qty": 1,
          "note": "The BOM specifies the 20cm ribbon."
        },
        {
          "id": "gba-sp-hinges",
          "name": "Game Boy Advance SP replacement hinges",
          "qty": 1,
          "note": "One replacement hinge pair; the repository links a marketplace listing."
        },
        {
          "id": "m2x6-screws",
          "name": "M2 × 6mm machine screws",
          "qty": 6,
          "note": "Use 8 if securing the keyboard to the bottom tray."
        },
        {
          "id": "m2x6-heat-inserts",
          "name": "M2 × 6mm heat-set threaded inserts",
          "qty": 6,
          "note": "Use 8 if adding inserts at the keyboard tray front corners."
        },
        {
          "id": "rpi-zero2w",
          "name": "Raspberry Pi Zero 2 W",
          "qty": 1,
          "note": "The repository BOM names the Zero 2 W."
        },
        {
          "id": "lipo-606090",
          "name": "3.7V 606090 LiPo battery",
          "qty": 1,
          "note": "Creator specifies 606090 or similar size, without capacity or connector details."
        },
        {
          "id": "powerboost",
          "name": "Adafruit PowerBoost 1000C",
          "qty": 1,
          "note": "Exact Adafruit PowerBoost 1000C linked in the BOM."
        },
        {
          "id": "mini-spdt-slide-switch",
          "name": "Miniature SPDT slide switch",
          "qty": 1,
          "note": "Required by the wiring diagram; creator does not specify an exact model."
        },
        {
          "id": "kailh-choc-v1-switch",
          "name": "Kailh Choc v1 low-profile switch",
          "qty": 48,
          "note": "The BOM specifies Kailh Choc v1 switches."
        },
        {
          "id": "mbk-choc-keycap",
          "name": "MBK Choc low-profile keycap",
          "qty": 48,
          "note": "The BOM specifies MBK Choc low-profile keycaps."
        },
        {
          "id": "1n4148-through-hole",
          "name": "1N4148 through-hole switching diode",
          "qty": 48,
          "note": "The BOM specifies one 1N4148 diode per key."
        },
        {
          "id": "sparkfun-pro-micro",
          "name": "SparkFun Pro Micro (ATmega32U4)",
          "qty": 1,
          "note": "The BOM says Arduino Pro Micro; listed product is a compatible original-design board."
        },
        {
          "id": "koda-keyboard-pcb",
          "name": "Koda 48-key keyboard PCB",
          "qty": 1,
          "note": "Fabricate from the linked Koda Gerber archive; keyboard design is CC BY-NC-SA 4.0."
        }
      ],
      "printed": [
        {
          "name": "Penkesu clamshell enclosure set",
          "note": "Six STL files plus a STEP assembly are in the official repository; repository license is MIT."
        }
      ],
      "verifyNotes": "Official repository README, BOM, file tree and license checked on 2026-10-15. Kept as draft because the battery capacity and connector, power-switch model, PCB fabrication choices and some assembly consumables are not fully specified.",
      "formFactor": "Clamshell",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/penkesu-computer/"
    },
    {
      "slug": "pimech-deck",
      "title": "PiMech Deck",
      "author": "Rich / Brickbots",
      "sourceUrls": [
        "https://github.com/brickbots/pimech_deck",
        "https://github.com/brickbots/pimech_deck/blob/main/docs/bom.md",
        "https://github.com/brickbots/pimech_deck/blob/main/docs/overview.md"
      ],
      "summary": "A Raspberry Pi Zero W cyberdeck with a hinged 7-inch display, a 36-key Choc keyboard, an internal USB hub and a 4,500mAh battery.",
      "story": "Brickbots built PiMech around a laser-cut steel spine with segmented printed enclosures, keeping the machine thin while allowing it to fold closed. The repository includes a BOM, hand-wiring notes, build guidance, printable case parts and the plate drawing.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "rpi-zero-w",
          "name": "Raspberry Pi Zero W",
          "qty": 1,
          "note": "The source BOM names the original Pi Zero W."
        },
        {
          "id": "adafruit-kippah-2454",
          "name": "Adafruit DPI Kippah LCD interface",
          "qty": 1,
          "note": "Exact Adafruit product 2454 linked in the BOM."
        },
        {
          "id": "adafruit-7in-lcd-2353",
          "name": "Adafruit 7-inch 800×480 LCD panel",
          "qty": 1,
          "note": "Exact non-touch Adafruit panel linked in the BOM."
        },
        {
          "id": "adafruit-40pin-fpc-2098",
          "name": "Adafruit 40-pin FPC extension board and 200mm cable",
          "qty": 1,
          "note": "Exact extension board and 200mm cable linked in the BOM."
        },
        {
          "id": "usb-otg-hub-3port",
          "name": "Three-port USB OTG hub",
          "qty": 1,
          "note": "Exact marketplace listing linked by the creator; manufacturer is not stated."
        },
        {
          "id": "lipo-4500mah",
          "name": "3.7V 4500mAh LiPo battery",
          "qty": 1,
          "note": "The creator warns builders to check JST polarity before connection."
        },
        {
          "id": "powerboost",
          "name": "Adafruit PowerBoost 1000C",
          "qty": 1,
          "note": "Exact Adafruit PowerBoost 1000C linked in the BOM."
        },
        {
          "id": "ss12f15g3-switch",
          "name": "SS12F15G3 SPDT slide switch",
          "qty": 1,
          "note": "Exact marketplace switch model linked in the BOM."
        },
        {
          "id": "kailh-choc-v1-switch",
          "name": "Kailh Choc v1 low-profile switch",
          "qty": 36,
          "note": "The BOM specifies Choc v1 low-profile switches."
        },
        {
          "id": "mbk-choc-keycap",
          "name": "MBK Choc low-profile keycap",
          "qty": 36,
          "note": "The BOM specifies MBK Choc keycaps."
        },
        {
          "id": "1n4148-through-hole",
          "name": "1N4148 through-hole switching diode",
          "qty": 36,
          "note": "The BOM specifies through-hole 1N4148 diodes."
        },
        {
          "id": "sparkfun-pro-micro",
          "name": "SparkFun Pro Micro (ATmega32U4)",
          "qty": 1,
          "note": "The creator says any Pro Micro-compatible board will do; verify voltage and USB connector."
        },
        {
          "id": "laser-cut-steel-plate-1-2mm",
          "name": "Custom 1.2mm laser-cut steel plate",
          "qty": 1,
          "note": "Cut case/plate_v01.dxf in millimetres; overview recommends about 1.2mm thickness."
        },
        {
          "id": "brass-rod-2-4mm",
          "name": "2.4mm brass rod",
          "qty": 1,
          "note": "Creator specifies 2.4mm rod but not the required length."
        },
        {
          "id": "m2-m25-fasteners",
          "name": "M2 and M2.5 screws with heat-set inserts",
          "qty": 1,
          "note": "Assortment; creator does not provide counts or exact lengths."
        },
        {
          "id": "wire-headers-heatshrink",
          "name": "Hookup wire, pin headers and heat-shrink tubing",
          "qty": 1,
          "note": "Assorted assembly supplies; source does not specify quantities or dimensions."
        }
      ],
      "printed": [
        {
          "name": "PiMech segmented enclosure and display hinge set",
          "note": "Official case directory contains the STL parts and plate DXF. Repository license is CC BY-NC-SA 4.0: attribution, noncommercial use and share-alike terms apply; prints may not be sold under this license."
        }
      ],
      "verifyNotes": "Official README, BOM, build overview, file tree and license checked on 2026-10-15. Kept as draft because the BOM omits fastener counts, wire dimensions, Pro Micro variant, hinge-rod length and manufacturers for the USB hub and battery.",
      "formFactor": "Clamshell",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/pimech-deck/"
    },
    {
      "slug": "pwnpal",
      "title": "The PwnPal",
      "author": "Shlucus",
      "sourceUrls": [
        "https://github.com/Shlucus/ThePwnPal",
        "https://github.com/Shlucus/ThePwnPal/blob/main/docs/guide.md"
      ],
      "summary": "A pocket-sized Raspberry Pi 4 penetration-testing deck with a 3.5-inch touchscreen, a 5,000mAh battery board and a dual-band USB Wi-Fi adapter.",
      "story": "Shlucus built the PwnPal as a standalone Kali Linux workstation for authorized security testing on the go. The repository provides an explicit component table and a step-by-step assembly and software guide, including display and Wi-Fi driver notes.",
      "status": "verified",
      "verifiedOn": "2026-10-19",
      "difficulty": "Medium",
      "parts": [
        {
          "id": "rpi4",
          "name": "Raspberry Pi 4 Model B",
          "qty": 1,
          "note": "README component table specifies the 8GB Raspberry Pi 4 Model B."
        },
        {
          "id": "ws-35-rpi-lcd-c",
          "name": "Waveshare 3.5-inch RPi LCD (C)",
          "qty": 1,
          "note": "README component table and guide specify the Waveshare 3.5-inch RPi LCD (C)."
        },
        {
          "id": "pisugar-s-plus",
          "name": "PiSugar S Plus battery board",
          "qty": 1,
          "note": "README component table and guide specify the PiSugar S Plus."
        },
        {
          "id": "alfa-awus036acs",
          "name": "ALFA AWUS036ACS USB Wi-Fi adapter",
          "qty": 1,
          "note": "README component table specifies the ALFA AWUS036ACS."
        },
        {
          "id": "weiyixing-rpi4-cooling-case",
          "name": "WEIYIXING aluminum cooling case for Raspberry Pi 4",
          "qty": 1,
          "note": "Optional cooling case in the README; the guide explains the display-clearance issue."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README and assembly guide checked on 2026-10-19. The creator provides an explicit required component table and identifies the cooling case as optional; a printable enclosure is not required for this build.",
      "formFactor": "Handheld",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/pwnpal/"
    },
    {
      "slug": "stardeck",
      "title": "Stardeck Raspberry Pi Cyberdeck",
      "author": "YodaheWondimu",
      "sourceUrls": [
        "https://github.com/YodaheWondimu/Stardeck",
        "https://github.com/YodaheWondimu/Stardeck/blob/main/BOM.csv",
        "https://github.com/YodaheWondimu/Stardeck/tree/main/cad"
      ],
      "summary": "A compact Raspberry Pi 4 cyberdeck built around a 5-inch Elecrow touch display, 60% keyboard and internal USB-C power bank.",
      "story": "Stardeck packages a conventional Raspberry Pi workstation into a purpose-designed printed shell. The repository documents a completed physical build with a BOM, assembly notes, printer settings and enclosure STLs.",
      "status": "draft",
      "difficulty": "Intermediate",
      "parts": [
        {
          "id": "rpi4",
          "name": "Raspberry Pi 4 Model B",
          "qty": 1,
          "note": "BOM specifies Raspberry Pi 4 Model B (8GB); the shared catalog item covers the board family."
        },
        {
          "id": "elecrow-5in-hdmi-display-b",
          "name": "Elecrow 5-inch HDMI display (B)",
          "qty": 1
        },
        {
          "id": "mini-bt-kbd",
          "name": "Compact 60% mechanical keyboard",
          "qty": 1,
          "note": "Source specifies the MageGee TS91 compact keyboard."
        },
        {
          "id": "anker-737-power-bank",
          "name": "Anker 737 Power Bank (PowerCore 24K)",
          "qty": 1
        },
        {
          "id": "samsung-fit-plus-64gb",
          "name": "Samsung FIT Plus 64GB USB flash drive",
          "qty": 1
        },
        {
          "id": "microsd-64gb-a2",
          "name": "64GB A2 microSDXC card",
          "qty": 1
        },
        {
          "id": "micro-hdmi-right-angle",
          "name": "Micro-HDMI right-angle adapter",
          "qty": 1
        },
        {
          "id": "stardeck-wrist-strap",
          "name": "Camera wrist strap with 1/4-inch mount",
          "qty": 1,
          "note": "Optional carrying hardware in the BOM."
        }
      ],
      "printed": [
        {
          "name": "Stardeck enclosure STL set",
          "note": "Five STL files are linked in the repository hardware/stl directory. No project license is declared; link only and obtain permission before redistribution or commercial printing."
        }
      ],
      "verifyNotes": "Checked BOM.csv, README, printer settings and the enclosure file index at source commit 12177e2 on 2026-10-19. Kept as draft because the source repository has no license and product revisions can affect enclosure fit.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/stardeck/"
    },
    {
      "slug": "tinycorder",
      "title": "Tinycorder Environmental Data Logger",
      "author": "Egokitek",
      "sourceUrls": [
        "https://github.com/Egokitek/Tinycorder",
        "https://github.com/Egokitek/Tinycorder/blob/a584f0932e5e337202a9bf4de502ccac8495705b/BOM.xls",
        "https://github.com/Egokitek/Tinycorder/blob/a584f0932e5e337202a9bf4de502ccac8495705b/Montaje/README.md",
        "https://github.com/Egokitek/Tinycorder/tree/a584f0932e5e337202a9bf4de502ccac8495705b/STL"
      ],
      "summary": "A pocket-size ESP32-C3 data logger with a low-power Sharp Memory LCD and sensors for CO₂, temperature, humidity, pressure and visible-light spectra.",
      "story": "Tinycorder combines environmental sensing and local logging in a small rechargeable instrument. Its repository provides firmware, an Excel BOM, Spanish assembly instructions and printable enclosure files.",
      "status": "verified",
      "difficulty": "Advanced",
      "parts": [
        {
          "id": "xiao-esp32c3",
          "name": "Seeed Studio XIAO ESP32C3",
          "qty": 1,
          "note": "Creator BOM specifies one Seeed Studio XIAO ESP32-C3; assembly guide shows its placement and soldering."
        },
        {
          "id": "sharp-memory-display-2-7",
          "name": "2.7-inch Sharp Memory Display",
          "qty": 1,
          "note": "Creator BOM specifies one 2.7-inch Sharp Memory LCD; assembly guide covers display wiring and mounting."
        },
        {
          "id": "scd40-co2-breakout",
          "name": "SCD40 CO₂ sensor breakout",
          "qty": 1,
          "note": "Creator BOM specifies one SCD40 breakout; assembly guide identifies its connector and placement."
        },
        {
          "id": "as7341-spectral-breakout",
          "name": "AS7341 10-channel light/color sensor breakout",
          "qty": 1,
          "note": "Creator BOM specifies one AS7341 breakout; assembly guide identifies its connector and placement."
        },
        {
          "id": "bmp280-breakout",
          "name": "BMP280 temperature and barometric pressure breakout",
          "qty": 1,
          "note": "Creator BOM specifies one BMP280 breakout; assembly guide identifies its connector and placement."
        },
        {
          "id": "lipo-150mah",
          "name": "3.7V 150mAh LiPo battery",
          "qty": 1,
          "note": "Creator BOM specifies one 150mAh lithium battery; assembly guide covers connection and enclosure placement."
        },
        {
          "id": "perfboard-8x12",
          "name": "8×12-hole prototyping board",
          "qty": 1,
          "note": "Creator BOM specifies one 8×12-hole prototyping board; assembly guide shows trimming and component placement."
        },
        {
          "id": "submini-toggle-switch",
          "name": "Subminiature toggle switch",
          "qty": 1,
          "note": "Creator BOM specifies one subminiature toggle switch; assembly guide covers mounting and wiring."
        },
        {
          "id": "tactile-button-6x6",
          "name": "6×6mm tactile pushbutton",
          "qty": 3,
          "note": "Creator BOM quantity column specifies three 6×6mm tactile buttons; assembly guide shows placement."
        },
        {
          "id": "m3x10-screw",
          "name": "M3×10mm machine screw",
          "qty": 8,
          "note": "Creator assembly guide and enclosure hardware callout specify eight M3×10mm screws."
        }
      ],
      "printed": [
        {
          "name": "Tinycorder enclosure STL set",
          "note": "Four STL files are linked in the repository STL directory. Repository metadata declares GPL-3.0, but no separate hardware/model license notice was found; review scope before redistribution or commercial printing."
        }
      ],
      "verifyNotes": "Verified against the creator repository README, BOM.xls, Spanish assembly guide and STL index at immutable source commit a584f0932e5e337202a9bf4de502ccac8495705b on 2026-10-22. The published BOM, quantity column, wiring/assembly sequence and four enclosure files cover the critical components and fabrication steps. The repository is GPL-3.0; printable-file reuse should preserve that license and source obligations.",
      "verifiedOn": "2026-10-22",
      "formFactor": "Handheld",
      "platform": "Microcontroller",
      "pageUrl": "https://builddeck.dev/builds/tinycorder/"
    },
    {
      "slug": "bumble-berry-pi",
      "title": "Bumble Berry Pi",
      "author": "Sam Cervantes",
      "sourceUrls": [
        "https://github.com/samcervantes/bumble-berry-pi",
        "https://www.youtube.com/watch?v=gBCb1FS4pzc"
      ],
      "summary": "A pocket-size Raspberry Pi handheld with a 4.3-inch touchscreen, Bluetooth keyboard, 37Wh power bank and two-part printed enclosure.",
      "story": "Sam Cervantes designed Bumble Berry Pi as a quick, inexpensive terminal-first handheld built mostly from off-the-shelf parts. The official repository includes a detailed BOM, assembly steps, a video and editable enclosure sources.",
      "status": "draft",
      "difficulty": "Medium",
      "parts": [
        {
          "id": "rpi3b-plus",
          "name": "Raspberry Pi 3 Model B+",
          "qty": 1,
          "note": "Creator's preferred board; Pi 4 and Pi 5 are also listed as compatible."
        },
        {
          "id": "microsd-card",
          "name": "microSD card",
          "qty": 1,
          "note": "The source requires one SD card but does not specify brand or capacity."
        },
        {
          "id": "freenove-43-touch",
          "name": "Freenove 4.3-inch touchscreen display for Raspberry Pi",
          "qty": 1
        },
        {
          "id": "mini-bluetooth-qwerty",
          "name": "Mini Bluetooth QWERTY keyboard",
          "qty": 1
        },
        {
          "id": "usb-power-bank-37wh",
          "name": "37Wh USB power bank",
          "qty": 1
        },
        {
          "id": "usb-c-microusb-u-adapter",
          "name": "USB-C to Micro-USB U-shaped adapter",
          "qty": 1
        },
        {
          "id": "usb-c-right-angle-adapter",
          "name": "90-degree USB-C adapter",
          "qty": 1
        },
        {
          "id": "m3x10-countersunk-bolt",
          "name": "M3×10mm countersunk-head bolt",
          "qty": 6
        },
        {
          "id": "m25x8-socket-bolt",
          "name": "M2.5×8mm socket-head bolt",
          "qty": 4,
          "note": "BOM says 8mm; assembly prose says 6mm."
        },
        {
          "id": "heat-inserts",
          "name": "M2.5/M3 heat-set threaded inserts",
          "qty": 6,
          "note": "Use M3 inserts."
        },
        {
          "id": "kapton-tape-2in-double-sided",
          "name": "2-inch double-sided Kapton tape",
          "qty": 1,
          "note": "About one foot is used."
        }
      ],
      "printed": [
        {
          "name": "Bumble Berry Pi enclosure A and B, version 3",
          "note": "Official STL and editable u3d files are in the repository; GPL-3.0 applies."
        }
      ],
      "verifyNotes": "Official repository, README, STL directory and license checked on 2026-10-21. Kept as draft because the keyboard, power bank, adapters and SD card are not identified by exact manufacturer/model, and the BOM/assembly text disagree on M2.5 bolt length.",
      "formFactor": "Handheld",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/bumble-berry-pi/"
    },
    {
      "slug": "dc34-a7s-cyberdeck",
      "title": "DC34 A7S Cyberdeck",
      "author": "skitz0",
      "sourceUrls": [
        "https://github.com/skitzo2000/DC34-Cyberdeck-by-skitz0",
        "https://github.com/skitzo2000/DC34-Cyberdeck-by-skitz0/blob/main/hardware/backplane/BOM-DECK.md",
        "https://github.com/skitzo2000/DC34-Cyberdeck-by-skitz0/blob/main/hardware/backplane/BOM-SHIELD.md",
        "https://github.com/skitzo2000/DC34-Cyberdeck-by-skitz0/tree/main/hardware/printed-parts"
      ],
      "summary": "A Radxa Cubie A7S handheld with a custom through-hole backplane, 2.8-inch touch display, dedicated RP2040 input controller and swappable radio sockets.",
      "story": "Designed for the DEF CON 34 Maker Village, this deck packages the eight-core Cubie A7S in an eight-part printed chassis. The source project includes fabrication files, a printable guide, a bootable software image and separate deck and backplane bills of materials.",
      "status": "draft",
      "difficulty": "Advanced",
      "parts": [
        {
          "id": "radxa-cubie-a7s",
          "name": "Radxa Cubie A7S",
          "qty": 1
        },
        {
          "id": "microsd-card",
          "name": "microSD card",
          "qty": 1,
          "note": "The guide uses an 8GB card; choose more capacity if rebuilding the image requires it."
        },
        {
          "id": "usb-c-power-bank-generic",
          "name": "USB-C power bank",
          "qty": 1
        },
        {
          "id": "usb-c-power-cable",
          "name": "USB-C power cable",
          "qty": 1
        },
        {
          "id": "a7s-cyberdeck-backplane-pcb",
          "name": "A7S Cyberdeck backplane PCB",
          "qty": 1
        },
        {
          "id": "a7s-mating-header-set",
          "name": "Cubie A7S female mating-header set",
          "qty": 1
        },
        {
          "id": "a7s-radio-socket-header-set",
          "name": "A7S backplane radio-socket header set",
          "qty": 1
        },
        {
          "id": "ili9341-xpt2046-28-display",
          "name": "2.8-inch ILI9341/XPT2046 SPI touch display",
          "qty": 1
        },
        {
          "id": "female-header-1x14-254",
          "name": "1×14 female header, 2.54mm",
          "qty": 1
        },
        {
          "id": "waveshare-rp2040-zero",
          "name": "Waveshare RP2040-Zero",
          "qty": 1
        },
        {
          "id": "tactile-button-6mm",
          "name": "6mm tactile push button",
          "qty": 4,
          "note": "On-board shield buttons."
        },
        {
          "id": "flipper-gpio-female-header-set",
          "name": "Flipper GPIO female-header set",
          "qty": 1
        },
        {
          "id": "ceramic-cap-100nf-tht",
          "name": "100nF through-hole ceramic capacitor",
          "qty": 2
        },
        {
          "id": "pptc-polyfuse-05a-tht",
          "name": "0.5A-hold through-hole resettable polyfuse",
          "qty": 2
        },
        {
          "id": "psp-analog-thumbstick-breakout",
          "name": "PSP-style analog thumbstick breakout",
          "qty": 1
        },
        {
          "id": "ec11-rotary-encoder-module",
          "name": "EC11 rotary encoder with push switch",
          "qty": 1
        },
        {
          "id": "offboard-tactile-pushbutton",
          "name": "Off-board tactile push button",
          "qty": 2
        },
        {
          "id": "m25-kit",
          "name": "M2.5 brass standoff + screw kit",
          "qty": 1,
          "note": "Four standoffs and matching screws are required for the backplane-to-A7S mounting pattern."
        },
        {
          "id": "thin-stranded-wire",
          "name": "Thin stranded insulated hookup wire",
          "qty": 1,
          "note": "Use 24–28AWG stranded silicone hookup wire as specified by this source."
        },
        {
          "id": "heat-shrink-assortment",
          "name": "Heat-shrink tubing assortment",
          "qty": 1
        }
      ],
      "printed": [
        {
          "name": "DC34 A7S Cyberdeck eight-part chassis",
          "note": "Official STL files for the controls, connector support, CPU chassis, deck chassis, faceplate, joystick, internal support and top. Hardware files are CERN-OHL-P-2.0 licensed; retain the notices when redistributing."
        }
      ],
      "verifyNotes": "Checked README, both BOMs, the build-guide index, printable-file index and per-domain license at source commit 217d93f on 2026-10-23. Kept as draft because the source leaves power bank, cable, several input parts and some electrical ratings unspecified; radio modules are optional and excluded. The README mentions blower cooling but neither BOM lists a fan, so cooling hardware remains unconfirmed.",
      "formFactor": "Handheld",
      "platform": "Other Linux board",
      "pageUrl": "https://builddeck.dev/builds/dc34-a7s-cyberdeck/"
    },
    {
      "slug": "radiodeck-gqrx-console",
      "title": "RadioDeck GQRX Hardware Console",
      "author": "vitasam",
      "sourceUrls": [
        "https://github.com/vitasam/RadioDeck",
        "https://github.com/vitasam/RadioDeck/blob/main/Docs/README.md",
        "https://github.com/vitasam/RadioDeck/tree/main/Docs/3D"
      ],
      "summary": "A Raspberry Pi Pico control console for GQRX with a 16×2 display, keypad frequency entry, rotary tuning and dedicated mode/filter switches.",
      "story": "RadioDeck turns GQRX remote control into a tactile radio front panel. Its Pico firmware sends commands through a Python USB-to-TCP bridge while the printed enclosure groups the display, keypad and tuning controls into a compact desktop console.",
      "status": "draft",
      "difficulty": "Intermediate",
      "parts": [
        {
          "id": "raspberry-pi-pico-rp2040",
          "name": "Raspberry Pi Pico (RP2040)",
          "qty": 1
        },
        {
          "id": "lcd1602-pcf8574-i2c",
          "name": "LCD1602 with PCF8574 I2C backpack",
          "qty": 1
        },
        {
          "id": "bidir-level-shifter-33v-5v",
          "name": "3.3V–5V bidirectional logic level shifter",
          "qty": 1
        },
        {
          "id": "resistor-10k-tht",
          "name": "10kΩ through-hole resistor",
          "qty": 8
        },
        {
          "id": "resistor-100k-tht",
          "name": "100kΩ through-hole resistor",
          "qty": 2
        },
        {
          "id": "ceramic-cap-100nf-tht",
          "name": "100nF through-hole ceramic capacitor",
          "qty": 2
        },
        {
          "id": "male-pin-header-254-breakaway",
          "name": "2.54mm breakaway male pin header",
          "qty": 1,
          "note": "Quantity is a build allowance; cut sections to fit because the source does not state a header count."
        },
        {
          "id": "dupont-female-female-wires",
          "name": "Female-to-female DuPont jumper wires",
          "qty": 1,
          "note": "One assortment; individual wire count and length are unspecified."
        },
        {
          "id": "usb-a-microusb-data-cable",
          "name": "USB-A to Micro-USB data cable",
          "qty": 1
        },
        {
          "id": "matrix-keypad-3x4",
          "name": "3×4 matrix keypad",
          "qty": 1
        },
        {
          "id": "ky040-rotary-encoder-module",
          "name": "KY-040 rotary encoder module",
          "qty": 1
        },
        {
          "id": "rs1010-rotary-switch",
          "name": "RS1010-style rotary switch",
          "qty": 2
        },
        {
          "id": "usb2-panel-through-connector",
          "name": "Round USB 2.0 panel-through connector",
          "qty": 1
        },
        {
          "id": "perfboard-8x12",
          "name": "8×12-hole prototyping board",
          "qty": 1,
          "note": "Substitute a 2.54mm prototype board approximately 25×7 holes; the existing indexed board is not an exact size match."
        }
      ],
      "printed": [
        {
          "name": "RadioDeck front, back and stand",
          "note": "Official STL files; credited to Akseli Nikkanen and licensed CC BY-NC 4.0. Noncommercial restriction applies."
        },
        {
          "name": "Knurled rotary-encoder knob",
          "note": "Official repository copy of tsw’s model, licensed CC BY 4.0; retain attribution."
        }
      ],
      "verifyNotes": "Official repository README, hardware BOM, STL index and license were checked on 2026-10-25. Kept as draft because the required host PC/Raspberry Pi and SDR receiver are described functionally but no exact hardware is named; several mechanical/electronic parts are specified only by search phrase, and the recommended 25×7-hole prototype board is not represented by an exact indexed product.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Microcontroller",
      "pageUrl": "https://builddeck.dev/builds/radiodeck-gqrx-console/"
    },
    {
      "slug": "luckfox-pico-plus-cyberdeck",
      "title": "Luckfox Pico Plus Cyberdeck",
      "author": "Tarantado-sys",
      "sourceUrls": [
        "https://github.com/Tarantado-sys/Luckfox-Cyber-Deck"
      ],
      "summary": "A compact serial-terminal deck that pairs a Luckfox Pico Plus Linux board with a Raspberry Pi Pico and a 2-inch ST7789 display. The two boards communicate over UART, with the Pico handling the graphical output.",
      "story": "Tarantado-sys built the LP+ Cyberdeck as a minimal experiment in splitting Linux compute and display duties across two inexpensive boards. The repository publishes the wiring, Pico firmware and Luckfox setup steps even though the project is now unmaintained.",
      "status": "draft",
      "difficulty": "Intermediate",
      "parts": [
        {
          "id": "luckfox-pico-plus",
          "name": "Luckfox Pico Plus (RV1103)",
          "qty": 1,
          "note": "README Hardware Used section names the Luckfox Pico Plus (RV1103)."
        },
        {
          "id": "raspberry-pi-pico-rp2040",
          "name": "Raspberry Pi Pico (RP2040)",
          "qty": 1,
          "note": "README Hardware Used and wiring sections name the original Raspberry Pi Pico (RP2040)."
        },
        {
          "id": "st7789-gmt020-02-7p",
          "name": "2.0-inch ST7789 TFT display (GMT020-02-7P)",
          "qty": 1,
          "note": "README specifies a 2.0-inch GMT020-02-7P 240×320 ST7789 module; other models require code changes."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README, wiring and repository license checked on 2026-10-26. Kept as draft because the creator does not identify the power source, enclosure, interconnect wire or any user-input hardware, and exact board/display revisions may affect fit and firmware.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Other Linux board",
      "pageUrl": "https://builddeck.dev/builds/luckfox-pico-plus-cyberdeck/"
    },
    {
      "slug": "chonky-palmtop",
      "title": "Chonky Palmtop",
      "author": "a8ksh4",
      "sourceUrls": [
        "https://github.com/a8ksh4/chonky-palmtop",
        "https://github.com/a8ksh4/chonky-palmtop/tree/main/Stl%20Files"
      ],
      "summary": "A Raspberry Pi 4 palmtop with a 7-inch touchscreen and a folding Corne keyboard that nests beneath the display. Two large pouch cells and an Amp Ripper power board make it a genuinely portable Linux workstation.",
      "story": "Creator a8ksh4 designed the Chonky Palmtop around components that happened to align in size, then developed a curved slider mechanism to rotate the split keyboard into place. The repository documents the power, USB wiring and chassis design and publishes the printable enclosure set.",
      "status": "draft",
      "difficulty": "Advanced",
      "parts": [
        {
          "id": "rpi4",
          "name": "Raspberry Pi 4 Model B",
          "qty": 1,
          "note": "README materials list specifies a Raspberry Pi 4 with 4GB minimum."
        },
        {
          "id": "ampripper-3000",
          "name": "Amp Ripper 3000 LiPo power board",
          "qty": 1,
          "note": "README power section and materials list name the Amp Ripper 3000."
        },
        {
          "id": "spim08hp-8ah-cell",
          "name": "SPIM08HP 3.7V 8Ah lithium-ion pouch cell",
          "qty": 2,
          "note": "README names two SPIM08HP cells wired in parallel and separately fused."
        },
        {
          "id": "longrunner-7in-touch-b07l6wt77h",
          "name": "Longruner 7-inch HDMI touchscreen",
          "qty": 1,
          "note": "README materials list links the exact 7-inch touchscreen listing."
        },
        {
          "id": "sabrent-4port-usb2-hub-b00l2442h0",
          "name": "Sabrent 4-port USB 2.0 hub",
          "qty": 1,
          "note": "README materials list links the internal USB hub."
        },
        {
          "id": "chonky-friction-hinge-set",
          "name": "Small friction hinge set for Chonky Palmtop",
          "qty": 1,
          "note": "README materials list links one hinge set; individual hinge count is not stated."
        },
        {
          "id": "chonky-bolt-nut-kit",
          "name": "Chonky Palmtop bolt and nut assortment",
          "qty": 1,
          "note": "README names a bolt-and-nut kit without enumerating sizes or counts."
        },
        {
          "id": "chonky-screw-quarter-inch",
          "name": "1/4-inch screws for Chonky Palmtop",
          "qty": 1,
          "note": "README links one pack of 1/4-inch screws; exact count used is not stated."
        },
        {
          "id": "chonky-screw-three-eighth-inch",
          "name": "3/8-inch screws for Chonky Palmtop",
          "qty": 1,
          "note": "README links one pack of 3/8-inch screws; exact count used is not stated."
        },
        {
          "id": "crkbd-classic-pcb-kit",
          "name": "Corne Classic (crkbd) PCB kit",
          "qty": 1,
          "note": "README keyboard and materials sections specify a Corne Classic/crkbd PCB set."
        },
        {
          "id": "kailh-choc-v1-switch",
          "name": "Kailh Choc v1 low-profile switch",
          "qty": 42,
          "note": "README says to use the builder’s choice of Choc switches; quantity follows the standard 42-key Corne layout."
        },
        {
          "id": "1n4148-through-hole",
          "name": "1N4148 through-hole switching diode",
          "qty": 42,
          "note": "README requires keyboard diodes but does not state type or count; 1N4148 and 42 pieces are a closest-match allowance for a standard Corne, not creator-confirmed."
        },
        {
          "id": "sparkfun-pro-micro",
          "name": "SparkFun Pro Micro (ATmega32U4)",
          "qty": 2,
          "note": "README says an MCU such as Pro Micro or Elite-C; two compatible controllers are a closest-match allowance for the split keyboard."
        },
        {
          "id": "machine-pin-socket-adafruit-3647",
          "name": "Short female machine-pin headers (Adafruit 3647)",
          "qty": 1,
          "note": "README links Adafruit 3647 as an MCU socketing component; number of strips used is not stated."
        },
        {
          "id": "machine-pin-header-adafruit-3646",
          "name": "Short male machine-pin headers (Adafruit 3646)",
          "qty": 1,
          "note": "README links Adafruit 3646 as an MCU socketing component; number of strips used is not stated."
        },
        {
          "id": "mbk-choc-keycap",
          "name": "MBK Choc low-profile keycap",
          "qty": 42,
          "note": "README links MBK Choc keycaps; quantity follows the standard 42-key Corne layout and is not explicitly stated."
        },
        {
          "id": "silicone-wire-22awg",
          "name": "22AWG silicone-insulated stranded wire",
          "qty": 1,
          "note": "README links one 22AWG silicone-wire assortment."
        },
        {
          "id": "silicone-wire-18awg",
          "name": "18AWG silicone-insulated stranded wire",
          "qty": 1,
          "note": "README links one 18AWG silicone-wire assortment."
        },
        {
          "id": "inline-fuse-holder-10a",
          "name": "Inline blade-fuse holder with 10A fuse",
          "qty": 2,
          "note": "README power section says each of the two cells is separately fused at 10A."
        },
        {
          "id": "xt60-connector-pair",
          "name": "XT60 connector pair",
          "qty": 1,
          "note": "README power section and materials list name one external XT60 connection."
        },
        {
          "id": "panel-voltage-indicator-b00yaluxh0",
          "name": "Panel-mount battery voltage indicator",
          "qty": 1,
          "note": "README links the battery-level voltage indicator."
        },
        {
          "id": "tactile-button-6mm",
          "name": "6mm tactile push button",
          "qty": 1,
          "note": "README links Adafruit 367; exact button count is not stated, so one is a build allowance."
        },
        {
          "id": "clear-cap-tactile-button-adafruit-4183",
          "name": "6mm tactile button with clear cap (Adafruit 4183)",
          "qty": 1,
          "note": "README links Adafruit 4183; exact button count is not stated, so one is a build allowance."
        },
        {
          "id": "chonky-power-switch-b008czig3i",
          "name": "Panel power switch for Chonky Palmtop",
          "qty": 1,
          "note": "README links the main panel switch."
        }
      ],
      "printed": [
        {
          "name": "Chonky Palmtop enclosure and folding-keyboard mechanism",
          "note": "Fourteen official STL files are linked in the repository. The README says “Creative Commons Share Alike” but gives no version or complete license identifier; confirm terms with the creator before redistribution or commercial printing."
        }
      ],
      "verifyNotes": "Official README, materials list and STL directory checked on 2026-10-26. Kept as draft because several fastener quantities and specifications are omitted, keyboard diode/controller/key counts are inferred from a standard Corne, the display controller and low-voltage cutoff are not identified, and the printed-file license declaration is incomplete.",
      "formFactor": "Clamshell",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/chonky-palmtop/"
    },
    {
      "slug": "yaac-1",
      "title": "Y.A.A.C-1",
      "author": "DayZedAndConfused762",
      "sourceUrls": [
        "https://github.com/DayZedAndConfused762/Y.A.A.C",
        "https://github.com/DayZedAndConfused762/Y.A.A.C/blob/main/doc/yaac1/yaac1-components.md",
        "https://github.com/DayZedAndConfused762/Y.A.A.C/blob/main/doc/yaac1/yaac1-specs.md"
      ],
      "summary": "A portable Raspberry Pi 4 workstation built into an Apache 3800 hard case with a 10.1-inch touchscreen, UPS and external storage.",
      "story": "Y.A.A.C-1 packages a Raspberry Pi desktop into a weather-resistant case for portable computing. Its creator documents the exact component list and hardware specifications, while noting that the unit is currently disassembled for a hardware revision.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "rpi4",
          "name": "Raspberry Pi 4 Model B",
          "qty": 1,
          "note": "The source specifies the 8GB Raspberry Pi 4 Model B."
        },
        {
          "id": "apache-3800-case",
          "name": "Apache 3800 weatherproof protective case",
          "qty": 1
        },
        {
          "id": "ws-10in",
          "name": "10.1-inch HDMI touchscreen, 1280x800",
          "qty": 1,
          "note": "The source names Waveshare 10.1-inch HDMI LCD (B), 1280×800, with case."
        },
        {
          "id": "e-yooso-z11-keyboard",
          "name": "E-YOOSO Z-11 60% mechanical keyboard",
          "qty": 1,
          "note": "The source component list names the E-YOOSO Z-11 60-percent mechanical keyboard."
        },
        {
          "id": "geekworm-x728-ups",
          "name": "Geekworm X728 UPS for Raspberry Pi 4",
          "qty": 1
        },
        {
          "id": "anker-737-power-bank",
          "name": "Anker 737 Power Bank (PowerCore 24K)",
          "qty": 1
        },
        {
          "id": "crucial-x9-1tb",
          "name": "Crucial X9 1TB portable SSD",
          "qty": 1
        }
      ],
      "printed": [],
      "verifyNotes": "Checked the repository component list and hardware specifications on 2026-10-16. Keep as draft: the creator says Y.A.A.C-1 is disassembled for a revision, the build-step page is not complete, the component list and specifications disagree on the external power bank, and several accessories have changed during revision.",
      "formFactor": "Case deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/yaac-1/"
    },
    {
      "slug": "modem-thing",
      "title": "Modem Thing",
      "author": "bkovac",
      "sourceUrls": [
        "https://github.com/bkovac/modem-thing"
      ],
      "summary": "A pocket messaging device that combines an MF800 4G hotspot running Linux, a cut-down Clicks iPhone keyboard and a high-contrast SHARP Memory LCD.",
      "story": "bkovac built Modem Thing by combining three unused devices and designing a helper PCB and compact enclosure around them. The official repository publishes the enclosure, adapter-board files, kernel patches and the full build article.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "mf800-openstick",
          "name": "MF800 MSM8916 4G hotspot",
          "qty": 1,
          "note": "The creator says the MF800 is the hotspot model used."
        },
        {
          "id": "clicks-iphone16-pro-max",
          "name": "Clicks Keyboard for iPhone 16 Pro Max",
          "qty": 1,
          "note": "The creator names and links the Clicks Keyboard for iPhone 16 Pro Max."
        },
        {
          "id": "adafruit-sharp-4694",
          "name": "Adafruit 2.7-inch SHARP Memory Display Breakout",
          "qty": 1,
          "note": "The creator names and links Adafruit product 4694."
        },
        {
          "id": "modem-thing-helper-pcb",
          "name": "Modem Thing helper PCB",
          "qty": 1,
          "note": "Official helper-pcb design files and schematic are in the repository."
        }
      ],
      "printed": [
        {
          "name": "Modem Thing enclosure",
          "note": "Official STEP enclosure files are in the repository; licensed CERN-OHL-P-2.0."
        }
      ],
      "verifyNotes": "Official README, build article, schematic and repository tree checked at source commit 29259d3 on 2026-10-24. Kept as draft because exact hotspot PCB revisions vary, the finished helper-PCB BOM is not published as a procurement table, and destructive case/PCB modifications require creator-specific fit checks.",
      "formFactor": "Handheld",
      "platform": "Other Linux board",
      "pageUrl": "https://builddeck.dev/builds/modem-thing/"
    },
    {
      "slug": "cyberdeck-2026",
      "title": "Cyberdeck 2026",
      "author": "therebelrobot",
      "sourceUrls": [
        "https://github.com/therebelrobot/dinodeck-2026",
        "https://github.com/therebelrobot/dinodeck-2026/blob/main/docs/BOM.md",
        "https://github.com/therebelrobot/dinodeck-2026/blob/main/docs/cyberdeck_physical_wiring_v3.svg"
      ],
      "summary": "A battery-powered Raspberry Pi Zero 2 W cyberdeck planned around a 3.5-inch touch display, CardKB input, LTE and a separate Meshtastic LoRa node.",
      "story": "therebelrobot is developing Cyberdeck 2026 as a repairable, off-grid Linux computer. The repository documents the hardware architecture, wiring and firmware plan while leaving the thrifted enclosure and several exact cable and modem variants open.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "rpi-zero2w",
          "name": "Raspberry Pi Zero 2 W",
          "qty": 1
        },
        {
          "id": "pisugar-3-plus",
          "name": "PiSugar 3 Plus 5000mAh battery board",
          "qty": 1
        },
        {
          "id": "adafruit-ch334f-hub",
          "name": "Adafruit CH334F Mini 4-Port USB Hub Breakout",
          "qty": 1
        },
        {
          "id": "chenyang-microusb-angle-adapter",
          "name": "ChenYang right-angle micro-USB male/female adapter",
          "qty": 1
        },
        {
          "id": "adafruit-usb-breakout-cable",
          "name": "Adafruit simple USB breakout cable",
          "qty": 3,
          "note": "The BOM calls for two to three; this manifest uses the upper bound."
        },
        {
          "id": "waveshare-35-dpi-b",
          "name": "Waveshare 3.5-inch DPI LCD (B)",
          "qty": 1
        },
        {
          "id": "eanetf-microhdmi-angle-adapter",
          "name": "Eanetf 90°/270° micro-HDMI adapter",
          "qty": 1,
          "note": "Debug bench adapter; not intended for the final enclosure."
        },
        {
          "id": "adafruit-ano-encoder",
          "name": "Adafruit ANO directional navigation and scroll-wheel encoder",
          "qty": 1
        },
        {
          "id": "adafruit-ano-breakout",
          "name": "Adafruit ANO rotary navigation encoder breakout",
          "qty": 1
        },
        {
          "id": "seeed-xiao-samd21",
          "name": "Seeed Studio XIAO SAMD21",
          "qty": 1
        },
        {
          "id": "m5stack-cardkb-v11",
          "name": "M5Stack CardKB V1.1",
          "qty": 1
        },
        {
          "id": "usb-lte-sim7600",
          "name": "SIM7600-series USB LTE modem",
          "qty": 1,
          "note": "The source permits a SIM7600-series modem or equivalent; select for the intended carrier and region."
        },
        {
          "id": "seeed-xiao-esp32s3",
          "name": "Seeed Studio XIAO ESP32-S3",
          "qty": 1
        },
        {
          "id": "wio-sx1262-xiao",
          "name": "Wio-SX1262 LoRa module for XIAO",
          "qty": 1,
          "note": "Select the legally appropriate regional frequency."
        },
        {
          "id": "thrifted-project-enclosure",
          "name": "Thrifted project enclosure",
          "qty": 1,
          "note": "No enclosure has been selected yet."
        },
        {
          "id": "panel-usbc-port",
          "name": "Panel-mount USB-C extension port",
          "qty": 1
        },
        {
          "id": "jumper-ribbon-wire",
          "name": "Jumper wires and ribbon cable",
          "qty": 1
        },
        {
          "id": "usbc-microusb-cable",
          "name": "USB-C to micro-USB cable",
          "qty": 1
        },
        {
          "id": "spi-header-pins",
          "name": "Breakaway header pins for SPI wiring",
          "qty": 6
        }
      ],
      "printed": [],
      "verifyNotes": "Official README, BOM, repository tree and Unlicense metadata checked on 2026-10-17. Kept as draft because the repository marks wiring, enclosure, firmware, PCB, battery and LTE work in progress; the enclosure, modem, cable variants and several physical dimensions are not final. The models directories currently contain placeholders only, so no print-ready files are indexed.",
      "formFactor": "Handheld",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/cyberdeck-2026/"
    },
    {
      "slug": "framedeck",
      "title": "FrameDeck",
      "author": "Richard Sutherland / Brickbots",
      "sourceUrls": [
        "https://github.com/brickbots/framedeck",
        "https://github.com/brickbots/framedeck/blob/2bcefecc659123285309a61942164fce27050417/README.md",
        "https://github.com/brickbots/framedeck/blob/2bcefecc659123285309a61942164fce27050417/docs/parts.md",
        "https://github.com/brickbots/framedeck/blob/2bcefecc659123285309a61942164fce27050417/docs/build_tour.md",
        "https://github.com/brickbots/framedeck/blob/2bcefecc659123285309a61942164fce27050417/docs/keyboard.md",
        "https://github.com/brickbots/framedeck/blob/2bcefecc659123285309a61942164fce27050417/case/layers.md",
        "https://github.com/brickbots/framedeck/blob/2bcefecc659123285309a61942164fce27050417/printed_parts/bits.md",
        "https://github.com/brickbots/framedeck/blob/2bcefecc659123285309a61942164fce27050417/LICENSE"
      ],
      "summary": "A slab-style portable computer built around a Framework laptop mainboard, with a 7-inch HDMI display, custom 36-key mechanical keyboard, trackball, speakers and a transparent layered-acrylic enclosure.",
      "story": "Framework supplied Richard Sutherland with a laptop, mainboard and modules for an open-design collaboration. Inspired by pre-clamshell slab computers—particularly the TRS-80 Model 100—he combined the serviceable Framework mainboard and battery with a custom compact keyboard, trackball and clear laser-cut enclosure that leaves the hardware visible.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "framework-mainboard",
          "name": "Framework laptop mainboard",
          "qty": 1,
          "note": "Exact processor generation and mainboard revision are not stated."
        },
        {
          "id": "framework-laptop-battery",
          "name": "Framework laptop battery",
          "qty": 1,
          "note": "Exact battery revision and capacity are not stated."
        },
        {
          "id": "intel-ax210-vpro",
          "name": "Intel Wi-Fi 6E AX210 vPro M.2 module",
          "qty": 1,
          "note": "The BOM links the Framework Intel Wi-Fi 6E AX210 vPro product path."
        },
        {
          "id": "framedeck-wifi-antenna",
          "name": "FrameDeck-compatible Wi-Fi antenna set",
          "qty": 1,
          "note": "Creator-linked listing is Amazon ASIN B08T8F3GDT; specifications are undocumented."
        },
        {
          "id": "m2-nvme-storage",
          "name": "M.2 NVMe SSD",
          "qty": 1,
          "note": "Capacity, manufacturer and module length are unspecified."
        },
        {
          "id": "ddr4-sodimm-16gb",
          "name": "16GB DDR4 SO-DIMM",
          "qty": 1,
          "note": "BOM specifies DDR4 SO-DIMM; README reports 16GB."
        },
        {
          "id": "logitech-t-sbc12-cp-trackball",
          "name": "Logitech 161A T-SBC12-CP trackball board",
          "qty": 1,
          "note": "BOM names Logitech 161A / T-SBC12-CP."
        },
        {
          "id": "hdmi-ips-7in-b08h8hzrlq",
          "name": "7-inch HDMI IPS display used by FrameDeck",
          "qty": 1,
          "note": "Creator-linked Amazon ASIN B08H8HZRLQ; resolution and manufacturer are unstated."
        },
        {
          "id": "usbc-hdmi-b083kqnhqh",
          "name": "USB-C-to-HDMI cable used by FrameDeck",
          "qty": 1,
          "note": "Creator-linked cable was adapted into a right-angle internal cable."
        },
        {
          "id": "adafruit-speakers-1669",
          "name": "Adafruit enclosed speaker set, product 1669",
          "qty": 1,
          "note": "One set; BOM links Adafruit product 1669."
        },
        {
          "id": "framedeck-keyboard-pcb",
          "name": "FrameDeck 36-key keyboard PCB",
          "qty": 1,
          "note": "Fabricated from the repository Gerber archive."
        },
        {
          "id": "tactile-switch-6x6x7",
          "name": "6×6×7mm four-pin tactile switch",
          "qty": 1,
          "note": "Keyboard BOM specifies this four-pin reset switch."
        },
        {
          "id": "gazzew-boba-u4-silent",
          "name": "Gazzew Boba U4 Silent MX switch",
          "qty": 36,
          "note": "Completed build uses Boba U4 Silent switches; PCB accepts MX-style switches."
        },
        {
          "id": "1n4148-sod123",
          "name": "1N4148 SOD-123 switching diode",
          "qty": 36,
          "note": "Keyboard BOM specifies SOD-123 packages."
        },
        {
          "id": "elite-c",
          "name": "Elite-C keyboard controller",
          "qty": 1,
          "note": "Required because the design uses the extra pins."
        },
        {
          "id": "keebio-skuf-feet",
          "name": "Keebio SKUF silicone keyboard feet",
          "qty": 2,
          "note": "Two silicone feet specified."
        },
        {
          "id": "conical-feet-m3",
          "name": "Conical keyboard feet with M3 screws",
          "qty": 2,
          "note": "Two raised conical feet with M3 screws specified."
        },
        {
          "id": "framedeck-acrylic-case",
          "name": "FrameDeck layered acrylic enclosure",
          "qty": 1,
          "note": "Official DXFs produce 16 layers in four acrylic thicknesses."
        },
        {
          "id": "m2x3-heat-insert",
          "name": "M2 × 3mm heat-set insert",
          "qty": 1,
          "note": "One lot; creator does not provide a count."
        },
        {
          "id": "m2-long-standoff-assortment",
          "name": "Long M2 standoff assortment",
          "qty": 1,
          "note": "One lot; lengths and count are unspecified."
        },
        {
          "id": "m2-hardware-assortment",
          "name": "M2 hardware assortment",
          "qty": 1,
          "note": "One lot; no complete hardware schedule is published."
        },
        {
          "id": "ribbon-cable-6pos",
          "name": "Six-position ribbon cable",
          "qty": 1,
          "note": "Pitch and connector type are unstated."
        },
        {
          "id": "microusb-dupont-power-cable",
          "name": "Micro-USB-to-Dupont power cable",
          "qty": 1,
          "note": "Custom display-power cable; polarity and length are unstated."
        },
        {
          "id": "usbc-usbc-internal-cable",
          "name": "Internal USB-C-to-USB-C cable",
          "qty": 1,
          "note": "Length and connector orientation are unstated."
        },
        {
          "id": "mx-keycaps-36",
          "name": "MX-compatible keycaps for 36-key layout",
          "qty": 36,
          "note": "Quantity inferred from switch count; profile and legends unspecified."
        },
        {
          "id": "choc-low-profile-momentary-switch",
          "name": "Choc low-profile momentary switch",
          "qty": 1,
          "note": "Exact switch variant is unstated."
        },
        {
          "id": "two-part-epoxy",
          "name": "Two-part epoxy",
          "qty": 1,
          "note": "Optional cable strain relief; type and amount unstated."
        },
        {
          "id": "thin-stranded-wire",
          "name": "Thin stranded insulated hookup wire",
          "qty": 1,
          "note": "One lot; gauge and length are unstated."
        },
        {
          "id": "female-dupont-connector",
          "name": "Female Dupont connector",
          "qty": 1,
          "note": "One assortment; connector housing/contact count is unstated."
        }
      ],
      "printed": [
        {
          "name": "Framework mainboard mounting adapters",
          "note": "Official printed_parts/mainboard_mount.3mf; print two adapters per mounting screw. Material and screw count are unspecified, and the repository does not map a license to this individual asset."
        },
        {
          "name": "Right-angle cable enclosure/guide",
          "note": "Official printed_parts/ra_cable_guide.3mf; mirror it for the second half and trim to length. Asset-specific license is not mapped."
        },
        {
          "name": "Layered acrylic enclosure",
          "note": "Fourteen official DXFs produce the documented 16 physical layers. This is laser-cut, not 3D-printed; asset-specific license is not mapped."
        }
      ],
      "verifyNotes": "Official repository checked at commit 2bcefecc659123285309a61942164fce27050417. Keep as draft: docs/parts.md explicitly says the parts list is not comprehensive, and docs/build_tour.md says it is not a full guide. Exact mainboard and battery revisions, antenna specification, display model/specification, NVMe capacity, cable geometries, hardware counts, standoff lengths, ribbon pitch, keycap specification and print material remain unknown. The printed-parts page says STL while the repository publishes 3MF. README says files are MIT or CC BY-SA 4.0, but LICENSE contains MIT only and there is no per-file license mapping.",
      "formFactor": "Slab & keyboard deck",
      "platform": "x86 PC",
      "pageUrl": "https://builddeck.dev/builds/framedeck/"
    },
    {
      "slug": "rasti-computer",
      "title": "Rasti Computer",
      "author": "Penk Chen",
      "sourceUrls": [
        "https://github.com/penk/rasti.computer",
        "https://github.com/penk/rasti64"
      ],
      "summary": "A GRiD Compass-inspired Framework laptop with a 10.4-inch ultrawide touchscreen, custom 64-key low-profile keyboard and printed clamshell.",
      "story": "Penk Chen combined reusable Framework Laptop 13 components with a purpose-built Rasti64 keyboard and a weathered, retro-futuristic enclosure. The repositories publish a quantified BOM, Gerbers, firmware and editable enclosure files, while clearly crediting the MIT-licensed design.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "framework-13-mainboard",
          "name": "Framework Laptop 13 mainboard",
          "qty": 1,
          "note": "Exact Framework 13 mainboard linked by the creator; BOM page identifies an 11th-gen Intel variant."
        },
        {
          "id": "framework-13-battery",
          "name": "Framework Laptop 13 battery",
          "qty": 1,
          "note": "Exact Framework 13 battery linked in the BOM."
        },
        {
          "id": "framework-wifi-ax210",
          "name": "Framework Intel Wi-Fi 6E AX210 module",
          "qty": 1,
          "note": "Exact Intel Wi-Fi 6E AX210 module linked in the BOM."
        },
        {
          "id": "framework-13-antenna",
          "name": "Framework Laptop 13 antenna module",
          "qty": 1,
          "note": "Exact Framework 13 antenna module linked in the BOM."
        },
        {
          "id": "waveshare-104hp-capqled",
          "name": "Waveshare 10.4HP-CAPQLED display",
          "qty": 1,
          "note": "Exact Waveshare 10.4-inch QLED display linked in the BOM."
        },
        {
          "id": "power-switch-16mm",
          "name": "16mm PC power switch",
          "qty": 1,
          "note": "Creator specifies a 16mm PC power switch and links an example listing."
        },
        {
          "id": "usb-c-hub-rasti",
          "name": "USB-C hub for Rasti Computer",
          "qty": 1,
          "note": "Creator specifies and links a USB-C hub, but does not document required ports or cable layout."
        },
        {
          "id": "framework-power-button-shim",
          "name": "Framework Mainboard Power Button Shim",
          "qty": 1,
          "note": "Exact Tindie power-button shim linked in the creator BOM."
        },
        {
          "id": "rasti64-pcb",
          "name": "Rasti64 keyboard PCB",
          "qty": 1,
          "note": "Fabricate from the official Rasti64 Gerber archive."
        },
        {
          "id": "rasti64-plate-pcb",
          "name": "Rasti64 keyboard plate PCB",
          "qty": 1,
          "note": "Fabricate from official plate Gerbers at 1.2mm PCB thickness."
        },
        {
          "id": "raspberry-pi-pico",
          "name": "Raspberry Pi Pico",
          "qty": 1,
          "note": "Main Rasti BOM names a Raspberry Pi Pico; separate keyboard BOM now differs."
        },
        {
          "id": "kailh-choc-v1-switch",
          "name": "Kailh Choc v1 low-profile switch",
          "qty": 64,
          "note": "Creator specifies 64 Kailh Choc V1 PG1350 switches."
        },
        {
          "id": "1n4148-through-hole",
          "name": "1N4148 through-hole switching diode",
          "qty": 64,
          "note": "Creator specifies 64 through-hole 1N4148 diodes."
        },
        {
          "id": "kailh-choc-stabilizer-set",
          "name": "Kailh Choc stabilizer set",
          "qty": 1,
          "note": "One 2U and one 6.25U stabilizer are required."
        },
        {
          "id": "pin-header-20pin-pair",
          "name": "20-pin headers or sockets",
          "qty": 2,
          "note": "Main BOM specifies two 20-pin headers or sockets."
        },
        {
          "id": "macbook-a1278-hinge-pair",
          "name": "MacBook Pro A1278 hinge set",
          "qty": 1,
          "note": "Creator lists one MacBook Pro A1278 hinge item, interpreted as a set."
        },
        {
          "id": "insert-m2-4x32",
          "name": "M2 threaded insert, M2×4×3.2",
          "qty": 7,
          "note": "Exact quantity and dimensions from the BOM."
        },
        {
          "id": "insert-m25-4x35",
          "name": "M2.5 threaded insert, M2.5×4×3.5",
          "qty": 18,
          "note": "Exact quantity and dimensions from the BOM."
        },
        {
          "id": "insert-m3-5x5",
          "name": "M3 threaded insert, M3×5×5",
          "qty": 18,
          "note": "Exact quantity and dimensions from the BOM."
        },
        {
          "id": "screw-m25x7-flat",
          "name": "M2.5×7 flat-head screw",
          "qty": 4,
          "note": "For the hinges, per creator BOM."
        },
        {
          "id": "screw-m25x4-flat",
          "name": "M2.5×4 flat-head screw",
          "qty": 14,
          "note": "For the mainboard and keyboard bracket, per creator BOM."
        },
        {
          "id": "screw-m3x16-flat",
          "name": "M3×16 flat-head screw",
          "qty": 2,
          "note": "For the top cover, per creator BOM."
        },
        {
          "id": "screw-m3x12-flat",
          "name": "M3×12 flat-head screw",
          "qty": 7,
          "note": "Five for the rear cover and two for the display."
        },
        {
          "id": "screw-m3x8-flat",
          "name": "M3×8 flat-head screw",
          "qty": 4,
          "note": "For the display hinge, per creator BOM."
        },
        {
          "id": "screw-m3x10-flat",
          "name": "M3×10 flat-head screw",
          "qty": 5,
          "note": "For pivot points and keyboard plate, per creator BOM."
        }
      ],
      "printed": [
        {
          "name": "Rasti Computer enclosure set",
          "note": "Eleven FDM STLs plus an editable STEP file are in the official case directory; MIT license."
        },
        {
          "name": "Rasti64 keycap sets",
          "note": "Print five 1U sets and two mixed-size sets in SLA resin; official STL files are MIT-licensed."
        }
      ],
      "verifyNotes": "Official Rasti Computer and Rasti64 READMEs, BOMs, files and MIT licenses checked on 2026-10-17. Kept as draft because the main build instructions still say “Coming soon,” the two repositories disagree on Pico versus RP2040-Zero and header count, and RAM, storage, charger and internal cabling are not documented.",
      "formFactor": "Clamshell",
      "platform": "x86 PC",
      "pageUrl": "https://builddeck.dev/builds/rasti-computer/"
    },
    {
      "slug": "typeframe-px-88",
      "title": "Typeframe PX-88",
      "author": "Jeff Merrick",
      "sourceUrls": [
        "https://github.com/jeffmerrick/typeframe",
        "https://github.com/jeffmerrick/typeframe/blob/main/website/docs/px-88/bill-of-materials.md",
        "https://github.com/jeffmerrick/typeframe/tree/main/px-88/hardware/print-files"
      ],
      "summary": "A portable Raspberry Pi 4 writerdeck with a detachable 65% mechanical keyboard, a wide 7.9-inch DSI touchscreen and an internally managed 10,000mAh battery.",
      "story": "Jeff Merrick designed the Typeframe PX-88 as a modern, distraction-reduced writing computer inspired by the Epson PX-4. The official repository publishes a detailed BOM, illustrated assembly guide, software setup and tolerance-specific STL/3MF enclosure sets.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "mk-point65-pcb",
          "name": "MK Point65 65% keyboard PCB",
          "qty": 1,
          "note": "PX-88 BOM names the multi-layout MK Point65 PCB; RGB version is described as a possible alternative."
        },
        {
          "id": "mk-point65-daughterboard",
          "name": "MK Point65 S11 USB daughterboard",
          "qty": 1,
          "note": "Exact daughterboard named in the official BOM."
        },
        {
          "id": "durock-v2-stabilizer-kit",
          "name": "Durock V2 PCB-mount stabilizer kit",
          "qty": 1,
          "note": "PCB-mount stabilizer kit linked by the creator."
        },
        {
          "id": "cherry-mx2a-blue-5pin",
          "name": "Cherry MX2A Blue 5-pin switches",
          "qty": 70,
          "note": "Creator links MX2A Blue but permits other MX-compatible 5-pin switches."
        },
        {
          "id": "dsa-dolch-keycaps",
          "name": "DSA Dolch MX-compatible keycaps",
          "qty": 70,
          "note": "Creator links DSA Dolch and documents the nonstandard modifier sizes needed."
        },
        {
          "id": "adafruit-usb-c-a-4472",
          "name": "Adafruit short USB-C to USB-A cable 4472",
          "qty": 1,
          "note": "Short internal cable from the keyboard daughterboard to the Pi."
        },
        {
          "id": "waveshare-7-9-dsi-lcd",
          "name": "Waveshare 7.9-inch DSI LCD",
          "qty": 1,
          "note": "Exact screen named in the official BOM."
        },
        {
          "id": "dsi-ribbon-500mm",
          "name": "500mm Raspberry Pi DSI ribbon cable",
          "qty": 1,
          "note": "Official BOM specifies a 500mm DSI-compatible ribbon."
        },
        {
          "id": "adafruit-jumper-1954",
          "name": "Adafruit female-to-male jumper wires 1954",
          "qty": 1,
          "note": "One pack supplies four display extensions plus jumpers for the switch and status LED; official BOM does not give a pack count."
        },
        {
          "id": "rpi4",
          "name": "Raspberry Pi 4 Model B",
          "qty": 1,
          "note": "Official BOM specifies Raspberry Pi 4 Model B with at least 4GB RAM."
        },
        {
          "id": "sandisk-extreme-pro-64gb",
          "name": "SanDisk Extreme PRO 64GB microSDXC card",
          "qty": 1,
          "note": "Compatible reputable microSD choice; the creator specifies a quality card of at least 32GB but does not require this exact model."
        },
        {
          "id": "lipo-10000mah-1s-3c-jst-ph2",
          "name": "3.7V 10,000mAh 1S LiPo battery with JST-PH 2.0",
          "qty": 1,
          "note": "Official BOM specifies 1S 3C or higher, JST-PH 2.0 and no more than about 11mm thickness."
        },
        {
          "id": "jst-ph2-extension-200mm",
          "name": "200mm JST-PH 2.0 two-pin extension cable",
          "qty": 1,
          "note": "Exact length and connector format named in the BOM."
        },
        {
          "id": "waveshare-power-management-hat-b",
          "name": "Waveshare Power Management HAT (B)",
          "qty": 1,
          "note": "Exact power HAT named and linked in the BOM."
        },
        {
          "id": "cr1220-cell",
          "name": "CR1220 lithium coin cell",
          "qty": 1,
          "note": "Creator installed this RTC cell but questions whether it is strictly necessary."
        },
        {
          "id": "kcd3-momentary-switch",
          "name": "KCD3 SPST momentary rocker switch",
          "qty": 1,
          "note": "Required action is momentary; creator warns the original listing no longer appears to offer it."
        },
        {
          "id": "resistor-150-ohm",
          "name": "150 ohm resistor",
          "qty": 1,
          "note": "Approximately 150 ohms, as specified for the status LED."
        },
        {
          "id": "adafruit-green-led-4203",
          "name": "Adafruit 5mm green LED 4203",
          "qty": 1,
          "note": "5mm green status LED linked by the creator."
        },
        {
          "id": "m3-self-tapping-px88-set",
          "name": "PX-88 M3 self-tapping screw set",
          "qty": 1,
          "note": "Aggregate set records all six M3 lengths and quantities in the official BOM."
        },
        {
          "id": "m3-washer",
          "name": "M3 flat washer",
          "qty": 4,
          "note": "Official BOM marks washers optional and says they were used for PCB mounting."
        },
        {
          "id": "m25-screw-generic",
          "name": "M2.5 screw",
          "qty": 4,
          "note": "Official BOM specifies four M2.5×12mm screws; verify the purchased screws are 12mm long."
        },
        {
          "id": "overture-matte-beige-pla",
          "name": "Overture matte beige PLA filament",
          "qty": 1,
          "note": "Creator-recommended filament; quantity is not stated in the BOM."
        },
        {
          "id": "heat-resistant-tape",
          "name": "Heat-resistant tape",
          "qty": 1,
          "note": "Official BOM calls for tape to secure the battery; quantity is not stated."
        }
      ],
      "printed": [
        {
          "name": "PX-88 printed enclosure, keyboard shell and hinge set",
          "note": "Official repository provides tight-tolerance 3MF/STL sets, loose-tolerance STL sets and Fusion/STEP sources. Hardware and print files are CC BY-NC-SA 4.0: attribution, noncommercial use and share-alike terms apply; prints may not be sold under this license."
        }
      ],
      "verifyNotes": "Official README, BOM, electronics guide, print-file tree and project license checked on 2026-10-18. Kept as draft because the creator allows substitutions for switches and keycaps, does not specify resistor tolerance or power rating, no longer has a live exact listing for the required momentary switch, and does not state consumable quantities.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/typeframe-px-88/"
    },
    {
      "slug": "handipi",
      "title": "HandiPi",
      "summary": "A Raspberry Pi 4 handheld with a 4.3-inch DSI touchscreen, PiSugar battery board, custom tactile keyboard, navigation switch and creator-published case files.",
      "status": "draft",
      "parts": [
        {
          "id": "rpi4",
          "name": "Raspberry Pi 4 Model B",
          "qty": 1,
          "note": "README names Raspberry Pi 4; the BOM also says Raspberry Pi 3/4."
        },
        {
          "id": "waveshare-43-dsi-lcd",
          "name": "Waveshare 4.3-inch DSI LCD",
          "qty": 1,
          "note": "Exact model family from BOM."
        },
        {
          "id": "pisugar2-plus",
          "name": "PiSugar 2 Plus",
          "qty": 1,
          "note": "Exact model from BOM."
        },
        {
          "id": "handipi-pcb-set",
          "name": "HandiPi keyboard PCB and cover PCB set",
          "qty": 1,
          "note": "One 1.6mm keyboard circuit PCB plus one 1mm keyboard cover PCB, fabricated from the creator Gerbers."
        },
        {
          "id": "5-way-navigation-switch",
          "name": "5-way navigation switch",
          "qty": 1,
          "note": "Exact Adafruit product 504 linked in the creator BOM."
        },
        {
          "id": "5-way-navigation-switch-cap",
          "name": "Rubber cap for 5-way navigation switch",
          "qty": 1,
          "note": "Exact Adafruit product 4697 linked in the creator BOM."
        },
        {
          "id": "dts-63k-tactile-switch",
          "name": "Diptronics DTS-63K tactile switch",
          "qty": 36,
          "note": "The creator recommends Diptronics DTS-63K 1N; BOM quantity is 36."
        },
        {
          "id": "1n4148w-sod123",
          "name": "1N4148W diode (SOD-123)",
          "qty": 36,
          "note": "BOM specifies 36 1N4148 diodes in the SOD-123 package."
        },
        {
          "id": "atmega328-dip-handipi",
          "name": "ATmega328 DIP microcontroller for HandiPi",
          "qty": 1,
          "note": "Creator specifies an ATmega328 in a DIP package but does not identify the precise suffix."
        },
        {
          "id": "16mhz-crystal-handipi",
          "name": "16 MHz crystal for HandiPi",
          "qty": 1,
          "note": "Creator specifies 16 MHz but does not state package, load capacitance, tolerance, or manufacturer part number."
        },
        {
          "id": "22pf-ceramic-capacitor",
          "name": "22 pF ceramic capacitor",
          "qty": 2,
          "note": "BOM quantity; other electrical details unconfirmed."
        },
        {
          "id": "10k-through-hole-resistor",
          "name": "10 kΩ through-hole resistor",
          "qty": 1,
          "note": "BOM quantity; wattage and tolerance are not specified."
        },
        {
          "id": "handipi-m2-hardware",
          "name": "M2/M2.5 mounting hardware for HandiPi",
          "qty": 1,
          "note": "BOM specifies four 4 mm M2 standoffs plus assorted M2/M2.5 hardware; the build tour mentions M2 and M3 screws and heat-set inserts, but does not give a complete size/count schedule."
        },
        {
          "id": "thin-stranded-wire",
          "name": "Thin stranded insulated hookup wire",
          "qty": 1,
          "note": "The BOM calls for wires without a gauge or quantity; the build tour says heavy-ish wire was used for the modified battery connection."
        },
        {
          "id": "100nf-ceramic-capacitor",
          "name": "100 nF ceramic capacitor",
          "qty": 2,
          "note": "Keyboard PCB BOM."
        },
        {
          "id": "4u7-electrolytic-capacitor",
          "name": "4.7 µF electrolytic capacitor",
          "qty": 1,
          "note": "Keyboard PCB BOM."
        },
        {
          "id": "3v6-zener-diode",
          "name": "3.6 V Zener diode",
          "qty": 2,
          "note": "Keyboard PCB BOM."
        },
        {
          "id": "75ohm-through-hole-resistor",
          "name": "75 Ω through-hole resistor",
          "qty": 2,
          "note": "Keyboard PCB BOM."
        },
        {
          "id": "1k5-through-hole-resistor",
          "name": "1.5 kΩ through-hole resistor",
          "qty": 1,
          "note": "Keyboard PCB BOM."
        },
        {
          "id": "handipi-spst-slide-switch",
          "name": "SPST slide switch for HandiPi",
          "qty": 1,
          "note": "Project power switch; exact model not specified."
        },
        {
          "id": "handipi-usb-pcb-mount-port",
          "name": "USB PCB-mount port for HandiPi",
          "qty": 2,
          "note": "PCB-mount USB ports; exact connector subtype not specified."
        },
        {
          "id": "sandisk-extreme-pro-64gb",
          "name": "SanDisk Extreme PRO 64GB microSDXC card",
          "qty": 1,
          "note": "The creator specifies an SD card but not its model or capacity; this is a compatible representative option."
        }
      ],
      "printed": [
        {
          "name": "Main case components",
          "note": "Four creator-published 3MF case sections (bottom, middle, keyboard bezel and screen bezel). License: MIT. Source: https://github.com/brickbots/HandiPi/tree/main/printed_case"
        }
      ],
      "author": "brickbots",
      "sourceUrls": [
        "https://github.com/brickbots/HandiPi",
        "https://github.com/brickbots/HandiPi/blob/main/docs/BOM.md",
        "https://github.com/brickbots/HandiPi/blob/main/docs/build.md"
      ],
      "story": "HandiPi packages a Raspberry Pi terminal into a compact printable shell. Its custom 36-button tactile keyboard, navigation control and creator-published PCB files make it more involved than a kit, while the DSI display and PiSugar board keep the main compute stack modular.",
      "difficulty": "Hard",
      "verifyNotes": "Draft: the creator explicitly says the BOM is not comprehensive. It leaves several passive ratings, the USB connector subtype, SD-card model, fastener dimensions/counts, wiring, heatsink and some assembly consumables unspecified. Custom PCBs must be fabricated from the creator files; BuildDeck does not host or redistribute them. The repository and its four published 3MF case files are MIT licensed. Confirm the remaining details against the PCB, schematic and case files before ordering.",
      "formFactor": "Handheld",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/handipi/"
    },
    {
      "slug": "paper-pi-handheld",
      "title": "Paper Pi Handheld",
      "author": "a8ksh4",
      "sourceUrls": [
        "https://github.com/a8ksh4/paper-pi-handheld"
      ],
      "summary": "An e-paper Raspberry Pi 4 handheld built around a thumb-operated hand-wired keyboard, battery power and a custom printed shell.",
      "story": "The creator built Paper Pi as a practical terminal for learning console tools, keyboard firmware and enclosure design. Its README documents the working machine and a useful parts list, while also acknowledging that several components and the Ubuntu setup were not captured precisely.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "rpi4",
          "name": "Raspberry Pi 4 Model B",
          "qty": 1,
          "note": "README Parts List specifies a Raspberry Pi 4 with 2GB RAM."
        },
        {
          "id": "ws-4-2-eink",
          "name": "Waveshare 4.2-inch E-Ink Display",
          "qty": 1,
          "note": "README Parts List specifies a Waveshare 4.2-inch E-Ink Display; exact revision is not stated."
        },
        {
          "id": "smd-tactile-switch-6mm",
          "name": "6mm surface-mount soft-touch push-button switch",
          "qty": 1,
          "note": "Keyboard subsection names 6mm-square surface-mount soft-touch switches; quantity and model are not stated."
        },
        {
          "id": "small-perfboard",
          "name": "Small perfboard",
          "qty": 1,
          "note": "Keyboard subsection names small perfboards; dimensions and quantity are not stated."
        },
        {
          "id": "signal-diode-generic",
          "name": "Signal diode",
          "qty": 1,
          "note": "Keyboard subsection names signal diodes; model and quantity are not stated."
        },
        {
          "id": "pin-header-2-54mm",
          "name": "2.54mm pin header",
          "qty": 1,
          "note": "Keyboard subsection names 2.54mm pins; format and quantity are not stated."
        },
        {
          "id": "paper-pi-keyboard-mcu",
          "name": "Paper Pi keyboard microcontroller (unspecified)",
          "qty": 1,
          "note": "Keyboard subsection says “Supermecro Controller”; exact board cannot be confirmed."
        },
        {
          "id": "precision-socket-pins-unspecified",
          "name": "Precision pins and sockets (creator calls them “Micro Swiss”)",
          "qty": 1,
          "note": "Keyboard subsection says “Micro Swiss pins and sockets”; exact product and quantity cannot be confirmed."
        },
        {
          "id": "tactile-button-6mm",
          "name": "6mm tactile push button",
          "qty": 1,
          "note": "GPIO/Power Controls names generic 6mm clicky buttons; quantity is not stated."
        },
        {
          "id": "im232-slide-switch",
          "name": "IM232 6-pin slide switch",
          "qty": 1,
          "note": "GPIO/Power Controls names an IM232 six-pin slide switch."
        },
        {
          "id": "resistor-10k-generic",
          "name": "10kΩ resistor",
          "qty": 1,
          "note": "GPIO/Power Controls names 10kΩ pull-up resistors; quantity and package are not stated."
        },
        {
          "id": "used-18650-3ah-cells",
          "name": "Approximately 3Ah 18650 cells",
          "qty": 4,
          "note": "Battery subsection specifies four used approximately 3Ah 18650 cells matched for capacity and internal resistance."
        },
        {
          "id": "retro-psu",
          "name": "RetroPSU battery power module",
          "qty": 1,
          "note": "Battery subsection names RetroPSU for charging and 5V output; revision is not stated."
        },
        {
          "id": "1s-3-7v-4a-18650-bms",
          "name": "1S 3.7V 4A 18650 charger/protection board",
          "qty": 1,
          "note": "Battery subsection names an Anmbest five-pack of 1S 3.7V 4A 18650 charger/BMS boards; the build quantity is not explicit."
        },
        {
          "id": "battery-nickel-strip",
          "name": "Nickel battery-welding strip",
          "qty": 1,
          "note": "Battery subsection names nickel strip; dimensions and quantity are not stated."
        },
        {
          "id": "usb-c-breakout-generic",
          "name": "USB-C breakout board",
          "qty": 1,
          "note": "Battery subsection names a USB-C breakout; exact board is not stated."
        },
        {
          "id": "pla-filament-generic",
          "name": "PLA filament 1.75mm",
          "qty": 1,
          "note": "README names PLA filament without brand, color or quantity."
        },
        {
          "id": "thin-stranded-wire",
          "name": "Thin stranded insulated hookup wire",
          "qty": 1,
          "note": "README names wire without gauge or quantity; this reuses the existing generic hookup-wire entry."
        },
        {
          "id": "polyimide-tape",
          "name": "Polyimide tape",
          "qty": 1,
          "note": "README names polyimide tape without width or quantity."
        },
        {
          "id": "2-28-quarter-plastec-screws",
          "name": "#2-28 × 1/4-inch Plastite-style screws",
          "qty": 1,
          "note": "README names #2-28, 1/4-inch “Plastec” screws; quantity and head style are not stated."
        }
      ],
      "printed": [
        {
          "name": "Custom handheld enclosure",
          "note": "The README links the public Onshape model but states no license. Do not redistribute or sell the design without permission."
        }
      ],
      "verifyNotes": "Official README checked on 2026-10-21. Kept as draft because several required component models and quantities are unspecified, the keyboard-controller name is ambiguous, and the public CAD model has no stated license.",
      "formFactor": "Handheld",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/paper-pi-handheld/"
    },
    {
      "slug": "pocketssh",
      "title": "PocketSSH",
      "author": "Eric (0015)",
      "sourceUrls": [
        "https://github.com/0015/PocketSSH",
        "https://github.com/0015/PocketSSH/blob/ad85368b9b361193718027246d229c1a0a93aee7/README.md"
      ],
      "summary": "A pocketable SSH terminal for the LILYGO T-Deck Plus, using its keyboard, trackball and touchscreen to operate remote systems from an ESP32-S3 handheld.",
      "story": "Eric built PocketSSH as dedicated firmware for the T-Deck Plus rather than as a general-purpose terminal. The repository documents Wi-Fi setup, password and public-key SSH authentication, trackball navigation, touch gestures and SD-card key loading.",
      "status": "verified",
      "difficulty": "Easy",
      "parts": [
        {
          "id": "lilygo-t-deck-plus",
          "name": "LILYGO T-Deck Plus",
          "qty": 1,
          "note": "Creator README Hardware Requirements explicitly names the ESP32-S3 T-Deck Plus and documents its integrated display, touch controller, C3 keyboard, trackball, battery monitor and microSD interface."
        }
      ],
      "printed": [],
      "verifyNotes": "Verified against the creator README and MIT license at commit ad85368b9b361193718027246d229c1a0a93aee7 on 2026-10-27. The project is firmware for one creator-named required product, the LILYGO T-Deck Plus; its integrated ST7789 display, GT911 touch controller, C3 keyboard, trackball, battery monitor and microSD interface are explicitly documented. No separate enclosure or printed part is required.",
      "verifiedOn": "2026-10-27",
      "formFactor": "Handheld",
      "platform": "Microcontroller",
      "pageUrl": "https://builddeck.dev/builds/pocketssh/"
    },
    {
      "slug": "cyberkeeb-2040",
      "title": "CyberKeeb 2040",
      "author": "zli117",
      "sourceUrls": [
        "https://github.com/zli117/CyberKeeb2040",
        "https://github.com/zli117/CyberKeeb2040/blob/519856dd8bc7d6d5aef5e1f756823d69aac54325/Docs/BuildInstructions_V2.md"
      ],
      "summary": "A 66-key mechanical keyboard and Raspberry Pi Zero cyberdeck built around an RP2040 keyboard controller, a small OLED and a three-layer laser-cut acrylic frame.",
      "story": "zli117 designed CyberKeeb 2040 so a Raspberry Pi Zero and Pico-based keyboard controller share one compact custom PCB. The repository documents a completed V2 with photographs, a quantified electronics and fastener BOM, assembly steps, firmware, production Gerbers and editable frame drawings.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "m25-washer-1-5mm",
          "name": "M2.5 × 1.5mm washer",
          "qty": 3,
          "note": "V2 BOM specifies three M2.5 × 1.5mm washers."
        },
        {
          "id": "m25-standoff-ff-6mm",
          "name": "M2.5 × 6mm female-female standoff",
          "qty": 7,
          "note": "V2 BOM specifies seven female-female 6mm standoffs."
        },
        {
          "id": "m25-standoff-ff-10mm",
          "name": "M2.5 × 10mm female-female standoff",
          "qty": 1,
          "note": "V2 BOM specifies one female-female 10mm standoff."
        },
        {
          "id": "m25-standoff-mf-5mm",
          "name": "M2.5 × 5mm male-female standoff",
          "qty": 7,
          "note": "V2 BOM specifies seven male-female 5mm standoffs."
        },
        {
          "id": "m25-standoff-ff-5mm",
          "name": "M2.5 × 5mm female-female standoff",
          "qty": 7,
          "note": "V2 BOM specifies seven female-female 5mm standoffs."
        },
        {
          "id": "m25-screw-4mm",
          "name": "M2.5 × 4mm machine screw",
          "qty": 8,
          "note": "V2 BOM specifies eight M2.5 × 4mm screws."
        },
        {
          "id": "m25-screw-5mm",
          "name": "M2.5 × 5mm machine screw",
          "qty": 22,
          "note": "V2 BOM specifies 22 M2.5 × 5mm screws."
        },
        {
          "id": "cyberkeeb-top-bar",
          "name": "CyberKeeb 2040 top acrylic bar",
          "qty": 1,
          "note": "V2 BOM and README specify one 3mm acrylic top bar from TopBar.dxf."
        },
        {
          "id": "cyberkeeb-bottom-panel",
          "name": "CyberKeeb 2040 bottom acrylic panel",
          "qty": 1,
          "note": "V2 BOM and README specify one 3mm acrylic bottom panel from Bottom.dxf."
        },
        {
          "id": "cyberkeeb-switch-plate",
          "name": "CyberKeeb 2040 acrylic switch plate",
          "qty": 1,
          "note": "V2 BOM and README specify one 1.5mm acrylic switch plate from Plate.dxf."
        },
        {
          "id": "female-header-1x5",
          "name": "1×5 female pin header",
          "qty": 2,
          "note": "V2 BOM specifies two five-pin female headers; pitch is not stated."
        },
        {
          "id": "dip-switch-4-position",
          "name": "Four-position DIP switch",
          "qty": 1,
          "note": "V2 BOM specifies one four-position DIP switch; exact package is not stated."
        },
        {
          "id": "cyberkeeb-slide-switch",
          "name": "CyberKeeb 2040 slide switch",
          "qty": 1,
          "note": "V2 BOM specifies one slide switch; exact model is not stated."
        },
        {
          "id": "1n4148-through-hole",
          "name": "1N4148 through-hole switching diode",
          "qty": 84,
          "note": "V2 BOM specifies 84 1N4148 diodes."
        },
        {
          "id": "capacitor-10nf-1206",
          "name": "0.01µF 1206 ceramic capacitor",
          "qty": 2,
          "note": "V2 BOM specifies two 0.01µF 1206 SMD capacitors."
        },
        {
          "id": "resistor-330ohm-th",
          "name": "330Ω through-hole resistor",
          "qty": 1,
          "note": "V2 BOM specifies one 330Ω through-hole resistor."
        },
        {
          "id": "resistor-10k-th",
          "name": "10kΩ through-hole resistor",
          "qty": 4,
          "note": "V2 BOM specifies four 10kΩ through-hole resistors."
        },
        {
          "id": "header-2x20",
          "name": "2×20-pin through-hole header",
          "qty": 1,
          "note": "V2 BOM specifies one 2×20-pin header."
        },
        {
          "id": "ssd1306-display-generic",
          "name": "SSD1306 OLED display module",
          "qty": 1,
          "note": "V2 BOM specifies one SSD1306 screen without module dimensions or interface."
        },
        {
          "id": "ec11-rotary-encoder",
          "name": "EC11 rotary encoder",
          "qty": 1,
          "note": "V2 BOM specifies one EC11 encoder without an exact variant."
        },
        {
          "id": "cyberkeeb2040-main-pcb",
          "name": "CyberKeeb 2040 V2 main PCB",
          "qty": 1,
          "note": "V2 BOM specifies one custom PCB; official KiCad and Gerber files are provided."
        },
        {
          "id": "kailh-mx-hotswap-socket",
          "name": "Kailh MX hotswap socket",
          "qty": 66,
          "note": "V2 BOM specifies 66 hotswap sockets; the guide does not identify an exact manufacturer."
        },
        {
          "id": "rpi-pico",
          "name": "Raspberry Pi Pico",
          "qty": 1,
          "note": "V2 BOM specifies one Raspberry Pi Pico."
        },
        {
          "id": "rpi-zero2w",
          "name": "Raspberry Pi Zero 2 W",
          "qty": 1,
          "note": "V2 BOM allows a Pi Zero or Zero 2; the creator reports testing a Zero 2 W under stress."
        },
        {
          "id": "mx-key-switch-set",
          "name": "MX-compatible mechanical key-switch set",
          "qty": 1,
          "note": "The 'You Also Need' list requires key switches but provides no count or model."
        },
        {
          "id": "mx-keycap-set",
          "name": "MX-compatible keycap set",
          "qty": 1,
          "note": "The 'You Also Need' list requires key caps but provides no count or profile."
        },
        {
          "id": "keyboard-stabilizer-set",
          "name": "Mechanical keyboard stabilizer set",
          "qty": 1,
          "note": "The 'You Also Need' list requires stabilizers but provides no sizes or count."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README, V2 build guide, repository tree and CC BY-SA 4.0 license checked at commit 519856d on 2026-10-22. Kept as draft because switches, keycaps and stabilizers are unquantified; several modules lack exact package details; the BOM allows either Pi Zero generation; and no battery or power supply is specified. The three DXFs are laser-cut fabrication files, not 3D-printable models.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/cyberkeeb-2040/"
    },
    {
      "slug": "deck-os-tab5-cyberdeck",
      "title": "DECK//OS Tab5 Cyberdeck",
      "author": "Brian Meyer",
      "sourceUrls": [
        "https://github.com/hey-its-brian/tab5-cyberdeck"
      ],
      "summary": "A compact cyberdeck that pairs M5Stack’s five-inch Tab5 touch terminal with its official keyboard and custom ESP32-P4 firmware for SSH, notes, weather, music and file management.",
      "story": "Brian Meyer built DECK//OS as a touch-first, keyboard-friendly launcher for the M5Stack Tab5. The repository documents browser-based installation and a growing set of local and network tools while keeping the physical setup to the Tab5 and its official keyboard.",
      "status": "draft",
      "difficulty": "Easy",
      "parts": [
        {
          "id": "m5stack-tab5",
          "name": "M5Stack Tab5",
          "qty": 1,
          "note": "Named in the official README; the source does not identify the C145 or K145 hardware variant."
        },
        {
          "id": "m5stack-tab5-keyboard",
          "name": "M5Stack Tab5 Keyboard",
          "qty": 1,
          "note": "The official Tab5 Keyboard is explicitly named in the official README."
        }
      ],
      "printed": [],
      "verifyNotes": "Official repository README and metadata checked on 2026-10-23. Kept as draft because the creator does not identify whether the Tab5 is the C145 battery-free model or K145 battery kit, and the official keyboard still lacks a configured reputable-seller listing.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Microcontroller",
      "pageUrl": "https://builddeck.dev/builds/deck-os-tab5-cyberdeck/"
    },
    {
      "slug": "vecdec-v1-1",
      "title": "vecdec 1.1",
      "author": "svenscore",
      "sourceUrls": [
        "https://github.com/svenscore/vecdec",
        "https://github.com/svenscore/vecdec/tree/main/stl/1.1",
        "https://github.com/svenscore/vecdec/tree/main/kicad"
      ],
      "summary": "A Raspberry Pi 4 cyberdeck built around a Sofle Choc split keyboard, an eight-inch touchscreen, a trackball and a Meshtastic radio, with exposed USB and SAO ports.",
      "story": "Svenscore designed vecdec because split-keyboard laptops were not available. Version 1.1 enlarges the display, replaces the earlier gesture sensor with a precise trackball, adds two simplified SAO ports and four front or side USB connections, and isolates the keyboard trays on rubber mounts.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "rpi4",
          "name": "Raspberry Pi 4 Model B",
          "qty": 1,
          "note": "The source specifies a Raspberry Pi 4 with a heatsink and says no fan is required for this configuration."
        },
        {
          "id": "waveshare-8inch-dsi-lcd-c",
          "name": "Waveshare 8-inch DSI LCD (C)",
          "qty": 1,
          "note": "Version 1.1 uses the linked 1280×800 display; follow the repository's updated configuration notes."
        },
        {
          "id": "sofle-choc-rgb-v2-pcb",
          "name": "Sofle Choc RGB v2 split keyboard PCB",
          "qty": 1,
          "note": "One split keyboard set; the source documents deviations from the upstream Sofle Choc build guide."
        },
        {
          "id": "elite-c-v4",
          "name": "Elite-C v4 microcontroller",
          "qty": 1,
          "note": "The source names this controller but does not state the quantity; substitutes may require enclosure changes."
        },
        {
          "id": "alps-ec12e1220301",
          "name": "Alps Alpine EC12E1220301 rotary encoder",
          "qty": 1,
          "note": "The source specifies this lower-profile, non-clicking encoder but does not state the quantity."
        },
        {
          "id": "pimoroni-trackball-breakout",
          "name": "Pimoroni Trackball Breakout",
          "qty": 1,
          "note": "Version 1.1 replaces the earlier gesture sensor with this I2C trackball."
        },
        {
          "id": "adafruit-qwiic-hub-5625",
          "name": "Adafruit Qwiic / STEMMA QT 5-port hub",
          "qty": 1,
          "note": "The passive hub connects the build's I2C devices."
        },
        {
          "id": "meshadv-mini",
          "name": "MeshAdv Mini Meshtastic HAT",
          "qty": 1,
          "note": "The v1.1 release notes identify the MeshAdv Mini as the replacement Meshtastic HAT."
        },
        {
          "id": "ufl-sma-pigtail-6in",
          "name": "U.FL to SMA female pigtail",
          "qty": 1,
          "note": "The BOM calls for approximately six inches but does not specify a manufacturer."
        },
        {
          "id": "lora-915mhz-right-angle-antenna",
          "name": "915MHz right-angle LoRa antenna",
          "qty": 1,
          "note": "The source specifies frequency and approximate mechanical clearance, not an exact antenna."
        },
        {
          "id": "anker-733-a1651",
          "name": "Anker 733 Power Bank (PowerCore 65W)",
          "qty": 1,
          "note": "The creator reports this external power bank is sufficient for the build's 5V/3A requirement."
        },
        {
          "id": "usb-c-right-angle-adapter-auvipal",
          "name": "AuviPal right-angle USB-C adapter",
          "qty": 1,
          "note": "The linked adapter establishes the enclosure geometry; substitutes can differ."
        },
        {
          "id": "m2-rubber-vibration-standoffs",
          "name": "M2 rubber anti-vibration standoffs",
          "qty": 1,
          "note": "One set; the source does not state the exact count or dimensions."
        },
        {
          "id": "vecdec-fastener-set",
          "name": "Vecdec M2 and M4 fastener set",
          "qty": 1,
          "note": "Includes the source-specified M2 and M4 screws and heat-set inserts."
        },
        {
          "id": "vecdec-usb-wiring-set",
          "name": "Vecdec internal USB wiring and connectors",
          "qty": 1,
          "note": "One custom wiring set; exact connector brands and several dimensions are not specified."
        }
      ],
      "printed": [
        {
          "name": "vecdec 1.1 enclosure, keyboard trays and case sleeve",
          "note": "Official version 1.1 STL files are provided for a 250×210mm print bed. The project is CC BY-NC-SA 4.0: attribution, noncommercial use and share-alike terms apply; prints may not be sold under this license."
        }
      ],
      "verifyNotes": "Official README, bill of materials, release notes, STL tree and CC BY-NC-SA 4.0 license checked on 2026-10-23. Kept as draft because the BOM leaves several generic connectors, antenna details, internal USB fabrication choices, keyboard components and hardware dimensions or quantities incomplete.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/vecdec-v1-1/"
    },
    {
      "slug": "esp32berry",
      "title": "ESP32Berry",
      "author": "0015",
      "sourceUrls": [
        "https://github.com/0015/ESP32Berry",
        "https://github.com/0015/ESP32Berry/blob/main/README.md"
      ],
      "summary": "A BlackBerry-style ESP32-S3 handheld environment for the LILYGO T-Deck, with a launcher for Wi-Fi scanning, internet radio, clock and calculator apps.",
      "story": "ESP32Berry turns the keyboard-and-trackball T-Deck into a pocket app platform. The creator documents Arduino IDE setup, required libraries and firmware upload, so the physical build is a single-board starting point rather than a custom enclosure project.",
      "status": "draft",
      "difficulty": "Easy (single-board hardware) / Medium (firmware setup)",
      "parts": [
        {
          "id": "lilygo-t-deck",
          "name": "LILYGO T-Deck ESP32-S3 development board",
          "qty": 1,
          "note": "The official README identifies the LILYGO T-Deck as the target device and shows its 2.8-inch display, keyboard and trackball."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README and repository checked on 2026-10-24. Kept as draft because the repository is marked retired/no longer maintained, the README does not specify a T-Deck board revision, and no printable enclosure files are provided.",
      "formFactor": "Handheld",
      "platform": "Microcontroller",
      "pageUrl": "https://builddeck.dev/builds/esp32berry/"
    },
    {
      "slug": "ittypda",
      "title": "ittyPDA",
      "author": "ingobeans",
      "sourceUrls": [
        "https://github.com/ingobeans/ittypda",
        "https://github.com/ingobeans/ittypda/blob/main/parts-bom.csv",
        "https://github.com/ingobeans/ittypda/tree/main/case"
      ],
      "summary": "A palm-size STM32 PDA with a real 58-key keyboard, a 3.5-inch color IPS display, microSD storage and a rechargeable 2,200mAh battery.",
      "story": "ingobeans designed ittyPDA as a tiny, hackable writing and note-taking computer rather than a general-purpose Linux handheld. The repository publishes the KiCad design, fabrication outputs, early ittyOS firmware and printable enclosure sources, while clearly labeling the case and firmware as works in progress.",
      "status": "draft",
      "difficulty": "Expert",
      "parts": [
        {
          "id": "ittypda-pcba",
          "name": "ittyPDA custom PCB assembly",
          "qty": 1,
          "note": "Repository KiCad project, Gerbers and parts-bom.csv; the PCB is the only component the creator currently calls truly finished."
        },
        {
          "id": "lcdwiki-st7796-35-no-touch",
          "name": "LCDWiki 3.5-inch IPS SPI display (ST7796, no touch)",
          "qty": 1,
          "note": "Repository README under specs & parts."
        },
        {
          "id": "ittypda-lipo-2200",
          "name": "3.7V 2200mAh LiPo pouch battery for ittyPDA",
          "qty": 1,
          "note": "Repository README under specs & parts; exact linked pack is one example and dimensions/polarity are not documented."
        }
      ],
      "printed": [
        {
          "name": "Case shell",
          "note": "Printable STL, STEP and Blender files are in case/. The repository declares no license, so the files are indexed as unlicensed: do not redistribute or sell prints without the creator’s permission."
        }
      ],
      "verifyNotes": "Official repository, README, parts-bom.csv and file tree checked on 2026-10-25. Kept as draft because the creator labels the project early WIP, has not validated the case fit, does not document battery dimensions or connector polarity, and provides no repository license.",
      "formFactor": "Handheld",
      "platform": "Microcontroller",
      "pageUrl": "https://builddeck.dev/builds/ittypda/"
    },
    {
      "slug": "hackberry-pi-zero",
      "title": "Hackberry Pi Zero",
      "author": "ZitaoTech",
      "sourceUrls": [
        "https://github.com/ZitaoTech/Hackberry-Pi_Zero",
        "https://www.elecrow.com/hackberrypi-zero-with-q10-keyboard.html"
      ],
      "summary": "A pocket Linux handheld built around a Raspberry Pi Zero 2 W, a 4-inch square display, a BlackBerry keyboard and hot-swappable BL-5C batteries.",
      "story": "Zitao designed the Hackberry Pi Zero as a compact Linux learning terminal with an integrated keyboard-and-mouse controller, external microSD access and three USB 2.0 ports. The official repository documents setup, schematics, keyboard firmware and printable mechanical files.",
      "status": "draft",
      "difficulty": "Easy (assembled handheld) / Advanced (from design files)",
      "parts": [
        {
          "id": "hackberry-pi-zero-handheld",
          "name": "Hackberry Pi Zero handheld assembly",
          "qty": 1,
          "note": "README Main Features and Where to buy sections: keyboard/display/controller handheld assembly; retail contents vary by keyboard option."
        },
        {
          "id": "rpi-zero2w",
          "name": "Raspberry Pi Zero 2 W",
          "qty": 1,
          "note": "README Main Features: only compatible with Raspberry Pi Zero 2 W. Confirm whether the selected retail configuration already includes it."
        },
        {
          "id": "nokia-bl5c-battery",
          "name": "Nokia BL-5C battery",
          "qty": 2,
          "note": "README Main Features: dual swappable BL-5C battery design. Elecrow states its configuration ships with battery; confirm quantity and shipping restrictions."
        }
      ],
      "printed": [
        {
          "name": "Hackberry Pi Zero keyboard, rear, middle and button models",
          "note": "Official 3D-Modell directory provides STL files; repository is MIT licensed."
        }
      ],
      "verifyNotes": "Official README, repository tree, mechanical files, MIT license and Elecrow listing checked at source commit 84c37eec5b1a234ce3bf50933bd785423fff7e0a on 2026-10-26. Kept as draft because the retail bundle contents vary, keyboard variants differ, and exact display/controller and battery revisions are not separately identified.",
      "formFactor": "Handheld",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/hackberry-pi-zero/"
    },
    {
      "slug": "mu-cyberdeck",
      "title": "Mu Cyberdeck",
      "author": "Ben Makes Everything",
      "sourceUrls": [
        "https://github.com/BenMakesEverything/Mu_Cyberdeck",
        "https://www.youtube.com/watch?v=SeIKYkOuZ3s"
      ],
      "summary": "A custom clamshell computer with a LattePanda Alpha, 7-inch display, hand-wired 40-key Choc keyboard, circular trackpad and printed enclosure.",
      "story": "Ben Makes Everything published the Mu Cyberdeck as a complete personal build, including STEP assemblies, KiCad production archives, keyboard and trackpad firmware, and a detailed parts list. Its custom low-profile keyboard and round trackpad give the machine a distinctive compact layout.",
      "status": "draft",
      "difficulty": "Advanced",
      "parts": [
        {
          "id": "lattepanda-alpha-864s",
          "name": "LattePanda Alpha 864s",
          "qty": 1,
          "note": "README Parts List: exact LattePanda Alpha 864s compute board."
        },
        {
          "id": "ws-7in-hdmi",
          "name": "Waveshare 7-inch HDMI LCD (C), 1024x600 touch",
          "qty": 1,
          "note": "README Parts List: 7-inch display; creator's linked panel is 1024×600, but supplier revision should be checked."
        },
        {
          "id": "stereo-speaker-pair-generic",
          "name": "Small stereo speaker pair",
          "qty": 1,
          "note": "README Parts List: two speakers; model and electrical rating are not stated."
        },
        {
          "id": "usb-c-power-bank-generic",
          "name": "USB-C power bank",
          "qty": 1,
          "note": "README Parts List: 20,000mAh power bank; exact model is not stated."
        },
        {
          "id": "audio-amplifier-board-generic",
          "name": "Small stereo audio amplifier board",
          "qty": 1,
          "note": "README Parts List: amplifier board; chipset and rating are not stated."
        },
        {
          "id": "azoteq-tps43-trackpad",
          "name": "Azoteq TPS43 trackpad",
          "qty": 1,
          "note": "README Parts List: TPS43 trackpad."
        },
        {
          "id": "raspberry-pi-pico-rp2040",
          "name": "Raspberry Pi Pico (RP2040)",
          "qty": 1,
          "note": "README Parts List: Raspberry Pi Pico."
        },
        {
          "id": "kailh-choc-v1-switch",
          "name": "Kailh Choc v1 low-profile switch",
          "qty": 40,
          "note": "README Parts List: 40 Kailh Choc low-profile switches."
        },
        {
          "id": "mbk-choc-keycap",
          "name": "MBK Choc low-profile keycap",
          "qty": 40,
          "note": "README Parts List: 40 keycaps."
        },
        {
          "id": "heat-inserts",
          "name": "M2.5/M3 heat-set threaded inserts",
          "qty": 8,
          "note": "README Parts List: eight brass threaded inserts; exact thread and outer dimensions are not stated."
        },
        {
          "id": "m3-knurled-insert-nut",
          "name": "M3 knurled insert nut",
          "qty": 8,
          "note": "README Parts List: eight M3 nuts."
        },
        {
          "id": "m3-low-profile-screw",
          "name": "M3 low-profile screw",
          "qty": 8,
          "note": "README Parts List: eight M3 button-head screws; length is not stated."
        },
        {
          "id": "disc-magnet-8x3mm",
          "name": "8×3mm neodymium disc magnet",
          "qty": 2,
          "note": "README Parts List: two 8×3mm magnets."
        },
        {
          "id": "rubber-feet-self-adhesive",
          "name": "Self-adhesive rubber feet",
          "qty": 1,
          "note": "README Parts List: rubber feet; quantity and size are not stated."
        },
        {
          "id": "jst-3pin-connector-generic",
          "name": "3-pin JST connector and pigtail",
          "qty": 1,
          "note": "README Parts List: 3-pin JST connector; pitch is not stated."
        },
        {
          "id": "dupont-female-female-wires",
          "name": "Female-to-female DuPont jumper wires",
          "qty": 1,
          "note": "README Parts List: DuPont wires; quantity and lengths are not stated."
        },
        {
          "id": "usb-c-power-cable",
          "name": "USB-C power cable",
          "qty": 1,
          "note": "README Parts List: USB cables and adapters; exact set is not fully itemized."
        },
        {
          "id": "small-metal-hinge-pair",
          "name": "Small metal hinge pair",
          "qty": 1,
          "note": "README Parts List: two hinges; exact dimensions are not stated."
        },
        {
          "id": "threadlocker-medium-strength",
          "name": "Medium-strength threadlocker",
          "qty": 1,
          "note": "README Parts List: Loctite/thread-locking adhesive."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README, parts list, 3D_files and KiCad directories, and GPL-3.0 license checked at source commit fd58dcec12ee25b83f728a1b42a96d0c5257d77a on 2026-10-26. The repository currently publishes STEP assemblies and ZIP archives rather than directly print-ready STL/3MF files, so no model is indexed. Kept as draft because the source uses shortened marketplace links and leaves the exact power bank, speakers, amplifier, hinges, cable set and several hardware dimensions unspecified.",
      "formFactor": "Clamshell",
      "platform": "x86 PC",
      "pageUrl": "https://builddeck.dev/builds/mu-cyberdeck/"
    },
    {
      "slug": "lambda-cyberdeck-910",
      "title": "Lambda Cyberdeck 910",
      "author": "Cody Tolene",
      "sourceUrls": [
        "https://github.com/CodyTolene/Lambda-Cyberdeck-910",
        "https://github.com/CodyTolene/Lambda-Cyberdeck-910/blob/8c09886702cbe6aca412b0adfade1b928a7d9eb8/README.md"
      ],
      "summary": "A Nanuk 910 field computer built around a Raspberry Pi 4, 7-inch HDMI display, compact Bluetooth keyboard and RTL-SDR V4 receiver.",
      "story": "Cody Tolene built the Lambda Cyberdeck 910 as a portable SDR and general-computing station inside a rugged case. The repository documents the finished deck, wiring and software setup, a quantified M3 assembly schedule and a complete printable insert set sized around the chosen display and keyboard.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "nanuk-910-case",
          "name": "Nanuk 910 protective case",
          "qty": 1,
          "note": "Creator README Essential Parts List names the Nanuk 910 case."
        },
        {
          "id": "rpi4",
          "name": "Raspberry Pi 4 Model B",
          "qty": 1,
          "note": "Creator README specifies Raspberry Pi 4 Model B with 4GB RAM."
        },
        {
          "id": "microsd-class10-64gb",
          "name": "64GB Class 10 microSD card",
          "qty": 1,
          "note": "Creator README specifies a 64GB Class 10 microSD card."
        },
        {
          "id": "waveshare-7in-hdmi-lcd-h",
          "name": "Waveshare 7-inch HDMI LCD (H)",
          "qty": 1,
          "note": "Creator README names and links the 7-inch HDMI LCD (H), 1024×600 IPS."
        },
        {
          "id": "logitech-pebble-keys-2-k380s",
          "name": "Logitech Pebble Keys 2 K380s keyboard",
          "qty": 1,
          "note": "Creator README names the Logitech Pebble Keys 2 K380s; the printed tray is shaped for it."
        },
        {
          "id": "rtl-sdr-blog-v4",
          "name": "RTL-SDR Blog V4 USB receiver",
          "qty": 1,
          "note": "Creator README Essential Parts List names RTL-SDR V4."
        },
        {
          "id": "highpi-pro-5v-fan",
          "name": "HighPi Pro 5V cooling fan",
          "qty": 1,
          "note": "Creator README names and links the HighPi Pro 5V fan."
        },
        {
          "id": "panel-power-switch-generic",
          "name": "Panel-mount on/off power switch",
          "qty": 1,
          "note": "Creator README requires an on/off button or switch but gives no exact model."
        },
        {
          "id": "rpi-usbc-5v3a-supply",
          "name": "Raspberry Pi USB-C 5.1V 3A power supply",
          "qty": 1,
          "note": "Creator README specifies a USB-C 5.1V 3A supply."
        },
        {
          "id": "waveshare-speaker-8ohm-5w-pair",
          "name": "Waveshare 8Ω 5W speaker pair",
          "qty": 1,
          "note": "Creator README names Waveshare 8Ω 5W speakers; one pair represents the left and right units."
        },
        {
          "id": "micro-hdmi-to-hdmi-cable",
          "name": "Micro-HDMI to HDMI cable",
          "qty": 1,
          "note": "Creator README requires one Micro-HDMI-to-HDMI cable."
        },
        {
          "id": "pishop-rotary-encoder-extras",
          "name": "Rotary encoder with push switch",
          "qty": 1,
          "note": "Creator README names and links the rotary encoder and documents its GPIO wiring."
        },
        {
          "id": "usbc-panel-feedthrough-adapter",
          "name": "Female USB-C panel mount to male USB-C adapter",
          "qty": 1,
          "note": "Creator README requires a female panel-mount USB-C to male adapter for power input."
        },
        {
          "id": "lambda-m3-hardware-set",
          "name": "Lambda Cyberdeck 910 M3 hardware set",
          "qty": 1,
          "note": "Creator assembly sections provide an M3 screw, nut and washer schedule, with some lengths expressed as ranges."
        }
      ],
      "printed": [
        {
          "name": "Lambda Cyberdeck 910 case insert, panels and keyboard tray",
          "note": "Official STL and 3MF assemblies are linked from the creator repository. The repository applies CC BY-NC 4.0: attribution is required and prints may not be sold under this license."
        }
      ],
      "verifyNotes": "Official README, essential/optional lists, assembly schedule, printable-file index and CC BY-NC 4.0 license checked at commit 8c09886702cbe6aca412b0adfade1b928a7d9eb8 on 2026-10-27. Kept as draft because the power switch, USB-C panel adapter and several hardware dimensions are not identified by exact model, and two M3 panel-screw callouts permit a 6–12mm range.",
      "formFactor": "Case deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/lambda-cyberdeck-910/"
    },
    {
      "slug": "qaz-cyberdeck",
      "title": "QAZ Cyberdeck",
      "author": "Gisbi (g1sbi), based on whydobearsxplod’s design",
      "sourceUrls": [
        "https://github.com/g1sbi/qaz-cyberdeck",
        "https://github.com/g1sbi/qaz-cyberdeck/blob/74a017cdf36567707efb1d9abe13fd7c9a33ee2c/README.md",
        "https://hackaday.io/project/187525-qaz-personal-terminal"
      ],
      "summary": "A compact Banana Pi M2 Zero terminal with a 35-key QAZ keyboard, ultrawide 7.9-inch display and an Amp Ripper-powered LiPo system.",
      "story": "Gisbi documented this build after reproducing and adapting whydobearsxplod’s QAZ Personal Terminal. The repository follows the keyboard, custom USB and HDMI cables, power system, test assembly and final printed shell in detail, while openly flagging cable-clearance and soldering pitfalls.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "banana-pi-m2-zero",
          "name": "Banana Pi BPI-M2 Zero",
          "qty": 1,
          "note": "Creator Hardware list and build photographs identify the Banana Pi M2 Zero."
        },
        {
          "id": "banana-pi-m2-zero-cooler",
          "name": "Banana Pi M2 Zero heatsink kit",
          "qty": 1,
          "note": "Creator Hardware list links a Banana Pi cooler; manufacturer and dimensions are unstated."
        },
        {
          "id": "ampripper-3000",
          "name": "Amp Ripper 3000 LiPo power board",
          "qty": 1,
          "note": "Creator Hardware list names and links the Amp Ripper 3000."
        },
        {
          "id": "waveshare-7-9-hdmi",
          "name": "Waveshare 7.9-inch HDMI LCD",
          "qty": 1,
          "note": "Creator Hardware list names and links the Waveshare 7.9-inch HDMI LCD."
        },
        {
          "id": "microsd-card",
          "name": "microSD card",
          "qty": 1,
          "note": "Creator calls for a fast microSD card and reports using 128GB, but does not require a brand."
        },
        {
          "id": "lipo-475510-max10mm",
          "name": "3.7V LiPo battery, maximum 47×55×10mm",
          "qty": 1,
          "note": "Creator Hardware list links a LiPo and gives a maximum 47×55×10mm envelope for substitutes."
        },
        {
          "id": "qaz-35-key-pcb",
          "name": "QAZ 35-key mechanical keyboard PCB",
          "qty": 1,
          "note": "Creator Keyboard list names a QAZ PCB and says the integrated version does not need a Pro Micro."
        },
        {
          "id": "sparkfun-pro-micro",
          "name": "SparkFun Pro Micro (ATmega32U4)",
          "qty": 1,
          "note": "Required only when using the non-integrated QAZ PCB; creator links a Pro Micro-compatible controller."
        },
        {
          "id": "kailh-box-jade-switch",
          "name": "Kailh BOX Jade mechanical switch",
          "qty": 35,
          "note": "Creator chose Kailh BOX Jade switches and links a 70-piece package; the QAZ layout has 35 keys."
        },
        {
          "id": "mx-keycap-set",
          "name": "MX-compatible keycap set",
          "qty": 1,
          "note": "Creator Keyboard list links an MX-compatible keycap set but does not identify a stable product or required profile."
        },
        {
          "id": "keyboard-stabilizer-set",
          "name": "Mechanical keyboard stabilizer set",
          "qty": 1,
          "note": "Creator marks stabilizers optional but recommended."
        },
        {
          "id": "microusb-male-breakout-header",
          "name": "Micro-USB male breakout header",
          "qty": 3,
          "note": "Creator cable section requires Micro-USB ends for Pi power, keyboard OTG and display power; exact package count is not stated."
        },
        {
          "id": "usbc-male-breakout-header",
          "name": "USB-C male breakout header",
          "qty": 1,
          "note": "Creator cable section requires one USB-C end for the Amp Ripper power lead."
        },
        {
          "id": "microhdmi-hdmi-ffc-5cm-set",
          "name": "Micro-HDMI to HDMI FFC cable set, 5cm",
          "qty": 1,
          "note": "Creator specifies C1 and A5 connector boards with a 5cm FFC for the custom display cable."
        },
        {
          "id": "silicone-wire-28awg",
          "name": "28AWG flexible hookup wire",
          "qty": 1,
          "note": "Creator Cables list explicitly specifies 28AWG electrical wire; length is not stated."
        }
      ],
      "printed": [
        {
          "name": "QAZ Cyberdeck case and back panel",
          "note": "Official Case.stl and Back.stl are in the creator repository. The repository declares GPL-3.0; preserve the license and corresponding-source obligations when redistributing modified files."
        }
      ],
      "verifyNotes": "Official README, component sections, assembly photographs, Case.stl, Back.stl and GPL-3.0 license checked at commit 74a017cdf36567707efb1d9abe13fd7c9a33ee2c on 2026-10-27. Kept as draft because the exact cooler, battery model/capacity/connector, keycap set, custom cable header revisions and several cable lengths are not specified; the non-integrated QAZ PCB also requires a separately selected Pro Micro.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Other Linux board",
      "pageUrl": "https://builddeck.dev/builds/qaz-cyberdeck/"
    },
    {
      "slug": "cyberdeck-pico8",
      "title": "Cyberdeck PICO8",
      "author": "Victor Barahona (Egokitek)",
      "sourceUrls": [
        "https://github.com/Egokitek/Cyberdeck-PICO8/tree/9c581304a084f04e8c7560e5fb4c2a661adfbef2",
        "https://github.com/Egokitek/Cyberdeck-PICO8/blob/9c581304a084f04e8c7560e5fb4c2a661adfbef2/BOM.xlsx",
        "https://github.com/Egokitek/Cyberdeck-PICO8/blob/9c581304a084f04e8c7560e5fb4c2a661adfbef2/Montaje/README.md",
        "https://github.com/Egokitek/Cyberdeck-PICO8/tree/9c581304a084f04e8c7560e5fb4c2a661adfbef2/STL"
      ],
      "summary": "A compact Raspberry Pi 3 clamshell built around a 3.5-inch resistive display, thumb keyboard and printable shell.",
      "story": "Egokitek designed Cyberdeck PICO8 as a small self-contained Pi terminal with its battery, charging and 5V boost electronics packed behind a tilting display. The repository documents wiring and assembly in photographs and publishes the enclosure as four printable pieces.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "raspberry-pi-3-unspecified",
          "name": "Raspberry Pi 3 (revision unspecified)",
          "qty": 1,
          "note": "Repository README and BOM: Raspberry Pi 3; exact Model B revision is not stated."
        },
        {
          "id": "tft-35in-resistive-pico8",
          "name": "3.5-inch resistive TFT display (model unspecified)",
          "qty": 1,
          "note": "Repository README: 3.5-inch resistive TFT matching the Pi footprint; BOM adds no model, resolution or interface."
        },
        {
          "id": "mini-bluetooth-qwerty",
          "name": "Mini Bluetooth QWERTY keyboard",
          "qty": 1,
          "note": "Repository README and BOM: very small Bluetooth keyboard; manufacturer and model are not stated."
        },
        {
          "id": "tp4056-usb-charger-module-generic",
          "name": "TP4056 USB single-cell Li-ion charger module",
          "qty": 1,
          "note": "Repository README and BOM: USB battery charger based on TP4056; connector and protection-board revision are not stated."
        },
        {
          "id": "mt3608-boost",
          "name": "Adjustable MT3608 DC-DC boost converter module",
          "qty": 1,
          "note": "Repository BOM names MT3608; README describes a DC-DC step-up from 3.7V to 5V."
        },
        {
          "id": "liion-37v-3000-3300mah-pico8",
          "name": "3.7V Li-ion battery for Cyberdeck PICO8",
          "qty": 1,
          "note": "Source conflict: BOM says 3000mAh, while README says 3300mAh. Dimensions, connector and manufacturer are not stated."
        },
        {
          "id": "submini-toggle-switch",
          "name": "Subminiature toggle switch",
          "qty": 1,
          "note": "Repository BOM names a toggle switch; README describes a side power button. Electrical rating and dimensions are not stated."
        },
        {
          "id": "m3x25-machine-screw",
          "name": "M3×25mm machine screw",
          "qty": 2,
          "note": "Repository README: two M3×25 screws join the two main PLA chassis pieces; head style and mating hardware are not stated."
        },
        {
          "id": "pla-filament-generic",
          "name": "PLA filament 1.75mm",
          "qty": 1,
          "note": "Repository README says the two-piece chassis is printed in PLA; color and quantity are not stated."
        }
      ],
      "printed": [
        {
          "name": "Base, lid, screen bezel and screen stop",
          "note": "Official four-file STL set in the repository. The project is licensed GPL-3.0."
        }
      ],
      "verifyNotes": "README, assembly guide, BOM spreadsheet, STL index and GPL-3.0 license checked at source commit 9c581304a084f04e8c7560e5fb4c2a661adfbef2 on 2026-10-27. Kept draft because the Pi 3 revision, display model/interface, keyboard model, battery dimensions/connector, switch ratings and screw head style are not specified, and the README says 3300mAh while the BOM says 3000mAh.",
      "formFactor": "Clamshell",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/cyberdeck-pico8/"
    },
    {
      "slug": "esp32-s3-rlcd-cyberdeck",
      "title": "ESP32-S3 RLCD cYbErDeCk",
      "author": "Kyle Smith",
      "sourceUrls": [
        "https://github.com/kylebsmith/ESP32-S3-RLCD-cYbErDeCk/tree/abc5f675cbdc449ef4595d3de9505d04c1f81f67",
        "https://github.com/kylebsmith/ESP32-S3-RLCD-cYbErDeCk/blob/abc5f675cbdc449ef4595d3de9505d04c1f81f67/docs/ASSEMBLY.md",
        "https://github.com/kylebsmith/ESP32-S3-RLCD-cYbErDeCk/tree/abc5f675cbdc449ef4595d3de9505d04c1f81f67/cad"
      ],
      "summary": "A low-power ESP32-S3 clamshell with a 4.2-inch reflective LCD, Rii Bluetooth keyboard and a print-ready enclosure.",
      "story": "Kyle Smith’s cYbErDeCk targets long runtime and outdoor readability rather than desktop-class compute. The design combines Waveshare’s reflective color LCD board with one 18650 cell, a removable keyboard and a compact printed shell offered with either a screwed back plate or an optional magnetic cover.",
      "status": "draft",
      "difficulty": "Medium",
      "parts": [
        {
          "id": "waveshare-esp32-s3-rlcd-42",
          "name": "Waveshare ESP32-S3-RLCD-4.2 reflective LCD board",
          "qty": 1,
          "note": "Repository BOM and assembly guide: Waveshare ESP32-S3-RLCD-4.2; explicitly not an e-paper or other ESP32-S3 display board."
        },
        {
          "id": "rii-518-bluetooth-keyboard",
          "name": "Rii 518 Bluetooth keyboard",
          "qty": 1,
          "note": "Repository BOM and mechanical design: Rii 518BT mini Bluetooth keyboard; explicitly not the K18 or RT518S."
        },
        {
          "id": "18650-cell-max-186x69",
          "name": "18650 Li-ion cell (maximum 18.6×69mm)",
          "qty": 1,
          "note": "Assembly guide: one flat-top or protected 18650 cell, no larger than 18.6mm diameter × 69.0mm long."
        },
        {
          "id": "speaker-8ohm-1w-mx125",
          "name": "8Ω 1W speaker with 2-pin MX1.25 lead",
          "qty": 1,
          "note": "Repository BOM: the speaker with MX1.25 two-pin lead supplied with the Waveshare board; only source a replacement if the included part is missing."
        },
        {
          "id": "m2x4-heat-set-insert-32od",
          "name": "M2×4mm brass heat-set insert, 3.2mm OD",
          "qty": 4,
          "note": "Repository BOM: four M2×4mm brass heat-set inserts with 3.2mm outside diameter."
        },
        {
          "id": "m2x6-countersunk-iso10642",
          "name": "M2×6mm countersunk screw, ISO 10642",
          "qty": 4,
          "note": "Repository BOM: four M2×6mm countersunk ISO 10642 screws between chassis and back plate; the guide explicitly rejects M2×8."
        },
        {
          "id": "m25x8-countersunk-screw",
          "name": "M2.5×8mm countersunk machine screw",
          "qty": 4,
          "note": "Repository BOM: four M2.5×8mm countersunk ISO 10642 screws into the board standoffs."
        },
        {
          "id": "foam-gasket-strip-generic",
          "name": "Thin adhesive foam gasket strip",
          "qty": 1,
          "note": "Repository BOM: one 0.5mm-thick adhesive foam gasket strip around the display aperture."
        },
        {
          "id": "microsd-card",
          "name": "microSD card",
          "qty": 1,
          "note": "Repository BOM lists one optional FAT32-formatted microSD card; capacity and speed class are not stated."
        },
        {
          "id": "disc-magnet-5x2mm",
          "name": "5×2mm neodymium disc magnet",
          "qty": 8,
          "note": "Repository BOM: eight 5×2mm N52 magnets only for optional cover variant 2; four in the shell and four in the cover."
        }
      ],
      "printed": [
        {
          "name": "Chassis, back plate, button sprue and optional magnetic cover",
          "note": "Official print-ready STL set in the repository. The project is licensed MIT; the creator states that no part has yet been physically printed or fitted."
        }
      ],
      "verifyNotes": "README, assembly guide, OpenSCAD source tree and MIT license checked at source commit abc5f675cbdc449ef4595d3de9505d04c1f81f67 on 2026-10-27. Kept draft because the creator explicitly says the design is in development, has not yet been physically built, and the keyboard function-key matrix remains untested.",
      "formFactor": "Clamshell",
      "platform": "Microcontroller",
      "pageUrl": "https://builddeck.dev/builds/esp32-s3-rlcd-cyberdeck/"
    },
    {
      "slug": "framework-cyberdeck-ben-makes-everything",
      "title": "Framework Cyberdeck",
      "author": "Ben Makes Everything",
      "sourceUrls": [
        "https://github.com/BenMakesEverything/cyberdeck/tree/6bddc64a3240ce2ff90aace659c0a12280c4d32f",
        "https://github.com/BenMakesEverything/cyberdeck/blob/6bddc64a3240ce2ff90aace659c0a12280c4d32f/README.md"
      ],
      "summary": "A custom portable PC that repackages a Framework laptop mainboard, battery and modules into a printed clamshell with a wide portable display, Apple keyboard and salvaged trackball.",
      "story": "Ben Makes Everything built this cyberdeck around repairable Framework laptop hardware, then designed a six-piece printed frame and separate top and bottom plates to hold a complete x86 computer. A Magic Keyboard 2 handles typing, a vintage Logitech trackball adds pointing, and an Arduino Pro Micro translates the trackball for the system.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "framework-13-mainboard",
          "name": "Framework Laptop 13 mainboard",
          "qty": 1,
          "note": "Creator Parts List: Framework motherboard/CPU; generation is not stated."
        },
        {
          "id": "framework-expansion-card-set",
          "name": "Framework expansion-card set",
          "qty": 1,
          "note": "Creator names Framework expansion cards but not card types or quantities."
        },
        {
          "id": "framework-13-battery",
          "name": "Framework Laptop 13 battery",
          "qty": 1,
          "note": "Creator Parts List: Framework battery; exact revision is not stated."
        },
        {
          "id": "framework-laptop-speaker-kit",
          "name": "Framework Laptop speaker kit",
          "qty": 1,
          "note": "Creator Parts List: Framework speakers; exact kit revision is not stated."
        },
        {
          "id": "framework-wifi-ax210",
          "name": "Framework Intel Wi-Fi 6E AX210 module",
          "qty": 1,
          "note": "Creator names a Framework Wi-Fi card without model; this is a family match, so confirm the exact card."
        },
        {
          "id": "corsair-vengeance-16gb-ddr4-3200-sodimm",
          "name": "Corsair Vengeance 16GB DDR4-3200 SODIMM",
          "qty": 1,
          "note": "Creator links the exact Corsair 16GB SODIMM listing."
        },
        {
          "id": "wd-black-sn770-500gb",
          "name": "WD_BLACK SN770 500GB NVMe SSD",
          "qty": 1,
          "note": "Creator links the exact Western Digital 500GB SN770 listing."
        },
        {
          "id": "framework-13-antenna",
          "name": "Framework Laptop 13 antenna module",
          "qty": 1,
          "note": "Creator Parts List: Framework antenna; revision is not stated."
        },
        {
          "id": "apple-magic-keyboard-2",
          "name": "Apple Magic Keyboard 2",
          "qty": 1,
          "note": "Creator directs builders to search eBay for “Magic Keyboard 2.”"
        },
        {
          "id": "lightning-usba-right-angle-cable",
          "name": "Low-profile USB-A to right-angle Lightning cable",
          "qty": 1,
          "note": "Creator links a slim USB-A to 90-degree Lightning keyboard cable."
        },
        {
          "id": "portable-display-b0bzyxfscx",
          "name": "Portable display used in Framework Cyberdeck",
          "qty": 1,
          "note": "Creator links Amazon listing B0BZYXFSCX as the screen but does not name its model."
        },
        {
          "id": "usbc-cable-one-right-angle",
          "name": "USB-C cable with one right-angle connector",
          "qty": 1,
          "note": "Creator identifies this as the screen cable and requires one right-angle end."
        },
        {
          "id": "usb-l-shape-adapter-b0bcgh47cn",
          "name": "L-shaped USB adapter",
          "qty": 1,
          "note": "Creator Parts List: L-shape USB connector; exact connector type is not described."
        },
        {
          "id": "usbc-to-miniusb-cable",
          "name": "USB-C to Mini-USB cable",
          "qty": 1,
          "note": "Creator Parts List: USB-C to Mini-USB cable."
        },
        {
          "id": "sparkfun-pro-micro",
          "name": "SparkFun Pro Micro (ATmega32U4)",
          "qty": 1,
          "note": "Creator Parts List: Arduino Pro Micro for the trackball interface."
        },
        {
          "id": "logitech-t-sbc12-cp-trackball",
          "name": "Logitech 161A T-SBC12-CP trackball board",
          "qty": 1,
          "note": "Creator identifies the exact Logitech T-SBC12-CP trackball."
        },
        {
          "id": "small-metal-hinge-pair",
          "name": "Small metal hinge pair",
          "qty": 1,
          "note": "Creator links a hinge pack; the hardware schedule uses two hinges."
        },
        {
          "id": "framework-cyberdeck-usb-hub",
          "name": "Internal USB hub for Framework Cyberdeck",
          "qty": 1,
          "note": "Creator links Amazon listing B0BLJFZ42M as the USB hub; model and port layout are not stated."
        },
        {
          "id": "m2-m3-heat-set-insert-assortment",
          "name": "M2 and M3 heat-set insert assortment",
          "qty": 1,
          "note": "Creator links separate M2 and M3 inserts but gives no dimensions or counts."
        },
        {
          "id": "framework-cyberdeck-aluminum-plate-pair",
          "name": "Aluminum plate stock for Framework Cyberdeck",
          "qty": 1,
          "note": "Creator requires two aluminum plates and advises acrylic or aluminum rather than PLA."
        },
        {
          "id": "rubber-feet-self-adhesive",
          "name": "Self-adhesive rubber feet",
          "qty": 1,
          "note": "Creator names rubber feet; count and dimensions are not stated."
        },
        {
          "id": "panel-power-switch-generic",
          "name": "Panel-mount on/off power switch",
          "qty": 1,
          "note": "Creator links a power switch and notes that the metal tab was removed; ratings and cutout are not stated."
        },
        {
          "id": "framework-cyberdeck-fastener-set",
          "name": "Framework Cyberdeck metric fastener set",
          "qty": 1,
          "note": "Creator Hardware section gives the screw-and-nut schedule by mounting location."
        }
      ],
      "printed": [
        {
          "name": "Framework Cyberdeck printed frame, display frame and buttons",
          "note": "README lists four frame sections, two screen-frame sections and two printed buttons at 50% infill. The repository publishes STL/STEP/Fusion files but declares no license; obtain permission before redistribution."
        },
        {
          "name": "Framework Cyberdeck top and bottom plates",
          "note": "Creator publishes 2D/3D plate files and recommends laser-cut acrylic or machined aluminum because the plates are large and PLA is unsuitable. License is not stated."
        }
      ],
      "verifyNotes": "Official README, parts list, hardware schedule and CAD/STL index checked at commit 6bddc64a3240ce2ff90aace659c0a12280c4d32f on 2026-10-27. Kept as draft because the Framework mainboard generation, expansion-card selection, several module revisions, display identity, connector details, insert dimensions and plate specifications are not stated, and the design files have no declared license.",
      "formFactor": "Clamshell",
      "platform": "x86 PC",
      "pageUrl": "https://builddeck.dev/builds/framework-cyberdeck-ben-makes-everything/"
    },
    {
      "slug": "rp2040-cyberdeck-juan-r-ortiz",
      "title": "RP2040 CyberDeck",
      "author": "Juan R. Ortiz",
      "sourceUrls": [
        "https://github.com/juanrortiz/CyberDeck/tree/0a59283a1818e07093078d8c74f69b2a26d13906",
        "https://github.com/juanrortiz/CyberDeck/blob/0a59283a1818e07093078d8c74f69b2a26d13906/README.md",
        "https://github.com/juanrortiz/CyberDeck/tree/0a59283a1818e07093078d8c74f69b2a26d13906/hardware/CAD",
        "https://github.com/juanrortiz/CyberDeck/tree/0a59283a1818e07093078d8c74f69b2a26d13906/hardware/CyberDeck/gerbers"
      ],
      "summary": "A pocket-size RP2040 controller deck with a CardKB keyboard, analog joystick and programmable macro buttons on a custom PCB inside a printable shell.",
      "story": "Juan R. Ortiz’s prototype turns a SparkFun Pro Micro RP2040 into a compact programmable input deck. The firmware reads an M5Stack CardKB over I2C, handles a joystick and maps custom buttons to macros, while the repository supplies KiCad files, Gerbers and printable enclosure parts for builders refining the prototype.",
      "status": "draft",
      "difficulty": "Medium",
      "parts": [
        {
          "id": "sparkfun-pro-micro-rp2040",
          "name": "SparkFun Pro Micro RP2040",
          "qty": 1,
          "note": "README explicitly names the SparkFun Pro Micro RP2040."
        },
        {
          "id": "m5stack-cardkb-v11",
          "name": "M5Stack CardKB V1.1",
          "qty": 1,
          "note": "README names an M5Stack CardKB over I2C; revision is not stated, so confirm V1.1 compatibility."
        },
        {
          "id": "analog-joystick-module-unspecified",
          "name": "Analog joystick module (model unspecified)",
          "qty": 1,
          "note": "README names one analog joystick but does not identify model, footprint or electrical range."
        },
        {
          "id": "rp2040-cyberdeck-macro-button-set",
          "name": "Momentary macro-button set",
          "qty": 1,
          "note": "README says there are several programmable macro buttons; exact count and switch model are not stated."
        },
        {
          "id": "rp2040-cyberdeck-custom-pcb",
          "name": "RP2040 CyberDeck custom PCB",
          "qty": 1,
          "note": "Repository publishes the KiCad PCB and manufacturing Gerbers."
        }
      ],
      "printed": [
        {
          "name": "RP2040 CyberDeck enclosure, cover, buttons and macro keycaps",
          "note": "Official CAD directory contains enclosure, cover, button and keycap STLs plus 3MF and FreeCAD sources. Repository declares no license; obtain permission before redistribution."
        }
      ],
      "verifyNotes": "Official README, firmware tree, KiCad project, Gerbers, prototype image and CAD/STL index checked at commit 0a59283a1818e07093078d8c74f69b2a26d13906 on 2026-10-27. Kept as draft because the joystick model, macro-button count and switch footprint are not specified, the CardKB revision is unstated, the PCB repository includes a DRC report, and no license is declared for the design or printable files.",
      "formFactor": "Handheld",
      "platform": "Microcontroller",
      "pageUrl": "https://builddeck.dev/builds/rp2040-cyberdeck-juan-r-ortiz/"
    }
  ]
}
