To those I've chatted to about various projects: this thread is evidence of how rapidly and wildly my scheming can veer from one place to another before I ever put soldering iron to PCB or code to text editor.
(For better or worse. On the one hand, this idea is clearly steadily improving; on the other, it's not steadily getting implemented.)
So here's the new scheme: be modular, and be solderless. I'm thinking of putting I2C over Molex PicoBlade
4-pin connectors at 5V, wired VCC, SDA, GND, SCL
. Give each module two connectors, so they can daisy-chain. Pre-wired leads are readily available in an assortment of lengths up to 60cm.
(Sidebar: being careful about power, pull-ups and ground loops, I'm tentatively defining three modes of attachment:
- Independently powered: VCC is n/c; GND is joined to local GND via a 100ohm resistor
- Power consumer
- Power source: provides +5V and the reference ground; pulls SDA and SCL weakly to VCC. But because there must be exactly one power source on the bus, each power source should have four links you can break to make it independently powered)
Now, make a keyboard LED module which has three NeoPixels in the correct spacing. This doesn't have to attach electrically to the keyboard PCB, so it only needs to anchor mechanically to the holes in the seating plate; I have a plan for a straightforward 3D-printed part that would do this. An advantage of this configuration means it can be tested before committing to desoldering the existing keyboard LEDs. A further advantage is that someone averse to soldering could instead snip out the existing LEDs.
Secondly, make a keyboard interfacing module which is interposed between the keyboard ribbon cable and the keyboard PCB. That provides power, ground, the LED signals and, as a bonus, also reset. Since it wouldn't have to modify any of the signals, only observe them, it could use a straightforward stacking header.
Those two modules between them are enough to get back to square one of having working keyboard LEDs. (-8
Then modules could be provided which controlled the LEDs from individual binary signals, from the user port or 1MHz bus, from the RetroClinic DataCentre's LED multiway connector, etc. And it could link to anything else in the existing I2C ecosystem.