a fancy pants keyboard i'm making
1# The thyme keyboard
2
3
4
5<img src="https://raw.githubusercontent.com/taciturnaxolotl/thyme/main/.github/images/tanabata.svg" width="150" align="right">
6
7> ### More deets coming soon 👀
8> A split, low-profile, wireless mechanical keyboard inspired by the Corne design. Made possible through the [`hackpad`](https://hackpad.hackclub.com) grant from Hack Club.
9
10## BOM
11
12| Part | Quantity | Price | Link | Description | Notes |
13| --- | --- | --- | --- | --- | --- |
14| PCB | 1 | `$25.15` | [JLCPCB](https://jlcpcb.com) | 2-layer, 1.6mm, black, leaded Hasl | I wanted to get ENIG but that bumped the price by `$20` |
15| | | | | | |
16| Choc v1 switches | 50 | `$27.50` | [Chosfox](https://chosfox.com/products/kailh-chocs?variant=42514648006850) | pink variant: `20+-5 gf` linear | `$0.55` per switch |
17| | | | | | |
18| 1u keycaps | 40 | `$14.00` | [Chosfox](https://chosfox.com/collections/low-profile-keycaps/products/chocfox-cfx-choc-keycaps) | White PBT low profile | `$0.35` per keycap |
19| 1u homing keycaps | 2 | `$0.80` | [Chosfox](https://chosfox.com/collections/low-profile-keycaps/products/chocfox-cfx-choc-keycaps) | White PBT low profile | `$0.40` per keycap |
20| 1.75u keycaps | 2 | `$1.65` | [Chosfox](https://chosfox.com/collections/low-profile-keycaps/products/chocfox-cfx-choc-keycaps) | White PBT low profile | `$0.83` per keycap |
21| Total cost: `$16.45` | | | | average of `$0.41` per keycap | |
22| | | | | | |
23| SuperMini NRF52840 (Nice!Nano footprint) | 2 | `$8.30` | [AliExpress](https://www.aliexpress.us/item/3256805848952479.html) | Wireless Microcontroller | `$4.15` per MCU |
24| | | | | | |
25| Machine Sockets 2.54mm | 1 | `$1.75` | [AliExpress](https://www.aliexpress.us/item/2251832794091942.html) | 26x2 needed to socket the two MCUs | comes in a 10 pack of 40x1 rows |
26| Machine Pins | 1 | `$3.99` | [AliExpress](https://www.aliexpress.us/item/2251832672116019.html) | 26x2 needed to socket the two MCUs | comes in a 100 pack of 4 per header |
27| Power Switch | 4 | `$0.39` | [DigiKey](https://www.digikey.com/en/products/detail/same-sky-formerly-cui-devices/SLW-1277744-3A-N-D/24399208) | added an extra switch for each side as backup | `$0.10` per switch |
28| JST PH 2.0mm 2-pin Connector | 4 | `$0.40` | [DigiKey](https://www.digikey.com/en/products/detail/jst-sales-america-inc/S2B-PH-K-S/926626) | | `$0.10` per connector |
29| Diodes | 42 | `$1.43` | [DigiKey](https://www.digikey.com/en/products/detail/diotec-semiconductor/1N4148/13164514) | 1N4148 | `$0.03` per diode |
30| Total cost: `$7.66` | | | | | |
31| | | | | | |
32| 301230 3.7V 110mAh LiPo Battery | 2 | `$6.30` | [AliExpress](https://www.aliexpress.us/item/3256805162053912.html) | the non jst ones are cheaper but the crimper is 60 bucks and there is no way im buying that | `$3.15` per battery |
33
34Total cost: `$85.11`
35
36### Shipping / Tax / Tariffs / Per store shopping list
37
38| Store | Shipping | Subtotal | Total | Items |
39| --- | --- | --- | --- | --- |
40| AliExpress | `$9.43` | `$26.64` | `$36.07` | 2x SuperMini NRF52840, Machine Sockets, Machine Pins, 2x LiPo Battery |
41| DigiKey | `$6.99` | `$4.49` (tarrifs and tax) | `$11.48` | 4x Power Switch, 4x JST Connector, 42x Diodes |
42| Chosfox | `$5.00` | `$43.95` | `$48.95` | 50x Choc v1 switches, 40x 1u keycaps, 2x 1u homing keycaps, 2x 1.75u keycaps |
43| JLCPCB | `$10.55` | `$14.60` | `$25.15` | 1x PCB |
44
45Total shipping: `$31.97`
46Total cost: `$122.67` (including shipping, tax, and tarrifs)
47
48## Schematics
49
50
51
52
53
54## Build Notes
55
56Panelization is the most annoying bit of this whole process. I was able to finally get it work work by using `kikit` to generate rails and tabs.
57
58```bash
59kikit panelize \
60 --layout 'grid; rows: 1; cols: 1; space: 3mm;' \
61 --tabs 'fixed; width: 3mm; vcount: 8;' \
62 --cuts 'mousebites; drill: 0.5mm; spacing: 1mm; offset: 0.2mm; prolong: 0.5mm;' \
63 --framing 'railstb; width: 5mm; space: 3mm; chamfer: 1mm;' \
64 --tooling '3hole; hoffset: 2.5mm; voffset: 2.5mm; size: 1.5mm;' \
65 --fiducials '3fid; hoffset: 5mm; voffset: 2.5mm; coppersize: 2mm; opening: 1mm;' \
66 --post 'millradius: 1mm;' \
67 --text 'simple; text: "THYME v1.14"; anchor: mt; voffset: 2mm;' \
68 --text2 'simple; text: Created on {date} JLC Order: JLCJLCJLC; anchor: mb; voffset: -2.5mm; hjustify: center; vjustify: center;' \
69 thyme.kicad_pcb panelization/panelized.kicad_pcb
70```
71
72
73
74Firmware is `zmk` and is maintained in the submodule [/zmk](https://github.com/taciturnaxolotl/thyme-module). The latest firmware build can be grabbed from [nightly.link/taciturnaxolotl/thyme-module/workflows/build](https://nightly.link/taciturnaxolotl/thyme-module/workflows/build/main) as a zip containing the left and right half `uf2` files.
75
76The case was made in onshape and is available in [this document](https://cad.onshape.com/documents/eb30178d0af4291efc746ab6/w/0d165c7d0bf8d717a9598c9f/e/3dd4b0baac9c9ef14c8041ba?renderMode=0&uiState=67efb22294ee2703b96c81ea). The case is made of PLA and printed on an A1 mini. It is likely to change quite a bit once I get my pcb assembled and can fit test stuff. Evenentually I would like to add a top plate that attaches to the bottom with magnets and mill the whole case out of aluminum.
77
78A major tool that helped with the research and organization of my thoughts was my [figjam board](https://www.figma.com/board/wyCQS9SeIG2Sutu5v6OT2m/thyme---split-mech-keyboard?node-id=0-1&t=SG0VuRAT0FkSCQlS-1)! I used it to keep track of all the resources I found and what parts I wanted to use. Once I got to actually picking specific parts I moved that to the bom table above.
79
80
81
82<p align="center">
83 <img src="https://raw.githubusercontent.com/taciturnaxolotl/carriage/master/.github/images/line-break.svg" />
84</p>
85
86<p align="center">
87 <i><code>© 2025-present <a href="https://github.com/taciturnaxolotl">Kieran Klukas</a></code></i>
88</p>
89
90<p align="center">
91 <a href="https://github.com/taciturnaxolotl/thyme/blob/master/LICENSE.md"><img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&logoColor=d9e0ee&colorA=363a4f&colorB=b7bdf8"/></a>
92</p>