geekhack

geekhack Projects => Making Stuff Together! => Topic started by: Jrodna on Mon, 03 August 2020, 03:50:18

Title: Designing my first keyboard pcb
Post by: Jrodna on Mon, 03 August 2020, 03:50:18
Looking for some feedback and help with my keyboard design. Its the first pcb I have ever designed so I'm sure I've done something wrong.

The design comes from liking thumb clusters on ergo boards and removing columnar staggering, but not wanting to go full ergo to make it easier to game on without having to change the controls in every game. I also wanted to keep compatibility with standard keycap sizes since locating short shifts and 3u space bars can suck if you're on a budget. There is a wiring for a rotary encoder for volume and I'm including the encoder click in the key matrix.

I also wanted to minimise the number of smd components so I could do the soldering myself more easily. Any suggestions for a THT socketable IC are very welcome.

Layout on keyboard-layout-editor.com
[attachimg=1]

A second variant of the layout after some feedback
[attach=4]

Schematic designed in KiCad
[attach=2]

PCB designed in KiCad
[attach=3]

I have the kicad files in a github repository https://github.com/Jrodna/OrthoCode (https://github.com/Jrodna/OrthoCode) for anyone who wants to download the files and make sure it looks good.

Title: Re: Designing my first keyboard pcb
Post by: _PeterG_ on Mon, 03 August 2020, 16:35:16
Hi Jrodna,

I am not an expert on PCB design, so not much feedback in that direction from my side.


The design comes from liking thumb clusters on ergo boards and removing columnar staggering, but not wanting to go full ergo to make it easier to game on without having to change the controls in every game.


However, I do have a comment regarding ortholinear layouts for gaming. I play my fair share of first person games and find myself reaching for the number row quite a bit while holding W. Think moving forward and switching weapons, etc.... On a standard staggered layout this is very easy since the W-key is almost dead on in between the 2- and 3-key. This way you can reach around your middle finger, holding W, with your index finger and ring finger to press 2 or 3. This is very awkward on a ortholinear layout, since the 2 key is right above the W key.
Title: Re: Designing my first keyboard pcb
Post by: Jrodna on Mon, 03 August 2020, 23:16:41
Hi _PeterG_,
Interesting about the number key positions, I wonder if thats a common sentiment among people using ortholinear boards to game on.
Title: Re: Designing my first keyboard pcb
Post by: coarse on Mon, 03 August 2020, 23:29:13
atmega32a is a tht controller but pretty complicated to setup. you might also have not enough pins with that controller
Title: Re: Designing my first keyboard pcb
Post by: Jrodna on Tue, 04 August 2020, 01:49:54
Yeah its too bad, I'm using 42 pins in my current design (out of the 44 available on the ATMEGA32U4) and the THT version has only 40 pins.
If I ditched the rotary encoder that would free up 2 pins and make the THT version possible.

I also have no idea how setting up qmk would work for the different chip (though I'm sure its possible).
Title: Re: Designing my first keyboard pcb
Post by: coarse on Tue, 04 August 2020, 01:54:51
you could use an io expander, although im not sure how slow that would be especially if your mcu is busy doing v-usb.

your other option is to compress the matrix. having 2 switches on the last row and 3 switches on the last column is a waste of resources. you could easily fit those switches in the other empty spaces in the previous cols/rows.
Title: Re: Designing my first keyboard pcb
Post by: Jrodna on Tue, 04 August 2020, 02:00:56
Yeah thats probably the best option, looks like I can ditch 2 pins for the first and last columns without making the matrix super confusing.
Title: Re: Designing my first keyboard pcb
Post by: Pyk_ on Tue, 04 August 2020, 14:55:38
Nice. I like the ortho boards with more interesting mods like this. It both makes for an interesting looking board and allows for standard TKL comparability. Which is nice because a lot of my favorite caps don’t have explicit ortho support.