Based on the open-source DFCD (DesignatedFreeCadDevice) ΓÇö a modular
Raspberry Pi 5 cyberdeck with a sliding 10.1" touchscreen, hidden
mechanical keyboard, trackball, and NP-F battery. Every part is either
3D-printed or off-the-shelf. This is an in-progress hardware build.
Core Components
ΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉ
Brain Raspberry Pi 5 8GB
Display 10.1" IPS touch LCD (sliding)
Keyboard NOS C-450 TKL (hidden under screen)
Input Trackball (Logitech Marble donor)
Power NP-F battery → 7.2V → 5.1V regulated
Scroll Rotary encoder handle
Custom 3D-Printed Parts
ΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉ
Raised GFPIO lid +12mm headroom for RTC/cabling over GPIO header
Screen frame Modified ΓÇö status LED between front buttons (GPIO26)
Comms module Clamp-on enclosure: Pico USB bridge + NFC + LoRa (AS923)
Upstream hardware design: DFCD by ArcticEnrichmentCenter. Custom parts kept separate ΓÇö upstream files never modified.
Software
OS Layer (Raspberry Pi OS 64-bit)
ΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉ
setup.sh one-shot idempotent installer
Γö£ΓöÇΓöÇ boot/ systemd boot-script system (drop-in /boot.d/)
Γö£ΓöÇΓöÇ memory/ zram swap + kernel VM tuning (no SD wear)
Γö£ΓöÇΓöÇ theme/ green/cyan prompt, fastfetch banner, tmux, wallpaper
Γö£ΓöÇΓöÇ ai/ (opt-in) Claude Code + Ollama, memory-tuned for Pi 5
Γö£ΓöÇΓöÇ extras/ (opt-in) deck-mode, deck-vault (LUKS2), Conky bar, RTL-SDR
ΓööΓöÇΓöÇ upgrades/(opt-in) deck-assistant, USB HID, NAS share, comms module
Apps (user workspace, separate from OS layer)
ΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉ
Grimoire Offline docs search engine ΓÇö SQLite + BM25 FTS5,
zstandard compression, ingest from DevDocs .zim files
Security Suite local tools slot for future security workflows
Every piece is a readable text file ΓÇö re-flashable in minutes, editable by hand or by agents.
Comms Module
What it is: A
clamp-on add-on module that attaches to the deck's rail. Houses a
Raspberry Pi Pico as a USB bridge between the main Pi and two radios:
a PN532 NFC reader and an RFM9x LoRa radio (923 MHz ΓÇö AS923,
Thailand-legal).
How it works: The
Pico runs CircuitPython firmware that reads both radios and exposes a
simple line protocol over its USB serial port. The host Pi talks to it
via deck-comms ΓÇö a shell tool that finds the bridge by
PINGing serial ports.
CAD: Custom
enclosure generated with Python + FreeCAD — 82×60×32 mm body with a
1.2 mm NFC read-through window, SMA antenna hole for LoRa, USB exit
slot, and M3 floor holes for the rail clamp.
In Action
Hardware proof points
Uses a repairable DFCD base instead of a sealed laptop form factor.
Rail-mounted comms module separates radio hardware from the main deck.
FreeCAD-generated enclosure dimensions keep the add-on reproducible.
Hardware assembly
Custom OS proof points
Readable text configuration makes the deck quick to re-flash or edit by hand.
Offline docs search is planned around SQLite FTS5 and compressed DevDocs data.
Boot and system behavior are owned in the project instead of hidden behind vendor defaults.
Custom OS ΓÇö boot screen
Comms module proof points
Raspberry Pi Pico bridges the main Pi to NFC and LoRa radios over USB serial.
Shell tooling can discover the bridge by pinging candidate serial ports.
The enclosure accounts for NFC read-through, LoRa antenna, USB exit, and rail clamp mounting.
Comms module CAD
Dev Notes
Why Build This
I wanted a computer that was entirely mine ΓÇö not designed around how a manufacturer thinks I should work. A form factor I chose, hardware I can repair, and software I control down to the boot scripts. The DFCD gave me a proven mechanical base so I could focus on the OS and software side.
Hardest Part So Far
The hardest part is keeping hardware, firmware, and OS choices modular enough that one part can change without forcing a full rebuild. The comms module is separate for that reason: the main deck can keep working while the radios, bridge firmware, or enclosure design evolve.
What I've Learned
Writing idempotent shell installers, systemd unit design, kernel VM tuning for RAM-backed swap, FreeCAD headless scripting for CAD measurement and part generation, CircuitPython firmware for the Pico, and parametric enclosure design. Also: 3D printing tolerances are unforgiving.
Current Status
Done: Custom OS layer
(setup.sh + all opt-in layers), Grimoire app, comms module firmware +
CAD + host tool, raised GFPIO lid CAD, status-LED screen frame CAD,
build guide (PDF), bill of materials, shopping lists.
Blocking physical build:
Cost of mechanical keyboard components, PCB fabrication for the comms
module, and 3D printing time for the chassis parts.