finanalyst has asked for the wisdom of the Perl Monks concerning the following question:

I want to use perl to get a new device to work on Ubuntu. Specifically I'm using Device::USB.

I bought a Dream Cheeky piano keyboard (1941:2081 - same as weather station). It works on Windows, but no Linux driver.

It is not MIDI compliant, so I need to insert a filter to make it so.

I'm using Ubuntu 13.10

Using lsusb -v, I find it is interrupt driven.

Looking at log, I see it is assigned to generic HID

Using Device::USB, I can open the device as per module docs, and run the script as root (at present) to get access to the USB info, but I get a return value of -16 (device busy) for

$rv = $dev->claim_interface(0); # bInterfaceValue

This needs to be successful, I think, for

$dev->interrupt_read(0x81, $datain, 8, 10); # 8 bytes, 10 ms.

In CPAN description of Device::USB there is a constant CLASS_HID defined, which looks promising, but no more description about how to use it.

How do I access the data from the device?

Replies are listed 'Best First'.
Re: Device::USB and HID driver (usbpiano.sf.net)
by Anonymous Monk on Aug 03, 2014 at 06:46 UTC