Raspberry Pi 4B Cyberdeck

THEBRICK Cyberdeck

Welcome to the YARH.IO THEBRICK Cyberdeck project, where we aim to create a device in the "cyberdeck style," utilizing a Raspberry Pi 4B and a mechanical cyberdeck keyboard.

This device is composed of three primary components: the main unit (known as THEBRICK), the keyboard, and the carrier, which unites the main unit and keyboard.

The main unit houses the SBC, a screen, a power supply, three batteries, and a circuit dedicated to measuring and displaying battery voltage.

THEBRICK Cyberdeck

At the heart of the YARH.IO THEBRICK’s cyberdeck is the Raspberry Pi 4B, equipped with a heatsink and an active fan to maintain a safe operating temperature for the SBC. The fan is SBC-controlled, activating once a certain temperature threshold is met.

The primary display is a 400×1280 IPS Waveshare 7.9" Touch Screen with a Toughened Glass Cover, notable for its brightness and a broad viewing angle of 170 degrees.

THEBRICK Cyberdeck

Power is supplied through a Pololu U3V50F5 5V Step-Up Voltage Regulator, coupled with three Fenix ARB-L21-5000U batteries. This regulator efficiently produces a 5V output from an input voltage as minimal as 2.9V, supporting an input current up to 5A. Each Fenix ARB-L21-5000U battery offers a 5000mAh capacity and an integrated USB-C charger.

THEBRICK Cyberdeck

Individual ON/OFF switches for each battery are located on the main unit's right side. Although the device is designed to operate on one battery at a time, it can safely use multiple batteries simultaneously, provided they are equally charged.

The device can also be powered by a battery that is currently charging. If the USB power supply connected to the battery exceeds the device's consumption, it will function as a UPS.

THEBRICK Cyberdeck

Battery voltage measurement and display are handled by a circuit that includes an Adafruit INA260 Voltage/Current/Power Sensor, a Pimoroni Tiny 2040 board, and a 0.91 Inch 128x32 OLED Display.

On the front panel's left side, the OLED display presents battery voltage and current readings from the INA260 sensor, processed by the Tiny 2040 board. The software for Tiny 2040 can be effortlessly tailored to present the battery status in various formats.

The right side of the YARH.IO THEBRICK’s main unit features three battery ON/OFF switches, a USB-C power ON/OFF switch, a Raspberry Pi microSD slot, a Raspberry Pi USB connector, and a USB-C power connector. Additional Raspberry Pi USB connectors are located at the top and bottom of the housing.

Three USB-C battery charging connectors are accessible on the housing's rear.

The keyboard offers a 5x12 ortholinear layout, Cherry-compatible mechanical switches and keycaps, and runs on QMK firmware.

Varied carriers enable several methods for mechanically joining the main unit and keyboard, consistent with the device's intended use. Options for attaching a keyboard to the main unit include "Transformer," "Terminal," and "Cyberdeck" configurations.

All casing components are 3D printed, utilizing either PLA or ASA plastic. ABS plastic is also an option, though it demands more sophisticated printers and printing methods compared to PLA plastic.


Part Link
Raspberry Pi 4B Raspberry Pi
GeeekPi Raspberry Pi 4 Aluminum Heatsink Amazon
Waveshare 7.9inch LCD Amazon
Micro SD to Micro SD Extension Cable 15CM Amazon
Fenix ARB-L21-5000U 5000 mAh battery X 3 Fenix
2 Position 3 Pin SPDT Mini Micro Toggle Switch X 4 Amazon
Adafruit USB Type C Power Delivery Dummy Breakout
Adafruit USB Type C Breakout Board

Pololu U3V50F5 5V Step-Up Voltage Regulator Pololu
Adafruit INA260 Voltage/Current/Power Sensor Adafruit
Pimoroni Tiny 2040 board Pimoroni
0.91 Inch 128x32 OLED Display Amazon
RTC Clock Module Amazon
USB-A 2.0 Receptacle Connector X 4 Digikey
USB-A 2.0 Plug Connector X 4 Digikey
USB-C Plug Connector From old USB-C cable
2x8cm Double Sided PCB Board Amazon
Battery springs small X 3 From old equipment
Silicone Rubber Stranded Wire 20AWG, 28AWG Amazon
#2-56 Socket Cap Screw Stainless Steel, 1/4", 3/8", 1/2" Trimcraft Aviation RC


System & Software


Add the following to the /boot/cmdline.txt to allows SD Card with extension cable works properly:



hdmi_timings=400 0 100 10 140 1280 10 20 20 2 0 0 0 60 0 43000000 3