I got two cheap drumpads here that are _exactly_ the same, also on the
inside (PCB's have the same revision ID):
But they get recognized differently, one as an USB MIDI device and the
other as an USB HID device. And when it gets recognized as a HID device
it's pretty useless because I can't hook it up easily to software that
accepts MIDI input.
This is the "working" drumpad (the one that gets recognized as an USB
Mar 3 13:09:40 piertje kernel: [ 864.820341] usb 5-2: new full-speed
USB device number 2 using uhci_hcd
Mar 3 13:09:40 piertje mtp-probe: checking bus 5, device 2:
Mar 3 13:09:40 piertje mtp-probe: bus: 5, device: 2 was not an MTP device
Mar 3 13:09:40 piertje kernel: [ 865.123664] usbcore: registered new
interface driver snd-usb-audio
Mar 3 13:09:40 piertje pulseaudio: [pulseaudio]
module-alsa-card.c: Failed to find a working profile.
Mar 3 13:09:40 piertje pulseaudio: [pulseaudio] module.c: Failed
to load module "module-alsa-card" (argument: "device_id="1"
tsched=yes ignore_dB=no deferred_volume=yes
card_properties="module-udev-detect.discovered=1""): initialization failed.
Bus 005 Device 002: ID 0218:0001 Hangzhou Worlde
This is the non working drumpad:
Mar 2 20:49:45 piertje kernel: [ 3040.388297] usb 5-1: new full-speed
USB device number 7 using uhci_hcd
Mar 2 20:49:45 piertje mtp-probe: checking bus 5, device 7:
Mar 2 20:49:45 piertje mtp-probe: bus: 5, device: 7 was not an MTP device
Mar 2 20:49:45 piertje kernel: [ 3040.602562] generic-usb
0003:1941:8021.0001: hiddev0,hidraw0: USB HID v1.10 Device
[HID 1941:8021] on usb-0000:00:1d.0-1/input0
Bus 005 Device 005: ID 1941:8021 Dream Link WH1080 Weather Station / USB
So my questions are, why does this happen? The PCB is extremely simple
and only has one small IC. Is the USB ID determined by this IC? And the
big question, can I trick this non working pad to get recognized as a
valid USB MIDI device? I already looked into this (unbinding, binding,
new_id) but can't get it to work. And I'm 100% sure these pads are
exactly the same.
I could use this: https://code.google.com/p/drumroll/
But I get the idea this is not necessary. drumroll also already consumes
4% CPU on my notebook and I want to use this drumpad with my Raspberry
Pi, besides, it's extra overhead and only runs SUID.
So anybody any idea how I could trick my system in properly recognizing
this non working drumpad? I don't mind hacking kernel modules if that
would be necessary.
Thanks in advance,
Linux-audio-user mailing list