# Project Specification — Linux Cyberdeck
## Project Overview
**Status:** Draft / architecture review required before schematic capture. Updated direction: Raspberry Pi Compute Module 5 carrier, tablet-style battery, custom keyboard PCB based on M5Stack CardKB proportions, and Waveshare 6.25inch DSI LCD (B) as the display candidate.
A portable Linux cyberdeck built around a Raspberry Pi Compute Module 5 carrier board with LTE/GNSS connectivity, LoRa, USB-C PD charging plus USB 2.0 gadget/rpiboot data, USB-A 3.0 host, HDMI, a Waveshare DSI display, split custom keyboard PCB, microSD storage, mono speaker, and compact clamshell battery power.
## Intended Use
- Portable Linux computer / cyberdeck prototype.
- User-facing compute, networking, radio, display, keyboard, audio, and battery operation.
- Current stage: requirements capture and architecture selection; schematic capture should not begin until the compute module, screen/keyboard interface, and battery architecture are confirmed.
## What the Device Should Do
- Boot and run Linux on Raspberry Pi Compute Module 5.
- Use selected CM5 SKU SC1598 / CM5108000: 8 GB RAM, Lite / 0 GB eMMC, wireless.
- Support LTE Cat-4 cellular data and GNSS using a SIM7600G-H-M.2 module.
- Support LoRa using an RP2040-LoRa development board with SX1262.
- Provide one USB-C port for power and data.
- Provide one USB-A 3.0 host port.
- Provide one HDMI port.
- Connect to the specified screen/keyboard assembly.
- Drive a small speaker.
- Operate from a battery connection and support charging/power-path behavior.
## Main Features
| Feature | Baseline Direction | Status |
|---|---|---|
| Main compute | Raspberry Pi CM5 SC1598 / CM5108000, 8 GB RAM, Lite / 0 GB eMMC, wireless | Selected |
| Cellular/GNSS | SIM7600G-H-M.2 over USB 2.0, with SIM socket and antennas | Feasible, needs exact carrier details |
| LoRa | Waveshare RP2040-LoRa daughterboard, preferably as pluggable module | Feasible, band decision needed |
| USB-C | PD sink/UFP charging plus USB 2.0 device/gadget/rpiboot data | Confirmed |
| USB-A | USB 3.0 host port | Feasible if compute platform exposes USB 3.x host |
| HDMI | External HDMI connector and/or internal display feed | Blocking decision |
| Display | Waveshare 6.25inch DSI LCD (B), 720 x 1560, MIPI DSI + I2C touch | Candidate selected; SOM compatibility must be checked |
| Keyboard | 2-layer keyboard PCB, 60-key tactile/keycap matrix, RP2040 + QMK, USB HID over FPC | Confirmed |
| Storage | microSD card slot connected to CM5 Lite SDIO storage interface | Direction selected |
| Audio | I2S or USB audio to small class-D speaker amplifier | Needs compute platform interface and speaker spec |
| Battery | 2S Li-ion or USB-C PD power-bank style architecture recommended | User decision needed |
## System Architecture
Recommended baseline: **design a custom carrier around Raspberry Pi Compute Module 5**. CM5 already includes the processor, LPDDR4x, PMIC sequencing, boot-critical hardware, and Raspberry Pi software support. The carrier handles battery power, USB, LTE/GNSS M.2, LoRa, display, keyboard, audio, and external connectors.
```mermaid
flowchart TD
BAT[Battery Pack] --> PWR[Charger / Power Path]
USBC[USB-C Power/Data] --> PWR
PWR --> R5V[5V System Rail]
PWR --> R38[3.8V LTE Rail]
PWR --> R33[3.3V Control/RF Rail]
R5V --> SOM[RK3588-class SOM or SBC]
R38 --> LTE[SIM7600G-H-M.2 LTE/GNSS]
R33 --> LORA[RP2040-LoRa SX1262 Board]
SOM --> USBHUB[Optional USB Hub]
USBHUB --> LTE
USBHUB --> LORA
USBHUB --> KBD[Keyboard / Touch USB]
SOM --> USBA[USB-A 3.0 Host]
SOM --> HDMI[HDMI Connector]
SOM --> DISPLAY[Internal Display Interface TBD]
SOM --> AUDIO[Class-D Speaker Amp]
AUDIO --> SPK[Small Speaker]
```
## Hardware Subsystems
### Compute
- Selected direction: Raspberry Pi Compute Module 5 carrier board.
- CM5 variants support 2 GB, 4 GB, 8 GB, and 16 GB LPDDR4x; use 8 GB minimum.
- Selected CM5 is Lite / 0 GB eMMC, so the carrier will provide a microSD card slot for boot/storage.
- Selected CM5 is wireless-capable, so enclosure antenna clearance or external antenna strategy must be handled.
- CM5 main input is 5 V and the carrier power system must support CM5 peak current plus display, USB, LTE, speaker, and battery charging loads.
### Cellular / GNSS
- Target module: SIM7600G-H-M.2 / SIM7600X-H-M2 family.
- Supply range found: 3.3–4.2 V.
- Power rail must support approximately 2 A-class transmit bursts with large low-ESR bulk capacitance near the module.
- Host interface is USB 2.0; route as 90 ohm differential pair.
- Needs SIM/eSIM decision, cellular antenna, diversity antenna decision, GNSS antenna decision, RF keepouts, and regulatory review.
### LoRa
- Target board appears to be Waveshare RP2040-LoRa with SX1262.
- Board size found: 21 mm x 41 mm.
- Frequency options:
- LF: 410–525 MHz.
- HF: 850–930 MHz.
- Antenna connector: onboard IPEX with included IPEX-to-SMA adapter cable.
- Interface to Linux host should be decided: USB, UART, or a carrier-level debug/programming path.
### Display
- Candidate: Waveshare 6.25inch DSI LCD (B), 720 x 1560 IPS capacitive touch display.
- Interface: Raspberry Pi-style 2-lane MIPI DSI plus I2C touch.
- Power: 5 V panel power plus 3.3 V/I2C side signals per Waveshare pinout.
- Advantage: documented for Raspberry Pi DSI overlays, making CM5 a better match than an arbitrary RK3588 SOM.
- Verify exact CM5 DSI connector mapping/cable orientation before schematic capture.
### Keyboard
- Reference: M5Stack Unit CardKB / CardKB v1.1.
- Reference interface: I2C at address 0x5F over HY2.0-4P/Grove-style connector with GND, 5 V, SDA, SCL.
- Reference size: approximately 84–88 mm x 54 mm x 5 mm depending revision.
- User direction: design a custom keyboard PCB slightly longer than CardKB.
- Recommended implementation: direct-wired keyboard matrix on the main board, scanned by a small onboard keyboard MCU, exposed to CM5 as USB HID with optional wake/power sideband GPIO.
### USB
- USB-C role is currently ambiguous and must be defined before schematic capture.
- USB-A 3.0 requires a compute platform with USB 3.x host capability and controlled-impedance routing.
- Internal peripherals may exceed available host ports; likely need a USB 2.0 hub for LTE, keyboard/touch, LoRa, and debug if these are USB.
### HDMI
- External HDMI is feasible but requires 100 ohm differential routing, ESD protection, DDC, hot-plug detect, connector shield strategy, and 5 V HDMI power.
- If the internal screen also needs HDMI, the compute platform must support multiple display outputs or the design must choose between internal display and external HDMI.
### Audio
- Small speaker path should use a dedicated class-D amplifier.
- Interface depends on compute platform: I2S preferred if exposed; USB audio is fallback.
- Speaker impedance and power target are needed.
## Interfaces and Connections
| Interface | Proposed Electrical Path | Notes |
|---|---|---|
| USB-C | USB-C connector + CC/PD controller + ESD + power path | Role TBD |
| USB-A 3.0 | RK/SOM USB 3.x host to USB-A connector | 85 ohm SuperSpeed pairs |
| HDMI | RK/SOM HDMI output to HDMI connector | 100 ohm diff pairs |
| LTE modem | USB 2.0 host/hub to M.2 module | 90 ohm USB pair; 3.8 V burst rail |
| SIM | SIM7600 module USIM pins to SIM socket/eSIM | Add ESD near SIM socket |
| GNSS/LTE RF | 50 ohm RF paths to antennas/connectors | Antenna plan required |
| LoRa | USB/UART to RP2040-LoRa daughterboard | Band and connector TBD |
| Speaker | I2S/USB audio to class-D amp | Speaker spec TBD |
| Screen/keyboard | TBD: likely USB-C/USB/HDMI-style external cable | Pinout unknown |
## Power and Runtime Expectations
- Battery direction: compact communicator/tablet-style Li-ion/LiPo pouch pack.
- Recommended chemistry is now 1S Li-ion/LiPo for thin mechanical packaging, with high-current boost conversion to the 5 V system rail.
- Confirmed battery pack: 1S2P using 2x BatterySpace PL-5467100-2C cells with Tenergy 32190 PCM, 8500 mAh / ~31.5 Wh nominal.
- Use USB-C PD charging with a 1S switching charger/power-path, I2C fuel gauge, NTC monitoring, and run-while-charging support.
- Include fuel gauge, pack protection, power button/soft-shutdown, and low-battery cutoff.
## Preliminary Power Tree and Power Budget
Detailed preliminary assumptions are tracked in the separate Power Budget file.
High-level rails:
| Rail | Loads |
|---|---|
| Main battery / USB-C PD input | Charger, power path, system regulators |
| 5 V system | RK3588 SOM/SBC input, USB-A VBUS, display/keyboard if 5 V, USB hub |
| 3.8 V LTE | SIM7600G-H-M.2 burst supply |
| 3.3 V logic | RP2040-LoRa, level shifters, control, low-speed peripherals |
| Audio rail | Speaker amplifier, if not powered from 5 V |
| Backlight/display rail | TBD after display documentation |
## Manufacturing and Assembly Expectations
- If using SOM/SBC: custom carrier board likely 6 layers minimum due USB 3.0, HDMI, LTE USB, RF, and power integrity.
- If raw RK3588S2 + LPDDR4x is chosen: expect 8+ layer HDI/microvia design, controlled impedance, DDR simulation/validation, and substantially higher cost/risk.
- RF antennas and M.2 connector placement must be considered with the enclosure, display metalwork, and battery location.
## Firmware-Relevant Hardware Requirements
- Linux BSP support depends on selected RK3588S2/SOM/SBC vendor.
- Need serial console/debug access.
- LTE should be exposed to Linux as USB modem interface; support ModemManager/NetworkManager where possible.
- RP2040-LoRa requires firmware update/programming path.
- Keyboard/display drivers depend on the actual interface of the screen/keyboard assembly.
## Physical Design Expectations
- Keyboard assembly likely dominates product size; candidate AKP846 dimensions found around 371 x 219 x 21 mm.
- Need exact enclosure size, mounting hole locations, connector exits, battery location, antenna locations, speaker port, cooling path, and SIM access.
- RK3588-class SoC needs heat spreader or conduction path.
## Important Design Decisions
1. Use SOM/SBC for compute rather than raw RK3588S2 + LPDDR4x for the first prototype.
2. Treat SIM7600G-H-M.2 as a high-burst-current RF module requiring a dedicated 3.8 V-class supply and RF-aware layout.
3. Treat the RP2040-LoRa board as a daughterboard unless the user wants to integrate the LoRa circuit directly.
4. Do not design display/keyboard connector circuitry until the exact interface is documented.
5. Use at least a 6-layer carrier PCB for the high-speed/RF carrier approach.
## Assumptions
- Prototype-first design, not immediate production certification.
- Linux runs on a purchased RK3588S2/RK3588-class module/SBC.
- Cellular modem is USB-connected.
- LoRa board can be connected as a daughterboard.
- Screen/keyboard assembly is used as a purchased module rather than reverse-engineered internally.
- Battery is rechargeable Li-ion/LiPo with charging from USB-C.
## Open Decisions / Questions for User
1. Keyboard final layout drawing: 60-key legend, Fn map, tact/keycap part selection.
2. Enclosure CAD kickoff: hinge, SMA bulkhead locations, antenna keepouts, service hatch.
3. RJ45 Ethernet is omitted.
4. Should the custom keyboard enumerate as USB HID, I2C, or both?
5. What keyboard switch/key technology and approximate size should be used?
6. USB-C role is confirmed as PD sink/UFP charge plus USB 2.0 data, not USB 3.0 and not full dual-role/source.
7. Is HDMI for external output only, or should the internal DSI display and external HDMI work simultaneously?
8. Which LoRa frequency band is required: 433/470, 868, or 915 MHz?
9. Do you want internal antennas or external SMA connectors for LTE/GNSS/LoRa?
10. What speaker impedance/power target and enclosure size/shape should be used?
## Change Notes
- Initial specification created from user requirements.
- Project renamed to Linux Cyberdeck.
- Architecture risk review added: raw RK3588S2 + LPDDR4x is not recommended for the first prototype.
- Updated per user direction: switched from RK3588-class SOM carrier to Raspberry Pi Compute Module 5 carrier using attached CM5 datasheet, retaining tablet-style battery, M5Stack CardKB as keyboard size/interface reference, custom keyboard PCB, and Waveshare 6.25inch DSI LCD (B) display candidate.
- Updated per user direction: selected DigiKey SC1598 / CM5108000 CM5 Lite wireless 8 GB module, USB-C charging+data, microSD instead of NVMe, and direct-wired custom keyboard via onboard keyboard MCU.
- Updated per confirmed decisions attachment: USB-C data is USB 2.0 gadget/rpiboot, battery is 1S2P 8500 mAh verified pack, keyboard is split RP2040/QMK PCB, and only keyboard layout plus enclosure CAD kickoff remain open.