Introduction: KoiBoard - Fully Customizable Mechanical Keyboard With a Koi!
I made a fully customized keyboard from scratch. Every part was designed by me to create my dream keyboard. My idea for this project stemmed from a project I tried to do last year to make a customized keycap. This idea failed and blossomed into the ambition to create a fully fledged keyboard. The configuration of my keyboard is tenkeyless.
Thank you so much to Ms. Berbawy for helping me throughout the project, letting me use her equipment, and giving me advice.
A HUGE thanks to Crash#8751(discord tag)for helping me out whenever I needed it and taking me through the entire process of building a keyboard.
Supplies
My keyboard was fairly expensive compared to that of what you can get prebuilt on any online vendor like Amazon.
Supplies that I used include:
Tools that are Needed:
Solder
Soldering Iron
Laser Cutter
3d Printer
Screwdrivers
Sand Paper
M2 Allen Key
Software That I Used:
Step 1: KiCad and the PCB Process
1. First use KLE to make your plate layout. This will allow you to take a pre-existing layout and make it your own by making a few tweaks. (Pic 1)
2. Take this to Kicad which is a software used to design PCBs and find a suitable library for your switch and layout of preference.
3. Make your schematic using a switch matrix and diodes. This optimizes the number of rows and columns used and assigned those rows and columns to pins on your Elite-C microcontroller. (Pic 2)
4. Create a circuit with a push button switch to short the reset and ground pins in the MCU.
5. After finishing your schematic, put your switches into KiCad's PCB editor and arranged them properly with a distance of 19mm between each centers of each switch. (if you look at KLE you can see that one regular switch is equal to 1U. 1U is equal to 19mm. For special keys like the shift key, KLE will display it as 2.25U. This means that you will have to do 2.25+1 and then multiply that by 19. Then divide by 2 to get your distance between the center of each switch. This is only used for special keys like shift, caps lock, and the space bar to name a few)(Pic 3 and 4)
6. Take the footprints of your PCB and put it into Free Router a program which automatically routes the traces.(Pic 5)
7. The PCB was ready and I ordered it using JLCPCB to get it manufactured.
Step 2: Plate Design
1.Take your SVG file from KLE and import that into Fusion 360 creating your PCB plate. (Pic 1)
2. Extrude the plate by 1.5 mm and change the dimensions to match your PCB from KiCad. (Pic 2)
Add tabs to the side of my PCB to act as gaskets
3. Export your plate from Fusion as a SVG and put it into Adobe Illustrator to be laser cut.
4. I decided to Vector Cut wood and use wood as my final product but you can also use acrylic. I would recommend using wood for your initial test cuts even if you decide to use acrylic for your plate. The laser cutter I used is a Universal VLS3.5 40W.
- Stroke of 0.1
- RGB 255 RED (Pic 3)
5. I had to do multiple iterations until my plate perfectly matched my PCB. (Pic 4 and 5)
6.Check if your cut plate is correctly aligned with your PCB by inserting your switches into both your switch plate and your PCB. (Pic 6)
Step 3: Case Design
1. I created a case in Fusion 360 to house my PCB.
- Golden Top Case (Pic 1)
- Red PCB (Pic 2)
- Grey Bottom Case (Pic 3)
2. I created this case around my preexisting plate design that I used for laser cutting.
3. I added tabs that stick out to be flush with my case design. This would allow the switch plate to sit on the case without sticking out making it look more aesthetically pleasing.
4. Research different layouts for your keyboard. A website that I found particularly helpful is Keyboard University.
5. After researching, I decided to make the layout of my keyboard in the form of a Intergrated Plate. This would be the easiest for me to do. (Pic 4)
6. The case was split using Female/Male tabs to connect the pieces together and allow it to fit on a 3d printer.
7. Add holes where the top and bottom case meet for M2 screws. This will hold the board nicely together and firm.
This is your part to be creative and add whatever you want to your case design to make it unique to yourself.
Step 4: 3d Printing Case Parts
After looking at my keycaps (Pic 1) I decided to make the color of my main body baby blue and the color of my top body brick red.
I used PLA or my print as there were better color options but PETG gives more strength.
I used a Prusa MK3S+ so I had to print in two intervals.
Step 5: Stabilizers and Soldering
Follow the instructions that come with your stabilizers and install them onto your PCB. (Pic 1 and 2)
For soldering, I used through hole 1N4148W diodes and soldered them onto my board making sure the anode and the cathode on the diode correlated with it's equivalent negative and positive side on the PCB. On a through hole 1N4148W diode, the black part is negative. . (Pic 3)
Through hold solder your MCU (microcontroller unit) onto your board. First insert your 12 pin headers and then put your MCU on top of that. (Pic 4)
Match up your PCB plate with your PCB ensuring that all of the holes match with their correct switch on the PCB. Put in your switches ensuring that the legs of the switches go through both the plate and the holes in the PCB. (Pic 5 and 6)
Through hole solder all of your switches into the PCB.
Step 6: Programming
For programming your keyboard I recommend using Keyboard Firmware Builder. While it is outdated and not supported anymore, it should still work with your keyboard. (Pic 1)
Here are the steps on how to use Keyboard Firmware Builder.
- Go to Keyboard Layout Generator. (the program you used earlier in this project)
- Build you schematic from KiCad in KLE. (make sure all your keys are only 1 unit) (Pic 2)
- Make sure all your wiring looks correct. (Pic 3)
- Next go to the pins section and look back at your schematic. Match the pins with your MCU. (Pic 4 and 5)
- Go back to wiring and make sure to specify the diode direction as column to row. (Pic 6)
- After you have gone through and double checked that you did everything correctly, download your file as a .hex.
Download QMK Toolbox
If QMK Toolbox asks you to download any drivers say OK and let them download. This is crucial for Toolblox to work properly. (Pic 7)
Connect your MCU to your computer. On your Toolbox there should be confirmation that something has connected. Take your .hex file and click flash.
Your MCU should now be working!!
Step 7: Putting It Together
- Get your soldered PCB and plate and insert it into your case making sure the USB connection of the MCU is accessible through the slot.
- Take your top case and screw it on top making sure it does not flex too much. For my keyboard I used M2x12 screws.
- Enjoy your new keyboard :D
This entire process was a invaluable experience to me. I started off clueless about how to approach this project but came out how to use different software, how to 3d print, and how to laser cut. I had a lot of fun and it is safe to say that making this keyboard was the highlight of my year.
If you ever need help feel free to contact me on .aiza (my discord tag)