PCB Design Thread


What is the most appropriate trace width for keyboard PCBs?


The trace width is determined by the max current flowing through it. Digital signals in general doesn’t need much current, so you can go pretty thin. I usually use 0.254mm (10mil) for signals and 0.4064mm (16mil) for Vcc, but only when designing keyboards.


Is there any website that you can paste your keyboard-layout-editor raw data in and it auto makes your PCB? I need that in my life


Not that I know of, but there is a similar tool that can take a kle json and convert it into a project file that included footprint placement. I’ve actually used it for a couple projects and it works quite nicely once you figure out how adjustments in the script affect component placement. You still have to run traces and map your schematic but it does eliminate a good deal of the less delicate but time consuming work. I’m not completely certain where I found the script though, so I won’t post it until I make sure I’m crediting it appropriately.

In regards to the trace width convo above, I rather like using 6mil for the matrix and 10-12mil for VCC runs. The small matrix traces makes it much easier when routing around a Teensy or Pro Micro footprint.


There was a script for Eagle available on geekhack to autoplace switches using the info from KLE.

Never made it work properly. And you also need a Pro license of Eagle to be able to use it on anything bigger than a numpad.


So I just want to say thank you for everyone’s help here, especially @VinnyCordeiro and @donutcat. Your patience and advice kept me inspired to see it through to the end. I was able to bring my idea to life. Honestly, I’m just excited that it works.

Of course, now I have a few other ideas I want to work on…


You are welcome. :slight_smile:


The board looks great! It was a great feeling for me the first time I plugged in a PCB I designed and it actually worked :slight_smile:


What I haven’t figured out very easily is what is necessary to connect something like a ProMicro to a separate USB port, let’s say, to tuck the ProMicro somewhere and have the USB port in a favorable position somewhere on the edge of the board.

Any advice on how to do this?


You need a panel mount extension, like this one. You may need to mod the case of the keyboard for that.


Wow. I didn’t know something like that existed. Man, that would’ve been helpful for my last build.

…But actually, I was thinking of this or this. Can I connect one of these to a ProMicro/Teensy?


The connector alone (1st link) is for direct PCB soldering, so it isn’t exactly the best option. The breakout board (2nd link) is better, but you still need to solder wires on it to connect on the Pro Micro/Teensy…

… which brings us to the panel mount cable I linked before. Less hassle, more direct solution.


I like this advice and will use it. Thanks!


Hey there knowledgeable people!

Do any of you know where in the QMK repo I can find the mapping of the Softwarepins to the actual pins on the ATmega32u4? I’ve searched a bit myself but wasn’t successful. A few redditors and myself could really use that information: https://www.reddit.com/r/MechanicalKeyboards/comments/9ud0jr/help_flashing_xd75_from_md/


You have to look at the config.h file of the keyboard you want. Using the GH60 as an example, you’ll want to look at https://github.com/qmk/qmk_firmware/blob/master/keyboards/gh60/config.h


Hey Vinny, thx for the reply. Problem is that there is no preset for the keyboard we bought so we’re trying to put it together ourselves. It’s Massdrops Clone of Xiudis XD75 called 75keys. By flashing the atomic preset we identified a few corresponding pins but the others are a mystery. Now we can trace the colums & rows to the physical pins on the mcu but unless we know the name of said pins in QMK that’s useless.

Rear about it here: https://geekhack.org/index.php?topic=98067.0


For that you just need to refer to the ATmega32U4 datasheet, the pinout of the IC is on page 3.

Just a note: on the manual they use the notation Pxy, meaning “Port x number y”. Just delete the P and that’s the name used on QMK. Using a digital multimeter you can easily find which pin is connected to each row/column. :wink:


Aaah yes it’s right there - now I feel stupid haha. Thank you so much! :slight_smile: