Two years ago, I quickly discovered that using a laptop on the train was pretty uncomfortable when I started a new job that was 1.5 hours away. Either the screen was fully open but the laptop was jammed into my stomach, or I could type comfortably but the screen was half shut. I decided the best solution to this inconvenience was to build my own portable computer from scratch. I call the final product the Commute Deck.
The Commute Deck is designed to provide a productive computing experience for UNIX terminal work in tight places, like the train or an economy seat on an airplane. It can be carried by hand or hooked onto a bag. It is robust enough to be jostled, and sealed so it can be carried outside in uncontrolled conditions. The mechanical keyboard is comfortable to type on (in width and layout), and the battery life is sufficient for a cross country flight or a full day at a conference.
The theme of this build is to identify the problem you want to solve, then solve that problem. Seems like a tautology, but I find it’s easy to waste time solving problems that don’t really matter. There are a number of areas where I traded elegance for off the shelf components to reduce complexity, cost, and time to completion.
An aside: The name “Commute Deck” is in reference to the notion of a computing device made of pure 90’s hacker nostalgia called “cyber deck,” from William Gibson’s Neuromancer. Here’s a screenshot of a “Decker” character holding a similar device from the Sega Genesis game Shadowrun.
I used laser cut 1/4″ plywood to form a chassis in the stack-of-flat-layers style. This technique makes it easier to precisely place the keyboard key pattern, and attach things via the top and bottom (though you just have to punch holes through the sides).
It is strong, easy to manufacture and modify by hand, and durable enough for my needs. Plus it’s cheap! Sheets of plywood are available for a few dollars at nearly any hardware store and a pair of 2’x4′ are large enough for one unit. This meant replacing things when I made mistakes was pretty easy too.
The Keyboard — Theory
The most conspicuous part of the ‘Deck is the keyboard. If you’re wondering whether it’s a regular keyboard that has been cut in half, the answer is no.
A typical keyboard has a matrix of key switches, soldered to a rigid PCB. While it might be possible to carefully saw one in half, you’d need to ensure that every electrical connection was painstakingly reconnected. This would be difficult and not especially rewarding. Besides, if I was going to build a computer into a keyboard, then I’d want it to be fully customizable. Having personally scratch built a number of keyboards already, the solution was to build this one from scratch too.
After designing a key layout (based on what’s known by enthusiasts as a “60% keyboard”) by hand, I recreated it in a set of free web tools used to automatically generate the CAD files used to make a keyboard. This gave me a starting point, from which I manually moved the key switches around until they were separated and arranged as I liked.
There are a few oddities with this layout. There are technically two Y and two B keys. The space bar is divided into two halves (made of right shift keys). I didn’t include a pointing device, so the keyboard also needed to allow mouse movement with the WASD keys.
The Keyboard — Construction
A keyboard is usually composed of two to three main structural parts. The things you press are key switches. These are usually mounted in a plate, stamped, or laser cut out of metal about 1.5mm thick. The switches are soldered to a PCB to make electrical connections. This combination is very durable and gives good key feel. The Deck has the switches, but neither the plate nor the PCB. Prices have certainly gone down since I finished this project, but getting custom metal cut or PCBs professionally made at these sizes will still be expensive.
Working around not having a plate is easy. The switches are designed to clip into something about 1.5mm thick; clearly much thinner than 1/4″ plywood! With careful adjustment of the hole size, I was able to get a pretty tight fit straight out of the laser cutter. For that final bit of hold, a few dabs of hot glue work wonders.
Electrically, the theory of how the keyboard works is the same regardless of whether you use a PCB or not. The keys are wired in a matrix of rows and columns and a microcontroller of some sort scans them, checking which switches are activated. Without a PCB, that wiring is done by hand and uses less free wires. This is very time consuming, but not especially hard. It is well suited for manufacturing a single one-off keyboard.
Connected to this matrix is a Teensy 2.0 running `tmk`, an open source keyboard firmware. It emulates a totally normal USB keyboard and mouse.
There are a variety of screen options for the Raspberry Pi, some more integrated than others. A 7″ 720p display was the largest I could find at a reasonable price point, which could accept HDMI in and wasn’t at a terribly low resolution.
I used a screen from Adafruit. The display comes as the screen itself and a control board, both of which need to be connected to take in HDMI and power and display a backlit image. This controller will run off 5v, which was critical as that was all I had to work with.
The chassis was built with a cavity which contains the screen on all sides except the front, but without directly attaching to it. On the front an abrasion resistant acrylic panel is bolted to the chassis to prevent it from popping out. If the key plate is removed, the acrylic plate is still attached so the screen stays in. The control board is bolted to the back of the plate with the key switches on it, and hovers above the key matrix itself.
For power, I searched until I found a USB battery that looked fairly thin. I removed the front of the battery pack, including its charging and regulator circuitry, and mounted it on the back of the Deck so it could be charged externally while seeing the battery status. I also removed the USB connectors and soldered directly to the +5v rail to power the system.
The rest of the Deck is mostly unmodified parts. As the key matrix and display appear to be totally normal USB devices, they can connect to any computing device that is easy to power and mount. I chose a Raspberry Pi 2 for convenience and added internal USB Wi-Fi and Bluetooth dongles. I also installed a USB hub under the front lip to provide external ports as required and ran the cabling inside.
Notes for the Next Version
I’m very happy with how well this version of the Commute Deck came out! It’s functional and a stylish accessory for the right group of people.
In the next version, I’m looking to improve the ergonomics. Staring straight down at the display isn’t comfortable for very long, so I’m looking for ways to make the entire device modular, fold, or break into pieces in order to reposition the screen. I think I will also try removing excess headers from the display controller and Pi to make the entire thing one or two layers thinner.
All the required sources are available if you’re interested in replicating all, or part, of the Commute Deck.