Linux Cyberdeck Design

There’s still a moderate amount left before this is a full manufacturable board. The first-pass schematic is started, but we are not ready for PCB layout/manufacturing yet.
Main things still left to figure out
  1. Display connection
    • Exact Waveshare 6.25" DSI LCD-B connector pinout
    • DSI lane count
    • Backlight power/current
    • Touch interface, if any
    • Correct FPC connector part
  2. Battery and power
    • Exact 10,000 mAh battery pack
    • Battery connector/current rating
    • Battery protection/NTC details
    • Confirm charger settings for that pack
    • Validate 5 V boost converter can handle CM5 + LTE + display + USB-A peaks
  3. Protection parts
    • USB-C ESD protection
    • USB-A USB 3.0 ESD protection
    • HDMI ESD protection
    • SIM card ESD protection
    • Possibly battery/input fuse or protection
  4. Regulator final values
    • Final inductor part numbers
    • Capacitor voltage/package choices
    • TPS61288 compensation check
    • Thermal/current margin check
    • Layout-sensitive switching-node constraints
  5. CM5 details
    • Decide whether to add RTC backup for CM5 VBAT
    • Decide whether to expose nRPIBOOT/service pads
    • Confirm GPIO assignments for LTE, audio, IMU, keyboard wake
  6. LTE/SIM7600 details
    • Confirm exact SIM7600G-H-M.2 hardware guide handling for VDD_AUX and VDD_1V8
    • Confirm LTE/GNSS antenna connector placement strategy
    • Add SIM ESD
    • Add RF/layout keepout rules
  7. Keyboard board
    • Main-board FPC is planned, but keyboard PCB itself still needs to be designed
    • Need switch/keycap sourcing
    • Need keyboard RP2040 schematic/firmware pin map finalized
  8. Mechanical basics
    • Rough board size
    • Port locations
    • Battery location
    • Screen/keyboard placement constraints
    • Mounting holes
    • Antenna placement/keepouts
  9. PCB layout setup
    • Stackup choice, likely 6-layer because of USB 3.0, HDMI, MIPI DSI, RF, and power density
    • Controlled-impedance rules
    • Differential-pair rules
    • Power trace/current rules
    • Thermal copper areas
  10. Bring-up and manufacturing prep
  • Test pads
  • Debug headers
  • Board bring-up checklist
  • BOM cleanup
  • Footprint review
  • DRC
  • Gerbers/BOM/pick-and-place
My estimate
Schematic is roughly 55–65% figured out.
Full board readiness is more like 30–40% complete, because layout, power validation, protection, display details, and mechanical constraints are still significant.
The biggest blockers are:
  1. Exact display connector/pinout
  2. Exact battery pack
  3. Power validation for the 5 V rail
  4. ESD/protection parts
  5. Mechanical board size/port placement
  6. Keyboard PCB design
Once those are decided, the remaining work becomes much more straightforward.
Power, display, protection
Find display pinout
Validate power rail
Add protection parts
Add test pads
Review battery connector
J4
U11
Y1
Resistance
60 ohms
U5
J2
U4
U3
J12
J3
U1
J6
U10
U1 SD_DAT0 - J3 DAT0
U1 HDMI0_TX2_P - J4 1
U1 USB3_0_TX_P - J2 STDA_SSRX+
U4 FB_2 - R13 P2
U2 DRAIN_1 - U2 DRAIN_2
L4 P2 - U4 SW_1
U11 STATUS - U1 GPIO12
U5 VOUT - R15 P1
U6 FB - R11 P2
U2 DRAIN_1 - U2 DRAIN_2
U3 BAT_2 - U3 BATP
U3 SYS - U4 VIN_1
U11 USIM_CLK - J12 CLK
U2 ADCIN1 - R1 P2
U3 SCL - U2 I2CT_SCL
U2 ADCIN1 - R1 P2
U3 SW2 - L3 P2
U2 DRAIN_1 - U2 DRAIN_2
L6 P2 - C9 P1
U2 LDO_3V3 - C2 P1
U1 HDMI0_CEC - J4 13
U2 LDO_1V5 - C3 P1
R19 P2 - C23 P1
J1 CC1 - U2 CC1
L6 P2 - C9 P1
U1 SD_CLK - J3 CLK
U2 LDO_1V5 - C3 P1
U7 USBDM_DN2/PRT_DIS_M2 - J5 3
L6 P2 - C9 P1
U7 USBDP_DN2/PRT_DIS_P2 - J5 4
U3 SCL - U2 I2CT_SCL
U4 COMP - R19 P1
U1 USB3_0_RX_P - J2 STDA_SSTX+
U3 SYS - U4 VIN_1
J1 CC2 - U2 CC2
U1 SD_DAT3 - J3 CD/DAT3
U5 VOUT - R15 P1
J1 CC1 - U2 CC1
U2 DRAIN_1 - U2 DRAIN_2
U7 PLLFILT - C20 P1
U1 HDMI0_TX0_P - J4 7
U3 SW2 - L3 P2
U7 XTALIN/CLKIN - Y1 XTAL_1
U1 SD_CMD - J3 CMD
U1 HDMI0_HOTPLUG - J4 19
U2 PPHV_3 - U2 PPHV_4
U1 USB3_0_TX_P - J2 STDA_SSRX+
U1 GPIO18 - U10 BCLK
R19 P2 - C23 P1
U11 USIM_CLK - J12 CLK
U7 CRFILT - C19 P1
U1 GPIO19 - U10 LRCLK
R13 P1 - C13 P1
L6 P2 - C9 P1
J5 5 - U1 POWERBUTTON
U3 REGN - C25 P1
J1 DP1 - J1 DP2
U1 HDMI0_TX1_N - J4 6
R13 P1 - C13 P1
L6 P2 - C9 P1
J1 DP1 - J1 DP2
U2 LDO_3V3 - C2 P1
U11 USIM_DATA - J12 I/O
U2 ADCIN3 - R3 P2
U1 HDMI0_CLK_N - J4 12
U1 USB3_0_RX_N - J2 STDA_SSTX-
U12 INT2 - U1 GPIO25
U3 REGN - C25 P1
U2 PPHV_3 - U2 PPHV_4
U4 COMP - R19 P1
U1 +5V(INPUT)__5 - U9 IN
U3 SDA - U2 I2CT_SDA
U3 SW1 - L3 P1
U1 HDMI0_TX0_P - J4 7
U7 XTALOUT - Y1 XTAL_2
U3 PROG - R18 P1
U10 ~SD_MODE - U1 GPIO23
U10 ~SD_MODE - U1 GPIO23
U1 SD_CLK - J3 CLK
U5 L1 - U5 L1
U5 FB - R15 P2
L6 P2 - C9 P1
L6 P2 - C9 P1
U5 VOUT - R15 P1
U5 VIN - U5 VINA
U1 HDMI0_TX1_N - J4 6
U2 PPHV_3 - U2 PPHV_4
U6 FB - R11 P2
J7 1 - U3 BAT_1
U7 XTALOUT - Y1 XTAL_2
U3 SDA - U2 I2CT_SDA
U1 HDMI0_TX0_N - J4 9
U11 USIM_DATA - J12 I/O
U1 +5V(INPUT)__5 - U9 IN
HDMI0_UTILITY_NC
U11 USIM_RST - J12 RST
U3 SDA - U2 I2CT_SDA
U9 EN - U1 VBUS_EN
U3 BAT_2 - U3 BATP
U2 ADCIN4 - R5 P2
U1 HDMI0_SDA - J4 16
U1 HDMI0_CLK_N - J4 12
U5 L1 - U5 L1
U2 LDO_1V5 - C3 P1
U1 SD_DAT2 - J3 DAT2
U3 SYS - U4 VIN_1
U1 USB3_0_DP - J2 D+
J5 5 - U1 POWERBUTTON
U11 MAIN_ANT - J9 SIG
U1 SD_DAT2 - J3 DAT2
U1 SD_DAT1 - J3 DAT1
U3 SCL - U2 I2CT_SCL
U2 ADCIN4 - R5 P2
KBD_SPARE
U2 ADCIN1 - R1 P2
U2 VBUS_IN_3 - U2 VBUS_IN_4
U2 DRAIN_1 - U2 DRAIN_2
U5 L2 - U5 L2
U5 VIN - U5 VINA
U11 ~RESET - U1 GPIO6
J1 VBUS_B__1 - U2 VBUS_IN_1
U11 USIM_VDD - J12 VCC
U7 USBDP_DN2/PRT_DIS_P2 - J5 4
L6 P2 - C9 P1
R13 P1 - C13 P1
R13 P1 - C13 P1
U11 GNSS_ANT - J11 SIG
U3 BTST2 - C18 P1
U3 SW1 - L3 P1
U9 ILIM - R9 P1
U7 USBDP_DN1/PRT_DIS_P1 - U11 USB_DP
U4 SW_2 - C11 P2
U1 HDMI0_SCL - J4 15
U3 TS_2 - R20 P2
U3 PROG - R18 P1
J1 DP1 - J1 DP2
L4 P2 - U4 SW_1
U3 TS_2 - R20 P2
R13 P1 - C13 P1
J1 CC1 - U2 CC1
U12 INT2 - U1 GPIO25
U6 SW - L6 P1
L6 P2 - C9 P1
U11 GNSS_ANT - J11 SIG
U11 AUX_ANT - J10 SIG
R13 P1 - C13 P1
C11 P1 - U4 BST
J1 CC2 - U2 CC2
U5 VIN - U5 VINA
U3 SYS - U4 VIN_1
J1 DN1 - J1 DN2
U10 OUTN - J8 2
U2 LDO_3V3 - C2 P1
R7 P1 - R8 P1
U2 LDO_3V3 - C2 P1
U1 USB3_1_DM - U7 USBDM_UP
U7 RBIAS - R17 P1
L6 P2 - C9 P1
U4 FB_2 - R13 P2
C11 P1 - U4 BST
U1 GPIO21 - U10 DIN
U11 ~PWRKEY - U1 GPIO5
U5 L2 - U5 L2
U1 GPIO19 - U10 LRCLK
U1 USB3_1_DP - U7 USBDP_UP
U4 VIN_2 - U5 VIN
U3 SYS - U4 VIN_1
U1 HDMI0_HOTPLUG - J4 19
U3 BTST1 - C17 P1
U1 USB3_0_DP - J2 D+
L6 P2 - C9 P1
U4 VIN_2 - U5 VIN
U9 ILIM - R9 P1
U1 GPIO18 - U10 BCLK
U5 L2 - U5 L2
U10 OUTP - J8 1
U4 VCC - C12 P1
U1 SD_DAT1 - J3 DAT1
U7 XTALIN/CLKIN - Y1 XTAL_1
U11 AUX_ANT - J10 SIG
U11 USIM_RST - J12 RST
U11 MAIN_ANT - J9 SIG
U11 FLIGHTMODE - U1 GPIO13
U2 VBUS_IN_3 - U2 VBUS_IN_4
U1 USB3_0_TX_N - J2 STDA_SSRX-
J1 DN1 - J1 DN2
U1 HDMI0_CLK_P - J4 10
U1 USB3_0_DM - J2 D-
U2 LDO_1V5 - C3 P1
U11 ~RESET - U1 GPIO6
U1 USB3_0_TX_N - J2 STDA_SSRX-
R13 P1 - C13 P1
J1 DN1 - J1 DN2
U7 RBIAS - R17 P1
J1 VBUS_B__1 - U2 VBUS_IN_1
U2 VBUS_IN_3 - U2 VBUS_IN_4
U3 SCL - U2 I2CT_SCL
U1 HDMI0_SCL - J4 15
U6 SW - L6 P1
U1 +5V(INPUT)__5 - U9 IN
U2 LDO_3V3 - C2 P1
U7 XTALOUT - Y1 XTAL_2
U10 OUTN - J8 2
U5 L1 - U5 L1
U3 SW2 - L3 P2
U5 VOUT - R15 P1
L6 P2 - C9 P1
U9 OUT - J2 VBUS
U9 ~{FAULT} - R10 P1
U2 LDO_3V3 - C2 P1
U7 USBDM_DN2/PRT_DIS_M2 - J5 3
U11 FLIGHTMODE - U1 GPIO13
U3 BAT_2 - U3 BATP
U3 SDRV_2 - C26 P1
U4 COMP - R19 P1
U3 SDRV_2 - C26 P1
U12 INT1 - U1 GPIO24
U5 VIN - U5 VINA
U9 EN - U1 VBUS_EN
U7 USBDM_DN1/PRT_DIS_M1 - U11 USB_DN
U7 USBDP_DN1/PRT_DIS_P1 - U11 USB_DP
U1 USB3_0_RX_P - J2 STDA_SSTX+
U2 PPHV_3 - U2 PPHV_4
U7 USBDM_DN1/PRT_DIS_M1 - U11 USB_DN
U1 HDMI0_TX1_P - J4 4
R7 P1 - R8 P1
U6 FB - R11 P2
U1 GPIO21 - U10 DIN
R7 P1 - R8 P1
U3 SCL - U2 I2CT_SCL
U5 FB - R15 P2
U2 PPHV_3 - U2 PPHV_4
U2 ADCIN3 - R3 P2
U1 USB3_0_DM - J2 D-
U7 CRFILT - C19 P1
U2 VBUS_2 - U2 VBUS_3
U7 XTALIN/CLKIN - Y1 XTAL_1
U2 VBUS_2 - U2 VBUS_3
U1 SD_CMD - J3 CMD
U1 SD_DAT3 - J3 CD/DAT3
U1 HDMI0_TX2_N - J4 3
U1 SD_DAT0 - J3 DAT0
R13 P1 - C13 P1
U11 STATUS - U1 GPIO12
U1 HDMI0_CEC - J4 13
U1 HDMI0_TX2_N - J4 3
U3 BTST1 - C17 P1
U4 SW_2 - C11 P2
U1 USB3_1_DP - U7 USBDP_UP
U3 BTST2 - C18 P1
U2 VBUS_2 - U2 VBUS_3
U1 USB3_0_RX_N - J2 STDA_SSTX-
U4 FB_2 - R13 P2
U10 OUTP - J8 1
U2 ADCIN4 - R5 P2
U11 USIM_VDD - J12 VCC
U1 HDMI0_SDA - J4 16
U1 HDMI0_TX1_P - J4 4
U3 SDA - U2 I2CT_SDA
U9 ~{FAULT} - R10 P1
U5 FB - R15 P2
U3 REGN - C25 P1
U1 USB3_1_DM - U7 USBDM_UP
U5 VIN - U5 VINA
U1 HDMI0_TX0_N - J4 9
L6 P2 - C9 P1
U12 INT1 - U1 GPIO24
U3 SDA - U2 I2CT_SDA
R13 P1 - C13 P1
U7 PLLFILT - C20 P1
U11 ~PWRKEY - U1 GPIO5
U4 VCC - C12 P1
U3 SW1 - L3 P1
U1 HDMI0_CLK_P - J4 10
J7 1 - U3 BAT_1
U9 OUT - J2 VBUS
U3 TS_2 - R20 P2
U3 REGN - C25 P1
L6 P2 - C9 P1
U1 HDMI0_TX2_P - J4 1
U2 ADCIN3 - R3 P2
J1 CC2 - U2 CC2
U5 PGND - U6 GND
J3 VSS - J3 9
C23 P2 - C24 P2
U7 VSS - R17 P2
GND
U11 GND - U11 GND
U7 VSS - R17 P2
R14 P2 - C13 P2
U11 GND - U11 GND
U11 GND - U11 GND
U5 PGND - U6 GND
C1 P2 - C2 P2
J5 2 - J5 MP1
U2 GND_10 - C5 P2
GND
GND
U2 GND_5 - U2 GND_6
U11 GND - U11 GND
U7 VSS - R17 P2
J1 GND_B__1 - J1 SHIELD
J1 GND_A__1 - J1 GND_B
J4 11 - J4 17
U2 GND_10 - C5 P2
U4 AGND - U5 GND
U2 GND_5 - U2 GND_6
U8 EP - RT1 2
R14 P2 - C13 P2
J10 GND - J11 GND
J4 11 - J4 17
C1 P2 - C2 P2
U10 GAIN_SLOT - U12 GND
C1 P2 - C2 P2
U11 GND - U11 GND
C23 P2 - C24 P2
GND
U5 PGND - U6 GND
R14 P2 - C13 P2
U11 GND - U11 GND
R12 P2 - C9 P2
J3 VSS - J3 9
U11 GND - U11 GND
U7 VSS - R17 P2
C25 P2 - U3 ~CE
U11 GND - U11 GND
J1 SHIELD__1 - U2 GND_1
U11 GND - U11 GND
U2 GND_10 - C5 P2
U2 GND_10 - C5 P2
U11 GND - U11 GND
U11 GND - U11 GND
R14 P2 - C13 P2
J7 2 - U3 GND
U11 GND - U11 GND
GND
U11 GND - U11 GND
U5 PGND - U6 GND
R14 P2 - C13 P2
U11 GND - U11 GND
U11 GND - U11 GND
GND
R14 P2 - C13 P2
U9 GND - J2 GND
R12 P2 - C9 P2
J9 GND - J10 GND
U1 GND__50 - J4 2
U2 GND_10 - C5 P2
U11 GND - U11 GND
R12 P2 - C9 P2
U4 AGND - U5 GND
U8 EP - RT1 2
U7 VSS - R17 P2
J3 VSS - J3 9
U7 VSS - R17 P2
U11 GND - U11 GND
C1 P2 - C2 P2
J3 VSS - J3 9
C25 P2 - U3 ~CE
J1 GND_B__1 - J1 SHIELD
J7 2 - U3 GND
U9 GND - J2 GND
U11 GND - U11 GND
J5 2 - J5 MP1
J1 SHIELD__1 - U2 GND_1
J7 2 - U3 GND
U11 GND - U11 GND
J2 SHIELD - R9 P2
GND
R6 P2 - U2 RESERVED_1
U2 GND_5 - U2 GND_6
U2 RESERVED_2 - U2 RESERVED_3
C25 P2 - U3 ~CE
U8 EP - RT1 2
GND
U11 GND - U11 GND
GND
U11 GND - U11 GND
U11 GND - U11 GND
U7 VSS - R17 P2
J3 VSS - J3 9
C23 P2 - C24 P2
U11 GND - U11 GND
U7 VSS - R17 P2
U5 PGND - U6 GND
GND
J10 GND - J11 GND
C1 P2 - C2 P2
R14 P2 - C13 P2
R6 P2 - U2 RESERVED_1
J9 GND - J10 GND
U2 RESERVED_2 - U2 RESERVED_3
J2 SHIELD - R9 P2
J3 VSS - J3 9
J1 GND_A__1 - J1 GND_B
U1 GND__50 - J4 2
U5 PGND - U6 GND
U7 VSS - R17 P2
GND
U11 GND - U11 GND
C1 P2 - C2 P2
J3 VSS - J3 9
U5 PGND - U6 GND
U5 PGND - U6 GND
U10 GAIN_SLOT - U12 GND
U11 GND - U11 GND
C4
Capacitance
2.2uF
C14
Capacitance
22uF
C9
Capacitance
10uF
C6
Capacitance
100uF
C1
Capacitance
10uF
C23
Capacitance
1nF
C5
Capacitance
4.7uF
C11
Capacitance
100nF
C3
Capacitance
10uF
C16
Capacitance
22uF
C8
Capacitance
330pF
C15
Capacitance
22uF
C20
Capacitance
100nF
C24
Capacitance
30pF
C17
Capacitance
47nF
C7
Capacitance
330pF
C10
Capacitance
4.7uF
C18
Capacitance
47nF
C12
Capacitance
2.2uF
C26
Capacitance
1nF
C13
Capacitance
22uF
C25
Capacitance
4.7uF
C21
Capacitance
18pF
C19
Capacitance
100nF
C2
Capacitance
10uF
C22
Capacitance
18pF
R2
Resistance
10kΩ
R3
Resistance
162kΩ
R13
Resistance
732kΩ
R17
Resistance
12kΩ
R1
Resistance
200kΩ
R15
Resistance
1.21MΩ
R16
Resistance
180kΩ
U8
R18
Resistance
6.04kΩ
L3
Inductance
1uH
J5
R8
Resistance
3.3kΩ
L4
Inductance
2.2uH
U12
R4
Resistance
38.3kΩ
R20
Resistance
10kΩ
R19
Resistance
36.5kΩ
R14
Resistance
100kΩ
R10
Resistance
100kΩ
R11
Resistance
453kΩ
L6
Inductance
2.2uH
R12
Resistance
100kΩ
R5
Resistance
200kΩ
R9
Resistance
28.7kΩ
L5
Inductance
1.5uH
R6
Resistance
10kΩ
R7
Resistance
3.3kΩ
U9
J10
J9
J1
J8
J7
J11
U6
RT1
Resistance
10kΩ
U7
U2

Refine this doc
Ask about this doc
Keyboard Layout — Linux Cyberdeck
Status
Confirmed keyboard layout direction. Switch/keycap part numbers remain TBD-sourcing.
Physical Layout
  • Style: Preonic-style 5 x 12 ortholinear layout, terminal-biased.
  • Key count: 60 keys.
  • Key field: approximately 114 x 47.5 mm.
  • PCB target: approximately 118 x 58 mm.
  • Key pitch: 9.5 mm.
  • Key type: tactile switches with keycaps.
  • Switch/keycap part numbers: TBD-sourcing.
  • Backlight: no in rev 1; reserve PWM + FET + LED footprints as stuffing option.
Base Layer
  • Proven 60-key ortholinear / Preonic-style base.
  • Terminal-biased modifier placement.
  • Ctrl on home-row corner.
  • Two thumb Space keys.
  • Sym on both thumbs.
  • QWERTY + number row.
  • Arrows bottom-right.
Sym Layer
  • Missing ASCII characters clustered on the right hand.
  • Sym layer accessed from both thumb Sym keys.
Fn Layer
  • F1–F12.
  • Brightness and volume on arrow cluster.
  • Navigation cluster.
  • Display brightness keys send consumer-control codes via QMK and are handled in Linux via /sys/class/backlight.
Electrical Architecture

Diagram


5x12 Key Matrix RP2040 Keyboard MCU QMK Firmware 6-pin FPC to Main Board CM5/Internal USB HID Path WAKE to CM5 Pin 92 PWR_BUTTON Domain
Matrix and RP2040 Pin Plan
  • Matrix: 5 rows x 12 columns.
  • MCU: RP2040 on keyboard PCB.
  • Firmware: QMK.
  • Interface to main board: USB HID over FPC.
  • Wake sideband retained.
  • Detailed row/column GPIO assignments are included in the schematic pin plan and may be adjusted during routing to simplify the keyboard PCB.
6-pin FPC Pinout

Table


PinSignalNotes
1GNDReturn
2+5V or +3V3_KBDFinal rail selected during schematic; use one keyboard supply rail only
3USB_D+Keyboard USB HID
4USB_D-Keyboard USB HID
5WAKEWake line to CM5 pin 92 / PWR_BUTTON behavior domain per confirmed decisions
6KBD_BOOT/RESET or spare GPIOUsed for RP2040 service/programming or reserved spare
Notes for Schematic Capture
  • Do not scan the keyboard matrix directly with CM5 GPIO.
  • Put ESD/series protection as appropriate on the FPC interface.
  • Include SWD pads for keyboard RP2040 under the service hatch.
  • Include BOOTSEL/reflash access so Linux can recover/update keyboard firmware if needed.
  • Keep switch/keycap footprints selectable until final sourcing is complete.
  • Status

  • Physical Layout

  • Base Layer

  • Sym Layer

  • Fn Layer

  • Electrical Architecture

  • Matrix and RP2040 Pin Plan

  • 6-pin FPC Pinout

  • Notes for Schematic Capture

Linux Cyberdeck

Linux Cyberdeck thumbnail
Portable Linux cyberdeck based on RK3588S2 with LPDDR4x memory, LTE/GNSS M.2, LoRa, USB-C, USB-A 3.0, HDMI, display/keyboard interface, speaker, and battery power.

Properties

LoRa

Linux

Display

Battery

Cellular

Portable Computer

Pricing & Availability

Distributor

Qty 1

Arrow

$27.05–$39.32

Digi-Key

$9.00

HQonline

$12.89

LCSC

$66.13–$66.94

Mouser

$45.67

TME

$8.17

Verical

$22.53–$40.70

Controls