Lower Level Access to HID Device Than With Device Keys?

I'm using an old input device, a Sony USB Jog Controller (PCVA-JC1). It's a HID device, but not a standard keyboard. Read on.

Using various tools (WebHID, hidapitester, etc) I can see that each button has the following states (descriptions in my words):

  • just pressed
  • pressed
  • held
  • just released

For each byte: the "just" events set the high word to the same value for half the keys, the pressed sets the low word to a value that is unique per key.
Two of the buttons act a little different, as a hybrid button/modifier, but I won't describe that further here.

A single, quick press of a button results in: just pressed, pressed, just released.

I cannot read them using Device Keys because it triggers an unexpected number times for each press (shown in brackets).

  • pressed (2 for press/hold)
  • long pressed (0 for press/hold)
  • down (6 for press, 8 for hold)
  • released (1 for press, 2 for hold)
  • tapped (n/a)

Also, three of the buttons return the same device key for reasons I do not understand.


  • Is there a lower level way of reading such a device using Keyboard Maestro?
  • Or recommendations If I seem to be doing it wrong using Device Keys?



No, and no.

Keyboard Maestro detects bytes that turn on a single bit when the key is pressed and go back to 0 when it is released.

Failing that Keyboard Maestro will not be able to work with the device or detect its button presses.

No worries. Thank you.

Currently I'm using a shell program (hidapitester) to display changes in the Input Report, which I can act on. I'll stick with that for more comprehensive button processing.

Keyboard Maestro still of some utility, using "released" to detect single presses of some buttons. I used it that way just now as a remote control shutter for my document scanner camera.

1 Like