This weekend I had two correlated objectives:
- Test if the switch matrix is working as intended, and try some workaround if not.
- Write a QMK firmware.
As with the first objective I encountered a quite a lot of problems.
First, some diodes were not fully soldered and seven switches were not working as a result.
Had to track down every problem with a multimeter and resolder these diodes by hand.
The pads of these SOD323 diodes are extremely small and this made this task a challenge.
Next time I’ll either switch to a 603 footprint or SOD323 bigger footprints for hand soldering purposes.
Second problem, the home made cable connecting the USB daughter board to the main board had a broken wire; depending on the orientation the wire was making contact to the header or not.
This drived me nuts …
Remember when I had trouble making the keyboard recognized last time? That was the reason
Re-attaching a new crimp to the wire and it was good to go.
If you are curious, here is the hardware needed to do a JST cable yourself.
I could finally validate that the PCB was usable and it is a great news
Is it perfect ?
Certainly not:
- ‘O’ and ‘0’ footprints were inverted during placement on the PCB.
- Stepped Capslock footprint is placed wrong, I will have to do without…
- The 2 1U keys that can replace numpad + and enter are wired wrong, not a big deal.
Overall it could be much worse, having something unusable, and I’m happy of these results on the first revision of the PCB.
And now the QMK firmware.
I wanted to try VIA as it can now be used without restrictions and what a great piece software!
It is very nice and easy to use, so much more convenient, a big thank you to @olivia and @Wilba and the others that I may have forgot !
If you want to port a keyboard to VIA, I strongly recommend the following links.
- VIA documentation, it explains everything including configuring QMK source code
https://caniusevia.com/docs/configuring_qmk - Have a look on @merlin great videos explaining how it does, it is very self-explanatory.
KLE is used to map keys to row/column and define layout options, to be exported later on in Json format for VIA software.
Here is the result on the Winghead:
I discovered that doing that work on KLE makes you easily see the switch matrix topology, I saw that some of my switch row/colum placement could have been better.
Next time I’ll do that step before starting designing a switch matrix on Kicad.
After a few trial and errors I had the following result on VIA
Next step, make a second PCB and find a way to solder the LED driver this time