Introduction
TKL keyboard for open source keyboard project which you can find on GitHub.
Features
Keyboard is modular, list below describes default build I am testing:
- Lights: RGB keyboard with individually addressable LEDs
- Speed: It's fast, 500 micro seconds over USB
- Connectivity: USB-C, Bluetooth 5.0
- Customizations:
- Hotswap
- Microcontroller can be changed
- Firmware
- Custom
- QMK - Partially working, will be eventually supported fully.
- License: Open Source for non-commercial usage.
- Other:
- Basic optimizations for CNC cutting to lower price
Printing
Common
- PLA is recommended. PETG will also work, but I had some problems with accuracy, so it might require light post processing. Photos are showing Průšament PLA Galaxy Black.
- No supports unless specified otherwise.
- Maximum 0.6 mm nozzle with maximum 0.2 mm layer height unless specified otherwise.
- Recommended 0.4 mm nozzle with 0.15 mm layer height - it's not necessary, but everything will fit easier and will feel nicer.
TKL Cover
- Top side of cover must be on a bed.
TKL Plate
- Use settings from common section.
TKL Infill
- Create support cube in part which holds MCU holder.
- Use organic supports.
- Don't use supports anywhere else. This is important as otherwise you will struggle with getting them out…
- Print in a way, that part for PCB is on top.
TKL Bottom
- Each side is different. Make sure that part with fillets in screw holes is on the top as otherwise you'll have problem with screwing screws fully.
MCU Holder
- Supports everywhere
- Organic supports
- Overhand threshold: 30 degrees
- Side visible from outside of the keyboard will be on a bed (part will be standing like a tower).
Assembly
Required hardware:
- Printed parts :)
- Microcontroller - In my build I used UM TinyS3. Use 90 degree headers with plastic piece "next to the MCU board", not the one which has plastic sitting on MCU PCB.
- Battery - 3.7V, Li-Po, maximum height 6 mm (7 mm can theoretically fit, but should have some gap for ventilation…).
- Double sided duck tape
- Jumper wires - I used female - female version, but it's up to what connectors you will chose on MCU / PCB. Use 20 cm version. You will also need wire with 3 pins to connect GND from battery, PCB and MCU - you can solder it from jumper wires.
- PCB - Schemes from this repository can be ordered on JLCPCB, PCBWay, etc.
- Stabilizers
- Switches - 87x Cherry MX switches. Order at least 1 spare one as you might bend pins when installing it or easily destroy it in some other way.
- 24x M2x4x3.2 thread inserts
- Screws
- 8x M2x5 screw with embedded head (head hidden inside)
- 14x M2x8 screw with embedded head (head hidden inside)
Prepare TKL Infill
Put thread inserts into TKL Infill. It has pre-prepared holes for M2x4x3.2 thread inserts. 14x on bottom and 8x from sides.
Prepare MCU Holder
Put thread inserts into TKL Infill. It has pre-prepared holes for M2x4x3.2 thread inserts (2x).
Put micro controller into MCU holder.
Assemble PCB with Plate
- Screw stabilizers on PCB
- Put plate on top of PCB
- Start adding switches on by one till PCB has all switches
- Connect Jumper wires to PCB (don't do it later, there will be little of space …)
Assemble Keyboard case
- Prepare TKL Cover with top part on a table.
- Insert part with PCB+Plate+switches+stabilizers.
- Insert TKL Infill
- Push TKL Infill in a way, screw holes are aligned with TKL Cover screw holes.
- Screw TKL Infill to TKL Cover first from front and back side of TKL Cover.
- Screw TKL Infill to TKL Cover on the sides.
- Put MCU holder and connect jumper wires and battery wires
- Screw MCU holder to case
- Use double sided duck tape to attach battery to TKL Bottom
- Add TKL Bottom and screw it to TKL Infill.
Changes in v3
Previous version had several problems:
- Case hold just by friction - now it has screws
- Case was very expensive to CNC (1000 usd) - splitting keyboard into visible and internal parts allowed to keep internal parts plastic, which is heavily dropping the price and giving nice aluminium where it's visible :)
- Case had visible split in the middle, which made case ugly - removed, now it feels more like single piece (at least where it's visible)
Side effect of these changes were also removal of:
- Support for magnets holding numpad
- Support for 3 degrees angle
- Support for printing on smaller printers
First 2 features will be reintroduced in future versions, but implemented differently. For third one I did not see a point anymore as Průša introduced feature to create sockets directly in PrůšaSlicer in case somebody will want that.