Rockband Wireless Keyboard

About

The Rockband Wireless Keyboard for the Wii is an affordable keyboard for musicians. It has a 2.4Ghz USB-wireless dongle that you can connect to a computer.

Rock_Band_3_Wireless_Pro_Keyboard_PS3.jpg

Problems

Some white keys are not mapped, I cannot see the events with jstest —event on /dev/input/events13 device.

With usbmon, I can see that the USB messages corresponding to the missing keys are well sent to the machine.

So it might me a mapping problem on /dev/input/events13 device.

Also, cat /dev/hidraw0 sees all the events from the missing keys.

After installing this sdl-jstest, I can see some events for some keys only (only some of the white/black keys are not mapped):

zoobab@chuchu /home/zoobab/soft/sdl-jstest/build [79]$ sudo ./sdl2-jstest -e 0
Joystick Name:     'Licensed by Nintendo of America  Harmonix RB3 Keyboard for Nintendo Wii'
Joystick GUID:     03000000ad1b00003033000001010000
Joystick Number:    0
Number of Axes:     4
Number of Buttons: 13
Number of Hats:     1
Number of Balls:    0
GameController:
  not a gamepad

Entering joystick test loop, press Ctrl-c to exit
SDL_JOYDEVICEADDED which:0
SDL_JOYAXISMOTION: joystick: 0 axis: 2 value: -32768
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -32768
SDL_JOYAXISMOTION: joystick: 0 axis: 2 value: 0
SDL_JOYAXISMOTION: joystick: 0 axis: 2 value: -32768
SDL_JOYAXISMOTION: joystick: 0 axis: 2 value: -27055
SDL_JOYAXISMOTION: joystick: 0 axis: 2 value: -32768
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -16300
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -32768
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -16300
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -32768
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -32432
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -32768
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -32432
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -32768
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -29744
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -32432
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -29744
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -32432
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -32768
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -32432
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -32768
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -32432
SDL_JOYAXISMOTION: joystick: 0 axis: 3 value: -32768

Roland USB UM-ONE

You can attach a USB2MIDI converter brand Roland UM-ONE to the MIDI-OUT connector of the keyboard:

um-one_mk2_angle_gal.jpg
root@chuchu /home/zoobab [29]# lsusb | grep Roland
Bus 001 Device 007: ID 0582:012a Roland Corp. UM-ONE

Now, you can see a device with amidi:

root@chuchu /home/zoobab [30]# amidi -l
Dir Device    Name
IO  hw:1,0,0  UM-ONE MIDI 1

And you can dump the raw keyboard pressings like this (here key30 and key31 are pressed once):

root@chuchu /home/zoobab [32]# amidi -p hw:1,0,0 --dump

90 30 74
80 30 77
90 31 74
80 31 78

Dmesg

[14815.818587] usb 1-1: New USB device found, idVendor=040b, idProduct=410a
[14815.818600] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[14815.820449] hub 1-1:1.0: USB hub found
[14815.822361] hub 1-1:1.0: 3 ports detected
[14816.099605] usb 1-1.1: new full-speed USB device number 5 using uhci_hcd
[14816.234576] usb 1-1.1: New USB device found, idVendor=1bad, idProduct=3330
[14816.234589] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[14816.234597] usb 1-1.1: Product: Harmonix RB3 Keyboard for Nintendo Wii
[14816.234605] usb 1-1.1: Manufacturer: Licensed by Nintendo of America 
[14816.243563] input: Licensed by Nintendo of America  Harmonix RB3 Keyboard for Nintendo Wii as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input15
[14816.243967] hid-generic 0003:1BAD:3330.0002: input,hidraw0: USB HID v1.01 Gamepad [Licensed by Nintendo of America  Harmonix RB3 Keyboard for Nintendo Wii] on usb-0000:00:1a.0-1.1/input0

Lsusb

Bus 001 Device 007: ID 1bad:3330 Harmonix Music 
Bus 001 Device 006: ID 040b:410a Weltrend Semiconductor

Lsusb -v

Bus 001 Device 005: ID 1bad:3330 Harmonix Music 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x1bad Harmonix Music
  idProduct          0x3330 
  bcdDevice            0.05
  iManufacturer           1 Licensed by Nintendo of America 
  iProduct                2 Harmonix RB3 Keyboard for Nintendo Wii
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           41
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.01
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     137
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              10
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
Device Status:     0x0000
  (Bus Powered)

Bus 001 Device 006: ID 040b:410a Weltrend Semiconductor 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            9 Hub
  bDeviceSubClass         1 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x040b Weltrend Semiconductor
  idProduct          0x410a 
  bcdDevice            2.00
  iManufacturer           0 
  iProduct                0 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      1 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval             255

Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             3
  wHubCharacteristic 0x0004
    Ganged power switching
    Compound device
    Ganged overcurrent protection
  bPwrOn2PwrGood       32 * 2 milli seconds
  bHubContrCurrent     20 milli Ampere
  DeviceRemovable    0xfe
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.0103 power enable connect
   Port 2: 0000.0100 power
   Port 3: 0000.0100 power
Device Status:     0x0000
  (Bus Powered)

Links