https://github.com/taciturnaxolotl/thyme
my custom split keyboard 🫶
https://github.com/taciturnaxolotl/thyme
choc hackpad kicad mechanical-keyboard zmk
Last synced: 4 months ago
JSON representation
my custom split keyboard 🫶
- Host: GitHub
- URL: https://github.com/taciturnaxolotl/thyme
- Owner: taciturnaxolotl
- License: mit
- Created: 2025-03-09T03:12:28.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-11-29T02:06:44.000Z (6 months ago)
- Last Synced: 2025-12-03T12:17:34.523Z (6 months ago)
- Topics: choc, hackpad, kicad, mechanical-keyboard, zmk
- Homepage:
- Size: 15.7 MB
- Stars: 9
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# The thyme keyboard

> [!NOTE]
> If you want to build this yourself then go grab the files from the latest release!
## BOM
| Part | Quantity | Price | Link | Description | Notes |
| ------------------------------------------------------- | ------------------------------------------------------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| PCB | 1 | `$15.70` | [JLCPCB](https://jlcpcb.com) | 2-layer, 1.6mm, black, leaded Hasl | I wanted to get ENIG but that bumped the price by `$20` |
| Total `$15.70` + `$13.04` shipping | | | | | |
| | | | | | |
| Choc v1 switches | 50 | `$25.00` | [Chosfox](https://chosfox.com/products/kailh-chocs?variant=42514648006850) | pink variant: `20+-5 gf` linear | `$0.50` per switch |
| Choc PG1350 | 50 | `$7.25` | [Chosfox](https://chosfox.com/products/kailh-choc-switch-1350-hot-swap-sockets) | hot swap sockets | `$0.145` per socket |
| 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 |
| 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 |
| 1.5u 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 |
| Total cost: `$48.70` + `$8` shipping | | | | average of `$0.37` per keycap | |
| | | | | | |
| SuperMini NRF52840 (Nice!Nano footprint) | 2 | `$8.08` | [AliExpress](https://www.aliexpress.us/item/3256805848952479.html) | Wireless Microcontroller | `$4.04` per MCU |
| 301230 3.7V 110mAh LiPo Battery | 2 | `$7.50` | [AliExpress](https://www.aliexpress.us/item/2255799987926232.html) | the non jst ones are cheaper but the crimper is 60 bucks and there is no way im buying that | `$3.75` per battery |
| Diodes | 42 | `$0.99` | [Aliexpress](https://www.aliexpress.us/item/2255800939822415.html) | 1N4148 | `$0.01` per diode |
| Machine Pins | 1 | `$0.99` | [AliExpress](https://www.aliexpress.us/item/3256805556329561.html) | 26x2 needed to socket the two MCUs | comes in a 100 pack of 4 per header |
| Total cost: `$14.10` + `$6.52` shipping | | | | | |
| | | | | | |
| 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 |
| 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 |
| Total cost: `$1.96` + `$8.15` tarrif/sales tax/shipping | i cant find good matches for these on ali and shipping is ridiculous rn as well | | | | |
| | | | |
| Machine Sockets 2.54mm | 1 | `$7.35` | [Amazon](https://www.amazon.com/dp/B08Y8RB4BH) | 26x2 needed to socket the two MCUs | comes in a 10 pack of 40x1 rows |
Total cost: `$123.52`
### Shipping / Tax / Tariffs / Per store shopping list
| Store | Shipping | Subtotal | Total | Items |
| ---------- | ----------------------------- | -------- | -------- | --------------------------------------------------------------------------- |
| AliExpress | `$6.52` | `$14.20` | `$20.62` | 2x SuperMini NRF52840, Machine Pins, 2x LiPo Battery, 42x diodes |
| DigiKey | `$8.15` (tarrifs and tax too) | `$1.96` | `$10.11` | 4x Power Switch, 4x JST Connector |
| Chosfox | `$8` | `$48.70` | `$56.70` | 50x Choc v1 switches, 40x 1u keycaps, 2x 1u homing keycaps, 2x 1.5u keycaps |
| JLCPCB | `$13.04` | `$15.70` | `$28.74` | 1x PCB |
| Amazon | `$0` | `7.35` | `$7.35` | machine sockets |
## Schematics


## Build Notes
Panelization is the most annoying bit of this whole process. I was able to finally get it work work by using [`kikit`](https://yaqwsx.github.io/KiKit/latest/installation/intro/) to generate rails and tabs.
```bash
kikit panelize \
--layout 'grid; rows: 1; cols: 1; space: 3mm;' \
--tabs 'fixed; width: 3mm; vcount: 8;' \
--cuts 'mousebites; drill: 0.5mm; spacing: 1mm; offset: 0.2mm; prolong: 0.5mm;' \
--framing 'railstb; width: 5mm; space: 3mm; chamfer: 1mm;' \
--tooling '3hole; hoffset: 2.5mm; voffset: 2.5mm; size: 1.5mm;' \
--fiducials '3fid; hoffset: 5mm; voffset: 2.5mm; coppersize: 2mm; opening: 1mm;' \
--post 'millradius: 1mm;' \
--text 'simple; text: "THYME v1.14"; anchor: mt; voffset: 2mm;' \
--text2 'simple; text: Created on {date} JLC Order: JLCJLCJLC; anchor: mb; voffset: -2.5mm; hjustify: center; vjustify: center;' \
thyme.kicad_pcb panelization/panelized.kicad_pcb
```

Firmware 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.
The 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.
A 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.

© 2025-present Kieran Klukas