Hey all. I am new to this thread. I have not touched anything on the electrical side of building keyboards, and have only built boards based on PCBs designed by others.
I am the developer behind http://builder.swillkb.com. Ironically, I started it because I was not confident in my cad skills and thought I should automate the plate layout. Now it does quite a bit more than I was expecting when I started, but I have always had the pipe dream of being able to produce a PCB that goes with the layout specified.
The biggest hurdle I think I am going to have with this is the auto routing for the pcb. I am only just starting to look into what I would need to do to even get something primitive built.
So my question is. What algorithms should I be researching, and what auto routing systems are best suited to designing keyboards. I know the following exist, but not much beyond that.
Maze router,
Line probe router,
Channel router,
Area routers,
Switchbox routing
Given my current skill level, I will probably have to spend a couple months just learning stuff. I would not expect to actually have anything written for about 6 months and really, who knows at that point.
If anyone has resources you can share that you think would be required reading for me, please share a link. If you have ideas or suggestions, please let me know as well.
Thanks for the help everyone. Happy new year. If you have not checked out the builder recently, you guys may be interested in the new custom polygon features I finally finished adding to the builder over the holidays.
Hi swill and everybody. I'm new to this thread too, and to geekhack and to the mechanical keyboard scene. I'm pretty blown away by all the great stuff going on here. I am working on my own keyboard project and, like you, I have ended up working on software to generate drawings instead of using CAD tools. Your plate builder was definitely an inspiration to me!
I spent some time trying to learn KiCad, but it drove me crazy with its terrible interface. And so much of the layout of a keyboard PCB is just begging for automation, I decided just to learn about the Gerber format and develop some code to generate my PCB artwork directly from keyboard-layout-editor data. I was also inspired by the work at
http://pcbmode.com.
For my project, the keyboard controller is not going to be on the same board as the key switch matrix, so that simplifies things quite a bit for me. Also, I have no interest in LEDs, which also simplifies my problem. I am trying to avoid the general trace routing problem altogether by sticking to a simple design with columns on the front and rows on the back. Right now I am basically cloning the TrueFox layout. It's not exactly the layout I want, but it is close, and I can get the keycaps for it, so it's a good start. The obvious matrix would be 16 columns by 5 rows, but that is an inefficient use of 21 GPIO. So the most interesting thing that I think I am doing is using an 8x10 matrix where the columns are sort of folded in half and there are two matrix rows per physical row of keys. Also, I am using copper pours for the rows and columns, which makes it easier to embed a key module without worrying about routing traces.
I have a long way to go, but maybe this image of my work in progress can help explain where I am going with it.
Sorry if that is hard to read. My code is a broken refactoring mess right now and that is the only image I have around to share. This is my first post and I'm a noob with forum software, so I hope the image shows up...
-JR