My Cyberdeck Build
I'm a big long time cyberpunk fan even before reading Neuromancer. After getting addicted to mechanical keyboards and building many portable gaming consoles, i feel like it's time to finally build my own cyberdeck!
The deck is supposed to be a portable computer like a notebook. Small but usable. The GPIO & other external interfaces of the SBC [Single Board Computers] should all be accessable from the outside. For the keyboard there is only one option, a mechanical one. Preferable a custom build, or something in the 60% to 40% area. A mouse is optinal but a trackpad/-ball would be benefitial.
#
Planned Features#
Must have- Batteries with charge & play
- Powerfull SBC
- Mechanical keyboard
- GPIO breakout
- Internal Speakers
#
Should have- Trackball / -pad
- Software defined radio with external antenna
- Internal USB-Hub for additional internal devices [SDR, GPS, Keyboard, ...]
- EL-Wire for cyberpunk fanciness
#
Could have / other ideas- GPS with internal antenna
- Solar panel for charging
- External wifi antenna
- LoRa/WAN
#
ComponentsPart | Description |
---|---|
NanoPC-T4 | Powerfull SBC to drive my deck |
HD702E LCD | 7" Display with eDP interface |
JJ50 | Small mechanical keyboard |
Trackball | The Pimoroni Trackball Breakout seems like a good option |
Batteries | Depends on the space i have in the case |
RetroPSU | Helder's RetroPSU seems like a good battery management solution |
ELWire & Transformator | Ordered some green ELWire with a cheap 5V transformator, let's hope it's not too noisy |
#
CaseI will design the case from scratch in fusion 360.
#
DisplayI"m using the HD702E eDP Panel from FriendlyElec. Which has upstream linux support and connects using eDP. For it to work using Armbian I had to do some digging into the Device Tree files to enable eDP & also configure X11 to use the correct settings for the Display.
#
DTB OverlayTODO
#
Xorg ConfigSomehow Linux didn't get the right Modesetting for my HD702E Screen. So i had to fix it in xorg.conf:
#
Keyboard#
FirmwareFor the Firmware I'm using the QMK fork for "VIAL" a fork of "VIA", which allows the configuration of the keymap without reflashing the firmware.
#
Setup QMKFollow the QMK Docs - lol.
#
RetroPSU Linux integrationI wanted to integrate the RetroPSU in a native Linux way to get the actuall battery status in lm-sensors.
To acomplish this, i had to dig into devicetrees and was quite successfull.
#
Devicetree ModificationsHere is the part of my DTS-File that defindes RetroPSUs ADC chip [a TI ADS1015] connected to the I2C bus number 2.
This creates a IIO-Device you can check out under /sys/bus/iio/devices/
.
Next I wanted to get the voltage of the battery as a battery- or sensor device. Luckily there was something called "iio-hwmon", which allows using a IIO-Device as hwmon-device [which will be useable in lm-sensors].
So here is another DTS snippet:
This is fairly straight forward: it defined a hwmon device, pointing the the ADC on channel 4.
And this is the result:
Not a "Battery", yet. But I can live with the battery voltage level for now.
#
SoftwareNo cyberdeck is complete without some cyber-eye-candy!