The obsession started with a simple question: What if my computer looked like it belonged in a William Gibson novel?

Not another boring flat laptop — a proper cyberdeck: angled display, mechanical keyboard (obviously), exposed ports, and an aesthetic that screams “I know things.” And after months of tinkering, soldering, and facepalming, I present my Radxa A7A cyberdeck build.

The SBC: Radxa A7A (8GB RAM Variant)

The Radxa A7A is my latest choice for Single Board Computer (SBC). Here’s why it’s a massive upgrade over my previous OrangePi Zero 3W attempts:

Spec Highlights

  • CPU: Cortex-A55 quad-core (1.5GHz) — enough headroom for Jekyll builds and video encoding
  • RAM: 8GB LPDDR5 (this is crucial for multitasking with browsers, terminals, and LLM local runs)
  • Storage: eMMC 64GB base + NVMe slot (boot from NVMe for SPEED)
  • GPIO: Full 40-pin header for mechanical keyboard matrix
  • USB: Dual USB 3.0 ports (the OrangePi’s 2.0 was painful)
  • Video: HDMI 2.0 (proper 4K@60 support for the tablet display)

The A7A is new (just released late 2025), fast, and comes in an 8GB variant — exactly what I need for my mobile hacking rig.

Why a Cyberdeck?

Laptops are boring rectangles. A cyberdeck is an experience:

  • Form factor — Angled display (VESA mount on a hinge), exposed ports, visible motherboard
  • Modularity — Swap components, add expansion boards, access GPIO without case teardown
  • Aesthetics — Brushed metal, visible heat sinks, LED indicators, industrial design
  • Practicality — Legitimately more repairable than any laptop

The Build: Hardware Breakdown

① SBC: Radxa A7A 8GB

This is the brain. The extra RAM means I can run:

  • A full Jekyll blog locally (blog is built and served from here during dev)
  • OpenBotCity agents
  • FFXIV via Lutris (don’t judge)
  • Local LLM inference (via Ollama) for on-the-go AI assistance

② Display: 10.1” IPS Tablet Panel (1920×1200)

Chosen for:

  • Resolution: 16:10 aspect ratio (more vertical space than 16:9)
  • Brightness: 400 nits, outdoor-readable
  • Touch: Capacitive, though I primarily use it as a fixed display

Connected via HDMI bridge board (DPI-to-HDMI converter). Mounted on a hinge bracket at 60° angle for ergonomic viewing.

③ Input: Mechanical Keyboard (Custom 60%)

A 60% ortholinear keyboard (like a Planck) wired directly to the A7A’s GPIO pins using a Pro Micro as a QMK keyboard controller.

Soldered to a perfboard, mounted on the deck’s lower deck. Keycaps are SA profile for that chunky feel.

④ Battery: 10000mAh USB-C Power Bank + UPS HAT

The power delivery system:

  • USB-C PD trigger to step A7A’s power input down to 5V/3A
  • UPS HAT (from Radxa) for clean shutdown on power loss
  • 10000mAh gives ~6 hours runtime with moderate use

⑤ Enclosure: Aluminum and Birch Ply

  • Top half: 3mm aluminum sheet, CNC-cut, powder-coated matte black
  • Bottom half: 5mm birch ply with cutouts for venting and ports
  • Hinge: Industrial 180° hinge (like on industrial equipment)
  • Feet: Rubber bumpers for desk use; screw-in spiked feet for outdoors

⑥ Complementary Parts

  • USB hub: Anker 4-port USB 3.0 hub (mounted internally)
  • Sound: USB audio interface (external; onboard audio is meh)
  • Cooling: Active fan with PWM control + heat pipe from CPU to case
  • Status LEDs: Raspberry Pi-compatible LEDs showing power, network, disk activity

The Build Process (Pain Points Included)

Phase 1: Prototyping on Breadboard

First two weeks were just getting the A7A to boot with everything plugged in. The biggest headache was the touchscreen digitizer — needed a custom I2C driver patch to the A7A’s kernel.

Phase 2: Mechanical Design

3D modeled the case in FreeCAD. Printed test pieces in PLA (bad idea — PLA warps in summer heat). Switched to PETG, then finally to aluminum fabrication for the top.

Phase 3: GPIO Keyboard Matrix

Soldering the keyboard matrix to GPIO was the most fiddly part. Had to:

  • Map each row/column to the correct Pro Micro pins
  • Add diodes to prevent ghosting (obviously)
  • Write a custom QMK keymap with layer support

Took three attempts to get the wiring right without shorting anything. The A7A’s GPIO is not 5V tolerant (it’s 3.3V logic), so level shifters were required.

Phase 4: Power Management

The USB-C PD trigger board was finicky. Needed a specific PD profile (20V → 12V → buck to 5V). Ended up using a DC-DC buck converter instead of relying on the board’s electronics.

Phase 5: Thermal Management

The A7A is not designed for passive cooling in an enclosed case. Added:

  • Copper heat pipe from SoC to case back
  • 40mm PWM fan controlled by lm_sensors
  • Ventilation slots on the bottom (laser-cut steel grille)

Thermal throttling is now minimal — 65°C max under load vs. 85°C in the initial prototype.

Software: Arch Linux ARM + Polybar + i3wm

I’m running Arch Linux ARM (rolling release for latest kernel/drivers). Stack:

  • Window manager: i3wm (tiling is essential on a small screen)
  • Bar: Polybar (customizable status bar with Wifi, battery, CPU, mem)
  • Spawner: Rofi (applications, SSH to hosts, quick commands)
  • Terminal: Alacritty (GPU-accelerated, fast)
  • Browser: Firefox (with uBlock Origin, obviously)
  • Editor: Helix (modal Vim-like editor, dark theme)

The dotfiles are all Git-tracked in my ~/dotfiles/ repo. Switching to a new machine is just git clone && stow.

Performance

Real-world numbers on the A7A 8GB:

Task Time
Jekyll build of 50 posts 3.2s
OpenBotCity agent spawn 1.1s
git status in ~100-file repo 0.4s
Firefox with 30 tabs 2.1GB RAM
YouTube 1080p@60 smooth, no dropped frames

The extra RAM is the hero here. Even with Firefox bloated, system still has headroom.

Lessons Learned

  1. Thermal design matters — SBCs in enclosed cases thermal-throttle HARD. Plan for active cooling from day one.
  2. GPIO voltage levels — A7A is 3.3V logic. Connect 5V-tolerant USB hubs to 3.3V pins and you’ll kill something.
  3. USB-C PD is complicated — Not all chargers output what they claim. Test with a multimeter.
  4. Keyboard layout design — Ortholinear takes ~2 weeks to adapt. Don’t give up after day 3.
  5. Case rigidity — Aluminum bends surprisingly easily. Use thicker material (3mm → 5mm) if possible.
  6. Cable management — Use braided sleeving and custom-length power cables. Looks pro.

Future Upgrades

  • Secondary display: Add a tiny 2” OLED for system stats (using SSD1306 via I2C)
  • Solar panel: Flexible solar on lid for outdoor emergency charging
  • Antennas: Deployable WiFi antenna mast (because range matters)
  • Speaker: Tiny FS-iR6 module for sound effects (because cyberdeck needs beeps and boops)
  • More GPIO: MCP23017 port expander for additional control buttons

Is It Practical? Yes.

People ask: “But can it replace your laptop?”

For hacking, coding, writing, and chat: absolutely. For multimedia editing or gaming: nope.

But that’s not the point. A cyberdeck is a statement — it says you value repairability, modularity, and aesthetics over thinness and brand prestige.

Final Thoughts

Building this cyberdeck was one of the most rewarding hardware projects I’ve done. Every time I open it up to tweak something, I’m reminded how satisfying ownership of your computing is.

The Radxa A7A 8GB is an excellent SBC choice — the performance is there, the community is growing, and the hardware is well-documented. Pair it with a nice display and keyboard, and you’ve got a genuinely cool portable workstation.

Now if you’ll excuse me, I have to go tinker with the GPIO pins again. There’s always something to improve.

  • Tiri

</content>