Planck Through Hole Kit Build log

The Planck Through Hole Kit

The Planck Through Hole Kit (THK) was announced by Jack Humbert on the /r/olkb subreddit on 2018.10.01.
The hardware was released under GPLv3 with the intention to be accessible to everyone.
The original QMK pull request never got merged and documentation/information about the board is scarce.
As QMK is a pretty fast-moving project, the original code for the keyboard did not build with new QMK.

I first heard about this keyboard when a community member tried to flash his board and asked for help.
Sadly, I was not able to work out all the things without having access to the hardware and my ambition to make it work again had to be put on hold.
Until Jack was kind enough to send me two unassembled kits.
Now I have the hardware fully working with mainline QMK so I thought I’ll document a process of building and compiling and flashing this board.

Hardware

The gerber files for the PCB and the bottom case can be downloaded from the OLKB GitHub.
That repo also has a nice link to the bill of materials (BOM) for all the components needed for the assembly.
Of course, most can be substituted with similar parts from the local store, dad’s shed or Aliexpress.

As the BOM has the “Schematic Reference” field filled in for all components, building the board is quite easy.

Note

When soldering the LEDs, the cathode (shorter leg) should face the USB port.

The BOM for future reference:

QtyLine ItemManufacturerMPNOctopart URLSchematic Reference
1UB-M5BR-DM14-4DJSTUB-M5BR-DM14-4Dhttps://octopart.com/ub-m5br-dm14-4d-jst-54155138USB PORT
1TP124005-2DB UnlimitedTP124005-2https://octopart.com/tp124005-2-db+unlimited-59659708SPEAKER
481N4151TRVishay1N4151TRhttps://octopart.com/1n4151tr-vishay-9342963D*
11301.9303Schurter1301.9303https://octopart.com/1301.9303-schurter-5416046RESET
1ECS-160-20-4VXECS InternationalECS-160-20-4VXhttps://octopart.com/ecs-160-20-4vx-ecs+international-19118787Y1
1S5B-PH-K-S(LF)(SN)JSTS5B-PH-K-S(LF)(SN)https://octopart.com/s5b-ph-k-s%28lf%29%28sn%29-jst-248886ALT USB PORT
1ATMEGA32A-PUMicrochipATMEGA32A-PUhttps://octopart.com/atmega32a-pu-microchip-77760288MICROCONTROLLER
11-2199299-5TE Connectivity1-2199299-5https://octopart.com/1-2199299-5-te+connectivity-34963610MICROCONTROLLER SOCKET
1LD1117AV33STMicroelectronicsLD1117AV33https://octopart.com/ld1117av33-stmicroelectronics-526794POWER REGULATOR
3s04b-szJSTS04B-SZhttps://octopart.com/s04b-sz-jst-87088753I2C
1210-4ESCTS Components210-4EShttps://octopart.com/210-4es-cts+components-19788403DIP SWITCH
167997-410HLFAmphenol ICC / FCI67997-410HLFhttps://octopart.com/67997-410hlf-amphenol+icc+%2F+fci-90333672JTAG HEADER
168602-406HLFAmphenol ICC / FCI68602-406HLFhttps://octopart.com/68602-406hlf-amphenol+icc+%2F+fci-90340423ISP HEADER
4CFR-25JT-52-68RYageoCFR-25JT-52-68Rhttps://octopart.com/cfr-25jt-52-68r-yageo-16252182R1, R2, R4, R5
1LTL-4222Lite-OnLTL-4222https://octopart.com/ltl-4222-lite-on-869424PWR
1LTL-4232Lite-OnLTL-4232https://octopart.com/ltl-4232-lite-on-868849ACT
1SR595C104KARTR1AVXSR595C104KARTR1https://octopart.com/sr595c104kartr1-avx-2348402C3
2SR151A200JARAVXSR151A200JARhttps://octopart.com/sr151a200jar-avx-20091099C1, C2
1FK18X5R1A475KTDKFK18X5R1A475Khttps://octopart.com/fk18x5r1a475k-tdk-21525622C4
2PEC12R-4217F-N0024BournsPEC12R-4217F-N0024https://octopart.com/pec12r-4217f-n0024-bourns-26648364ENCODERS
1CFR-25JT-52-1K5YageoCFR-25JT-52-1K5https://octopart.com/cfr-25jt-52-1k5-yageo-16252146R3

ISP Flashing

The first time, you will need to ISP flash the microcontroller to set the fuses and flash the bootloader.
The QMK ISP flashing quide shows how you can use a spare ProMicro or Teensy as flasher, but I like my cheap USBasp I got off of Aliexpress.

Warning

The keyboard has a 6-pin ISP header which makes you think that you can just connect your 6-pin USBasp, but sadly the pins are mirrored on the board.

My recommendation is to use female-to-male dupont cables for the connection.

Planck THK ISP pins Planck THK ISP pins

I set my USBasp to 3.3V, but it should work with 5V as well.

If everything is connected well, the power (red) LED should be on, your computer should recognize the USBasp and the flashing command below should work without any errors.
If you experience any issues, the first thing you check should be the correct pin connections.

Bootloader

Originally, the bootloadHID bootloader was used for the THK as can be seen in the old branch and if someone would want that, the following gist can be of some help.
Personally, I think USBasp is a much nicer one as it can be used with avrdude and other, newer through hole boards use it as well.

As USBasp usually requires two buttons to reset the board, but the THK has only one, I chose a fork that has some nice features, like the ability to boot into bootloder with a reset button.
I have a fork, pre-configured for the THK.

Setting the fuses, compiling and flashing the bootloader is this simple:

[erovia@ws]$ git clone https://github.com/Erovia/planck_thk_usbasploader.git
[erovia@ws]$ cd planck_thk_usbasploader
[erovia@ws]$ make fuse
[erovia@ws]$ make flash

Once done, disconnect the ISP flasher from the keyboard, connect the board to your computer and press the Reset button.
If everything went well, it should be recognized as an USBasp flasher.

Firmware

The firmware currently lives in my QMK fork, but I’ll get it merged upstream, to not repeat history.
The board should be compatible with most Planck and ortho4x12/planck_mit keymaps, but I created a thk one, to showcase its unique features.

[erovia@ws]$ qmk flash -kb planck/thk -km thk

Case

Soon…