Fix? ShuttlePROv2 jog dial reports EV_REL events with absolute position event values

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have a ShuttlePRO v2 (Contour Design Inc) that identifies itself as a USB
HID. The kernel properly detects its and I can receive events from the
device. The ShuttlePRO v2 is a media controller for use with video editing
software, et cetera. It has a jog dial for frame-by-frame movement. Next, it
has a so-called shuttle, which is ring around the dial, but separate from
it. The shuttle can be turned CW and CCW up to 7 positions and a spring
ensures it returns to its center position when you take your hand off of it.
The shuttle is used to play forwards or backwards, with varying speed.
Finally, there are 15 buttons on the ShuttlePRO v2.

However, there is an annoying quirk of which I don't at this time where it
comes from. The Linux event/input system does not report when the shuttle
returns to its home/center position. It seems as if the event sent by the
device gets swallowed. I know that the device sends such an event, as in
Windows there is no such problem. Similar, when turning the jog dial, every
256th position gets swallowed as well.

I suspect the device manufacturer to have messed up this, but I may be
wrong. Anyway, I'm looking for help to get around this annoying quirk.

When I point evtest at the ShuttlePro v2, it reports the following information:

Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0xb33 product 0x30 version 0x110
Input device name: "Contour Design ShuttlePRO v2"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 256 (BTN_0)
    Event code 257 (BTN_1)
    Event code 258 (BTN_2)
    Event code 259 (BTN_3)
    Event code 260 (BTN_4)
    Event code 261 (BTN_5)
    Event code 262 (BTN_6)
    Event code 263 (BTN_7)
    Event code 264 (BTN_8)
    Event code 265 (BTN_9)
    Event code 266 (?)
    Event code 267 (?)
    Event code 268 (?)
    Event code 269 (?)
    Event code 270 (?)
  Event type 2 (EV_REL)
    Event code 7 (REL_DIAL)
    Event code 8 (REL_WHEEL)
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)

Please notice that for whatever reason, the ShuttlePRO v2 uses relative
events for the dial and shuttle (wheel). Unfortunately, the device sends
events that contain the dial and shuttle absolute positions.

For instance, when I first turn the shuttle CW to pos 1, then pos 2 and then
back to 0, and then CCW to pos -1. As you can see, the Linux USBHID does not
report the pos 0 event.

Event: type 2 (EV_REL), code 8 (REL_WHEEL), value 1
Event: -------------- SYN_REPORT ------------
Event: type 2 (EV_REL), code 8 (REL_WHEEL), value 2
Event: -------------- SYN_REPORT ------------
Event: type 2 (EV_REL), code 8 (REL_WHEEL), value 1
Event: -------------- SYN_REPORT ------------
Event: type 2 (EV_REL), code 8 (REL_WHEEL), value -1
Event: -------------- SYN_REPORT ------------

My impression is that the Linux HID module correctly assumes that relative
events without any position movement can be dropped. Can someone please
confirm, if this actually is the case?

The issue for the jog dial is similar, here whenever the position counter
which is in the range of 0 to 255 doesn't get reported when it reaches pos 0.

Event: type 2 (EV_REL), code 7 (REL_DIAL), value 2
Event: -------------- SYN_REPORT ------------
Event: type 2 (EV_REL), code 7 (REL_DIAL), value 1
Event: -------------- SYN_REPORT ------------
Event: type 2 (EV_REL), code 7 (REL_DIAL), value 255
Event: -------------- SYN_REPORT ------------

Is there any change of getting the handling of the ShuttlePRO v2 fixed in
the USBHID module? Is it possible either to disable the USBHID dropping
REL_xx events with an event value of 0? This would be preferable because
then existing software does not need to be changed, as it currently expects
REL_DIAL and REL_WHEEL events.

Any help and points greatly appreciated!
-- TheDiveO

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux