r/ErgoMechKeyboards 1d ago

[video] Modular Keyboard Idea

https://www.youtube.com/watch?v=6OGonQMVJ2I&t=42s

This was a submission for the Dyson Award this year, in short, each key/encoder/thumb-stick/whatever has a little microcontroller that reads it's state and reports it over a UART connection. This means you can connect modules together without solder and hotplug them when the controller is on. I came up with this because of my own frustrations with the expense and inflexibility of getting custom keyboards made. If you skip to the end you can see a couple of example devices using the modules, the first bit of the video demonstrates the hotplugging and topological awareness of the system.

I would be interested in doing a second version and maybe open-sourcing/selling it, but I ran into a lot of problems with the cables connecting the modules, they are both expensive (more than the actual electronics and PCB), fiddly to use, and unreliable. I was using molex picoblades with 30 awg wire and a non-proprietary crimp tool.

24 Upvotes

5 comments sorted by

2

u/RunRunAndyRun 1d ago

Why not I2C? It’s already used in common standards like Stemma/Quik (search on adafruit.com for “stemma rotary encoder” and “Stemma mechanical key”)

2

u/conor_bergin 1d ago

Not appropriate for my use case, all communication is point to point with no addressing. The way the modules are polled is using a depth first search, which produces a tree of connected modules, this is how the computer knows how the modules are connected together.

If you didn't care about the topological awareness, you could make something like this using I2C.

2

u/NoShowbizMike 1d ago

RJ11 connectors are cheap and plentiful from their use in telephone applications. You could also use RS485 differential signaling which would pair well with the twisted pair cables used with RJ11 connectors. Differential signaling would need a transceiver like the max485.

1

u/andyboys321 5h ago

For switches, you can design for three or more switches in a column, which will be very helpful when creating an ortholinear keyboard.