This was a really fun project. I wanted to make a unique backup computer for my girlfriend's birthday and decided to run with a Raspberry Pi-based system because her main needs are internet and word processing. I've seen a lot of variations on Pi laptops, but I wanted to make something unique. Steampunk seemed the way to go and I'm glad I chose that direction!
Step 1: Keyboard Tray
I didn't really spec this out when I started building. I knew I wanted a box, but didn't know how I was going to approach it.
I started with a mechanical keyboard with some typewriter-esque keys and built out a board for it. This went a few directions, and ultimately I wound up with a frankenstein keyboard tray. More on that later.
I routed out the section I needed for the keyboard to stick through, then put a dab of black paint on each empty key switch and pressed the keyboard into the routed out channel. I wanted an individual hole for each key to stick through, but they are all too close together and started breaking together. So I ended up taking the jigsaw to it and cutting what is there now.
Step 2: Building the Box
My dad helped me out with the base-box and initial lid construction. Mitered cuts require a table or miter saw and that's all there is to it. I don't care what the Amish tell you.
The box was built around the dimensions of the keyboard tray. I went with mitered joints to keep it as clean as possible. After the base was built, I drilled holes for all the accessories that would be built into the sides.
The lid came next, and this was a feat in itself. It was built with 3 mitered cuts on each piece so a top could sit flush into the lid sides. The top was mitered on all four sides and miraculously dropped into the sides perfectly.
I then used a jigsaw to cut the opening for the monitor. I used a recycled LCD from an old laptop and connected it with an LCD driver board I found from an amazing Chinese company on eBay (seller e-qstore) that was responsive, super helpful with answering questions, and even sent things expedited for next to nothing. Hands down the best experience I've had with a Chinese seller.
My routing skills leave something to be desired, and I had my way with the outer channel for the LCD. I knew it was being closed in, so I wasn't overly concerned. I did, however, cut out into the main monitor window a bit, but fixing that came with a great addition to the piece with trim lining the monitor window - giving it a picture frame feel. It makes me super happy when mistakes turn into awesome additions.
All pieces were stained and polyurethaned.
Step 3: Keyboard Tray Revisited
While cutting holes in the keyboard tray for things like monitor control buttons, LED indicators, and the support arm channel, I broke the original keyboard tray. It was just too flimsy because I had routed out so much in the beginning. I was pretty bummed because the only part that was jacked up was the top. So I cut the top off and made a new channel for the keyboard.
This time, I went straight to the jigsaw and it came out a lot cleaner. It did break again. But. Gorilla glue is an amazing thing and after it was all clamped together and stained, you would never know it was several pieces, aesthetically or structurally.
Step 4: Never. Give. Up.
While hanging to let the stain dry, a huge gust of wind blew the base into the concrete and it shattered. I was so pissed. But I grabbed some clamps, some more Gorilla Glue and some new screws and it went right back together. Perseverance in the face of adversity.
Step 5: Decorating the Box
With going the steampunk direction, gears and gauges seemed to make sense. I found a lot of cool stuff on Etsy and Amazon. The front battery gauge, back switch plate and LED indicator housings came off Etsy. FWIW, actual watch gears that you can find in bulk on Etsy aren't what you probably want when designing something like this. They are super tiny and flimsy. Even the "large" ones. I found small bags of gears on Amazon that were solid brass and inexpensive.
The marbles on the front for the power indicators were hand-blown by Bruce Breslow of Moon Marble Company in Bonner Springs, KS. I wanted something that would route the existing light from the LEDs on my PSU to the front, but I didn't want straight LEDs. I ended up running 3mm fiber optic line from the PSU LEDs to the marbles. It's one of my favorite parts of the piece!
After I had the LCD in place and cables run, I closed the top up with three 1/4" planks.
Step 6: Wiring It Up
I shortened the length of almost every cable in the box. Make sure you have tiny/steady hands if you want to splice a USB cable. Wow. The only real hack I had to do here was opening up the power supply to route the power switch to a switch on the back of the box.
The Talentcell battery pack that I got for this seemed to be perfect for the application. It outputs in 5v, 12v and 9v simultaneously, and can charge while outputting from the single 12v jack. The screwy part is that while it's charging, it also outputs from every port. This means that you couldn't charge it without everything being on, and if it was totally dead, it would turn the Pi and LCD on and off over and over again while it was trying to get enough juice to keep everything on.
I circumvented this by changing the switch on the back from a SPST to a 3PST switch and broke the positive lines from the 12v and 5v outputs, using the third pole to handle the PSU on/off functionality. So now it can charge without outputting to everything as long as that switch is turned off. Obviously it's still trying to output, but it just can't get to any of the devices.
I used a Plugable USB 2.0 4-Port Powered Hub to power the Pi and add extra USB slots. This is a cheap, sweet hub. You can run power to it and then do a snake-eating-it's-tail configuration to power the Pi from it while the Pi is still taking data from it's other ports. Running the 5v line from the PSU to this provided power to everything the Pi needed.
I ran the 12v line to a distribution block of sorts, which is just me using a protoboard's power rail to send 12v to the 40mm fans, LCD driver board and 20W amplifier.
I rewired the LCD control buttons to five momentary switches at the top of the keyboard tray for easy access.
I used 1/2" PET Expandable Braided Sleeving to cover the lines running from the LCD to the LCD driver board internally.
I ran two LEDs on the keyboard tray to the GPIO pins on the Pi to show a power indicator and an activity light.
You have to use a USB soundcard on a Pi if you want it to output to an amplifier, and I don't know why. I've had this problem with all the arcade cabinets I've built, and it's an easy $7 fix. I ran an 1/8" splitter coming out of that to the amplifier and the external headphone jack.
As a last minute addition, I daringly took a drill and a dremmel to the keyboard tray and added a 1k pot for volume control of the amp.
Step 7: Testing and Software
I ran with the Pixel distro for this build. Then I went through and did some basic security housekeeping like changing the default password, closing every unnecessary port on the firewall, disabling the bluetooth, and even put the Bro IDS platform on it to keep an eye out for shifty hackers... *shakes fist*
This thing runs like a champ! For its intended functionality, it does everything it needs to. You can get on the internet, write papers, check email, and if you want to get nerdy, brush up on your coding skillz.
Overall a really fun project that I'm really happy to put my name on!
Second Prize in the
Microcontroller Contest 2017