Wip - Fully custom tkl with some extras

User avatar
jumpifzero

07 Oct 2018, 18:37

Hey guys!

Want to share a little something I've been working on. Still unfinished.

Features:
- tkl design
- additional row above the Fs for macro keys
- extra keys around the arrows for frequent symbols ( e.g. parenthesis)
- Hand soldering friendly ( only through hole components)
- cherry MX compatible switches ( to keep costs as low as possible )
- iso layout

PCB
PCB has been designed from scratch on kicad 5 which contains the outlines ( footprints) for the cherry mx switches.
Part of the design decision was to make the PCB modular and modifiable and therefore not put the microcontroller on it. The PCB contains only the switch matrix and 3 daisy chained shift registers connected to the columns of the matrix. 2.54mm right angle headers will be used to connect the switch matrix to the microcontroller. There are no LEDs on the pcb.
The PCB itself was produced by pcbway which charged me around 50gbp for 5 PCBs and the shipping costs ( and ROHS! )

Pic with the diodes already soldered:
IMG_20180922_144015951.jpg
Pcb
IMG_20180922_144015951.jpg (1.95 MiB) Viewed 1357 times
Keycaps
Keycaps will be ordered from maxkeyboards as I they have a good price on abs custom prints with custom colours. As part of the custom print they'll have the GB layout with the PT symbols as well as I frequently type in both languages.
Screenshot_20181007-172039~2.png
Layout preview ( colors will be different )
Screenshot_20181007-172039~2.png (216.09 KiB) Viewed 1357 times
micro
The idea is to use an Arduino Leonardo board as I've built a small 4 keys prototype on a breadboard. May need to replace it with a larger micro if there's not enough memory to hold all the macro data.


case
Base will be 3d printed abs but I'd love the top to be black painted stainless steel. Any idea where I can get a plate laser cut and with the edges bent ( like a shoe case lid ) with a reasonable price?


status
This has been a lot of fun but also hard work. I've never built any circuit at this scale. One mistake to correct on revision 2 is the size of the pads which are way too small, making things hard to solder.
Next step is to hand solder the switches :)
IMG_20181007_124218997.jpg
Unsoldered gateron browns
IMG_20181007_124218997.jpg (2.81 MiB) Viewed 1357 times
Tell me your thoughts or questions.
I'll post some updates here.
Thanks

User avatar
scottc

07 Oct 2018, 20:03

Looks good! How will the Leonardo fit in? Will you just wire it up and leave it somewhere in the case, or do you plan to attach it to the PCB somehow?

User avatar
Muirium
µ

07 Oct 2018, 21:34

Good question. Also, what happened to your lock indicators? Macro programming will surely need some feedback if it happens entirely on keyboard.

Locating the matrix diodes around the edge of the PCB is an interesting idea. Makes for a wider case, front and back and side to side of course, but if that’s what you’re going for.

Annoying that PCBs are still as expensive to prototype. I have ideas too, but no funds to build excess at every stage.

andrea-i

08 Oct 2018, 09:48

This pcb looks fantastic! (if it wasn't for the iso ; ), can I ask you if you use something like the keyboard-layout-builder as a base for placeholders?

I want to learn the simple basics of pcb design soon, just have no idea where to start, but I think I'd like to use Autodesk Eagle because of the integrated milling CAM generator.

User avatar
jumpifzero

08 Oct 2018, 20:41

Thanks guys!

The idea is to fit the arduino under the pcb, towards the furthest edge as the pcb will be slightly tilted towards you. There should be enough space underneath it.

Not planning on using any LEDs as indicators. I think we can get away without any indicator, even with macros. The Idea of macros is that one key will start recording. On the recording mode any key is captured and then recorded on bank 1 by pressing M1, bank 2 by pressing M2, etc. If I see a need to output any information I'll use a small cheap LCD but this will be decided while coding the firmware.

Also wish pcbs would be cheaper :) although I did go for HASL lead free to be environmentally friendly which did increase the cost a bit.

User avatar
jumpifzero

08 Oct 2018, 20:55

andrea-i wrote: This pcb looks fantastic! (if it wasn't for the iso ; ), can I ask you if you use something like the keyboard-layout-builder as a base for placeholders?

I want to learn the simple basics of pcb design soon, just have no idea where to start, but I think I'd like to use Autodesk Eagle because of the integrated milling CAM generator.
Thanks! Love the iso :P
Anyway. I used the keyboard-layout-builder only to simulate colors and have a preview of the general layout. Also learning about pcb design as I go along. Started with this great article that explains how the matrix is supposed to work: http://blog.komar.be/how-to-make-a-keyboard-the-matrix/
After validating the design in a 2x2 matrix on a breadboard, jumped into KICAD 5. Completely free and open source and even brings the "outlines" of cherry mx switches (called footprints) so that's damn easy to put once you set the right grid.


Maybe not as easy to use as eagle but you don't have any limitation with Kicad and it generated all the files needed to send to the PCB manufacturer. Amazing program with loads of tutorials online on how to use it.

Hope it helps

User avatar
jumpifzero

18 Dec 2018, 21:29

Hey guys, update on this project..

PCB:
The PCB is fully soldered. There were 2 small errors that I was able to patch with wires.
What's a prototype without mistakes? :D

Software:
Wrote the Arduino code to make this work. Decided to go with custom code instead of adjusting QMK as this was way easier. I might look at QMK for the next project. The software works flawlessly and I'm now working on dynamic macros functionality.

Keycaps
Ordered an ISO Keycaps set from max keyboards. With custom printed keys to have a dual GB/PT layout.
They're ok although the the colours slightly different in reality. In hindsight I'd rather have gone full white.

Next up is the case. Working on the 3d model.. a 3D printed plastic base with a metal plate at the top.

Some pics of the current state:
IMG_20181125_195433013.jpg
IMG_20181125_195433013.jpg (1005.08 KiB) Viewed 1139 times
IMG_20181125_195403923.jpg
IMG_20181125_195403923.jpg (1.12 MiB) Viewed 1139 times
Attachments
IMG_20181126_085959724.jpg
IMG_20181126_085959724.jpg (1.2 MiB) Viewed 1139 times
IMG_20181126_105252150.jpg
IMG_20181126_105252150.jpg (478.77 KiB) Viewed 1139 times

__red__

18 Dec 2018, 22:32

jumpifzero wrote: Keycaps will be ordered from maxkeyboards as I they have a good price on abs custom prints with custom colours.
Wait a cotton-pickin' minute. There are companies that do colour printing on caps(!)

I have some emails to send ...

User avatar
jumpifzero

02 Nov 2019, 14:54

Hey everyone! Hope you're doing well.

Almost a year later, figured I should update the project status here!

The keyboard and macros work! I've been using it as the desktop PC keyboard for months without any issues :)

Reflecting on the whole project, let's talk about what went well and what went wrong.

The good:
- it freaking works! No lag, no freezes, the macros work, etc. Quite impressed with that given that this is my first KB build and a lot of it was custom designed and built (pcb,soldering,firmware,keycaps).
- Macro functionality is really useful.

What could have gone better:
- Looking back I should have not gone with Gateron browns. I find them a bit too soft. Would like to try Cherry MX clears. Given that I have 4 more unused pcbs, perhaps a rebuild using those switches would be better.

- The case was and still is the biggest problem. I've 3D printed a base and a top plate using PLA. Again, unexperience bit me. I've used PLA for the print, which apparently contracts and warps more than ABS. When the base came, the screw supports did not align with the PCB screw holes. A lot of glue and general make it up on the spot was needed to still use the base. The top plate was just wrong and went to the bin. I messed up the conversion from Inkscape vector to a 3d model so what showed up was off by centimeters. What you see in the picture below is a foamboard plate that was cut by hand, just to prevent me touching the circuit while typing. Obviously needs a more long term solution but other projects have been taking priority.

- Keycaps: One of my requirements was to have dual layout on the keycaps as I type in English and Portuguese. This is great but the colors I chose looked much better on the preview than in reality. In real life some symbols are hard to read due to the low contrast (green on gray keycaps).

- The custom firmware works but needs a bit of love in cleaning up the unit tests and build process. At the moment it is a bit messy. One thing I'd like to add is saving the macros to eeprom so that they survive reboots, currently the KB always starts with an empty macro bank.

A picture of the current looks:
Image

Next steps:
The KB is fragile with the crappy case. But if it is not moved much it can be used fine. The biggest priority would be a case that I can move with confidence. Maybe 2 aluminium plates laser cut sandwiching the pcb. However i've been putting this off so not sure when (or if) i'll do it. I'll keep you posted!

Cheers

User avatar
purdobol

02 Nov 2019, 18:47

jumpifzero wrote:
02 Nov 2019, 14:54
- The case was and still is the biggest problem. I've 3D printed a base and a top plate using PLA. Again, unexperience bit me. I've used PLA for the print, which apparently contracts and warps more than ABS. When the base came, the screw supports did not align with the PCB screw holes. A lot of glue and general make it up on the spot was needed to still use the base. The top plate was just wrong and went to the bin. I messed up the conversion from Inkscape vector to a 3d model so what showed up was off by centimeters. What you see in the picture below is a foamboard plate that was cut by hand, just to prevent me touching the circuit while typing. Obviously needs a more long term solution but other projects have been taking priority.
Heh I know that pain. Tried making one from acrylic and wood so far, with mediocre results. My boards are tilted 15 degrees which doesn't help either. Making cases by hand sucks big time.
Which is why for current project I'm ordering one from pro workshop. It ain't cheap but hey, the results should be far better.
Provided I didn't screw up the measurments :lol:
Spoiler:
Image
Top 2mm steel.
Base 4mm steel.
Either way, lots of hard work wen't into your project and it shows.
Congrats

User avatar
jumpifzero

12 Nov 2019, 13:52

Thanks!

Cases are a pain.

Your project looks amazing. Hope it goes well. Let me check that out next.

hiddensong

12 Nov 2019, 20:41

This is why kits from Keycult and RAMA cost so much. Metal cases ain’t cheap! I love the layout with macro keys. Maybe attempt to go in with a reputable maker and your board? I’d go QMK though since that’s making headway on being a standard. Good luck and keep the updates coming. Don’t give up!!

Post Reply

Return to “Keyboards”