https://github.com/g1sbi/qaz-cyberdeck Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Case Studies + Customer Stories + Resources * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} g1sbi / qaz-cyberdeck Public * Notifications * Fork 0 * Star 5 A cyberdeck featuring a QAZ keyboard and Banana Pi M2 Zero License GPL-3.0 license 5 stars 0 forks Star Notifications * Code * Issues 0 * Pull requests 0 * Discussions * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Discussions * Actions * Projects * Security * Insights g1sbi/qaz-cyberdeck This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 1 branch 0 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/g] Use Git or checkout with SVN using the web URL. [gh repo clone g1sbi/] Work fast with our official CLI. Learn more about the CLI. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @g1sbi g1sbi Update README.md ... da64670 May 14, 2023 Update README.md da64670 Git stats * 43 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time images Update README.md May 14, 2023 17:02 Back.stl Add files via upload May 12, 2023 17:38 Case.stl Add files via upload May 12, 2023 17:38 LICENSE Initial commit May 12, 2023 15:18 README.md Update README.md May 14, 2023 20:33 qaz_layout.vil Add files via upload May 12, 2023 17:37 tominabox1_qaz_vial.hex Add files via upload May 12, 2023 17:37 View code [ ] QAZ Cyberdeck A compact cyberdeck, featuring a QAZ 35% keyboard, Banana Pi M2 Zero SBC and 7.9 inch monitor. Contents Introduction Parts Hardware Keyboard Cables Tools Files Design Decisions Building Keyboard Flashing Firmware Warnings Switches alignment Optional mods Loading the layout on the keyboard Cables USB-C / Micro USB Power Only Micro USB / Ampripper Battery / Ampripper OTG Cable (Micro USB / Micro USB) Summary HDMI Cable Flashing Linux Test Build Wrap up Ricing Conclusion Author Creators README.md 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 * Parts + Hardware + Keyboard + Cables + Tools + Files * Design Decisions * Building + Keyboard + Cables + HDMI Cable + Flashing Linux + Test Build + Wrap up * Ricing * Conclusion 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 [bananapi] [ampripper] [board] [screen1] [battery] Hardware * Banana Pi M2 Zero * Banana Pi Cooler * Ampripper 3000 * Waveshare 7.9 LCD Monitor * 3D printed case - I used this website to get the case files printed, but I live in Europe, so Google whichever service works best in your region. * Fast Micro SD Card - This is the only thing I will not link from Aliexpress, for two reasons: 1. they're everywhere and fairly inexpensive. 2. I bought a cheap one at first, and it heavily bottlenecked my system, so don't skimp out on it. a 128gb one cost me only $15. * Wi-Fi Antenna - Optional, but will make the Wi-Fi in the BananaPi stronger. * Battery - Note: if you don't buy this one, make sure it measures L 47mm - W 55mm - H 10mm. The battery can be slightly larger and longer, but not thicker than 10mm. Keyboard * QAZ PCB - if you decide to buy the Integrated version, you won't need to buy a Pro Micro. * Pro Micro * Kailh Box Jades (x70) * Keycaps * Stabilizers - Optional, but recommended. Cables * Micro USB headers * USB C Headers * Custom HDMI Cable - Add to cart : C1 connector, A5 connector, Only FFC -5cm. * Electrical Wire - Make sure it's 28awg thickness. This is way more than you need, but it gives you freedom to get cables wrong without worrying about running out of wire. Tools * M2 / M2.5 screws * Soldering station - Even a super cheap one is fine, I paid mine around $20. * Screwdriver and tools kit - not necessarily this one, but having these tools helped a lot. * Solder flux - Not strictly necessary, but it was really handy when soldering. Files * Case * Back Panel 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 [cyberpunk] 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 [switches] [keycaps] 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. * Official QAZ Docs * QAZ Build Video * Switches Soldering Guide * Stabilizers Modding Guide - Optional 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): * Open up QMK Toolbox * Toggle "Auto flashing" * Select the firmware file you downloaded * Plug in the Pro Micro * With a pair of tweezers, short the RST and GND pins twice, quickly (picture below). * Wait for the console to confirm the firmware has been flashed. The Pro Micro should disconnect automatically. * Test by opening up Vial and seeing if the keyboard is recognized. [bootloader] 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. [?][?] Diodes are directional, be careful of the direction you solder them in [?][?] 2. [?][?] Do not solder the Pro Micro before soldering the two switches underneath [?][?] As a cautionary tale, I will show you what happens when you try to improvise on anything involving soldering: [destroyed1] [destroyed2] 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): * roughly align the switch * solder the first pin * align the switch to make it straight * solder the second switch 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. * Open Vial * Select File > Load Saved Layout * Select the layout file you downloaded Cables Cable Soldering Guide You're gonna need to make four cables: * A power only USB-C to Micro USB, to connect the Ampripper to the Banana Pi. * A OTG Micro USB to Micro USB (or Micro USB to USB-C if bought the Integrated version of the QAZ PCB), to connect the Banana Pi and keyboard. * A Micro USB to bare wires, to power the monitor. * A simple extension to make the battery's cables reach the Ampripper. For each cable, I recommend wrapping the joints with electrical tape to give some structural integrity. USB-C / Micro USB Power Only [microusb] Pin Name Wire Description color 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 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: [power_cable] 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). [ampripper_solder] Battery / Ampripper [ampripper-battery] 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) [otg] [otg-detail] Summary In the end, your cables should look something like this: [cables] HDMI Cable [hdmi] 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. [?][?] The cable in the picture is in the wrong direction, do the opposite of what you see. [?][?] 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. [?][?] 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. [?][?] [?][?] 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. [?][?] [schematic] [test_assembly] * Press the on/off button at the back of the screen. * Take the cooling kit for the Banana Pi, the cooling pad for the CPU, the thinnest of the two metal coolers and install them. * Press the on/off button at the back of the Waveshare screen * Plug the Ampripper's USB-C plug in a charger, since the battery will probably be out. If everything is plugged in correctly and all cables were soldered correctly these things should happen: * An orange light will turn on on the Ampripper. * A green light will turn on behind the screen. * The Banana Pi should turn on and the Linux kernel should load. Wrap up Once you ensured everything is working correctly, it's finally time to put everything in the case. There's a couple of things to keep in mind: * Don't tighten the screen's screws too tight, as it will cause the screen to be pushed out of the case. * Make sure to let the keyboard's cable go underneath the Ampripper, as I broke mine when I didn't. [internals] 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: * zsh + powerlevel10k * bspwm * polybar + hack theme from polybar-themes * neovim * pywal * st 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 * Twitter: @0xgisbi * Github: @g1sbi Creators whydobearsxplod tominabox1 - Github: @tominabox1 About A cyberdeck featuring a QAZ keyboard and Banana Pi M2 Zero Resources Readme License GPL-3.0 license Stars 5 stars Watchers 1 watching Forks 0 forks Report repository Releases No releases published Packages 0 No packages published Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.