This project is one part of a mechanical keyboard. I've seen other manual builds of keyboards where each key is wired in manually. The project becomes a bit of a rats nest of wires. I wanted to make a keyboard where each key has its own PCB, and I can solder one board to the next in either an orthogonal or non-orthogonal style. This way I can make as many or as few keys as I want on my keyboard or macro pad. And can I make them in non-standard layouts (periodic table keyboard?).
The first thing that's needed is improved communication. I will need bus-style communication that can grow as more keys are added. This means each key will need its own microcontroller. And I may as well have each microcontroller drive the key's LED as well.
I've chosen the ATtiny10 microcontroller because of it's small footprint (SOT23-6). I tried to use one of the 7 cent micros due to the simplicity of the functionality, but the smallest package they come it was too big. I only have 19mm square to work with per key which I reduced to 18.8 for routing tolerance. (for example, PCBWay routing tolerance is +/-0.2mm.) I will need to bit-bang the interface since the ATtiny10 doesn't have it built-in, but other projects have shown that's possible.
I will need a different microcontroller for the USB interface. If this is successful, then I plan on expanding to larger keys (1.5U, 2.0U, etc).
The only issue is that the Q row and A row of keys are not exactly offset halfway. So it's not perfect, but I think it's a small concession.