65% keyboard PCB with ProMicro footprint. Through-hole kit design with focus on wireless.
Loading README and project media…
A 65% mechanical keyboard with a ProMicro controller footprint. Repository contains KiCad PCB design files and 2D drawings in SVG of PCB, bottom plate, switch plate and acrylic window.
Bottom of keyboard has two alternatives. A design with glass rims inspired by my grandfather's glasses and a dithered image of the sun from the NASA Solar Dynamics Observatory. Included below is also a guide on creating dithered PCB art.
See the v1.0 release to find the files and list of parts to create your own.
I do not have dedicated assembly instructions, but if you are comfortable soldering you can probably make do using my build log.
I decided to use ZMK for my build of this keyboard. Compared to the most common open source mechanical keyboard firmware QMK, ZMK is tailored for wireless keyboards. The two main reasons you should care to use ZMK instead of a bluetooth QMK fork are (1) much better power efficiency, i.e. longer battery life, and (2) the most commonly used Bluetooth chip uses drivers that are not compatible with the QMK copyleft license.
You can find my ZMK shield for the KBIC65 in my ZMK config repository.
If you want to use a non-wireless controller (like a ProMicro, Elite-C etc.), I have created a QMK fork that has been tested on the KBIC65 using an Elite-C rev 4.
When I decided to make an alternative design for the bottom I eventually settled on trying my hand at a dithered image. This was a little trickier than I expected to get looking like I wanted (and still not sure how the end result will appear).
But generally here is the workflow I used in the end, and would recommend
Settle on an image to use, crop it to only the part you want to place on the PCB. I settled on a NASA SDO image.
JLCPCB and probably other PCB manufacturers can print at a resolution of about 0.15 mm which is equivalent to about 169 DPI. This means you should try to use 169 DPI or less, I used 169 DPI. Resize your image so that the resolution of the image at your selected DPI gives you the size you want on the board. I wanted my sun to be approximately 90 mm high so I resized to 600px high, which results in an image 90.2 mm high at 169 DPI.
Use a dithering tool to dither your image and create a dithered copy. I strongly recommend Ditherlicious but you can look around for other tools you have handy.
Open your KiCad project and then open Convert Image, a.k.a. the bitmap2component tool.
Import your dithered image, select Negative if necessary, pick either Front Silk Screen or Front Solder Mask and enter your chosen DPI. Click export and put into a new folder that will become a new KiCad library for you.
In Pcbnew or your KiCad project, open Preferences > Manage footprint libraries
Add your new folder as a footprint library
Import your new PCB art footprint onto your PCB
Iterate, I played a lot with different dithering tools, changing the image histogram etc. The bitmap2component tool does not import dithered image exactly but blends pixels together, therefore I would recommend generating a few variants and comparing them in KiCad and possibly the 3D viewer. Please note that these images requires quite a bit of processing from KiCad. Updating the 3D view especially, which took about 1-2 min for me.
Final result after ordering from JLCPCB with black solder mask and ENIG finish
The Discipline65 is the original inspiration for this keyboard, along with the case making community that has been born around it. In the spirit of CFTKB the board design will also be open source.
Some of the main differences
The Nibble65 is another board inspired by the Discipline65. It has an additional column of keys on the left, allowing also for rotary encoders and the top of this column houses a ProMicro footprint.
Some differences
The original name KBIC65 is inspired by soldering and tinkering in my grandfather's workshop as a child and have named it with our combined initials KB and IC. But having spent quite a bit of time on making PCB art for the bottom of the keyboard based on an image from the NASA Solar Dynamics Observatory I am considering renaming it if I make anything more of it (or make a group buy at some point). I am open to name suggestions if you have one!
I am doing this as a side project for fun, and the learning experience, and definitely not for profit.
If you want a 65% keyboard with the THT aesthetic get a Discipline65. If you want a 65% for your nice!nano, get the Nibble65. If you just want something wireless but don't want to build it yourself, get a Keychron.
Maybe, if you have some experience or willingness to learn, fork this repo and try to fix it yourself (and maybe do a PR on the end result). If you don't have the experience or know-how, send me a message so I know someone actually wants it and I will consider fixing it when I have time.
I am trying to make my own thing but the design is of course heavily inspired by other keyboards, especially THT kits. Some honorable mentions
Nicell Dissatisfaction65 A very similar keyboard to what I am designing, by the creator of the nice!nano. This uses a lot of the "early" techniques for what I feel a wireless open-source firmware was in 2019-beginning of 2020 such as Adafruit Feather BLE with QMK, something that is much better done today with the nice!nano (and similar controllers) and the ZMK firmware. Nicell is the creator of the nice!nano and also very active in the ZMK project.
CannonKeys Satisfaction75 My original inspiration for the layout
CFTKB Discipline65 Original inspiration for the THT design and the idea to make an FR4 kit first and a case after. The open-source Kicad files have also been a good sanity check, plus it has beautiful wiring!
Nullbits Nibble65 A great take on the THT and would be my choice to buy if I didn't want to make something of my own but still make a nice!nano keyboard.
Lysol LCK75: No diode row but THT components otherwise and that arrow keys and navigation column stagger.
MujiManic Disarray65: Not exactly THT, but sooo much fun, beautiful wiring and one of the best case ideas ever. Case also comes in a version for the Discipline.
RMI-KB Herringbone75: A fun variant on the Mysterium 75.
u/emdarcher Lattice 60%: Definitely contender for most innovative diode placement among THT keyboards
theksmith Discipline65: Honorable mention on Discipline65 case design
4Bar60 by u/struct_Nodes I found this keyboard in the middle of my PCB design but it is very similar to my intended design, except being a 60% of course.
WorldspawnsKeebs Houndstooth A split ortholinear 4x6 with a nice take on a clear case
Seoulcialite Argyle60 Great case for a THT kit and very interesting with side windows instead of placed above the key layout. Inspiration for moving the ProMicro footprint and diode row up 1/4 units to allow top case to have a divider between main layout and THT window.
EBastler Isometria75 Makes me want to try to change the key spacing on my keyboard, but I am unfortunately not brave enough.