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.