Plover HID

From Plover Wiki
Revision as of 20:17, 12 February 2024 by Lynn (talk | contribs) (create article)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The Plover HID protocol is an alternative protocol for steno keyboards to communicate with steno software, using the common HID (Human Interface Device) standard for mice, keyboards, game controllers, et cetera.

It is implemented by the plover-machine-hid Plover plugin.

Notably, it sends packets for each key-up or key-down event, unlike the Gemini PR or TX Bolt protocols which only send a packet after a chord is completely released. This allows the plugin to support features such as first-up chord send or auto-repeat.

Using Plover HID

If your steno board supports Javelin, you can use the firmware builder to get a version of the Javelin firmware that outputs Plover HID:

  1. At the top of the page, enable Show expert options.
  2. Under Keymap, click the Edit button next to "Script: OK, xxx bytes"
  3. Find the line that says console("set_steno_mode gemini");
  4. Replace it with console("set_steno_mode plover_hid");

Now the four corner keys on your board switch between embedded steno and Plover HID output.

To install the plover-machine-hid plugin, see Installing plugins. Then select "Plover HID" under "Machine" in Plover.

Specification

Devices using the Plover HID protocol can be recognized by usagePage = 0xFF50 and usage = 0x4C56.

They send input reports with report ID 80 (0x50) followed by an 8-byte body. The body is a 64-bit bitmask representing the state of the standard English steno keys S- T- K- P- W- H- R- A- O- * -E -U -F -R -P -B -L -G -T -S -D -Z #, followed by extra keys X1 through X26.

For example, when S- is pressed down, the device reports 80 00 00 00 00 00 00 00 (in hexadecimal). Then when T- is additionally pressed it reports c0 00 00 00 00 00 00 00.

See also