g1sbi / qaz-cyberdeck

A cyberdeck featuring a QAZ keyboard and Banana Pi M2 Zero
GNU General Public License v3.0
136 stars 3 forks source link
QAZ Cyberdeck

QAZ Cyberdeck

A compact cyberdeck, featuring a QAZ 35% keyboard, Banana Pi M2 Zero SBC and 7.9 inch monitor.

Version License: GPL--3.0 Twitter: 0xgisbi

Contents

Introduction

First of all, I'd love to thank whydobearsxplod for creating the QAZ keyboard (along with tominabox1) and the cyberdeck itself. The credit for this build fully goes out to him. The original post can be found here, which is also entirely what I used, along with a few tips from the creator, to build the deck.

The purpose of this post is to document the building process to help anyone interested in making this, or simply enjoying the adventure. This is not a fully comprehensive guide on how to make everything from scratch (e.g. soldering the keyboard), but I will provide all the necessary resources to learn the missing parts throughout the read.

Lastly, I had close to zero prior knowledge in making any of this, apart from soldering two keyboards and using Linux for a year. If you want to make this but feel intimidated, I was in your same spot. You just need to take your time and read before you do anything permanent. If I made this, so can you.

With that said, enjoy the read!

Parts

Hardware

Keyboard

Cables

Tools

Files

You can either 3D print these at home, if you have a printer, or have them printed by a company and shipped like I did.

The overall price came out to, more or less, $300. This will vary depending on whether your local Amazon/Ebay purchases differ from mine.

Design Decisions

I didn't deviate too much from the original project, however, the few customizations I made were intentional. I wanted to go for a more "retro" feel, so I landed upon a clone of the GMK Pixel keycaps. The UI is also mainly terminal based, both for stylistic and hardware requirements reasons. Basing the entire UX around a highly stylized terminal both sells the feeling of this being an old device, and also saves up on the already scarce computing power.

Using blank keycaps, mixed with the already challenging nature of using a 35% keyboard and the terminal UI, gives the deck a distinct "mistique" feeling to it, as if it belongs to a sci-fi movie from the 80s, where the device looks so absurdly complicated and foreign, that the viewer unmistakably feels it could only exists in a far future.

Building

Keyboard

For the keyboard switches, I decided to go for Kailh Box Jades, which are clicky switches. I've always wanted to try good clickies but always thought that building an entire keyboard around them was overkill. The cyberdeck was the perfect opportunity to get them, since I won't be using it extensively.

Flashing Firmware

Before doing any soldering, you're first going to make sure your Pro Micro works properly. I've included a firmware file, which works specifically for [Vial](), more on that later. Here's the steps required to flash the firmware onto your Pro Micro (assuming you bought the one I selected):

Warnings

I will not list how to build the rest of the QAZ here, however I will specify again two dangerous pitfalls, both of which I fell into:

  1. :warning: Diodes are directional, be careful of the direction you solder them in :warning:
  2. :warning: Do not solder the Pro Micro before soldering the two switches underneath :warning:

As a cautionary tale, I will show you what happens when you try to improvise on anything involving soldering:

In this situation I soldered the Pro Micro before soldering the two switches underneath, which led to a very lenghty process of dremeling the Pro Micro away, and then painstakingly desolder each pin.

I cannot stress this enough: follow the build guide very carefully. If there's one thing I learnt from soldering, is that it's very much like carpentry. Whereas in carpentry you have "Measure twice, cut once", I made up the "Read twice, solder once" rule for soldering.

Switches alignment

As you may have noticed, the switches are 3-pin and my build does not include an aluminum plate to clip them on before soldering. This makes soldering them a bit more complicated than usual. You can 3D print a switch aligner, like shown in the build video I linked, or (what I personally did):

Unfortunately this doesn't yield a perfectly aligned keyboard. If you prefer, you can find files to 3D print a plate for the QAZ.

Optional mods

keyboard tape mod

Lastly, I tape modded the board to help with sound dampening coming from the unfathomably loud switches. I also added foam on the bottom of the case.

case foam

Loading the layout on the keyboard

By default, the QAZ will have a functioning key layout, but not a really complete one. I've included the layout file I made and use daily on mine, but once loaded in Vial you can modify it to your needs.

Cables

Cable Soldering Guide

You're gonna need to make four cables:

For each cable, I recommend wrapping the joints with electrical tape to give some structural integrity.

USB-C / Micro USB Power Only

Pin Name Wire color Description
1 VBUS Red +5 V
2 D− White Data−
3 D+ Green Data+
4 ID Any Permits detection of cable end: "A" (host) signal ground, "B" (device) not connected
5 GND Black Signal ground Pin Name Wire color Description

Source

If you've never done this, like me, I recommend starting from this one to get the basics down. Starting from the Micro USB and following the picture above, you're just gonna need to solder GND and 5V. As for the USB-C, the pins should be named. The linked YouTube video explains everything you need to know and gives pretty good advice. This is the end result:

Micro USB / Ampripper

This one is more or less the same. Repeat what you did for the first cable for the Micro USB part and solder the other ends on the Ampripper, on the GND and 5V pins respectively (picture for reference).

Battery / Ampripper

Extend the two wires of the battery and solder the 5V and ground wires to the BAT(+) and GND(-) of the Amprippper (see picture above).

OTG Cable (Micro USB / Micro USB)

I saved the best for last. For this one, you're gonna need to make a Micro USB to Micro USB cable that also includes data (D+ and D-) and an ID. This cable needs to have the ID pin soldered to the ground pin on the same side. Refer to the pictures for info. I'm not sure the way I soldered it is the most optimal, but it works. Since all pins are occupied on this one, you're gonna want to be extra careful to apply just enough solder to make the wire stick and nothing more. You definitely don't want any solder spilling to the nearby pins and short out. Make sure to wrap this cable in tape really well. (Someone on Discord also told me to use hot glue to isolate the joints but I didn't try it, might be worth a shot if you feel like it)

Summary

In the end, your cables should look something like this:

HDMI Cable

The cable is straightforward to assemble, you just need to slide the flat cable on the housings and close them up. However, I made a really dumb mistake that took me like an hour to find and solve, so I'll spare you the pain: check the cable's direction. The blue strip should point down at the board, and the cable's pins should point upwards, relative to the connector.

:warning: The cable in the picture is in the wrong direction, do the opposite of what you see. :warning:

Flashing Linux

Armbian flashing guide

For now you're just gonna flash the Armbian image to have an ouput on the screen. In case you don't want to use Armbian, the official Banana Pi page has a few others distros to choose from.

Test Build

Here's a schematic of how everything should be plugged together.

:warning: The Micro USB plugs on the Banana Pi are to be plugged as shown. The leftmost one is power only. If you swap the power and keyboard positions it will not work. :warning:
:warning: The OTG cable that goes from the Pi to the keyboard must have the host end of the cable (the part where you soldered the extra ID pin) connected to the Banana Pi side. :warning:

If everything is plugged in correctly and all cables were soldered correctly these things should happen:

Caveat: even though there's a notch to make room for the HDMI cable, there seems to not be enough space since the underneath Micro USB cable pushes upwards a bit. Either manage to make a smaller cable than mine or dremel a bit of the internal case away.

Ricing

In case you're interested in the ricing I made, I'm using:

If interest is high enough, I'll consider expanding this section.

Conclusion

That's it! Either if you've built this and reached this point, or just read the entire thing for fun, thanks for reading! I hope you enjoyed the read and if you have any contribution you want to make, like correcting a mistake I probably did, or even expand/fix some paragraphs, make sure to open up an Issue or PR.

Author

👤 Gisbi

Creators

👤 whydobearsxplod
👤 tominabox1 - Github: @tominabox1