zmk icon indicating copy to clipboard operation
zmk copied to clipboard

WIP: feat(stenography): Support the Plover HID Protocol

Open dnaq opened this issue 3 years ago • 2 comments

This commit adds tentative support for the Plover HID Protocol, a simple HID-based protocol that works over both USB and BLE. The main value-add of this feature is that it allows ZMK to be used for interfacing with Plover from the Open Steno Project without Plover having to intercept all keyboard keypresses.

Usually hobbyist steno machines use legacy serial port protocols for this, but since we can't use those over BLE we might as well develop a protocol that works both for USB and BLE and at the same time remove some of the pain points of those old protocols.

dnaq avatar Sep 28 '21 18:09 dnaq

@petejohanson I don't believe this is yet in a state to be merged, but there are some points I would like to discuss where the discussion is simplified by actually having something to look at.

There are still some //FIXME-comments in the code, at least one of them is a hardcoded value, but the others are more open questions that I would like to have feedback on if possible.

Also I put this feature behind a config-option, but I haven't added conditional compilation to all places where this feature is implemented. My idea was to eliminate all externally visible behaviors without littering the whole codebase with ifdefs, but if you want me to hide everything behind ifdefs I can of course do so.

I'm also welcome to any other feedback you might have. I won't remove the WIP-status until this has been a lot more tested, since I only have a single ZMK board to test on. The protocol itself has been tested on both linux/windows and mac os x with multiple steno machines, but the bluetooth part has only been tested by me on linux.

dnaq avatar Sep 28 '21 18:09 dnaq