{
  "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://beepy.sqfmi.com/docs/hardware/specs",
        "https://beepy.sqfmi.com/docs/getting-started",
        "https://github.com/beeper/beepy"
      ],
      "summary": "A pocket Linux handheld with a BlackBerry-style keyboard, a sunlight-readable Sharp Memory LCD and support for Raspberry Pi Zero-family boards.",
      "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,
          "note": "The official Tech Specs call the Raspberry Pi Zero W optional; the Getting Started guide also states that its Buildroot image is compatible with the Raspberry Pi Zero 2 W."
        },
        {
          "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": "Official Tech Specs, Getting Started guide and repository rechecked on 2026-11-01. The sources confirm the 2.7-inch 400x240 Sharp Memory LCD, tactile backlit keyboard/touchpad, onboard RP2040, USB-C charging and 2,000mAh LiPo. The Pi is now marked optional because the Tech Specs explicitly describe a Raspberry Pi Zero W as optional; the Getting Started guide separately confirms Raspberry Pi Zero 2 W compatibility. Kept as draft because the public docs do not identify the current board revision, exact Sharp panel, keyboard module or battery model, and the official repository does not publish case design files.",
      "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",
          "url": "https://github.com/ZitaoTech/HackberryPiCM5/tree/479b852055ee31c6611b50ff1d67851e9b29ee4a/3D-Modell",
          "license": "MIT",
          "note": "Official STL and STEP directory for the display support, middle and lower sections, switch, assembly tool and keyboard-specific shell variants."
        }
      ],
      "verifyNotes": "Official README, assembly guide, 3D-model index, MIT license and current repository state rechecked at source commit 479b852055ee31c6611b50ff1d67851e9b29ee4a on 2026-11-01. It remains draft because the exact passive heatsink and thermal-pad specifications are not stated, and keyboard/base-unit contents vary by version.",
      "verifiedOn": "2026-11-01",
      "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",
          "url": "https://github.com/jdoscher/Back7co-Raspberry_Pi_Recovery_Kit/tree/master/Original%20Project%203D%20Models",
          "license": "CC BY-NC 3.0 US",
          "note": "The creator repository provides the front-panel, display-bracket and spacer STL files under its Attribution-NonCommercial 3.0 US license."
        },
        {
          "name": "Base deck plate",
          "url": "https://github.com/jdoscher/Back7co-Raspberry_Pi_Recovery_Kit/tree/master/Original%20Project%203D%20Models",
          "license": "CC BY-NC 3.0 US",
          "note": "The repository provides the main-frame, keyboard-tray and related STL files; these are non-commercial licensed creator files, not BuildDeck downloads."
        }
      ],
      "verifyNotes": "Official README, wiring diagram, model tree and CC BY-NC 3.0 US license rechecked at source commit 529b943ae1e86e5b407bc61d487a63e76a296c4d on 2026-10-31. It remains draft because the current six-item list is a build-alike rather than the creator's complete original BOM, and several custom panel and wiring details are not represented.",
      "verifiedOn": "2026-10-31",
      "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": "Official product page, repository README, assembly guide and current source tree rechecked at source commit 53a05efca806ca024aab4fbfd28a680688c2541c on 2026-10-31. It remains draft because kit contents and supported compute-module options change, while this manifest represents only the optional CM4 rather than the complete kit contents.",
      "verifiedOn": "2026-10-31",
      "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 at source commit ce797f0c14a7dd85e87866367550c6a5576c9941 on 2026-10-31. 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 MIT repository license rechecked at source commit 7d592e9c8f152b88ee71c4fa61de57faeea58100 on 2026-10-30. Kept as draft because the creator does not identify the power source or interconnect wire, and the exact GMT020-02-7P display has no working direct product-page link from an allowlisted seller.",
      "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": "Re-checked the creator's README and parts list at commit 2bcefecc659123285309a61942164fce27050417 on 2026-10-27. Creator photos confirm the completed build, but it remains 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": "Creator README and MIT license rechecked at commit ad85368b9b361193718027246d229c1a0a93aee7 on 2026-11-02. Its Hardware Requirements section names one required product, the ESP32-S3 T-Deck Plus; the manifest traces that part to the README and provides a working allowlisted direct product page. No printed parts are required.",
      "verifiedOn": "2026-11-02",
      "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": "verified",
      "difficulty": "Easy",
      "parts": [
        {
          "id": "m5stack-tab5",
          "name": "M5Stack Tab5",
          "qty": 1,
          "note": "The official README requires an M5Stack Tab5 and states that the firmware detects all Tab5 panel revisions at runtime. The creator does not require either the C145 or K145 package specifically, so direct distributor links for both are provided."
        },
        {
          "id": "m5stack-tab5-keyboard",
          "name": "M5Stack Tab5 Keyboard",
          "qty": 1,
          "note": "The official README explicitly requires the official Tab5 Keyboard; the catalog links the exact M5Stack A164 accessory."
        }
      ],
      "printed": [],
      "verifyNotes": "Verified against the official repository README at source commit e401d20127c133047b9826bb096ba7380e7e0ac0 on 2026-11-01. The README's complete physical requirement is an M5Stack Tab5 with the official Tab5 Keyboard, and it states that one firmware image supports every Tab5 panel revision. Both required parts have direct DigiKey product pages; no printable enclosure is part of this build.",
      "verifiedOn": "2026-11-01",
      "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/tree/383468ff3129cd791cd045dc5fab4b97fa5fd879",
        "https://github.com/0015/ESP32Berry/blob/383468ff3129cd791cd045dc5fab4b97fa5fd879/README.md"
      ],
      "summary": "A BlackBerry-style ESP32-S3 handheld environment for the original LILYGO T-Deck, with an LVGL launcher, control panel, dynamic Wi-Fi selection and app framework.",
      "story": "Eric Nam, publishing as 0015, turned the keyboard-and-trackball T-Deck into a pocket app platform. The archived repository preserves the firmware and demonstrated releases; because the T-Deck integrates the screen, keyboard, trackball, speaker and ESP32-S3, it is the only required hardware item named by the creator.",
      "status": "verified",
      "verifiedOn": "2026-10-27",
      "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 and photographs the original LILYGO T-Deck, and directs users to LILYGO's T-Deck support library."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README, repository metadata, demonstrated release video link and MIT license checked at commit 383468ff3129cd791cd045dc5fab4b97fa5fd879 on 2026-10-27. The repository is retired, but that does not create a parts-list gap: the original LILYGO T-Deck is the only required physical item named for this single-board firmware project. No separate printed enclosure is specified.",
      "formFactor": "Handheld",
      "platform": "Microcontroller",
      "pageUrl": "https://builddeck.dev/builds/esp32berry/"
    },
    {
      "slug": "ittypda",
      "title": "ittyPDA",
      "author": "ingobeans",
      "sourceUrls": [
        "https://github.com/ingobeans/ittypda/tree/aa2096a2ded39054b674359de6225e00119c7194",
        "https://github.com/ingobeans/ittypda/blob/aa2096a2ded39054b674359de6225e00119c7194/parts-bom.csv",
        "https://github.com/ingobeans/ittypda/tree/aa2096a2ded39054b674359de6225e00119c7194/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": "ittyPDA case shell",
          "url": "https://github.com/ingobeans/ittypda/tree/aa2096a2ded39054b674359de6225e00119c7194/case",
          "license": "unverified",
          "note": "The creator provides STL, STEP and Blender files, but labels the case a minimum viable prototype whose physical fit has not yet been validated. The repository declares no license, so do not redistribute the files or sell prints without permission."
        }
      ],
      "verifyNotes": "Official README, parts-bom.csv, case files and repository metadata rechecked at commit aa2096a2ded39054b674359de6225e00119c7194 on 2026-11-01. 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. The exact display and battery also lack allowlisted direct product pages.",
      "verifiedOn": "2026-11-01",
      "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",
          "url": "https://github.com/ZitaoTech/Hackberry-Pi_Zero/tree/84c37eec5b1a234ce3bf50933bd785423fff7e0a/3D-Modell",
          "license": "MIT",
          "note": "Official 3D-Modell directory provides keyboard-version shells, supports, battery covers, controls and display-mount STL files."
        }
      ],
      "verifyNotes": "Official README, repository tree, mechanical files, MIT license and Elecrow listing rechecked at source commit 84c37eec5b1a234ce3bf50933bd785423fff7e0a on 2026-10-31. 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.xls",
        "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",
          "url": "https://github.com/kylebsmith/ESP32-S3-RLCD-cYbErDeCk/tree/abc5f675cbdc449ef4595d3de9505d04c1f81f67/export/stl",
          "license": "MIT",
          "note": "Official print-ready STL set in the repository. 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/"
    },
    {
      "slug": "satunix-raspberry-pi-400-cyberdeck",
      "title": "SATUNIX Raspberry Pi 400 Cyberdeck",
      "author": "SATUNIX",
      "sourceUrls": [
        "https://github.com/SATUNIX/CYBERDECK/tree/dd8610562a9515ee49f596d41d6e445b46e9c3c6",
        "https://github.com/SATUNIX/CYBERDECK/blob/dd8610562a9515ee49f596d41d6e445b46e9c3c6/README.md"
      ],
      "summary": "A minimal Kali Linux cyberdeck that adds an angled GPIO adapter and compact touchscreen to a Raspberry Pi 400.",
      "story": "SATUNIX built this straightforward deck around the Raspberry Pi 400, using Adafruit’s full-size CYBERDECK HAT to angle a display above the keyboard. After a DFRobot screen proved incompatible, the creator switched to a Waveshare 3.5-inch RPi LCD (A) and documented the working Kali Linux display setup.",
      "status": "draft",
      "difficulty": "Easy",
      "parts": [
        {
          "id": "raspberry-pi-400",
          "name": "Raspberry Pi 400",
          "qty": 1,
          "note": "README Hardware section: Raspberry Pi 400."
        },
        {
          "id": "adafruit-cyberdeck-hat-4863",
          "name": "Adafruit CYBERDECK HAT for Raspberry Pi 400 & 500",
          "qty": 1,
          "note": "README Hardware section: Adafruit Cyberdeck Hat; the repository image identifies product 4863."
        },
        {
          "id": "waveshare-35-rpi-lcd-a",
          "name": "Waveshare 3.5-inch RPi LCD (A)",
          "qty": 1,
          "note": "README says the working replacement screen is the Waveshare 3.5-inch RPi LCD (A) and links its wiki."
        },
        {
          "id": "tp-link-tl-wn722n-v2-v3",
          "name": "TP-Link TL-WN722N V2/V3 USB Wi-Fi adapter",
          "qty": 1,
          "note": "README Hardware and Drivers sections name the TP-Link TL-WN722N and explicitly allow hardware version 2 or 3."
        },
        {
          "id": "usb-power-bank-5v-2a-unspecified",
          "name": "5V/2A USB power bank (model unspecified)",
          "qty": 1,
          "note": "README Hardware section calls for an ANKO battery pack or a similar 5V/2A USB power bank; exact model and capacity are not specified."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README rechecked at commit dd8610562a9515ee49f596d41d6e445b46e9c3c6 on 2026-10-31. The manifest now includes all five hardware lines named by the creator. Kept as draft because the README conflicts between a DFRobot display in the Hardware section and a Waveshare 3.5-inch model in its working configuration, and the ANKO 5V/2A battery pack is not identified by model or capacity. The repository declares GPL-3.0 for its software; no printable parts are published.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/satunix-raspberry-pi-400-cyberdeck/"
    },
    {
      "slug": "gr3ml1n-mini-cyberdeck-os",
      "title": "GR3ML1N Mini Cyberdeck OS",
      "author": "Andy Warburton",
      "sourceUrls": [
        "https://github.com/andywarburton/gr3ml1n-cyberdeck/tree/fc3b164f3d21d736c361c8d04507b248280ac666",
        "https://github.com/andywarburton/gr3ml1n-cyberdeck/blob/fc3b164f3d21d736c361c8d04507b248280ac666/README.md"
      ],
      "summary": "A touch-first CircuitPython mini cyberdeck environment for Waveshare’s ESP32-S3 2.8-inch display board, with a launcher, utilities, games and synthesizer.",
      "story": "Andy Warburton’s GR3ML1N project turns a single integrated ESP32-S3 touch-display board into a pocket software cyberdeck. Its swipe-and-tap launcher opens tools including notes, a BLE scanner, network status, a clock, an accelerometer view, a digital pet and a small synthesizer, with optional navigation from an external USB keyboard running KMK.",
      "status": "verified",
      "verifiedOn": "2026-10-30",
      "difficulty": "Easy",
      "parts": [
        {
          "id": "waveshare-esp32-s3-touch-lcd-28",
          "name": "Waveshare ESP32-S3 Touch LCD 2.8",
          "qty": 1,
          "note": "README Hardware section names the Waveshare ESP32-S3 Touch LCD 2.8-inch board at 240×320 portrait resolution."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README and source tree checked at commit fc3b164f3d21d736c361c8d04507b248280ac666 on 2026-10-30. The named Waveshare ESP32-S3 Touch LCD 2.8-inch board is the only required physical item: its integrated touchscreen operates the core launcher and apps. External USB-keyboard input and I2S audio are optional features, so their unspecified accessories do not block verification. No printable parts are published.",
      "formFactor": "Handheld",
      "platform": "Microcontroller",
      "pageUrl": "https://builddeck.dev/builds/gr3ml1n-mini-cyberdeck-os/"
    },
    {
      "slug": "harpy-handheld-pixelsorter",
      "title": "Harpy Handheld Pixelsorter",
      "author": "Vaghabund / Pixelsort Contributors",
      "sourceUrls": [
        "https://github.com/Vaghabund/Harpy_Handheld-Pixelsorter/tree/fb7cc2b1d7468f969c5201581fb20cd9ddab0fcb",
        "https://github.com/Vaghabund/Harpy_Handheld-Pixelsorter/blob/fb7cc2b1d7468f969c5201581fb20cd9ddab0fcb/README.md"
      ],
      "summary": "A Raspberry Pi 5 handheld image workstation that captures or imports photos, applies real-time pixel-sorting effects and exports the results to USB storage.",
      "story": "Vaghabund and the Pixelsort contributors designed Harpy as a dedicated tactile appliance for glitch art rather than a general-purpose computer. Its Rust interface combines live Camera Module 3 capture, touch controls, non-destructive sessions and removable-drive export on a compact Pi 5 and seven-inch display stack.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "rpi5",
          "name": "Raspberry Pi 5",
          "qty": 1,
          "note": "README Hardware Requirements: Raspberry Pi 5, 4GB or 8GB recommended."
        },
        {
          "id": "ws-7in-hdmi",
          "name": "Waveshare 7-inch HDMI LCD (C), 1024x600 touch",
          "qty": 1,
          "note": "README Hardware Requirements: Waveshare 7-inch HDMI touchscreen, 1024×600."
        },
        {
          "id": "rpi-camera-module-3",
          "name": "Raspberry Pi Camera Module 3",
          "qty": 1,
          "note": "README Hardware Requirements: Raspberry Pi Camera Module 3; lens variant is not stated."
        },
        {
          "id": "microsd-card",
          "name": "microSD card",
          "qty": 1,
          "note": "README Hardware Requirements: microSD card, 32GB or larger; brand and speed class are not stated."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README, source tree, deployment files and MIT license checked at commit fb7cc2b1d7468f969c5201581fb20cd9ddab0fcb on 2026-10-27. Kept as draft because the repository calls for a 3D-printed enclosure and optional UPS HAT but publishes no enclosure files or exact UPS model, the camera lens variant is unstated, and the software is still marked under active development.",
      "formFactor": "Handheld",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/harpy-handheld-pixelsorter/"
    },
    {
      "slug": "jarvis-esp32-diagnostic-cyberdeck",
      "title": "J.A.R.V.I.S ESP32 Diagnostic Cyberdeck",
      "author": "HeroicCodey",
      "sourceUrls": [
        "https://github.com/HeroicCodey/J.A.R.V.I.S-Cyberdeck/tree/e274c1abe225dc9973593d4c47a4ae482aed1066",
        "https://github.com/HeroicCodey/J.A.R.V.I.S-Cyberdeck/blob/e274c1abe225dc9973593d4c47a4ae482aed1066/BOM.md",
        "https://github.com/HeroicCodey/J.A.R.V.I.S-Cyberdeck/blob/e274c1abe225dc9973593d4c47a4ae482aed1066/JOURNAL.md"
      ],
      "summary": "A compact ESP32 diagnostic terminal with a color display, four-button interface and protected 18650 power source, documented with firmware, PCB and enclosure files.",
      "story": "HeroicCodey developed J.A.R.V.I.S as a small field-oriented electronics console whose monochrome-inspired carousel UI runs on an ESP32. The repository records the component-selection process and publishes Arduino firmware, a KiCad board, a STEP enclosure model and an exact linked Markdown BOM.",
      "status": "draft",
      "verifiedOn": "2026-11-02",
      "difficulty": "Intermediate",
      "parts": [
        {
          "id": "esp32-devkitc-32e",
          "name": "Espressif ESP32-DevKitC-32E",
          "qty": 1,
          "note": "BOM.md row “ESP32 30-pin” links the exact ESP32-DEVKITC-32E DigiKey page."
        },
        {
          "id": "omron-b3f-4050",
          "name": "Omron B3F-4050 tactile switch",
          "qty": 4,
          "note": "BOM.md row “4-pin Tactile Button” links the exact Omron B3F-4050 DigiKey page."
        },
        {
          "id": "sparkfun-tft-15143",
          "name": "SparkFun 1.8-inch TFT LCD 15143",
          "qty": 1,
          "note": "BOM.md links SparkFun 15143, an exact 1.8-inch ILI9163C TFT; the README instead describes a 1.8-inch ST7735 display."
        },
        {
          "id": "jauch-li18650jls-hb-3-35ah-protected",
          "name": "Jauch LI18650JLS-HB-3.35Ah protected battery",
          "qty": 1,
          "note": "BOM.md links the exact protected Jauch 3.35 Ah cell; the shorter BOM.csv omits the battery."
        }
      ],
      "printed": [
        {
          "name": "J.A.R.V.I.S enclosure STEP model",
          "url": "https://github.com/HeroicCodey/J.A.R.V.I.S-Cyberdeck/tree/e274c1abe225dc9973593d4c47a4ae482aed1066",
          "license": "unverified",
          "note": "The repository publishes JARVIS.step but declares no license; obtain creator permission before redistribution."
        }
      ],
      "verifyNotes": "Official README, Markdown/CSV BOMs, journal, firmware, KiCad board, repository metadata and STEP file rechecked at commit e274c1abe225dc9973593d4c47a4ae482aed1066 on 2026-11-02. Kept as draft because the exact BOM display uses an ILI9163C controller while the README specifies ST7735; the README also adds an A7670C cellular module and TP4056/BMS that the BOM omits, while the journal calls V0.01 the basic version without SIM integration. BOM.csv omits the battery, the journal discusses a different 38-pin ESP32 variant, no license is declared, and the repository does not document a completed hardware test.",
      "formFactor": "Handheld",
      "platform": "Microcontroller",
      "pageUrl": "https://builddeck.dev/builds/jarvis-esp32-diagnostic-cyberdeck/"
    },
    {
      "slug": "pico-cyberdeck-keyboard",
      "title": "PICO Cyberdeck Keyboard",
      "author": "CrazyRobMiles",
      "sourceUrls": [
        "https://github.com/CrazyRobMiles/PICO-Cyberdeck-keyboard/tree/7e241112651d344c8d3db79498c566144963f8a6",
        "https://github.com/CrazyRobMiles/PICO-Cyberdeck-keyboard/blob/7e241112651d344c8d3db79498c566144963f8a6/README.md"
      ],
      "summary": "A compact Raspberry Pi Pico keyboard platform with generated layouts, a custom matrix PCB, CircuitPython or MicroPython firmware and a parametric printable case.",
      "story": "CrazyRobMiles built this project as a reusable keyboard generator for cyberdeck controls rather than one fixed layout. Python tools turn a JSON key arrangement into KiCad fabrication data and a matching FreeCAD enclosure, while the supplied firmware scans the diode-protected key matrix over USB HID.",
      "status": "verified",
      "verifiedOn": "2026-10-31",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "raspberry-pi-pico-rp2040",
          "name": "Raspberry Pi Pico (RP2040)",
          "qty": 1,
          "note": "README and Cyberdeck40 layout specify one original Raspberry Pi Pico RP2040."
        },
        {
          "id": "ck-pts645sm50smtr92-lfs",
          "name": "C&K PTS645SM50SMTR92 LFS tactile switch",
          "qty": 45,
          "note": "README names the exact C&K PTS645SM50SMTR92 LFS switch; the Cyberdeck40 layout contains 45 keys and uses one switch per key."
        },
        {
          "id": "1n4148w-sod123",
          "name": "1N4148W diode (SOD-123)",
          "qty": 45,
          "note": "README specifies one 1N4148W SOD-123 diode per key; the Cyberdeck40 layout contains 45 keys."
        },
        {
          "id": "pico-cyberdeck-keyboard-pcb",
          "name": "PICO Cyberdeck Keyboard custom PCB",
          "qty": 1,
          "note": "README build process generates KiCad PCB files and fabrication Gerbers from the selected JSON layout."
        },
        {
          "id": "usba-microb-cable-1m",
          "name": "USB-A to Micro-B data cable",
          "qty": 1,
          "note": "README components table requires one USB cable; connector type follows the named original Pico, but brand and length are not stated."
        },
        {
          "id": "m2x14-self-tapping-screw-set",
          "name": "M2 × 14 mm self-tapping screw set",
          "qty": 4,
          "note": "README components table specifies four M2×14 mm self-tapping screws; head style and material are not stated."
        }
      ],
      "printed": [
        {
          "name": "Generated PICO Cyberdeck Keyboard case",
          "url": "https://github.com/CrazyRobMiles/PICO-Cyberdeck-keyboard/tree/7e241112651d344c8d3db79498c566144963f8a6/freecad",
          "license": "MIT",
          "note": "The repository's FreeCAD generator exports the enclosure for the selected keyboard layout; print guidance calls for PLA or PETG and 20% infill."
        }
      ],
      "verifyNotes": "Verified against the official README, Cyberdeck40 layout, generator sources, firmware and MIT license at commit 7e241112651d344c8d3db79498c566144963f8a6 on 2026-10-31. The README identifies the required Pico, exact switch model, diode package, generated PCB, USB cable and four M2×14 mm self-tapping screws; the linked Cyberdeck40 layout has 45 keys, so it requires 45 switches and 45 diodes. Brand-neutral cable and screw details do not block verification because the creator specifies their functional connector and dimensions.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Microcontroller",
      "pageUrl": "https://builddeck.dev/builds/pico-cyberdeck-keyboard/"
    },
    {
      "slug": "cyberdeck-v2-air40",
      "title": "cyberDeck_v2 AIR40",
      "author": "ksergey",
      "sourceUrls": [
        "https://github.com/ksergey/cyberDeck_v2/tree/d8265a1104426a96c3bb9bd8ef64bc21fe517b3a",
        "https://github.com/ksergey/cyberDeck_v2/blob/d8265a1104426a96c3bb9bd8ef64bc21fe517b3a/README.md"
      ],
      "summary": "A compact wireless cyberdeck that combines an AIR40 mechanical-keyboard PCB with a display in a custom printed attachment.",
      "story": "ksergey documented a second-generation keyboard-centered cyberdeck built around the AIR40 wireless PCB. The public README links the keyboard board and M2 standoffs and shows the finished assembly, but leaves the display model and several enclosure fasteners unresolved.",
      "status": "draft",
      "difficulty": "Intermediate",
      "parts": [
        {
          "id": "air40-wireless-keyboard-pcb",
          "name": "AIR40 wireless 40% keyboard PCB",
          "qty": 1,
          "note": "README parts list names AIR40 PCB and links the exact AliExpress item."
        },
        {
          "id": "m2x8-standoff-kit-cyberdeck-v2",
          "name": "M2 × 8 mm standoff kit",
          "qty": 1,
          "note": "README parts list specifies M2x8 standoffs and links the exact AliExpress item; pack quantity is not stated."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README checked at commit d8265a1104426a96c3bb9bd8ef64bc21fe517b3a on 2026-10-27. Kept as draft because the display is described only as an AliExpress model behind a prohibited shortened URL, the M4 hardware link duplicates the AIR40 listing, quantities are mostly unstated, and no printable-file page or license is published.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Microcontroller",
      "pageUrl": "https://builddeck.dev/builds/cyberdeck-v2-air40/"
    },
    {
      "slug": "retro-typewriter-cyberdeck",
      "title": "Retro Typewriter Cyberdeck",
      "author": "letrinhandn",
      "sourceUrls": [
        "https://github.com/letrinhandn/retro-typewriter-cyberdeck/tree/e3f6133d92cfaba1c696b2672946c0c8597a7fe5",
        "https://github.com/letrinhandn/retro-typewriter-cyberdeck/blob/e3f6133d92cfaba1c696b2672946c0c8597a7fe5/README.md"
      ],
      "summary": "A Raspberry Pi 5 terminal arranged like a portable typewriter, with a seven-inch IPS display, mechanical keyboard and battery-backed power inside a wooden case.",
      "story": "letrinhandn combined a Raspberry Pi 5, compact IDOBAO keyboard and bright GeeekPi display in a handmade wood enclosure inspired by portable typewriters. The repository documents the parts selection, physical layout and finished machine, while treating the enclosure as a one-off woodworking build rather than a downloadable model.",
      "status": "draft",
      "difficulty": "Intermediate",
      "parts": [
        {
          "id": "rpi5",
          "name": "Raspberry Pi 5",
          "qty": 1,
          "note": "README parts list specifies a Raspberry Pi 5; RAM capacity is not stated."
        },
        {
          "id": "geeekpi-7in-1024x600-ips-b0chrd7cq3",
          "name": "GeeekPi 7-inch 1024×600 IPS display",
          "qty": 1,
          "note": "README specifies the GeeekPi 7-inch 1024×600 IPS display with 500 cd/m² brightness."
        },
        {
          "id": "waveshare-ups-hat-e",
          "name": "Waveshare UPS HAT (E)",
          "qty": 1,
          "note": "README names the Waveshare UPS HAT (E), its 5 V 6 A output and four-cell configuration."
        },
        {
          "id": "raspberry-pi-5-active-cooler-sc1148",
          "name": "Raspberry Pi 5 Active Cooler SC1148",
          "qty": 1,
          "note": "README names the official Raspberry Pi Active Cooler for Pi 5."
        },
        {
          "id": "kailh-box-navy-switch",
          "name": "Kailh BOX Navy switch",
          "qty": 1,
          "note": "README names Kailh BOX Navy switches for the IDOBAO keyboard but does not state the quantity; qty 1 represents one purchase line, not one physical switch."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README and finished-build photos checked at commit e3f6133d92cfaba1c696b2672946c0c8597a7fe5 on 2026-10-27. Kept as draft because RAM capacity, keyboard exact listing, switch count, keycaps, stabilizers, HDMI cable, power-button implementation and safe 21700 cell model are not confirmed. The README calls the cells 4200 mAh 18650s, while the specified UPS HAT (E) requires flat-top 21700 cells; no battery recommendation is therefore included.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/retro-typewriter-cyberdeck/"
    },
    {
      "slug": "pisdr-cyberdeck",
      "title": "PiSDR Cyberdeck",
      "author": "Tom Mladenov",
      "sourceUrls": [
        "https://github.com/TomMladenov/pisdr-cyberdeck",
        "https://github.com/TomMladenov/pisdr-cyberdeck/tree/master/doc"
      ],
      "summary": "A Raspberry Pi software-defined-radio cyberdeck with a seven-inch touchscreen and a laser-cut front-panel design.",
      "story": "Tom Mladenov published the system-image tooling and hardware panel files for a compact portable SDR station. The repository documents a minimal Raspberry Pi and official touchscreen setup, while the exact Pi revision and radio peripheral are not named in the README.",
      "status": "draft",
      "difficulty": "Intermediate",
      "parts": [
        {
          "id": "raspberry-pi-3-unspecified",
          "name": "Raspberry Pi 3 (revision unspecified)",
          "qty": 1,
          "note": "The README says only Raspberry Pi; the exact revision remains unconfirmed."
        },
        {
          "id": "rpi-touch-display-7-v1",
          "name": "Raspberry Pi Touch Display (original 7-inch)",
          "qty": 1
        }
      ],
      "printed": [],
      "verifyNotes": "Official GitHub README, repository tree and GPL-3.0 license metadata checked on 2026-10-27. Kept as draft because the Pi revision, SDR hardware, battery, fasteners and enclosure construction are not specified. The hardware directory contains a front-panel SVG rather than a 3D-printable model.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/pisdr-cyberdeck/"
    },
    {
      "slug": "arkiv-cyberpad",
      "title": "Arkiv Cyberpad",
      "author": "Arctic Enrichment Center",
      "sourceUrls": [
        "https://github.com/ArcticEnrichmentCenter/Arkiv-Cyberpad/tree/216b825a3b63519647d44fa3ac5ef413ab47cc81",
        "https://github.com/ArcticEnrichmentCenter/Arkiv-Cyberpad/blob/216b825a3b63519647d44fa3ac5ef413ab47cc81/README.md",
        "https://github.com/ArcticEnrichmentCenter/Arkiv-Cyberpad/issues/2"
      ],
      "summary": "A Raspberry Pi 5 cyberpad concept with a 10.1-inch touchscreen, an internal buck converter and swappable 2S 18650 or 10-AA battery modules.",
      "story": "Arctic Enrichment Center is developing Arkiv as a touch-first portable library of offline knowledge. Its battery pack fits in a swing-out grip, and the repository publishes the current enclosure CAD while the project remains in very early development.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "rpi5",
          "name": "Raspberry Pi 5",
          "qty": 1,
          "note": "The creator's README explicitly names a Raspberry Pi 5; RAM capacity is not stated."
        }
      ],
      "printed": [
        {
          "name": "Arkiv Cyberpad enclosure CAD set",
          "url": "https://github.com/ArcticEnrichmentCenter/Arkiv-Cyberpad/tree/216b825a3b63519647d44fa3ac5ef413ab47cc81/CAD%20source%20files",
          "license": "unverified",
          "note": "The official repository publishes the current CAD source directory but does not state a license."
        }
      ],
      "verifyNotes": "Creator sources rechecked at commit 216b825a3b63519647d44fa3ac5ef413ab47cc81 on 2026-11-02. Raspberry Pi 5 is confirmed, but RAM capacity is not. The creator specifies only a 10.1-inch touchscreen, a buck converter targeting 5.1 V at 5 A, and alternative 2S 18650 or 10-AA battery modules; exact display, converter, cells, holders, protection and charging hardware, connectors, wiring and fasteners are not identified. These required parts therefore cannot be mapped to exact direct product pages without guessing. CAD licensing is not stated.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/arkiv-cyberpad/"
    },
    {
      "slug": "tabforge-cyberdeck",
      "title": "TabForge Cyberdeck",
      "author": "Its-ze",
      "sourceUrls": [
        "https://github.com/Its-ze/tabforge-cyberdeck/tree/4114c0219de1341dcb2390f0a6613e79e4dfb90d",
        "https://github.com/Its-ze/tabforge-cyberdeck/blob/4114c0219de1341dcb2390f0a6613e79e4dfb90d/README.md"
      ],
      "summary": "An M5Stack Tab5 field console for managing LoRa mesh nodes, infrared controls, software-defined radio and a handheld keyboard companion.",
      "story": "Its-ze is developing TabForge as a touch-first field console with a detachable C6L LoRa radio and companion profiles for an existing T-Deck, Cardputer, IR unit and RTL-SDR receiver. The repository publishes the Tab5 firmware shell, device protocols and companion software, but does not document a completed physical enclosure or pin every companion to an exact hardware revision.",
      "status": "draft",
      "difficulty": "Easy",
      "parts": [
        {
          "id": "m5stack-tab5",
          "name": "M5Stack Tab5",
          "qty": 1,
          "note": "The current README names the M5Stack Tab5 as the primary UI, update controller, USB host and field-console dashboard; it does not distinguish the C145 or K145 variant."
        },
        {
          "id": "m5stack-unit-c6l-u202",
          "name": "M5Stack Unit C6L U202",
          "qty": 1,
          "note": "The current README names M5Stack Unit C6L as the detachable LoRa radio for Meshtastic, MeshCore or the optional bridge profile."
        },
        {
          "id": "lilygo-t-deck",
          "name": "LILYGO T-Deck ESP32-S3 development board",
          "qty": 1,
          "note": "The current README names a LILYGO T-Deck as an existing Z-Deck/Meshtastic companion; it does not state the board revision."
        },
        {
          "id": "m5stack-unit-ir-u002",
          "name": "M5Stack Unit IR U002",
          "qty": 1,
          "note": "The current README names M5Stack Unit IR as the Grove infrared learner/blaster."
        },
        {
          "id": "rtl-sdr-blog-v4",
          "name": "RTL-SDR Blog V4 USB receiver",
          "qty": 1,
          "note": "The current README requires an RTL-SDR USB receiver on the Tab5 host port but does not name a brand or revision; RTL-SDR Blog V4 is a compatible catalog example, not a confirmed exact match."
        },
        {
          "id": "m5stack-cardputer-k132",
          "name": "M5Stack Cardputer K132",
          "qty": 1,
          "note": "The current README names an M5Stack Cardputer as the handheld keyboard controller over Grove UART or USB CDC; it does not state the hardware revision."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README, repository tree and MIT license rechecked at commit 4114c0219de1341dcb2390f0a6613e79e4dfb90d on 2026-11-01. The manifest was corrected to the README's current six-device target hardware list; the formerly listed Tab5 keyboard is no longer named. Kept as draft because the Tab5, T-Deck, Cardputer and RTL-SDR revisions are not pinned, the RTL-SDR catalog match is only a compatible example, and the repository does not publish a completed physical enclosure or printable model.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Microcontroller",
      "pageUrl": "https://builddeck.dev/builds/tabforge-cyberdeck/"
    },
    {
      "slug": "purplx-cardputer-cyberdeck",
      "title": "Purplx Cardputer Cyberdeck",
      "author": "purplxhazee",
      "sourceUrls": [
        "https://github.com/purplxhazee/Purplx-/tree/2da383e8ad8ade0da487e627b2dd6287d51f5248",
        "https://github.com/purplxhazee/Purplx-/blob/2da383e8ad8ade0da487e627b2dd6287d51f5248/README.md"
      ],
      "summary": "A keyboard-driven cyberdeck environment for M5Stack's Cardputer ADV, with offline reference tools, games, Wi-Fi sensing, media features and optional external-display support.",
      "story": "Purplxhazee packages a broad set of ESP32-S3 utilities into a menu system for the Cardputer ADV. The firmware uses the handheld's built-in screen and keyboard on their own, while an optional ILI9341 display and microSD card expand its games, file tools and media features.",
      "status": "verified",
      "verifiedOn": "2026-10-30",
      "difficulty": "Easy",
      "parts": [
        {
          "id": "m5stack-cardputer-adv-k132-adv",
          "name": "M5Stack Cardputer ADV K132-ADV",
          "qty": 1,
          "note": "README Hardware requirements explicitly call for an M5Stack Cardputer ADV with the ESP32-S3 core."
        },
        {
          "id": "ili9341-xpt2046-28-display",
          "name": "2.8-inch ILI9341/XPT2046 SPI touch display",
          "qty": 1,
          "note": "README optionally supports a 320×240 ILI9341 SPI display and gives its wiring. The creator does not state physical size or a touch controller; this catalog item is only a compatible example, not a confirmed exact module."
        },
        {
          "id": "microsd-card",
          "name": "microSD card",
          "qty": 1,
          "note": "README says an optional FAT32 microSD card of 32GB or less enables file operations; brand and speed class are not stated."
        },
        {
          "id": "adafruit-usb-c-a-4472",
          "name": "Adafruit short USB-C to USB-A cable 4472",
          "qty": 1,
          "note": "README Hardware table requires a USB-C cable for flashing. The creator does not name the host connector, brand or length; this USB-A-to-C data cable is a compatible catalog example."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README, PlatformIO project, application source tree and MIT license checked at commit 2da383e8ad8ade0da487e627b2dd6287d51f5248 on 2026-10-30. The required Cardputer ADV and USB-C flashing cable are traced to the README and have direct product links. The display and microSD card are explicitly optional; their unspecified variants are noted and do not block verification. No printable parts are published.",
      "formFactor": "Handheld",
      "platform": "Microcontroller",
      "pageUrl": "https://builddeck.dev/builds/purplx-cardputer-cyberdeck/"
    },
    {
      "slug": "esp32-pc-control-deck",
      "title": "ESP32 PC Control Deck",
      "author": "Kamil Lepczynski",
      "sourceUrls": [
        "https://github.com/lepczynski-cloud/ESP32-PC-Control-Deck/tree/a6cd83df40d3ceaaa87688ed2487d16a7f28fa15",
        "https://github.com/lepczynski-cloud/ESP32-PC-Control-Deck/blob/a6cd83df40d3ceaaa87688ed2487d16a7f28fa15/docs/HARDWARE.md"
      ],
      "summary": "A USB-connected ESP32 desktop display that shows computer telemetry and turns touch controls into host-side actions.",
      "story": "Kamil Lepczynski built this compact desk controller around Elecrow's 2.8-inch ESP32 Solo Miner display. One USB cable powers the classic ESP32-WROOM-32 board, carries live telemetry from a Windows, macOS or Linux host, and returns touch events for the companion bridge to handle.",
      "status": "verified",
      "verifiedOn": "2026-10-30",
      "difficulty": "Intermediate",
      "parts": [
        {
          "id": "elecrow-esp32-2-8-miner-display",
          "name": "Elecrow 2.8-inch ESP32 miner display",
          "qty": 1,
          "note": "docs/HARDWARE.md names Elecrow's 2.8-inch ESP32 Solo Miner display and links the exact product page; the tested board uses an ESP32-WROOM-32-N4, ILI9341 320×240 TFT, XPT2046 resistive touch and CH340 USB serial bridge."
        },
        {
          "id": "adafruit-usb-c-a-4472",
          "name": "Adafruit short USB-C to USB-A cable 4472",
          "qty": 1,
          "note": "The README requires one USB cable for power, firmware upload and serial data, and docs/HARDWARE.md identifies the board-side connector as USB-C. The creator does not name the host connector, brand or length, so this USB-A-to-C data cable is a compatible catalog example."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README and hardware guide checked through the GitHub API at commit a6cd83df40d3ceaaa87688ed2487d16a7f28fa15 on 2026-10-30. The required Elecrow display and USB data cable are traced to the creator's documentation and have direct product links. The build is the standalone board-based desk controller shown by the creator; no separate enclosure or printable files are required or published. The repository declares the MIT license.",
      "formFactor": "Handheld",
      "platform": "Microcontroller",
      "pageUrl": "https://builddeck.dev/builds/esp32-pc-control-deck/"
    },
    {
      "slug": "crowview-cyberdeck",
      "title": "CrowView Cyberdeck",
      "author": "TrevTron",
      "sourceUrls": [
        "https://github.com/TrevTron/crowview-cyberdeck/tree/ef494cc123b28adeab0bc0e4d15320d1abb50365",
        "https://github.com/TrevTron/crowview-cyberdeck/blob/ef494cc123b28adeab0bc0e4d15320d1abb50365/hardware/parts-list.md"
      ],
      "summary": "A Raspberry Pi 5 field computer that pairs Elecrow's laptop-style CrowView Note with a seven-inch ESP32 control panel and an RTL-SDR receiver.",
      "story": "TrevTron turns the CrowView Note portable monitor and keyboard into a two-screen cyberdeck. A Raspberry Pi 5 drives the main display, an ESP32-S3 CrowPanel supplies programmable touch controls, and an RTL-SDR V4 adds radio reception for a portable monitoring and experimentation station.",
      "status": "draft",
      "difficulty": "Intermediate",
      "parts": [
        {
          "id": "rpi5",
          "name": "Raspberry Pi 5",
          "qty": 1,
          "note": "hardware/parts-list.md lists Raspberry Pi 5 as the default choice and recommends the 8GB version; it also says the original demo used an Indiedroid Nova, so this manifest represents the documented Pi 5 variant."
        },
        {
          "id": "microsd-card",
          "name": "microSD card",
          "qty": 1,
          "note": "hardware/parts-list.md requires a microSD card for Pi OS but does not name a capacity, brand or speed class."
        },
        {
          "id": "raspberry-pi-27w-usb-c-power-supply",
          "name": "Raspberry Pi 27W USB-C Power Supply",
          "qty": 1,
          "note": "hardware/parts-list.md names the official Raspberry Pi 5 27W USB-C power supply."
        },
        {
          "id": "raspberry-pi-5-active-cooler-sc1148",
          "name": "Raspberry Pi 5 Active Cooler SC1148",
          "qty": 1,
          "note": "hardware/parts-list.md recommends active cooling; the official cooler is the documented option in the README."
        },
        {
          "id": "elecrow-crowpanel-7-esp32-hmi",
          "name": "Elecrow CrowPanel 7-inch ESP32 HMI display",
          "qty": 1,
          "note": "hardware/parts-list.md names the Elecrow CrowPanel 7.0-inch ESP32 HMI display with 800×480 resolution and GT911 touch."
        },
        {
          "id": "elecrow-crowview-note-15-6",
          "name": "Elecrow CrowView Note 15.6-inch portable monitor",
          "qty": 1,
          "note": "hardware/parts-list.md names the CrowView Note 15.6-inch portable monitor; its supplied adapter covers the separately listed monitor power requirement."
        },
        {
          "id": "rtl-sdr-blog-v4",
          "name": "RTL-SDR Blog V4 USB receiver",
          "qty": 1,
          "note": "hardware/parts-list.md names the RTL-SDR Blog V4 receiver."
        },
        {
          "id": "sparkfun-ant500-telescopic-antenna",
          "name": "SparkFun ANT500 telescopic SMA antenna",
          "qty": 1,
          "note": "hardware/parts-list.md requires a telescoping whip antenna but does not state the exact model; the catalog entry is a compatible example and remains unconfirmed."
        },
        {
          "id": "adafruit-usb-c-a-4472",
          "name": "Adafruit short USB-C to USB-A cable 4472",
          "qty": 1,
          "note": "hardware/parts-list.md requires a data connection from the SBC to the CrowPanel and notes that USB-A hosts need an adapter; for the Pi 5 variant, this compatible USB-A-to-USB-C data cable replaces that cable-plus-adapter combination."
        },
        {
          "id": "cable-matters-usb-c-gen2-1m",
          "name": "Cable Matters USB-C Gen 2 video cable, 1m",
          "qty": 1,
          "note": "hardware/parts-list.md requires a DisplayPort Alt Mode USB-C cable from the SBC to the CrowView Note; the creator does not name the exact model."
        },
        {
          "id": "minifocus-mini-tripod-b09prmhr5p",
          "name": "MINIFOCUS aluminum mini tripod",
          "qty": 1,
          "note": "hardware/parts-list.md lists a small tripod as optional for elevated positioning but does not identify a model."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README, hardware parts list, source tree and MIT license checked at commit ef494cc123b28adeab0bc0e4d15320d1abb50365 on 2026-10-28. Kept as draft because the original demo used an Indiedroid Nova rather than the documented Raspberry Pi 5 default, and the creator does not identify exact models for the antenna, USB cables or optional tripod. No printable files are published.",
      "formFactor": "Clamshell",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/crowview-cyberdeck/"
    },
    {
      "slug": "kickdeck",
      "title": "KickDeck",
      "author": "LowPolyPhosphorus",
      "sourceUrls": [
        "https://github.com/LowPolyPhosphorus/KickDeck/tree/1355aca798712d5a532edb81bc9fe7ed06b855ad",
        "https://github.com/LowPolyPhosphorus/KickDeck/blob/1355aca798712d5a532edb81bc9fe7ed06b855ad/README.md"
      ],
      "summary": "A work-in-progress hard-case cyberdeck built around a KickPi K2B, seven-inch touchscreen and a four-cell Waveshare UPS board.",
      "story": "LowPolyPhosphorus is developing KickDeck as a compact Linux terminal inside a mini Pelican-style hard case. The published concept combines an RK3568-based KickPi board, touch display, handheld keyboard and OLED status panel, with battery power routed through Waveshare's four-cell UPS HAT (E).",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "kickpi-k2b-8gb",
          "name": "KickPi K2B 8GB single-board computer",
          "qty": 1,
          "note": "README Parts List names the KickPi K2B 8GB model and links the exact Amazon listing."
        },
        {
          "id": "ws-7in-hdmi",
          "name": "Waveshare 7-inch HDMI LCD (C), 1024x600 touch",
          "qty": 1,
          "note": "README Parts List specifies a seven-inch 1024×600 HDMI touchscreen but does not name a manufacturer; this Waveshare catalog entry is a compatible example, not a creator-confirmed model."
        },
        {
          "id": "mini-bluetooth-qwerty",
          "name": "Mini Bluetooth QWERTY keyboard",
          "qty": 1,
          "note": "README Parts List calls for a mini QWERTY keyboard with touchpad and links an unbranded marketplace listing; exact radio mode and model are not stated."
        },
        {
          "id": "kickdeck-generic-usb-a-hub",
          "name": "KickDeck compact USB-A hub",
          "qty": 1,
          "note": "README Parts List names a USB-A hub and links the exact marketplace listing; brand, chipset and port count are not stated."
        },
        {
          "id": "kickdeck-mini-pelican-style-case",
          "name": "KickDeck mini Pelican-style hard case",
          "qty": 1,
          "note": "README Parts List names a mini Pelican-style case and links the exact marketplace listing, but provides no manufacturer or model number."
        },
        {
          "id": "kickdeck-16mm-latching-switch",
          "name": "KickDeck 16mm latching push-button switch",
          "qty": 1,
          "note": "README Parts List specifies a 16mm latching power button and links the exact marketplace listing."
        },
        {
          "id": "kickdeck-5v-indicator-led",
          "name": "KickDeck 5V indicator LED",
          "qty": 2,
          "note": "README Parts List specifies two indicator LEDs and links the exact marketplace listing; diameter and color are not stated."
        },
        {
          "id": "ssd1306-display-generic",
          "name": "SSD1306 OLED display module",
          "qty": 1,
          "note": "README Parts List names an SSD1306 OLED but does not state its size, bus or pinout; the catalog entry is a compatible example."
        },
        {
          "id": "waveshare-ups-hat-e",
          "name": "Waveshare UPS HAT (E)",
          "qty": 1,
          "note": "README Parts List names the Waveshare UPS HAT (E) for four 21700 cells and links Waveshare's product page."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README, repository tree and MIT license checked at commit 1355aca798712d5a532edb81bc9fe7ed06b855ad on 2026-10-28. Kept as draft because the creator marks the project work in progress, final CAD files and assembly documentation are not published, and several components remain under-specified. The README also names four flat-top 21700 cells, a tiny 5V fan and an EC11 encoder; these are not mapped to catalog products because the linked battery seller is not approved and the fan dimensions and encoder mounting style are unstated. No printable files are published.",
      "formFactor": "Case deck",
      "platform": "Other Linux board",
      "pageUrl": "https://builddeck.dev/builds/kickdeck/"
    },
    {
      "slug": "micro-journal-rev-2-1",
      "title": "Micro Journal Rev.2.1: cyberDeck",
      "author": "Un Kyu Lee",
      "sourceUrls": [
        "https://github.com/unkyulee/micro-journal/tree/22cab8850746ab3686ae5b5b0b148984b97e092c/rev.2/2.1",
        "https://github.com/unkyulee/micro-journal/blob/22cab8850746ab3686ae5b5b0b148984b97e092c/rev.2/2.1/build.md",
        "https://github.com/unkyulee/micro-journal/blob/22cab8850746ab3686ae5b5b0b148984b97e092c/rev.2/2.1/story.md",
        "https://youtu.be/-GmhE2VCncA"
      ],
      "summary": "A Raspberry Pi Zero 2 W writerdeck with a wide 7.84-inch display, custom 68-key mechanical keyboard, dual rotary controls and a printable typewriter-inspired enclosure.",
      "story": "Un Kyu Lee developed Rev.2.1 as the tenth Micro Journal iteration, refining a distraction-free writing computer around sweeping, automotive-inspired curves and recessed typewriter-style knobs. The published build guide covers the bill of materials, keyboard wiring, printable enclosure files and assembly video, while the four-cell power system addresses instability Lee encountered in an earlier battery design.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "wisecoco-7-84-1280x400-display",
          "name": "Wisecoco 7.84-inch 1280x400 LCD display",
          "qty": 1,
          "note": "Exact model named and linked in the creator's BOM."
        },
        {
          "id": "nitrile-o-ring-18x13-2x2-4mm",
          "name": "Nitrile O-ring 18x13.2x2.4mm",
          "qty": 1,
          "note": "Exact dimensions stated in the creator's BOM."
        },
        {
          "id": "uvooi-hdmi-cable-25cm",
          "name": "UVOOI HDMI cable, 25cm",
          "qty": 1,
          "note": "25cm cable linked in the creator's BOM."
        },
        {
          "id": "rpi-zero2w",
          "name": "Raspberry Pi Zero 2 W",
          "qty": 1,
          "note": "Compute board named in the creator's BOM."
        },
        {
          "id": "raspberry-pi-pico-rp2040",
          "name": "Raspberry Pi Pico (RP2040)",
          "qty": 1,
          "note": "Keyboard controller named in the creator's BOM."
        },
        {
          "id": "microsd-card",
          "name": "microSD card",
          "qty": 1,
          "note": "Creator specifies a minimum capacity of 8GB."
        },
        {
          "id": "micro-journal-68-key-keyboard-pcb",
          "name": "Micro Journal 68-key keyboard PCB",
          "qty": 1,
          "note": "Custom PCB linked directly by the creator."
        },
        {
          "id": "micro-journal-ec11-15mm-encoder",
          "name": "EC11 15mm half-handle rotary encoder",
          "qty": 2,
          "note": "Two 15mm half-handle encoders specified in the BOM."
        },
        {
          "id": "diymore-four-slot-18650-battery-shield",
          "name": "diymore four-slot 18650 battery shield",
          "qty": 1,
          "note": "Creator says this four-cell module resolved earlier power instability; 18650 cells are not included in the documented BOM."
        },
        {
          "id": "micro-journal-powered-micro-usb-hub",
          "name": "Powered Micro USB hub",
          "qty": 1,
          "note": "Brand, chipset and port count are not documented."
        },
        {
          "id": "jienk-micro-usb-male-pigtail",
          "name": "Jienk Micro USB male two-wire pigtail",
          "qty": 2,
          "note": "Two Micro USB two-wire pigtails specified."
        },
        {
          "id": "micro-journal-usb-two-wire-male-cable",
          "name": "USB male two-wire power cable",
          "qty": 1,
          "note": "Creator's BOM points to the Micro USB listing, so the exact connector variant is unconfirmed."
        },
        {
          "id": "yxq-spst-rocker-switch-19mm",
          "name": "YXQ SPST snap-in rocker switch, 19mm",
          "qty": 1,
          "note": "Two-pin 19mm snap-in power switch."
        },
        {
          "id": "din912-m3x5-hex-screw",
          "name": "DIN 912 M3x5mm hex socket screw",
          "qty": 4,
          "note": "Creator states 4+."
        },
        {
          "id": "din912-m3x10-hex-screw",
          "name": "DIN 912 M3x10mm hex socket screw",
          "qty": 4,
          "note": "Creator states 4+."
        },
        {
          "id": "din912-m3x50-hex-screw",
          "name": "DIN 912 M3x50mm hex socket screw",
          "qty": 4,
          "note": "Creator states 4+."
        },
        {
          "id": "din7046-m2x5-pan-head-screw",
          "name": "DIN 7046 M2x5mm Phillips pan-head screw",
          "qty": 8,
          "note": "Creator states 8+; linked product title appears to be 10mm, so verify before ordering."
        },
        {
          "id": "m3-heat-set-insert-4-5x3mm",
          "name": "M3 heat-set insert, 4.5x3mm",
          "qty": 10,
          "note": "Creator states 10+."
        },
        {
          "id": "m2-heat-set-insert-3-2x3mm",
          "name": "M2 heat-set insert, 3.2x3mm",
          "qty": 10,
          "note": "Creator states 10+."
        },
        {
          "id": "t10h-security-torx-screwdriver",
          "name": "T10H security Torx screwdriver",
          "qty": 1,
          "note": "Tool named in the creator's BOM."
        },
        {
          "id": "jessinie-30awg-assorted-wire",
          "name": "JESSINIE assorted 30 AWG wire",
          "qty": 1,
          "note": "Creator says ordinary electronics wire works and documents using 30 AWG."
        },
        {
          "id": "pla-filament-generic",
          "name": "PLA filament 1.75mm",
          "qty": 1,
          "note": "Creator specifies PLA+ for the enclosure and reports about 30 hours of printing on a Bambu Lab P1S."
        }
      ],
      "printed": [
        {
          "name": "Micro Journal Rev.2.1 enclosure and controls",
          "url": "https://github.com/unkyulee/micro-journal/tree/22cab8850746ab3686ae5b5b0b148984b97e092c/rev.2/2.1/STL",
          "license": "CC BY-NC 4.0"
        }
      ],
      "verifyNotes": "Official build guide, story, printable-file folder and CC BY-NC 4.0 license checked at commit 22cab8850746ab3686ae5b5b0b148984b97e092c on 2026-10-28. Kept as draft because the creator does not identify the powered USB hub's brand or chipset, points the generic USB pigtail entry to a Micro USB listing, and links an M2 screw listing whose title conflicts with the stated 5mm length. Battery cells are also absent from the published BOM.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/micro-journal-rev-2-1/"
    },
    {
      "slug": "costumdeck",
      "title": "Costumdeck",
      "author": "Nikolaos Samaras",
      "sourceUrls": [
        "https://github.com/Nikolaossamaras/Costumdeck/tree/a2611bc65c30ae2698e1b99239db890c89e1a04f",
        "https://github.com/Nikolaossamaras/Costumdeck/blob/a2611bc65c30ae2698e1b99239db890c89e1a04f/README.md",
        "https://github.com/Nikolaossamaras/Costumdeck/blob/a2611bc65c30ae2698e1b99239db890c89e1a04f/BOM/BOM.csv",
        "https://github.com/Nikolaossamaras/Costumdeck/blob/a2611bc65c30ae2698e1b99239db890c89e1a04f/Wiring_diagram/Wiring_diagram.png"
      ],
      "summary": "A Raspberry Pi 5 portable maker workstation with a 10.1-inch touchscreen, wireless keyboard, ESP32-S3 coprocessor and printable enclosure.",
      "story": "Nikolaos Samaras designed Costumdeck as a repairable alternative to a conventional laptop for coding and electronics work away from a desk. The Raspberry Pi 5 runs the Linux workstation while an ESP32-S3 supports embedded development, with the touchscreen, auxiliary controls, USB expansion and portable battery integrated into a custom three-dimensional case.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "costumdeck-wireless-keyboard-trackpad",
          "name": "Wireless full-size keyboard with trackpad",
          "qty": 1,
          "note": "README Parts List and BOM/BOM.csv name a full-size wireless keyboard with trackpad and link the creator's selected product."
        },
        {
          "id": "costumdeck-usb-a-hub",
          "name": "Costumdeck USB-A hub",
          "qty": 2,
          "note": "README Parts List and BOM/BOM.csv call for two USB hubs and link the selected listing; brand, chipset and port count are not stated."
        },
        {
          "id": "costumdeck-usb-a-to-c-cable",
          "name": "Costumdeck USB-A to USB-C cable",
          "qty": 1,
          "note": "README Parts List and BOM/BOM.csv name a USB-A-to-USB-C cable and link the selected listing; length and ratings are not stated."
        },
        {
          "id": "costumdeck-arrow-key-keypad",
          "name": "Costumdeck four-key arrow keypad",
          "qty": 1,
          "note": "README Parts List and BOM/BOM.csv name an arrow-keys keyboard and link the selected listing."
        },
        {
          "id": "costumdeck-10-1-touchscreen",
          "name": "Costumdeck 10.1-inch LCD touchscreen",
          "qty": 1,
          "note": "README specifications and parts list name a 10.1-inch touchscreen; BOM/BOM.csv links the selected listing but does not state resolution."
        },
        {
          "id": "sandisk-ultra-microsdxc-256gb",
          "name": "SanDisk Ultra 256GB microSDXC",
          "qty": 1,
          "note": "README specifications and parts list explicitly name a SanDisk Ultra 256GB microSDXC card."
        },
        {
          "id": "costumdeck-hall-effect-joystick",
          "name": "Costumdeck anti-drift Hall-effect joystick",
          "qty": 1,
          "note": "README Parts List names an anti-drift joystick; BOM/BOM.csv links a Hall-effect joystick listing but does not document its interface."
        },
        {
          "id": "costumdeck-esp32-s3-dev-board",
          "name": "Costumdeck ESP32-S3 development board",
          "qty": 1,
          "note": "README specifications and parts list name an ESP32-S3 development board; exact module and memory variant are not stated."
        },
        {
          "id": "rpi5",
          "name": "Raspberry Pi 5",
          "qty": 1,
          "note": "README specifications and parts list explicitly name the Raspberry Pi 5 4GB model."
        },
        {
          "id": "costumdeck-rpi5-aluminum-case",
          "name": "Aluminium armour dual-fan case for Raspberry Pi 5",
          "qty": 1,
          "note": "README Parts List and BOM/BOM.csv name a Raspberry Pi 5 aluminium case; the creator's regional seller is not allowlisted, so the catalog link is a compatible replacement rather than the confirmed original."
        },
        {
          "id": "costumdeck-mini-usb-stereo-speaker",
          "name": "Mini external USB stereo speaker",
          "qty": 1,
          "note": "README specifications and parts list name a mini USB stereo speaker; the catalog link is a reputable compatible model because the creator's linked seller is not allowlisted."
        },
        {
          "id": "costumdeck-circular-pushbutton",
          "name": "Costumdeck circular pushbutton",
          "qty": 1,
          "note": "README Parts List and BOM/BOM.csv name a circular pushbutton and link the selected listing; dimensions and electrical rating are not stated."
        },
        {
          "id": "costumdeck-cable-management-kit",
          "name": "Costumdeck cable-management kit",
          "qty": 1,
          "note": "README Parts List and BOM/BOM.csv name a cable-management kit and link the selected listing."
        },
        {
          "id": "costumdeck-oled-display",
          "name": "Costumdeck OLED display module",
          "qty": 1,
          "note": "README specifications and parts list name an OLED status display; BOM/BOM.csv links the selected listing, but size, controller and interface are not stated."
        },
        {
          "id": "costumdeck-micro-hdmi-cable",
          "name": "Costumdeck Micro-HDMI to HDMI cable",
          "qty": 1,
          "note": "README Parts List and BOM/BOM.csv name a Micro-HDMI-to-HDMI cable and link the selected listing; length is not stated."
        },
        {
          "id": "costumdeck-solar-power-bank",
          "name": "Costumdeck solar portable power bank",
          "qty": 1,
          "note": "README Parts List names a solar portable power bank; BOM/BOM.csv links the selected listing, but capacity and sustained Raspberry Pi 5 output are not confirmed."
        },
        {
          "id": "m5x40-hex-screw",
          "name": "M5x40mm hex socket screw",
          "qty": 4,
          "note": "README Parts List specifies four M5x40mm hex screws. No seller link is provided for the exact fastener."
        },
        {
          "id": "m5x20-hex-screw",
          "name": "M5x20mm hex socket screw",
          "qty": 2,
          "note": "README Parts List specifies two M5x20mm hex screws. No seller link is provided for the exact fastener."
        },
        {
          "id": "m5-hex-nut",
          "name": "M5 hex nut",
          "qty": 6,
          "note": "README Parts List specifies six M5 nuts. No seller link is provided for the exact fastener."
        },
        {
          "id": "costumdeck-dual-fan-board",
          "name": "Costumdeck dual-fan board",
          "qty": 1,
          "note": "README Parts List and BOM/BOM.csv name a dual-fan board and link the selected listing; size and voltage are not stated."
        },
        {
          "id": "costumdeck-dupont-jumper-cable",
          "name": "Costumdeck Dupont jumper cable",
          "qty": 3,
          "note": "README Parts List calls for three Dupont jumper cables; BOM/BOM.csv links the selected listing but does not state length or connector gender."
        }
      ],
      "printed": [
        {
          "name": "Costumdeck case CAD",
          "url": "https://github.com/Nikolaossamaras/Costumdeck/tree/a2611bc65c30ae2698e1b99239db890c89e1a04f/CAD",
          "license": "Not stated by creator"
        }
      ],
      "verifyNotes": "Official README, creator-authored CSV BOM, CAD files and wiring diagram checked at commit a2611bc65c30ae2698e1b99239db890c89e1a04f on 2026-10-28. Kept as draft because the repository provides no license for the printable case, many linked parts are generic or under-specified, two creator-linked sellers are not on BuildDeck's allowlist, and the power bank's Raspberry Pi 5 output is unconfirmed. The current repository tree also differs from the README's older BOM.xlsx and 3D_case_design.step paths.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/costumdeck/"
    },
    {
      "slug": "polar-imaging-cyberdeck",
      "title": "Polar Imaging Cyberdeck",
      "author": "jamesbrayy",
      "sourceUrls": [
        "https://github.com/jamesbrayy/polar-imaging-cyberdeck/tree/3a44cc608b44949d4e16a6e3292ce9dffb276171",
        "https://github.com/jamesbrayy/polar-imaging-cyberdeck/blob/3a44cc608b44949d4e16a6e3292ce9dffb276171/README.md"
      ],
      "summary": "A Pelican-case Raspberry Pi radio-imaging station that combines an RTL-SDR receiver, 10.1-inch DSI touchscreen and portable antenna rotator.",
      "story": "James Bray built this off-grid station to receive and decode weather-satellite imagery in the field. A Raspberry Pi 4B and RTL-SDR Blog V4 handle reception and processing, while the Pelican-case touchscreen console and servo-driven antenna assembly make the system portable.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "rpi4",
          "name": "Raspberry Pi 4 Model B",
          "qty": 1,
          "note": "The creator's README explicitly specifies a Raspberry Pi 4B with more than 4GB RAM; the catalog link is the compatible 8GB variant."
        },
        {
          "id": "rtl-sdr-blog-v4",
          "name": "RTL-SDR Blog V4 USB receiver",
          "qty": 1,
          "note": "The creator's README parts list explicitly names the RTL-SDR Blog V4."
        },
        {
          "id": "waveshare-ups-hat-e",
          "name": "Waveshare UPS HAT (E)",
          "qty": 1,
          "note": "The creator's README parts list explicitly names the Waveshare UPS HAT (E)."
        },
        {
          "id": "waveshare-10-1-dsi-touch-a",
          "name": "Waveshare 10.1-DSI-TOUCH-A",
          "qty": 1,
          "note": "The creator's README explicitly names the Waveshare 10.1-DSI-TOUCH-A display."
        },
        {
          "id": "pelican-1300-protector-case",
          "name": "Pelican 1300 Protector Case",
          "qty": 1,
          "note": "The creator's README explicitly names a Pelican 1300 case; color and foam configuration are not stated."
        },
        {
          "id": "21700-5000mah-li-ion-cell-unspecified",
          "name": "21700 5000mAh Li-ion cell (model unspecified)",
          "qty": 4,
          "note": "The creator's README specifies four 5000mAh 21700 Li-ion cells but does not identify their maker, model, protection type or discharge rating."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README, repository tree and MIT license rechecked at commit 3a44cc608b44949d4e16a6e3292ce9dffb276171 on 2026-11-02. The display, case and four-cell quantity are now explicit and included. Kept as draft because the creator does not identify the 21700 cell model or the antenna rotator's servos and mechanical hardware, does not publish the stated three-dimensional antenna/rotator models, and marks autonomous Raspberry Pi operation as work in progress.",
      "formFactor": "Case deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/polar-imaging-cyberdeck/"
    },
    {
      "slug": "pinkpad-3d",
      "title": "PinkPad 3D",
      "author": "bitshiftcrazy",
      "sourceUrls": [
        "https://github.com/bitshiftcrazy/pinkpad-3D/tree/f526d43244fd91ba6acabeb1415ee5427c81b394",
        "https://github.com/bitshiftcrazy/pinkpad-3D/blob/f526d43244fd91ba6acabeb1415ee5427c81b394/README.md"
      ],
      "summary": "A compact Raspberry Pi Zero W handheld that fits a five-inch touchscreen and Rii X1 keyboard into a modified pink toy-laptop shell.",
      "story": "bitshiftcrazy turned a children's learning laptop into a small Arch Linux terminal with a Raspberry Pi, touch display and thumb keyboard. The creator also published three STL files for adapting the original shell, while leaving the exact display and battery hardware open-ended.",
      "status": "draft",
      "difficulty": "Medium",
      "parts": [
        {
          "id": "rpi-zero-w",
          "name": "Raspberry Pi Zero W",
          "qty": 1,
          "note": "The creator's README explicitly states that the build uses the original Raspberry Pi Zero W."
        },
        {
          "id": "rii-x1-mini-keyboard",
          "name": "Rii X1 mini wireless keyboard with touchpad",
          "qty": 1,
          "note": "The creator's README explicitly names the Rii X1 mini keyboard with touchpad."
        }
      ],
      "printed": [
        {
          "name": "PinkPad 3D enclosure STL files",
          "url": "https://github.com/bitshiftcrazy/pinkpad-3D/tree/f526d43244fd91ba6acabeb1415ee5427c81b394",
          "license": "unverified"
        }
      ],
      "verifyNotes": "Official README, repository tree, three STL files and repository license metadata rechecked at commit f526d43244fd91ba6acabeb1415ee5427c81b394 on 2026-10-31. Kept as draft because the repository has no declared license, the five-inch display and LiPo/boost power system are not identified by exact model, and the README still labels the documentation as incomplete. Those under-specified components are intentionally not mapped to catalog parts.",
      "formFactor": "Handheld",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/pinkpad-3d/"
    },
    {
      "slug": "simpledeck",
      "title": "SimpleDeck",
      "author": "pgattic",
      "sourceUrls": [
        "https://github.com/pgattic/simpledeck/tree/a8bd43644013a9ff24d091fc958681caca5dd5f6",
        "https://github.com/pgattic/simpledeck/blob/a8bd43644013a9ff24d091fc958681caca5dd5f6/README.md"
      ],
      "summary": "A glueless, solderless Raspberry Pi 4 cyberdeck that combines a 4.3-inch DSI touchscreen, Rii X1 thumb keyboard and USB power bank in a printable enclosure.",
      "story": "pgattic designed SimpleDeck around straightforward assembly: the Raspberry Pi, screen, fan, battery and keyboard fit into a printed shell without solder or adhesive. The compact layout keeps the power bank's ports accessible at the enclosure end, while a right-angle USB-C adapter routes power in the limited interior space.",
      "status": "draft",
      "difficulty": "Medium",
      "parts": [
        {
          "id": "rpi4",
          "name": "Raspberry Pi 4 Model B",
          "qty": 1,
          "note": "The creator's README parts list explicitly names a Raspberry Pi 4; RAM capacity is not stated."
        },
        {
          "id": "simpledeck-43-inch-dsi-touchscreen",
          "name": "4.3-inch 800×480 DSI capacitive touchscreen",
          "qty": 1,
          "note": "The creator's README specifies a 4.3-inch 800×480 capacitive DSI touchscreen and links the selected listing; no brand or model number is stated."
        },
        {
          "id": "rii-x1-mini-keyboard",
          "name": "Rii X1 mini wireless keyboard with touchpad",
          "qty": 1,
          "note": "The creator's README explicitly names the Rii X1 mini wireless keyboard with touchpad."
        },
        {
          "id": "anker-a1388-10k-22-5w-power-bank",
          "name": "Anker A1388 10,000mAh 22.5W power bank",
          "qty": 1,
          "note": "The creator's README specifies Anker's 10,000mAh 22.5W power bank and notes that the six-inch body and end-mounted ports are required for the enclosure."
        },
        {
          "id": "usb-c-right-angle-adapter",
          "name": "90-degree USB-C adapter",
          "qty": 2,
          "note": "The creator's README calls for two 90-degree USB-C adapters and links a three-pack; the exact internal orientation is not stated."
        },
        {
          "id": "adafruit-4468-mini-5v-fan",
          "name": "Adafruit 4468 miniature 5V cooling fan",
          "qty": 1,
          "note": "The creator's README links Adafruit product 4468 as the miniature 5V cooling fan."
        },
        {
          "id": "m2x8mm-pan-head-machine-screw",
          "name": "M2×8mm pan-head machine screw",
          "qty": 4,
          "note": "The creator's README specifies four M2×8mm screws but does not state material, head or drive style."
        }
      ],
      "printed": [
        {
          "name": "SimpleDeck parametric enclosure",
          "url": "https://github.com/pgattic/simpledeck/tree/a8bd43644013a9ff24d091fc958681caca5dd5f6/src",
          "license": "MIT",
          "note": "The repository publishes OpenSCAD sources for the box and lid under its MIT license; render and export printable files locally."
        }
      ],
      "verifyNotes": "Official README, OpenSCAD source tree and MIT license rechecked at commit a8bd43644013a9ff24d091fc958681caca5dd5f6 on 2026-11-01. The current repository publishes parametric box and lid sources in src/, and the README specifies two 90-degree USB-C adapters. Kept as draft because the display has no stated brand or model and the screw and USB-C adapter variants remain under-specified. The creator's Best Buy battery URL is not allowlisted, so the catalog uses an exact-model marketplace listing instead.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/simpledeck/"
    },
    {
      "slug": "pinet",
      "title": "PiNet",
      "author": "rupal2k",
      "sourceUrls": [
        "https://github.com/rupal2k/pinet/tree/73825a7ba5a8d7c947ab02b8fe585b97c4a069ce",
        "https://github.com/rupal2k/pinet/blob/73825a7ba5a8d7c947ab02b8fe585b97c4a069ce/README.md"
      ],
      "summary": "A portable Raspberry Pi network-testing station with dual touch and e-paper displays, battery backup, external Wi-Fi and camera support.",
      "story": "rupal2k built PiNet as a self-contained field console for network diagnostics and security labs. The project combines a Raspberry Pi with a seven-inch touch interface, a low-power e-paper status panel, an external Wi-Fi adapter and a UPS board, then layers a browser-based dashboard and modular tool suite on top.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "rpi3b-plus",
          "name": "Raspberry Pi 3 Model B+",
          "qty": 1,
          "note": "The README hardware list says Raspberry Pi 3 Model B or newer. This catalog entry is the closely related 3 Model B+; builders should confirm enclosure and software compatibility before substituting."
        },
        {
          "id": "pinet-official-7-touch-display",
          "name": "Official Raspberry Pi 7-inch Touch Display",
          "qty": 1,
          "note": "The README hardware list explicitly names the official Raspberry Pi 7-inch touchscreen."
        },
        {
          "id": "waveshare-2-13-epaper-hat-v4",
          "name": "Waveshare 2.13-inch e-Paper HAT V4",
          "qty": 1,
          "note": "The README hardware list explicitly names and links the Waveshare 2.13-inch e-Paper HAT V4."
        },
        {
          "id": "waveshare-ups-hat-d",
          "name": "Waveshare UPS HAT (D)",
          "qty": 1,
          "note": "The README hardware list explicitly names and links the Waveshare UPS HAT (D)."
        },
        {
          "id": "tp-link-archer-t2u-plus",
          "name": "TP-Link Archer T2U Plus AC600 USB Wi-Fi adapter",
          "qty": 1,
          "note": "The README hardware list explicitly names the TP-Link Archer T2U Plus USB Wi-Fi adapter."
        },
        {
          "id": "raspberry-pi-camera-module-v2",
          "name": "Raspberry Pi Camera Module V2",
          "qty": 1,
          "note": "The README hardware list names the Raspberry Pi Camera Module V2 for the optional camera functions."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README and MIT repository license checked at commit 73825a7ba5a8d7c947ab02b8fe585b97c4a069ce on 2026-10-30. Kept as draft because the enclosure, keyboard or controller, 21700 battery cell, cabling and fasteners are not specified by exact model or quantity, and the catalog's available Pi 3 Model B+ differs from the README's Model B recommendation.",
      "formFactor": "Slab & keyboard deck",
      "platform": "Raspberry Pi",
      "pageUrl": "https://builddeck.dev/builds/pinet/"
    },
    {
      "slug": "car-cyberdeck",
      "title": "Car Cyberdeck",
      "author": "João Vítor Costa",
      "sourceUrls": [
        "https://github.com/jvitorcosta/car-cyberdeck/tree/991b505cef19e730c114788d1685138707918dac",
        "https://github.com/jvitorcosta/car-cyberdeck/blob/991b505cef19e730c114788d1685138707918dac/README.md"
      ],
      "summary": "A two-screen ESP32-S3 car dashboard that turns Spotify playback, synchronized lyrics, weather and Bluetooth lighting controls into a Pokémon-styled interface.",
      "story": "João Vítor Costa built this dashboard as a pair of small ESP32 touch displays for his Honda City. The black deck renders Spotify artwork, lyrics and an animated Pokémon scene, while the optional yellow deck controls two Bluetooth LED zones and exposes clock, weather and trip views. A companion Garmin app can operate the lights from the driver's wrist.",
      "status": "draft",
      "difficulty": "Hard",
      "parts": [
        {
          "id": "freenove-fnk0104b",
          "name": "Freenove FNK0104B ESP32-S3 2.8-inch display board",
          "qty": 1,
          "note": "The README's device table and hardware section explicitly name the FNK0104B as the required black-deck board."
        },
        {
          "id": "esp32-2432s028r-cyd",
          "name": "ESP32-2432S028R Cheap Yellow Display",
          "qty": 1,
          "note": "The README explicitly names this optional Cheap Yellow Display as the lighting-control deck."
        }
      ],
      "printed": [],
      "verifyNotes": "Official README, linked manuals and MIT repository license rechecked at source commit 991b505cef19e730c114788d1685138707918dac on 2026-11-01. The optional yellow deck is now marked optional in the manifest. Kept as draft because the required USB car charger is specified only as 5V/2A and the creator does not name an exact model or publish a physical mounting manifest; the optional yellow deck's two ELK-family BLE controllers are likewise not pinned to exact models. Those under-specified items are intentionally not mapped rather than guessed.",
      "formFactor": "Case deck",
      "platform": "Microcontroller",
      "pageUrl": "https://builddeck.dev/builds/car-cyberdeck/"
    }
  ]
}
