This isn’t a plugin per-se, rather a port of Kaleidoscope to the ErgoDox (the ErgoDox EZ in particular, but should work on original ErgoDox too; it does not support the Infinity ErgoDox). While it will run on more recent versions of the EZ (such as the Shine), the additional features - such as the LED strip - are (not yet) supported.
Status:
Everything on the original ErgoDox should work, including the status LEDs. It is in a pretty good shape, so much so that I’m using it at my day job.
As of today, I’m using the port on my EZ at work. There are a number of things that could likely be improved, but it should be ready for real, day-to-day use now.
No, the ErgoDox is wired like that, a bit rotated, because we store each row in an uint8_t. If it was wired regularly, we’d need an uint16_t, or a very different scanner and matrix processing method. This may not be the most intuitive thing, but having the hardware wired this way made the firmware simpler.
(Every other firmware - QMK included - that supports the original ErgoDox and the EZ does this the same way, because that’s how the hardware was set up.)
To further clarify, this was done for the same reason as the Model01 having the thumb arc on the seventh column, instead of its own row, among other things.
But ROWS and COLS are the intuitive names for the dimensions of a matrix layout. This really isn’t a problem. I was just curious. Anybody digging this far deep should be able to accept the explanation that it is based on the internal wiring.
Is this kind of row/col addressing a must for this kind of hardware or using Kaleidoscope, or is it just a convenience? If a keyboard is created where the number of keys doesn’t lend itself to such rectangular addressing, could Kaleidoscope be similarly extended to such a keyboard or not?
You can always XXX out a few keys from the matrix. The ErgoDox port does that, and so does the Raise, and the Shortcut. In general, to make a port a lot easier, you’ll want to arrange keys into a rectangular matrix. That should be possible with almost any shape, at the cost of nulling a few keys out.
IIRC there are hardware reasons for this too, but that’s a few levels deeper than I’m familiar with =)
Yeah but the corollary question would obviously be: what is the problem with mapping the thumb keys anywhere on that logical column… Whether 1-6 thumb cluster with 0 as XXX or 0-5 thumb cluster with 6 as XXX it doesn’t make any difference does it?
Ah I didn’t realize I was looking at an old version of the file.
My assumption is that this is because it was easier to lay out the hardware this way, and the matrix - obviously - matches the hardware. But like I said before, this is an area where I have no experience yet.