BILL OF MATERIALS · ARCHITECTURE DECISIONS · VALIDATION · PRIOR ART
| PART | ROLE | SRC | ₹ |
|---|---|---|---|
| Xiaomi Poco F1 (used, 6 GB) | compute core — SD845, 4,000 mAh, USB OTG works on pmOS | OLX / Cashify | 6,000–10,000 |
| Raspberry Pi Pico | peripheral controller (USB-CDC sidecar) — LEDs, IR, sensors, lid panel | fabtolab | 374 |
| Adafruit CH334F hub breakout | 4-port USB hub embedded in the base | fabtolab | 594 |
| BT/USB thumb keyboard (Rii i8+ BT class) | input — POC phase; candidate for integration later | Amazon.in | ~1,600 |
| USB-C panel-mount extension | clean charge port on case edge | Amazon.in | 299 |
| PART | ROLE | SRC | ₹ |
|---|---|---|---|
| NooElec NESDR Nano 3 (USB-C OTG bundle) | RTL-SDR receiver, phone-friendly size | fabtolab | 6,578 |
| — alt: NESDR SMArt v5 bundle (3 antennas) | full-size SDR alternative | fabtolab | 6,443 |
| ANT500 telescopic antenna | the visible antenna — function + drama | fabtolab | 2,846 |
| MMCX→SMA bulkhead pigtail | panel-mount antenna jack | Amazon.in | 229 |
| XIAO ESP32S3 + LoRa (Meshtastic) | 865 MHz mesh node — confirm 863–870 antenna variant | fabtolab | 1,259 |
| NRF24L01+PA+LNA | 2.4 GHz packet-radio side quest | robu.in | 317 |
| PART | ROLE | SRC | ₹ |
|---|---|---|---|
| Waveshare 4.26" e-paper 800×480 | lid ops board — persistent, zero-power | fabtolab | 2,545 |
| Waveshare 0.96" OLED 128×64 | base status strip (phase 1, before e-paper) | fabtolab | 470 |
| WS2812B pixel strip | underglow / edge light — driven by Pico PIO | fabtolab | 556 |
| KY-005 IR emitter + KY-022 receiver | IR blaster + learner in the bezel | fabtolab | 61 + 44 |
| APDS9960 gesture/proximity/light | proximity-wake, auto-dim, wave gestures | fabtolab | 899 |
| BME280 environmental | temp/humidity/pressure telemetry widget | fabtolab | 1,544 |
| Adafruit mini USB microphone | voice notes → VPS whisper → agents | fabtolab | 714 |
| PART | ROLE | SRC | ₹ |
|---|---|---|---|
| Numakers translucent PETG 1 kg | the glow-through shell | Amazon.in | 849 |
| 3 mm transparent acrylic (4× 6"×6") | windows over the electronics bay | Amazon.in | 289 |
| Hex/honeycomb grille sheet | vents + mil-spec texture | Amazon.in | ~1,991 |
| GBA-SP replacement hinges ×2 | the clamshell pivot (Penkesu-proven) | AliExpress/OLX | ~300–600 |
| Vinyl decal pack | distressed prop badges | Amazon.in | 99 |
All prices tagged from live fetches Jul 2026 (Codex DRO run) — treat as ±10% and verify at checkout. Cut-list: gas sensor, ToF sensor, round gauge LCD were evaluated and dropped (cost > delight).
| DECISION | REASONING |
|---|---|
| Poco F1 over OnePlus 6 | pmOS wiki: OnePlus 6 USB-C host-role switching is blocked (device-tree hack to force); Poco F1 lists USB OTG working. The whole deck hangs off that port. |
| postmarketOS over Android | Real Linux userland: native rtl-sdr, kernel MCP2221A driver, /dev/ttyACM0 serial to Pico with zero app plumbing. Alpine base means claude-code can even run on-device. Android+Termux remains a same-hardware fallback. |
| Pico sidecar over USB-GPIO bridges | WS2812 timing needs the RP2040's PIO (bridges can't bit-bang it reliably); Pico renders lid widgets without waking the phone; identical behavior under pmOS or Android. |
| Powered hub, always | SDR alone is a >300 mA-class load; phone port + Pico 3V3 (300 mA ceiling) cannot carry keyboard + SDR + LEDs. Separate 5 V rail for LED/SDR loads. |
| Phone-core over Pi-core | Battery, charging, cellular, a great screen — already integrated for ₹8k used. Rule: if the lid screen must become a real desktop monitor or SDR must run 24/7, switch to Pi CM5 core (HackberryPi pattern) and demote the phone to hotspot. |
| PROJECT | WHAT WE BORROW | FILES |
|---|---|---|
| Mobile C-deck | the whole concept — phone+keyboard clamshell with swappable phone inserts | hackaday.io |
| Penkesu Computer | GBA-SP hinge technique, thin-lid design | GitHub · MIT |
| CM Deck (sb-ocr) | translucent shell + underlighting aesthetic | GitHub |
| Decktility | battery telemetry → lid widget pattern | GitHub |
| HackberryPi CM5 | the Pi-core escape hatch if phone-core hits limits | GitHub · MIT |
| Beepy (SQFMI) | RGB notification LED, always-readable screen philosophy | beepy.sqfmi.com |
| HamDeck | panel antenna port, swappable-SD "personas" | hackaday.io |
| ClockworkPi uConsole | the industrial-design bar to aim at | clockworkpi.com |
| OPTION | WHAT YOU GET | ₹ LANDED |
|---|---|---|
| PinePhone + keyboard case (local importer) | real Linux phone, weak A64 chip, scarce keyboard case | 60,000 |
| PinePhone Pro direct import | same, stronger chip — after 15% BCD + 18% IGST + brokerage | 56,000–58,500 |
| F(x)tec Pro1-X import | slider QWERTY, official Ubuntu Touch, 10–12 wk lead | 75,000+ |
| CYBERDECK MK-I (this build) | SD845 Linux handheld + SDR + mesh + e-paper + it's YOURS | 21,000–25,000 |
The used-flagship + maker-parts route beats every imported Linux phone on price and capability — the only thing it costs extra is the build itself, which is the fun part.