2022-07-30

DIY Mechanical Keyboard

 Greetings friends,

Early in 2021, I decided it would be fun to design and build a mechanical keyboard. My goals for this project were primarily to learn more about circuitry and get some practice soldering small components. In the process of building the keyboard, I ended up designing my own circuit board and doing a lot of the work from scratch. Luckily there were a lot of resources available online that I used to make some of these steps easier. I'll link these resources where I can! I will also provide the relevant files for this project at the end of this post in case anyone wants to recreate it.

I started by deciding on the keyboard layout I wanted. I knew I wanted to use the German QWERTZ layout, but still keep it compact and portable. I used an online layout editor to play around with different layouts, and eventually decided on this layout:

With the layout decided, I created CAD files for the switch mounting plates for building the case, and ordered them from Laserboost, opting for stainless steel with a tumbled finish. This style of assembling the keyboard is called a "sandwich", because it consists of several layers stacked together to make the body of the keyboard.

While waiting for the plates to be produced and ship, I got to work designing the circuit board for the keyboard. I familiarized myself with KiCad, a free software suite that allows one to design circuits, and assists in converting schematics to circuit boards. While easy to get the hang of, this software seems to have an enormous amount of features, and I won't be going into great detail on the process of designing the schematics or PCB, but the main resources I followed to do this can be found here and here. To keep the wiring description short, here is the keyboard layout again, this time with lines drawn representing the rows and columns that were wired together in the circuit.

I used a small arduino called Teensyduino as the controller. It allows the keys to be programmed easily using third-party software. This was a great option for me since I'm not big into programming and wanted to finish this without having to learn any. I added some mounting holes into the PCB for the controller, and ordered 5 boards from JLCPCB. The minimum order was 5 boards, but not too bad given that they were only a few dollars each.

With all the design aspects complete and the plated and PCBs ordered, it was time to select switches and keys. I only had a few options as far as keys for the German layout, so I decided on a simple off-white/beige key, mixing with keys from another set in a dark blue. The combo ended up looking very nice. I somewhat arbitrarily ordered Cherry MX White switches, based on reviews for their nice sound and firm feel.



The completed circuit boards looked very nice, and as you see in the picture above, have all the holes for the switches pre-drilled so everything fit right into place. The top plate came out looking amazing too! This the the top piece of the sandwich, and an identical piece without the switch slots is the bottom piece. The switches press-fit into the slots on the top plate, and the PCB slides onto the solder tabs on the back of the switches, which are then soldered into place from the back side of the board. A single diode is soldered to the PCB for each key as well.

Switches in place, but these blue keys are not the ones used in the final product..

Once all the components were soldered into place, the keyboard was essentially finished, just needed to be programmed. I used the software Teensy to flash the HEX file (the file that tells the controller the layout) to the controller, and I was done! At this point the keyboard was functional and ready to use!


I decided to finish a few more details to complete the look of the keyboard, primarily closing the sides of the sandwich so none of the internal components would be exposed. I had some extra scraps of walnut from a woodworking project, so I decided that would be a nice accent around the sides of the keyboard. The keyboard connects to a computer via USB, so I cut a small notch in the walnut to accommodate the connector.

Finished, with walnut trim!


Thanks for reading,

Juju



My files:

DXF files for top plate and bottom plate

PCB Gerber Files

HEX File for Teensy


2022-07-22

Do You Believe in the Crazy Train?

Greetings friends,

I tried my hand at a music mash-up between Crazy Train by Ozzy Ozbourne and Do You Believe in Love? by Huey Lewis and the News. I've had this in my mind for a while and always thought the two songs would make a decent mash-up. I'm happy with how it all came together, though my least favorite part is the bridge section from DYBiL, but it's fine enough I think. I hope you enjoy it, and I'd love to hear feedback if anyone has comments!




Thanks,

Juju

2022-07-08

Never Make Changes on a Friday: A Houseplant Story

Greetings friends,

This is a lesson I learned the (thankfully not too) hard way this weekend... I think this can be applied to any situation where last minute changes to an existing system are made before being left alone for some time (weekends, holidays, vacation, etc.). At least in this case, the error didn't cause a catastrophe, but it did drive home the point that I shouldn't make changes before leaving home for a few days...

I've collected orchids for nearly 3 years now and my collection has grown to the size where I decided to set up a system that would water my orchids automatically, particularly the ones that require daily watering. My orchids have been living on a steel rack that I'd outfitted with LED grow lights, so it was a relatively simple matter to integrate the water misting system into the rack as well.


I bought a water pump, misting nozzles, and some plastic hose to get the whole system set up. It was a bit tedious but with some time and a lot of zip-ties, I got everything integrated and functional! I used an interval timer to set the watering frequency. I temporarily used a gallon milk jug as my water source which only needed refilling every 2-3 days.

Misting nozzles are strategically placed..

The mistake I made was, just before a long weekend road trip, swapping the gallon jug for a 2-gallon food prep bucket. I hadn't taken time to test it (ideally for at least a day or two) and assumed it would work. Unfortunately, the vibrations from the pump caused the hose to slowly shimmy its way out of the bucket, until the pump was just pumping air... Funny thing is, while on the road to our destination, it crossed my mind that this was a possibility, so I felt really dumb when I came home to find it had happened.. Luckily we were only gone for 4 days, so luckily no plants were damaged. I immediately switched back to my milk jug setup, and ordered a new 5-gallon bucket and some brass fittings to make a much more fool-proof system. I drilled a hole near the bottom of the bucket and hooked up a barbed spigot. Now I have a full 5 gallon reservoir, and no parts are able to wiggle themselves free!

Simple, elegant(?), problem solved!

I'm happy how easy this fix was, and with no trips planned for a while, I'll be able to monitor the bucket and make sure it's functioning properly! Hopefully anyone reading this can learn this lesson from my mistake; never make changes on a Friday!!


Thanks for reading,

Juju