Shopping Cart

Posts

HID support for USB Host Shield Library 2.0 released

HID r.2.0 released

HID r.2.0 released

I pleased to announce that after a long and difficult development period Human Input Device AKA HID class support has been added to USB Host Shield Library r.2.0 and is available on gitHub – I suggest downloading the whole directory, since some modifications has been also made to core files to accommodate a new class. HID devices include popular devices like keyboards, mice, joysticks, game controllers, bar code scanners, RFID and magnetic card readers, digital scales and UPSes, to name a few.

I previously wrote about interfacing to HID devices here, here, and here. The code examples in these articles were written for legacy USB Host Shield library and can’t be compiled with current revision, however, the basic principles are the same – the device is periodically polled by the host and sends back data block called report containing changes in device controls (buttons, switches, jog dials etc.) since the last poll. Even though different devices have different report formats, for a certain device, report format is stored in the device in data structure called report descriptor. Therefore, it is possible to learn about device controls from the device itself by parsing its report descriptor.

There is one special case where report format is known in advance. Almost all HID keyboards and mice support so-called boot protocol intended for communication to very simple systems like PC configuration screen when computer runs from BIOS. Keyboard boot protocol report consists of 8 bytes containing state of modifier keys (CTRL, SHIFT,etc.) in the first byte, second byte being reserved, and up to 6 key scan codes in the rest of the report. Mouse boot protocol report consists of 3 bytes, first of which contains state of left, right and middle buttons and other 2 store X and Y travel since last poll.

In many cases boot protocol capabilities are more than enough for an Arduino project; for this reason, boot protocol class is the first to be released. To demonstrate operations of this class, 2 simple sketches has been developed, one for mouse, another for keyboard.

Sketches are designed for USB Host Shield 2.0 attached to compatible Arduino board. Also, it is recommended to use external power supply while working with HID devices – I’ve seen many devices which would refuse to function when Arduino receives power from its USB port only.

The operation of mouse sketch is quite simple: any mouse movement and/or button press causes a corresponding callback to be called. Below is the sketch output:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
000200
dx=2 dy=0
000100
dx=1 dy=0
0002FF
dx=2 dy=-1
020000
R Butt Dn
dx=0 dy=0
000000
R Butt Up
020000
R Butt Dn
030000
L Butt Dn
020000
L Butt Up

Sketch prints mouse report in hex and human-readable form. For example, lines 2 and 4 show mouse movement, lines 8 and 9 show first report when a button was pressed with no movement, the rest is just various button presses/releases.

The keyboard sketch is more advanced. It polls the keyboard, tracks key presses, converts scan codes to ASCII and also sends output report to turn keyboard LEDs on/off when CAPS LOCK, Num Lock, or Scroll Lock key is pressed. Here is the output:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
00001A0000000000
DN      >1A<
ASCII: w
0000000000000000
UP      >1A<
0000080000000000
DN      >08<
ASCII: e
0000000000000000
UP      >08<
00000B0000000000
DN      >0B<
ASCII: h
00000B0700000000
DN      >07<
ASCII: d
00000B070A090000
DN      >0A<
ASCII: g
DN      >09<
ASCII: f
0000070A09000000
UP      >0B<
0000070900000000
UP      >0A<
000007090B000000
DN      >0B<
ASCII: h
0000000000000000
UP      >07<
UP      >09<
UP      >0B<
0000390000000000
DN      >39<
0000390000000000
0000000000000000
UP      >39<
0000390000000000
DN      >39<
0000000000000000
UP      >39<

HID boot devices are quite common, inexpensive and easy to interface to Arduino using USB Host Shield. Two demo sketches should provide good example of HID boot class usage as well as serve as templates to incorporate into other projects. If you still have questions, please ask them in the comments – I will be glad to help. In coming weeks I’m going to write another article or two showing ways to use this new class. Stay tuned!

Oleg.

No related posts.

165 comments to HID support for USB Host Shield Library 2.0 released

  • Marcool

    Hi Oleg,

    Is it possible to use to instances of HIDBoot, one for mouse and other for kbd? How do I set it up?

    Thanks!

  • alexst

    Hi Oleg,

    I am using your mini shield with Teensy 2.0, as described here: http://www.pjrc.com/teensy/td_libs_USBHostShield.html

    The software bundle published under this link works, but it is very basic (qc and demo, does not have HID profile).

    I pulled the most recent version from github and found by some experimentation that it is not working with my Teensy + mini setup. The error was “OSC did not start”.

    I managed to get the library working by copying examples directory from “github” library to “teensy” library. I also copied all files hid*.cpp and hid*.h between the same locations. After that I was able to build in Arduino and run HIDBootKbd profile.

    I have not (yet) spent enough time reading the source code to know what exactly in the github version is causing problems. I wanted to let you know, in case this is something trivial for you to fix.

    Thanks!

  • Hi Oleg
    I am using the Due “KeyboardController” library with only usb.Task();unsigned long time=millis();Serial.println(time);delay(50); and the results are the same as Mr Konrad,Darnok(February 26,27 2013 comments).It seems the usb.Task() is using a lot of resources till other functions that follow will be too slow or impossible to execute fast enough. Since I am going to use the Due doing a lot of functions following the usb, but can not do it. Do you have any quick hint on how to release the resources or make it running as a true background task?.

  • Silviu

    Hello Oleg,

    I try to establish a connection with a USB device that sends some data(12 octets): http://www.willow.co.uk/TelosB_Datasheet.pdf. How should I use this library (as I suppose I must work at low level) to read the data that is being sent, and for start do display it via serial?

    I really tried to find a solution but nothing came around. Just a hint maybe.

    Thank you

  • Chris

    I am getting an error with the qc sketch:

    USB Host Shield Quality Control Routine
    Reading REVISION register… Die revision 01
    SPI long test. Transfers 1MB of data. Each dot is 64K
    Test failed. Value written: 01 read: 00
    Unrecoverable error – test halted!!
    0×55 pattern is transmitted via SPI
    Press RESET to restart test

    I am using a fully assembled USB host shield from circuits @ home with an Arduino Ethernet, which uses pins 10-13 for ethernet, so I rerouted pin 10 on the USB host shield to pin 7 and changed this in the Usb.h library.

    Without this routed, no data is written at all, so I’m confident the routing is working, but still apparently no data can be read. I’m at a loss. Are there any jumpers on the fully assembled board that I need to close or open?

  • Ben

    Hey oleg and co,

    First of all, thanks so much for putting all this together and sharing it with the rest of us.

    I’m having a bit of a problem hooking up a Cobra E-Blue mouse to my Arduino Uno through the USB Host Shield. I can see my SCK line going, MOSI and MISO both have signals that look reasonable at first glance, but I cannot get the serial printing to come out correctly. When I key any of the 4 mouse inputs (right click, left click, middle click, and movement), I get a response on my monitor, but it’s a long single line of garbage. I haven’t been able to locate the code that is printing out to the monitor so I’m having a lot of trouble troubleshooting.

    The monitor output looks like: öôÄYSŒŒÓ“ŒŒYÒÌI¬ ŒI™˜ÄSIÇIâZ™š[Çÿš×þ–ÿZH××8ÿWÿÇþZ×KӗYÒÅÿI –… etc …

    Possible problem:
    My mouse has an unusual data report msg because it has more buttons than a standard mouse. This could be the reason I’m getting garbage messages on my monitor but does not explain why I don’t have the multi-line printout of the example above. I tried commenting out some of the serial.println’s that should be producing the output shown in your example but it has no effect.

    Anyone have any thoughts?

    Thanks!
    Ben

    • Do you have anything readable on the terminal screen? If not, check the terminal speed – should be set to 115200.

      • Ben

        Well I’m embarrassed… that’s a very simple thing to miss… Thanks for the quick response.

        I’m now getting the “OSC did not start” message and will see what I can do about it tomorrow. I won’t bother you with more questions until I actually try and fix it myself!

        • Ben

          Hey oleg,

          Well I don’t quite know what happened (because I don’t think I changed anything except possibly pushing my shield down for ‘better’ connections) but I can run the sketch now. I get button inputs and my movement inputs on my serial monitor so great! I do have a semi-related problem that I’ll describe below but it’s on the back burner now that I can read the mouse data.

          1) I cannot get the third of the “Arduino USB host – First programs” to output anything but disconnected. I run the SPI test and get tons of ‘.’ which means 64k data has been transferred, so that’s good. I run the MAX3421E data register displayer and get (shown below). However, I run the third sketch and it always reads ‘disconnected.’
          RCVFIFO: CB
          SNDFIFO: 67
          SUDFIFO: 00
          RCVBC: 00
          SNDBC: 00
          USBIRQ: 01
          USBIEN: 00
          USBCTL: 00
          CPUCTL: 00
          PINCTL: 18
          REVISION: 13
          IOPINS1: F0
          IOPINS2: F0
          GPINIRQ: 00
          GPINIEN: 00
          GPINPOL: 10
          HIRQ: 08
          HIEN: 00
          MODE: 00
          PERADDR: 00
          HCTL: 00
          HXFR: 00
          HRSL: 03

          2) I don’t know if this is related but this is a problem I believe I was able to fix on my own:
          a. MAX3421E Max; –> this line does not compile until you include the BTD.h file
          b. Max.powerOn(); –> “class ‘MAX3421E’ has no member named ‘powerOn()’” –> I just commented them out and the first two sketches seems ok without them.
          c. I discovered that I hadn’t connected the RESET pin on the USB Shield as it is on a different set of headers. I made a connection but the first two sketches run fine regardless of whether that connection is there.

          3) Lastly, I think it would be a good idea to mention VERY explicitly, that the SparkFun board is not necessarily identical to the Circuits@Home board. The SparkFun board webpage has links directly to your library and the Circuits@Home website in general but I didn’t realize that the boards might not be the same until I saw a comment someone had posted (I bought a SparkFun one and now wish I had just grab a Circuits@Home board instead). I haven’t had to make any changes though so I think the boards are pretty identical, at least for the moment.

          Thanks!!!! I’m sure you’ll be seeing more of me as I struggle through understanding your library!

          Ben

  • Aditya

    Hello Oleg,
    1. I am trying to communicate with a Gardening device which is USB based: http://www.husqvarna.com/files/Gardena/downloads/BA_1864-20_Gatewaybox.pdf
    I just want the basic function to communicate/send data (ON/OFF) for which i have already the hex code which is 9 bytes/octet long.
    How do i send it to my device: which function should i call.
    2. If i am able to do the first step, then i have to communicate with this USB device based on DECT wireless protocol for which i have the shield: http://forum.arduino.cc/index.php?topic=118274.0
    Can I use this shield over your USB shield. If yes, what pin changement should i do. Itried my code of DECT with your USB DESC code, i don’t see anything except OSC did not start.
    Can you provide some guidance.
    Thank you very much.

  • Aditya

    So you think i can’t communicate with CP210x USB to serial converter for now. No other alternative?? (with your shield).
    Are you going to develop this library in near future?
    Thanks again.

  • Aditya

    And yes, when i just run the USB desc sketch with just one shield (USB shield) and this CP210x USB to serial converter Device, it does give me all the descriptor details. Does this sound interesting to you?

  • Ravi

    Hi Oleg,

    When using my mouse (Logitech Optical) I noticed that Mouse Up was not being reported, I traced it to this line
    in hidboot.cpp:43. For my mouse len and sizeof(MOUSEINFO) are equal so changing the line fixed it.

    change hidboot.cpp:43 from
    if (len > sizeof(MOUSEINFO))
    to
    if (len >= sizeof(MOUSEINFO))

    Thought I will report it incase someone else is having the same issue.

    Warm Regds,
    Ravi Kiran.

  • Mike

    Does the USB HID specification allow for 500mA current output from host port?

    If so, does the host send a signal telling the device that it can now provide 500mA of current? Can that signal be sent to a pin to tell a power controller?

    • 500ma is generally available from a PC USB 2.0 port with no additional signalling. The current requirement for embedded USB host port is 100ma.

      The host doesn’t send a signal telling the device that it can now provide 500mA of current.

  • Please help to solve this error:

    WiiRemote.h:378: error ‘EP_RECORD’ does not name a type

    when run example WiiAccelerometer inside the example of WiiRemote library of libraries folder of the 1.05 ARDUINO SKETCH

  • Chris Le Loup

    Hi Oleg,

    Can you suggest how to connect with this device. it says is HID compatible.

    it should constantly send to device a set of bytes to poll. I managed to get device description as below, but I dont know how to send the set of bytes back to it.

    http://www.hwlvegas.com/docs/VTIUSB-1.pdf

    /
    Getting device descriptor
    Descriptor Length: 12
    Descriptor type: 01
    USB version: 0110
    Device class: 00
    Device Subclass: 00
    Device Protocol: 00
    Max.packet size: 08
    Vendor ID: 0CE5
    Product ID: 0003
    Revision ID: 0001
    Mfg.string index: 01
    Prod.string index: 02
    Serial number index: 00
    Number of conf.: 01

    Thanks,
    Chris

    • How does it work with a PC? Does it need its own driver?

      • Chris Le Loup

        No driver needed. it shows up automatically in Device Manager, under Human Interface Device, as a HID-compliant device.

        Using an USB monitor tool I have captures the traffic when device is connected and during normal operation.

        you can see the TX below – this is what I am supposed to send every xxx ms to keep the device going.

        I need to know how to “start the device” and send poll from arduino.
        thanks,
        chris

        ID: 1
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_ID
        Status code: 0×00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 2
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_CAPABILITIES
        Status code: 0×00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 3
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_DEVICE_TEXT
        Status code: 0×00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 4
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_DEVICE_TEXT
        Status code: 0×00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 5
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_ID
        Status code: 0×00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 6
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_ID
        Status code: 0×00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 7
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_ID
        Status code: 0×00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 8
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_ID
        Status code: 0xC00000BB
        Status: ERROR
        ________________________________________
        ID: 9
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_RESOURCE_REQUIREMENTS
        Status code: 0xC00000BB
        Status: ERROR
        ________________________________________
        ID: 10
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_BUS_INFORMATION
        Status code: 0×00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 11
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_RESOURCES
        Status code: 0xC00000BB
        Status: ERROR
        ________________________________________
        ID: 12
        Function: IRP_MJ_PNP
        Minor function: PNP_IRP_UNKNOWN (0×19)
        Status code: 0xC00000BB
        Status: ERROR
        ________________________________________
        ID: 13
        Function: IRP_MJ_PNP
        Minor function: PNP_IRP_UNKNOWN (0×18)
        Status code: 0xC00000BB
        Status: ERROR
        ________________________________________
        ID: 14
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_RESOURCE_REQUIREMENTS
        Status code: 0xC00000BB
        Status: ERROR
        ________________________________________
        ID: 15
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_FILTER_RESOURCE_REQUIREMENTS
        Status code: 0xC00000BB
        Status: ERROR
        ________________________________________
        ID: 16
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_START_DEVICE
        Status code: 0×00000000
        Status: STATUS_SUCCESS
        ________________________________________
        [17] 20131101141848.525 (RX)
        12 01 10 01 00 00 00 08 E5 0C 03 00 01 00 01 02 00 01
        Setup packet
        80 06 00 01 00 00 12 00
        ________________________________________
        [18] 20131101141848.531 (RX)
        09 02 22 00 01 01 00 0C 00
        Setup packet
        80 06 00 02 00 00 09 00
        ________________________________________
        [19] 20131101141848.541 (RX)
        09 02 22 00 01 01 00 0C 00 09 04 00 00 01 03 00 00 00 09 21 00 01 00 01 22 20 00 07 05 81 03
        08 00 0A
        Setup packet
        80 06 00 02 00 00 22 00
        ________________________________________
        Transfer buffer length: 0
        ________________________________________
        [21] 20131101141848.547 (RX)
        ________________________________________
        [22] 20131101141848.557 (RX)
        06 A0 FF 09 01 A1 01 09 03 15 00 25 FF 75 08 95 05 81 02 09 05 15 00 25 FF 75 08 95 05 91 02
        C0
        Setup packet
        81 06 00 22 00 00 60 00
        ________________________________________
        ID: 23
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_CAPABILITIES
        Status code: 0×00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 24
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_PNP_DEVICE_STATE
        Status code: 0×00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 25
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_ID
        Status code: 0×00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 26
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_ID
        Status code: 0×00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 29
        Function: IRP_MJ_SYSTEM_CONTROL
        Status code: 0×00000000
        Status: STATUS_SUCCESS
        ________________________________________
        [27] 20131101141848.562 (RX)
        00 00 00 00 00
        ________________________________________
        [28] 20131101141848.570 (RX)
        00 00 00 00 00
        ________________________________________
        [31] 20131101141848.576 (RX)
        1E 03 56 00 61 00 6C 00 69 00 64 00 61 00 74 00 69 00 6F 00 6E 00 54 00 65 00 63 00 68 00
        Setup packet
        80 06 01 03 09 04 02 02
        ________________________________________
        [30] 20131101141848.578 (RX)
        00 00 00 00 00
        ________________________________________
        [33] 20131101141848.584 (RX)
        16 03 4D 00 61 00 74 00 72 00 69 00 78 00 20 00 55 00 53 00 42 00
        Setup packet
        80 06 02 03 09 04 02 02
        ________________________________________
        [32] 20131101141848.586 (RX)
        00 00 00 00 00
        ________________________________________
        [35] 20131101141848.589 (RX)
        04 03 09 04
        Setup packet
        80 06 00 03 09 04 02 02
        ________________________________________
        [34] 20131101141848.594 (RX)
        00 00 00 00 00
        ________________________________________
        [36] 20131101141848.602 (RX)
        00 00 00 00 00
        ________________________________________
        [37] 20131101141848.610 (RX)
        00 00 00 00 00
        ________________________________________
        [38] 20131101141848.618 (RX)
        00 00 00 00 00
        ________________________________________
        [39] 20131101141848.626 (RX)
        00 00 00 00 00
        ________________________________________
        [40] 20131101141848.634 (RX)
        00 00 00 00 00
        ________________________________________
        [41] 20131101141848.642 (RX)
        00 00 00 00 00
        ________________________________________
        [42] 20131101141848.650 (RX)
        00 00 00 00 00
        ________________________________________
        [43] 20131101141848.658 (RX)
        00 00 00 00 00
        ________________________________________
        [44] 20131101141848.666 (RX)
        00 00 00 00 00
        ________________________________________
        [45] 20131101141848.674 (RX)
        00 00 00 00 00
        ________________________________________
        [46] 20131101141848.682 (RX)
        00 00 00 00 00
        ________________________________________
        [47] 20131101141848.690 (RX)
        00 00 00 00 00
        ________________________________________
        [48] 20131101141848.698 (RX)
        00 00 00 00 00
        ________________________________________
        [51] 20131101141848.698 (TX)
        00 FF FF 00 5C
        ________________________________________
        [51] 20131101141848.702 (RX)
        ________________________________________
        [49] 20131101141848.706 (RX)
        00 00 00 00 00
        ________________________________________
        [50] 20131101141848.714 (RX)
        00 00 00 00 00
        ________________________________________
        [52] 20131101141848.722 (RX)
        00 00 00 00 00
        ________________________________________
        [53] 20131101141848.730 (RX)
        00 00 00 00 00
        ________________________________________
        [54] 20131101141848.738 (RX)
        00 00 00 00 00
        ________________________________________
        [55] 20131101141848.746 (RX)
        00 00 00 00 00
        ________________________________________
        [56] 20131101141848.754 (RX)
        00 00 00 00 00
        ________________________________________
        [57] 20131101141848.762 (RX)
        00 00 00 00 00
        ________________________________________
        [58] 20131101141848.770 (RX)
        00 00 00 00 00
        ________________________________________
        [59] 20131101141848.778 (RX)
        00 00 00 00 00
        ________________________________________
        [60] 20131101141848.786 (RX)
        00 00 00 00 00
        ________________________________________
        [61] 20131101141848.794 (RX)
        00 00 00 00 00
        ________________________________________
        [62] 20131101141848.802 (RX)
        00 00 00 00 5C
        ________________________________________
        [65] 20131101141848.807 (TX)
        00 FF FF 00 5C
        ________________________________________
        [63] 20131101141848.810 (RX)
        00 00 00 00 5C
        ________________________________________
        [65] 20131101141848.811 (RX)
        ________________________________________
        [64] 20131101141848.818 (RX)
        00 00 00 00 5C
        ________________________________________
        [66] 20131101141848.826 (RX)
        00 00 00 00 5C
        ________________________________________
        [67] 20131101141848.834 (RX)
        00 00 00 00 5C
        ________________________________________
        [68] 20131101141848.842 (RX)
        00 00 00 00 5C
        ________________________________________
        [69] 20131101141848.850 (RX)
        00 00 00 00 5C
        ________________________________________
        [70] 20131101141848.858 (RX)
        00 00 00 00 5C
        ________________________________________
        [71] 20131101141848.866 (RX)
        00 00 00 00 5C
        ________________________________________
        [72] 20131101141848.874 (RX)
        00 00 00 00 5C
        ________________________________________
        [73] 20131101141848.882 (RX)
        00 00 00 00 5C
        ________________________________________
        [74] 20131101141848.890 (RX)
        00 00 00 00 5C
        ________________________________________
        [75] 20131101141848.898 (RX)
        00 00 00 00 5C
        ________________________________________
        [76] 20131101141848.906 (RX)
        00 00 00 00 5C
        ________________________________________
        [77] 20131101141848.914 (RX)
        00 00 00 00 5C
        ________________________________________
        [80] 20131101141848.917 (TX)
        00 FF FF 00 5C
        ________________________________________
        [80] 20131101141848.921 (RX)
        ________________________________________
        [78] 20131101141848.922 (RX)
        00 00 00 00 5C
        ________________________________________
        [79] 20131101141848.930 (RX)
        00 00 00 00 5C
        ________________________________________
        [81] 20131101141848.938 (RX)
        00 00 00 00 5C
        ________________________________________
        [82] 20131101141848.946 (RX)
        00 00 00 00 5C
        ________________________________________
        [83] 20131101141848.954 (RX)
        00 00 00 00 5C
        ________________________________________
        [84] 20131101141848.962 (RX)
        00 00 00 00 5C
        ________________________________________
        [85] 20131101141848.970 (RX)
        00 00 00 00 5C
        ________________________________________
        [86] 20131101141848.978 (RX)
        00 00 00 00 5C
        ________________________________________
        [87] 20131101141848.986 (RX)
        00 00 00 00 5C
        ________________________________________
        [88] 20131101141848.994 (RX)
        00 00 00 00 5C
        ________________________________________
        [89] 20131101141849.002 (RX)
        00 00 00 00 5C
        ________________________________________
        [90] 20131101141849.010 (RX)
        00 00 00 00 5C
        ________________________________________
        [91] 20131101141849.018 (RX)
        00 00 00 00 5C
        ________________________________________
        [92] 20131101141849.026 (RX)
        00 00 00 00 5C
        ________________________________________
        [95] 20131101141849.029 (TX)
        00 FF FF 00 5C
        ________________________________________
        [95] 20131101141849.033 (RX)
        ________________________________________
        [93] 20131101141849.034 (RX)
        00 00 00 00 5C
        ________________________________________
        [94] 20131101141849.042 (RX)
        00 00 00 00 5C
        ________________________________________
        [96] 20131101141849.050 (RX)
        00 00 00 00 5C
        ________________________________________
        [97] 20131101141849.058 (RX)
        00 00 00 00 5C
        ________________________________________
        [98] 20131101141849.066 (RX)
        00 00 00 00 5C
        ________________________________________
        [99] 20131101141849.074 (RX)
        00 00 00 00 5C
        ________________________________________
        [100] 20131101141849.082 (RX)
        00 00 00 00 5C
        ________________________________________
        [101] 20131101141849.090 (RX)
        00 00 00 00 5C
        ________________________________________
        [102] 20131101141849.098 (RX)
        00 00 00 00 5C
        ________________________________________
        [103] 20131101141849.106 (RX)
        00 00 00 00 5C
        ________________________________________
        [104] 20131101141849.114 (RX)
        00 00 00 00 5C
        ________________________________________
        [105] 20131101141849.122 (RX)
        00 00 00 00 5C
        ________________________________________
        [106] 20131101141849.130 (RX)
        00 00 00 00 5C
        ________________________________________
        [107] 20131101141849.138 (RX)
        00 00 00 00 5C
        ________________________________________
        [110] 20131101141849.140 (TX)
        00 FF FF 00 5C
        ________________________________________
        [110] 20131101141849.144 (RX)
        ________________________________________
        [108] 20131101141849.146 (RX)
        00 00 00 00 5C
        ________________________________________
        [109] 20131101141849.154 (RX)
        00 00 00 00 5C
        ________________________________________
        [111] 20131101141849.162 (RX)
        00 00 00 00 5C
        ________________________________________
        [112] 20131101141849.170 (RX)
        00 00 00 00 5C
        ________________________________________
        [113] 20131101141849.178 (RX)
        00 00 00 00 5C
        ________________________________________
        [114] 20131101141849.186 (RX)
        00 00 00 00 5C
        ________________________________________
        [115] 20131101141849.194 (RX)
        00 00 00 00 5C
        ________________________________________
        [116] 20131101141849.202 (RX)
        00 00 00 00 5C
        ________________________________________
        [117] 20131101141849.210 (RX)
        00 00 00 00 5C
        ________________________________________
        [118] 20131101141849.218 (RX)
        00 00 00 00 5C
        ________________________________________
        [119] 20131101141849.226 (RX)
        00 00 00 00 5C
        ________________________________________
        [120] 20131101141849.234 (RX)
        00 00 00 00 5C
        ________________________________________
        [121] 20131101141849.242 (RX)
        00 00 00 00 5C
        ________________________________________
        [122] 20131101141849.250 (RX)
        00 00 00 00 5C
        ________________________________________
        [123] 20131101141849.258 (RX)
        00 00 00 00 5C
        ________________________________________
        [124] 20131101141849.266 (RX)
        00 00 00 00 5C
        ________________________________________
        [125] 20131101141849.274 (RX)
        00 00 00 00 5C
        ________________________________________
        [128] 20131101141849.277 (TX)
        00 FF FF 00 5D
        ________________________________________
        [128] 20131101141849.281 (RX)
        ________________________________________
        [126] 20131101141849.282 (RX)
        00 00 00 00 5D
        ________________________________________
        [127] 20131101141849.290 (RX)
        00 00 00 00 5D
        ________________________________________
        [129] 20131101141849.298 (RX)
        00 00 00 00 5D
        ________________________________________
        [130] 20131101141849.306 (RX)
        00 00 00 00 5D
        ________________________________________
        [131] 20131101141849.314 (RX)
        00 00 00 00 5D
        ________________________________________
        [132] 20131101141849.322 (RX)
        00 00 00 00 5D
        ________________________________________
        [133] 20131101141849.330 (RX)
        00 00 00 00 5D
        ________________________________________
        [134] 20131101141849.338 (RX)
        00 00 00 00 5D
        ________________________________________
        [135] 20131101141849.346 (RX)
        00 00 00 00 5D
        ________________________________________
        [136] 20131101141849.354 (RX)
        00 00 00 00 5D
        ________________________________________
        [137] 20131101141849.362 (RX)
        00 00 00 00 5D
        ________________________________________
        [138] 20131101141849.370 (RX)
        00 00 00 00 5D
        ________________________________________
        [139] 20131101141849.378 (RX)
        00 00 00 00 5D
        ________________________________________
        [140] 20131101141849.386 (RX)
        00 00 00 00 5D
        ________________________________________
        [143] 20131101141849.391 (TX)
        00 FF FF 00 5D
        ________________________________________
        [141] 20131101141849.394 (RX)
        00 00 00 00 5D
        ________________________________________
        [143] 20131101141849.395 (RX)
        ________________________________________
        [142] 20131101141849.402 (RX)
        00 00 00 00 5D
        ________________________________________
        [144] 20131101141849.410 (RX)
        00 00 00 00 5D
        ________________________________________
        [145] 20131101141849.418 (RX)
        00 00 00 00 5D
        ________________________________________
        [146] 20131101141849.426 (RX)
        00 00 00 00 5D
        ________________________________________
        [147] 20131101141849.434 (RX)
        00 00 00 00 5D
        ________________________________________
        [148] 20131101141849.442 (RX)
        00 00 00 00 5D
        ________________________________________
        [149] 20131101141849.450 (RX)
        00 00 00 00 5D
        ________________________________________
        [150] 20131101141849.458 (RX)
        00 00 00 00 5D
        ________________________________________
        [151] 20131101141849.466 (RX)
        00 00 00 00 5D
        ________________________________________
        [152] 20131101141849.474 (RX)
        00 00 00 00 5D
        ________________________________________
        [153] 20131101141849.482 (RX)
        00 00 00 00 5D
        ________________________________________
        [154] 20131101141849.490 (RX)
        00 00 00 00 5D
        ________________________________________
        [157] 20131101141849.494 (TX)
        00 FF FF 00 5D
        ________________________________________
        [155] 20131101141849.498 (RX)
        00 00 00 00 5D
        ________________________________________
        [157] 20131101141849.498 (RX)
        ________________________________________
        [156] 20131101141849.506 (RX)
        00 00 00 00 5D
        ________________________________________
        [158] 20131101141849.514 (RX)
        00 00 00 00 5D
        ________________________________________
        [159] 20131101141849.522 (RX)
        00 00 00 00 5D
        ________________________________________
        [160] 20131101141849.530 (RX)
        00 00 00 00 5D
        ________________________________________
        [161] 20131101141849.538 (RX)
        00 00 00 00 5D
        ________________________________________
        [162] 20131101141849.546 (RX)
        00 00 00 00 5D
        ________________________________________
        [163] 20131101141849.554 (RX)
        00 00 00 00 5D
        ________________________________________
        [164] 20131101141849.562 (RX)
        00 00 00 00 5D
        ________________________________________
        [165] 20131101141849.570 (RX)
        00 00 00 00 5D
        ________________________________________
        [166] 20131101141849.578 (RX)
        00 00 00 00 5D
        ________________________________________
        [167] 20131101141849.586 (RX)
        00 00 00 00 5D
        ________________________________________
        [168] 20131101141849.594 (RX)
        00 00 00 00 5D
        ________________________________________
        [169] 20131101141849.602 (RX)
        00 00 00 00 5D
        ________________________________________
        [172] 20131101141849.603 (TX)
        00 FF FF 00 5E
        ________________________________________
        [172] 20131101141849.607 (RX)
        ________________________________________
        [170] 20131101141849.610 (RX)
        00 00 00 00 5E
        ________________________________________
        [171] 20131101141849.618 (RX)
        00 00 00 00 5E
        ________________________________________
        [173] 20131101141849.626 (RX)
        00 00 00 00 5E
        ________________________________________
        [174] 20131101141849.634 (RX)
        00 00 00 00 5E
        ________________________________________
        [175] 20131101141849.642 (RX)
        00 00 00 00 5E
        ________________________________________
        [176] 20131101141849.650 (RX)
        00 00 00 00 5E
        ________________________________________
        [177] 20131101141849.658 (RX)
        00 00 00 00 5E
        ________________________________________
        [178] 20131101141849.666 (RX)
        00 00 00 00 5E
        ________________________________________
        [179] 20131101141849.674 (RX)
        00 00 00 00 5E
        ________________________________________
        [180] 20131101141849.682 (RX)
        00 00 00 00 5E
        ________________________________________
        [181] 20131101141849.690 (RX)
        00 00 00 00 5E
        ________________________________________
        [182] 20131101141849.698 (RX)
        00 00 00 00 5E
        ________________________________________
        [183] 20131101141849.706 (RX)
        00 00 00 00 5E
        ________________________________________
        [186] 20131101141849.712 (TX)
        00 FF FF 00 5E
        ________________________________________
        [184] 20131101141849.714 (RX)
        00 00 00 00 5E
        ________________________________________
        [186] 20131101141849.716 (RX)
        ________________________________________
        [185] 20131101141849.722 (RX)
        00 00 00 00 5E
        ________________________________________
        [187] 20131101141849.730 (RX)
        00 00 00 00 5E
        ________________________________________
        [188] 20131101141849.738 (RX)
        00 00 00 00 5E
        ________________________________________
        [189] 20131101141849.746 (RX)
        00 00 00 00 5E
        ________________________________________
        [190] 20131101141849.754 (RX)
        00 00 00 00 5E
        ________________________________________
        [191] 20131101141849.762 (RX)
        00 00 00 00 5E
        ________________________________________
        [192] 20131101141849.770 (RX)
        00 00 00 00 5E
        ________________________________________
        [193] 20131101141849.786 (RX)
        00 00 00 00 5E
        ________________________________________
        [194] 20131101141849.794 (RX)
        00 00 00 00 5E
        ________________________________________
        [195] 20131101141849.802 (RX)
        00 00 00 00 5E
        ________________________________________
        [196] 20131101141849.810 (RX)
        00 00 00 00 5E
        ________________________________________
        [199] 20131101141849.825 (TX)
        00 FF FF 00 5E
        ________________________________________
        [197] 20131101141849.826 (RX)
        00 00 00 00 5E
        ________________________________________
        [199] 20131101141849.829 (RX)
        ________________________________________
        [198] 20131101141849.834 (RX)
        00 00 00 00 5E
        ________________________________________
        [200] 20131101141849.842 (RX)
        00 00 00 00 5E
        ________________________________________
        [201] 20131101141849.850 (RX)
        00 00 00 00 5E
        ________________________________________
        [202] 20131101141849.858 (RX)
        00 00 00 00 5E
        ________________________________________
        [203] 20131101141849.866 (RX)
        00 00 00 00 5E
        ________________________________________
        [204] 20131101141849.874 (RX)
        00 00 00 00 5E
        ________________________________________
        [205] 20131101141849.882 (RX)
        00 00 00 00 5E
        ________________________________________
        [206] 20131101141849.890 (RX)
        00 00 00 00 5E
        ________________________________________
        [207] 20131101141849.898 (RX)
        00 00 00 00 5E
        ________________________________________
        [208] 20131101141849.906 (RX)
        00 00 00 00 5E
        ________________________________________
        [209] 20131101141849.914 (RX)
        00 00 00 00 5E
        ________________________________________
        [210] 20131101141849.922 (RX)
        00 00 00 00 5E
        ________________________________________
        [211] 20131101141849.930 (RX)
        00 00 00 00 5E
        ________________________________________
        [214] 20131101141849.936 (TX)
        00 FF FF 00 5F
        ________________________________________
        [212] 20131101141849.938 (RX)
        00 00 00 00 5E
        ________________________________________
        [214] 20131101141849.940 (RX)
        ________________________________________
        [213] 20131101141849.946 (RX)
        00 00 00 00 5F
        ________________________________________
        [215] 20131101141849.954 (RX)
        00 00 00 00 5F
        ________________________________________
        [216] 20131101141849.962 (RX)
        00 00 00 00 5F
        ________________________________________
        [217] 20131101141849.970 (RX)
        00 00 00 00 5F
        ________________________________________
        [218] 20131101141849.978 (RX)
        00 00 00 00 5F
        ________________________________________
        [219] 20131101141849.986 (RX)
        00 00 00 00 5F
        ________________________________________
        [220] 20131101141849.994 (RX)
        00 00 00 00 5F
        ________________________________________
        [221] 20131101141850.002 (RX)
        00 00 00 00 5F
        ________________________________________
        [222] 20131101141850.010 (RX)
        00 00 00 00 5F
        ________________________________________
        [223] 20131101141850.018 (RX)
        00 00 00 00 5F
        ________________________________________
        [224] 20131101141850.026 (RX)
        00 00 00 00 5F
        ________________________________________
        [225] 20131101141850.034 (RX)
        00 00 00 00 5F
        ________________________________________
        [226] 20131101141850.042 (RX)
        00 00 00 00 5F
        ________________________________________
        [229] 20131101141850.043 (TX)
        00 FF FF 00 5F
        ________________________________________
        [229] 20131101141850.047 (RX)
        ________________________________________
        [227] 20131101141850.050 (RX)
        00 00 00 00 5F
        ________________________________________
        [228] 20131101141850.058 (RX)
        00 00 00 00 5F
        ________________________________________
        [230] 20131101141850.066 (RX)
        00 00 00 00 5F
        ________________________________________
        [231] 20131101141850.074 (RX)
        00 00 00 00 5F
        ________________________________________
        [232] 20131101141850.082 (RX)
        00 00 00 00 5F
        ________________________________________
        [233] 20131101141850.090 (RX)
        00 00 00 00 5F
        ________________________________________
        [234] 20131101141850.098 (RX)
        00 00 00 00 5F
        ________________________________________
        [235] 20131101141850.106 (RX)
        00 00 00 00 5F
        ________________________________________
        [236] 20131101141850.114 (RX)
        00 00 00 00 5F
        ________________________________________
        [237] 20131101141850.122 (RX)
        00 00 00 00 5F
        ________________________________________
        [238] 20131101141850.130 (RX)
        00 00 00 00 5F
        ________________________________________
        [239] 20131101141850.138 (RX)
        00 00 00 00 5F
        ________________________________________
        [240] 20131101141850.146 (RX)
        00 00 00 00 5F
        ________________________________________
        [243] 20131101141850.151 (TX)
        00 FF FF 00 5F
        ________________________________________
        [241] 20131101141850.154 (RX)
        00 00 00 00 5F
        ________________________________________
        [243] 20131101141850.155 (RX)
        ________________________________________
        [242] 20131101141850.162 (RX)
        00 00 00 00 5F
        ________________________________________
        [244] 20131101141850.170 (RX)
        00 00 00 00 5F
        ________________________________________
        [245] 20131101141850.178 (RX)
        00 00 00 00 5F
        ________________________________________
        [246] 20131101141850.186 (RX)
        00 00 00 00 5F
        ________________________________________
        [247] 20131101141850.194 (RX)
        00 00 00 00 5F
        ________________________________________
        [248] 20131101141850.202 (RX)
        00 00 00 00 5F
        ________________________________________
        [249] 20131101141850.210 (RX)
        00 00 00 00 5F
        ________________________________________
        [250] 20131101141850.218 (RX)
        00 00 00 00 5F
        ________________________________________
        [251] 20131101141850.226 (RX)
        00 00 00 00 5F
        ________________________________________
        [252] 20131101141850.234 (RX)
        00 00 00 00 5F
        ________________________________________
        [253] 20131101141850.242 (RX)
        00 00 00 00 5F
        ________________________________________
        [254] 20131101141850.250 (RX)
        00 00 00 00 5F
        ________________________________________
        [255] 20131101141850.258 (RX)
        00 00 00 00 5F
        ________________________________________
        [258] 20131101141850.263 (TX)
        00 FF FF 00 60
        ________________________________________
        [256] 20131101141850.266 (RX)
        00 00 00 00 5F
        ________________________________________
        [258] 20131101141850.267 (RX)
        ________________________________________
        [257] 20131101141850.274 (RX)
        00 00 00 00 60
        ________________________________________
        [259] 20131101141850.282 (RX)
        00 00 00 00 60
        ________________________________________
        [260] 20131101141850.290 (RX)
        00 00 00 00 60
        ________________________________________
        [261] 20131101141850.298 (RX)
        00 00 00 00 60
        ________________________________________
        [262] 20131101141850.306 (RX)
        00 00 00 00 60
        ________________________________________
        [263] 20131101141850.314 (RX)
        00 00 00 00 60
        ________________________________________
        [264] 20131101141850.322 (RX)
        00 00 00 00 60
        ________________________________________
        [265] 20131101141850.330 (RX)
        00 00 00 00 60
        ________________________________________
        [266] 20131101141850.338 (RX)
        00 00 00 00 60
        ________________________________________
        [267] 20131101141850.346 (RX)
        00 00 00 00 60
        ________________________________________
        [268] 20131101141850.354 (RX)
        00 00 00 00 60
        ________________________________________
        [269] 20131101141850.362 (RX)
        00 00 00 00 60
        ________________________________________
        [270] 20131101141850.370 (RX)
        00 00 00 00 60
        ________________________________________
        [273] 20131101141850.370 (TX)
        00 FF FF 00 60
        ________________________________________
        [273] 20131101141850.374 (RX)
        ________________________________________
        [271] 20131101141850.378 (RX)
        00 00 00 00 60
        ________________________________________
        [272] 20131101141850.386 (RX)
        00 00 00 00 60
        ________________________________________
        [274] 20131101141850.394 (RX)
        00 00 00 00 60
        ________________________________________
        [275] 20131101141850.402 (RX)
        00 00 00 00 60
        ________________________________________
        [276] 20131101141850.410 (RX)
        00 00 00 00 60
        ________________________________________
        [277] 20131101141850.418 (RX)
        00 00 00 00 60
        ________________________________________
        [278] 20131101141850.426 (RX)
        00 00 00 00 60
        ________________________________________
        [279] 20131101141850.434 (RX)
        00 00 00 00 60
        ________________________________________
        [280] 20131101141850.442 (RX)
        00 00 00 00 60
        ________________________________________
        [281] 20131101141850.450 (RX)
        00 00 00 00 60
        ________________________________________
        [282] 20131101141850.458 (RX)
        00 00 00 00 60
        ________________________________________
        [283] 20131101141850.466 (RX)
        00 00 00 00 60
        ________________________________________
        [284] 20131101141850.474 (RX)
        00 00 00 00 60
        ________________________________________
        [285] 20131101141850.482 (RX)
        00 00 00 00 60
        ________________________________________
        [288] 20131101141850.482 (TX)
        00 FF FF 00 60
        ________________________________________
        [288] 20131101141850.486 (RX)
        ________________________________________
        [286] 20131101141850.490 (RX)
        00 00 00 00 60
        ________________________________________
        [287] 20131101141850.498 (RX)
        00 00 00 00 60
        ________________________________________
        [289] 20131101141850.506 (RX)
        00 00 00 00 60
        ________________________________________
        [290] 20131101141850.514 (RX)
        00 00 00 00 60
        ________________________________________
        [291] 20131101141850.522 (RX)
        00 00 00 00 60
        ________________________________________
        [292] 20131101141850.530 (RX)
        00 00 00 00 60
        ________________________________________
        [293] 20131101141850.538 (RX)
        00 00 00 00 60
        ________________________________________
        [294] 20131101141850.546 (RX)
        00 00 00 00 60
        ________________________________________
        [295] 20131101141850.554 (RX)
        00 00 00 00 60
        ________________________________________
        [296] 20131101141850.562 (RX)
        00 00 00 00 60
        ________________________________________
        [297] 20131101141850.570 (RX)
        00 00 00 00 60
        ________________________________________
        [298] 20131101141850.578 (RX)
        00 00 00 00 60
        ________________________________________
        [299] 20131101141850.586 (RX)
        00 00 00 00 60
        ________________________________________
        [302] 20131101141850.586 (TX)
        00 FF FF 00 61
        ________________________________________
        [302] 20131101141850.590 (RX)
        ________________________________________
        [300] 20131101141850.594 (RX)
        00 00 00 00 61
        ________________________________________
        [301] 20131101141850.602 (RX)
        00 00 00 00 61
        ________________________________________
        [303] 20131101141850.610 (RX)
        00 00 00 00 61
        ________________________________________
        [304] 20131101141850.618 (RX)
        00 00 00 00 61
        ________________________________________
        [305] 20131101141850.626 (RX)
        00 00 00 00 61
        ________________________________________
        [306] 20131101141850.634 (RX)
        00 00 00 00 61
        ________________________________________
        [307] 20131101141850.642 (RX)
        00 00 00 00 61
        ________________________________________
        [308] 20131101141850.650 (RX)
        00 00 00 00 61
        ________________________________________
        [309] 20131101141850.658 (RX)
        00 00 00 00 61
        ________________________________________
        [310] 20131101141850.666 (RX)
        00 00 00 00 61
        ________________________________________
        [311] 20131101141850.674 (RX)
        00 00 00 00 61
        ________________________________________
        [312] 20131101141850.682 (RX)
        00 00 00 00 61
        ________________________________________
        [313] 20131101141850.690 (RX)
        00 00 00 00 61
        ________________________________________
        [314] 20131101141850.698 (RX)
        00 00 00 00 61
        ________________________________________
        [316] 20131101141850.696 (TX)
        00 FF FF 00 61
        ________________________________________
        [316] 20131101141850.700 (RX)
        ________________________________________
        [315] 20131101141850.706 (RX)
        00 00 00 00 61
        ________________________________________
        [317] 20131101141850.714 (RX)
        00 00 00 00 61
        ________________________________________
        [318] 20131101141850.722 (RX)
        00 00 00 00 61
        ________________________________________
        [319] 20131101141850.730 (RX)
        00 00 00 00 61
        ________________________________________
        [320] 20131101141850.738 (RX)
        00 00 00 00 61
        ________________________________________
        [321] 20131101141850.746 (RX)
        00 00 00 00 61
        ________________________________________
        [322] 20131101141850.754 (RX)
        00 00 00 00 61
        ________________________________________
        [323] 20131101141850.762 (RX)
        00 00 00 00 61
        ________________________________________
        [324] 20131101141850.770 (RX)
        00 00 00 00 61
        ________________________________________
        [325] 20131101141850.778 (RX)
        00 00 00 00 61
        ________________________________________
        [326] 20131101141850.786 (RX)
        00 00 00 00 61
        ________________________________________
        [327] 20131101141850.794 (RX)
        00 00 00 00 61
        ________________________________________
        [328] 20131101141850.802 (RX)
        00 00 00 00 61
        ________________________________________
        [331] 20131101141850.806 (TX)
        00 FF FF 00 61
        ________________________________________
        [329] 20131101141850.810 (RX)
        00 00 00 00 61
        ________________________________________
        [331] 20131101141850.810 (RX)
        ________________________________________
        [330] 20131101141850.818 (RX)
        00 00 00 00 61
        ________________________________________
        [332] 20131101141850.826 (RX)
        00 00 00 00 61
        ________________________________________
        [333] 20131101141850.834 (RX)
        00 00 00 00 61
        ________________________________________
        [334] 20131101141850.842 (RX)
        00 00 00 00 61
        ________________________________________
        [335] 20131101141850.850 (RX)
        00 00 00 00 61
        ________________________________________
        [336] 20131101141850.858 (RX)
        00 00 00 00 61
        ________________________________________
        [337] 20131101141850.866 (RX)
        00 00 00 00 61
        ________________________________________
        [338] 20131101141850.874 (RX)
        00 00 00 00 61
        ________________________________________
        [339] 20131101141850.882 (RX)
        00 00 00 00 61
        ________________________________________
        [340] 20131101141850.890 (RX)
        00 00 00 00 61
        ________________________________________
        [341] 20131101141850.898 (RX)
        00 00 00 00 61
        ________________________________________
        [342] 20131101141850.906 (RX)
        00 00 00 00 61
        ________________________________________
        [345] 20131101141850.913 (TX)
        00 FF FF 00 62
        ________________________________________
        [343] 20131101141850.914 (RX)
        00 00 00 00 61
        ________________________________________
        [345] 20131101141850.917 (RX)
        ________________________________________
        [344] 20131101141850.922 (RX)
        00 00 00 00 62
        ________________________________________
        [346] 20131101141850.930 (RX)
        00 00 00 00 62
        ________________________________________
        [347] 20131101141850.938 (RX)
        00 00 00 00 62
        ________________________________________
        [348] 20131101141850.946 (RX)
        00 00 00 00 62
        ________________________________________
        [349] 20131101141850.954 (RX)
        00 00 00 00 62
        ________________________________________
        [350] 20131101141850.962 (RX)
        00 00 00 00 62
        ________________________________________
        [351] 20131101141850.970 (RX)
        00 00 00 00 62
        ________________________________________
        [352] 20131101141850.978 (RX)
        00 00 00 00 62
        ________________________________________
        [353] 20131101141850.986 (RX)
        00 00 00 00 62
        ________________________________________
        [354] 20131101141850.994 (RX)
        00 00 00 00 62
        ________________________________________
        [355] 20131101141851.002 (RX)
        00 00 00 00 62
        ________________________________________
        [356] 20131101141851.010 (RX)
        00 00 00 00 62
        ________________________________________
        [357] 20131101141851.018 (RX)
        00 00 00 00 62
        ________________________________________
        [358] 20131101141851.026 (RX)
        00 00 00 00 62
        ________________________________________
        [361] 20131101141851.026 (TX)
        00 FF FF 00 62
        ________________________________________
        [361] 20131101141851.030 (RX)
        ________________________________________
        [359] 20131101141851.034 (RX)
        00 00 00 00 62
        ________________________________________
        [360] 20131101141851.042 (RX)
        00 00 00 00 62
        ________________________________________
        [362] 20131101141851.050 (RX)
        00 00 00 00 62
        ________________________________________
        [363] 20131101141851.058 (RX)
        00 00 00 00 62
        ________________________________________
        [364] 20131101141851.066 (RX)
        00 00 00 00 62
        ________________________________________
        [365] 20131101141851.074 (RX)
        00 00 00 00 62
        ________________________________________
        [366] 20131101141851.082 (RX)
        00 00 00 00 62
        ________________________________________
        [367] 20131101141851.090 (RX)
        00 00 00 00 62
        ________________________________________
        [368] 20131101141851.098 (RX)
        00 00 00 00 62
        ________________________________________
        [369] 20131101141851.106 (RX)
        00 00 00 00 62
        ________________________________________
        [370] 20131101141851.114 (RX)
        00 00 00 00 62
        ________________________________________
        [371] 20131101141851.122 (RX)
        00 00 00 00 62
        ________________________________________
        [372] 20131101141851.130 (RX)
        00 00 00 00 62
        ________________________________________
        [375] 20131101141851.133 (TX)
        00 FF FF 00 62
        ________________________________________
        [375] 20131101141851.137 (RX)
        ________________________________________
        [373] 20131101141851.138 (RX)
        00 00 00 00 62
        ________________________________________
        [374] 20131101141851.146 (RX)
        00 00 00 00 62
        ________________________________________
        [376] 20131101141851.154 (RX)
        00 00 00 00 62
        ________________________________________
        [377] 20131101141851.162 (RX)
        00 00 00 00 62
        ________________________________________
        [378] 20131101141851.170 (RX)
        00 00 00 00 62
        ________________________________________
        [379] 20131101141851.178 (RX)
        00 00 00 00 62
        ________________________________________
        [380] 20131101141851.186 (RX)
        00 00 00 00 62
        ________________________________________
        [381] 20131101141851.194 (RX)
        00 00 00 00 62
        ________________________________________
        [382] 20131101141851.202 (RX)
        00 00 00 00 62
        ________________________________________
        [383] 20131101141851.210 (RX)
        00 00 00 00 62
        ________________________________________
        [384] 20131101141851.218 (RX)
        00 00 00 00 62
        ________________________________________
        [385] 20131101141851.226 (RX)
        00 00 00 00 62
        ________________________________________
        [386] 20131101141851.234 (RX)
        00 00 00 00 62
        ________________________________________
        [387] 20131101141851.242 (RX)
        00 00 00 00 62
        ________________________________________
        [390] 20131101141851.245 (TX)
        00 FF FF 00 63
        ________________________________________
        [390] 20131101141851.249 (RX)
        ________________________________________
        [388] 20131101141851.250 (RX)
        00 00 00 00 63
        ________________________________________
        [389] 20131101141851.258 (RX)
        00 00 00 00 63
        ________________________________________
        [391] 20131101141851.266 (RX)
        00 00 00 00 63
        ________________________________________
        [392] 20131101141851.274 (RX)
        00 00 00 00 63
        ________________________________________
        [393] 20131101141851.282 (RX)
        00 00 00 00 63
        ________________________________________
        [394] 20131101141851.290 (RX)
        00 00 00 00 63
        ________________________________________
        [395] 20131101141851.298 (RX)
        00 00 00 00 63
        ________________________________________
        [396] 20131101141851.306 (RX)
        00 00 00 00 63
        ________________________________________
        [397] 20131101141851.314 (RX)
        00 00 00 00 63
        ________________________________________
        [398] 20131101141851.322 (RX)
        00 00 00 00 63
        ________________________________________
        [399] 20131101141851.330 (RX)
        00 00 00 00 63
        ________________________________________
        [400] 20131101141851.338 (RX)
        00 00 00 00 63
        ________________________________________
        [401] 20131101141851.346 (RX)
        00 00 00 00 63
        ________________________________________
        [402] 20131101141851.354 (RX)
        00 00 00 00 63
        ________________________________________
        [405] 20131101141851.355 (TX)
        00 FF FF 00 63
        ________________________________________
        [405] 20131101141851.359 (RX)
        ________________________________________
        [403] 20131101141851.362 (RX)
        00 00 00 00 63
        ________________________________________
        [404] 20131101141851.370 (RX)
        00 00 00 00 63
        ________________________________________
        [406] 20131101141851.378 (RX)
        00 00 00 00 63
        ________________________________________
        [407] 20131101141851.386 (RX)
        00 00 00 00 63
        ________________________________________
        [408] 20131101141851.394 (RX)
        00 00 00 00 63
        ________________________________________
        [409] 20131101141851.401 (RX)
        00 00 00 00 63
        ________________________________________
        [410] 20131101141851.410 (RX)
        00 00 00 00 63
        ________________________________________
        [411] 20131101141851.418 (RX)
        00 00 00 00 63
        ________________________________________
        [412] 20131101141851.426 (RX)
        00 00 00 00 63
        ________________________________________
        [413] 20131101141851.434 (RX)
        00 00 00 00 63
        ________________________________________
        [414] 20131101141851.442 (RX)
        00 00 00 00 63
        ________________________________________
        [415] 20131101141851.450 (RX)
        00 00 00 00 63
        ________________________________________
        [416] 20131101141851.458 (RX)
        00 00 00 00 63
        ________________________________________
        [419] 20131101141851.462 (TX)
        00 FF FF 00 63
        ________________________________________
        [417] 20131101141851.466 (RX)
        00 00 00 00 63
        ________________________________________
        [419] 20131101141851.466 (RX)
        ________________________________________
        [418] 20131101141851.474 (RX)
        00 00 00 00 63
        ________________________________________
        [420] 20131101141851.482 (RX)
        00 00 00 00 63
        ________________________________________
        [421] 20131101141851.490 (RX)
        00 00 00 00 63
        ________________________________________
        [422] 20131101141851.498 (RX)
        00 00 00 00 63
        ________________________________________
        [423] 20131101141851.506 (RX)
        00 00 00 00 63
        ________________________________________
        [424] 20131101141851.514 (RX)
        00 00 00 00 63
        ________________________________________
        [425] 20131101141851.522 (RX)
        00 00 00 00 63
        ________________________________________
        [426] 20131101141851.530 (RX)
        00 00 00 00 63
        ________________________________________
        [427] 20131101141851.538 (RX)
        00 00 00 00 63
        ________________________________________
        [428] 20131101141851.546 (RX)
        00 00 00 00 63
        ________________________________________
        [429] 20131101141851.554 (RX)
        00 00 00 00 63
        ________________________________________
        [430] 20131101141851.562 (RX)
        00 00 00 00 63
        ________________________________________
        [433] 20131101141851.568 (TX)
        00 FF FF 00 64
        ________________________________________
        [431] 20131101141851.570 (RX)
        00 00 00 00 63
        ________________________________________
        [433] 20131101141851.571 (RX)
        ________________________________________
        [432] 20131101141851.578 (RX)
        00 00 00 00 64
        ________________________________________
        [434] 20131101141851.580 (RX)
        1E 03 56 00 61 00 6C 00 69 00 64 00 61 00 74 00 69 00 6F 00 6E 00 54 00 65 00 63 00 68 00
        Setup packet
        80 06 01 03 09 04 02 02
        ________________________________________
        [437] 20131101141851.589 (RX)
        16 03 4D 00 61 00 74 00 72 00 69 00 78 00 20 00 55 00 53 00 42 00
        Setup packet
        80 06 02 03 09 04 02 02
        ________________________________________
        [435] 20131101141851.594 (RX)
        00 00 00 00 64
        ________________________________________
        [436] 20131101141851.602 (RX)
        00 00 00 00 64
        ________________________________________
        [438] 20131101141851.610 (RX)
        00 00 00 00 64
        ________________________________________
        [439] 20131101141851.618 (RX)
        00 00 00 00 64
        ________________________________________
        [440] 20131101141851.626 (RX)
        00 00 00 00 64
        ________________________________________
        [441] 20131101141851.634 (RX)
        00 00 00 00 64
        ________________________________________
        [442] 20131101141851.642 (RX)
        00 00 00 00 64
        ________________________________________
        [443] 20131101141851.650 (RX)
        00 00 00 00 64
        ________________________________________
        [444] 20131101141851.658 (RX)
        00 00 00 00 64
        ________________________________________
        [445] 20131101141851.666 (RX)
        00 00 00 00 64
        ________________________________________
        [446] 20131101141851.674 (RX)
        00 00 00 00 64
        ________________________________________
        [449] 20131101141851.678 (TX)
        00 FF FF 00 64
        ________________________________________
        [447] 20131101141851.682 (RX)
        00 00 00 00 64
        ________________________________________
        [449] 20131101141851.683 (RX)
        ________________________________________
        [448] 20131101141851.690 (RX)
        00 00 00 00 64
        ________________________________________
        [450] 20131101141851.698 (RX)
        00 00 00 00 64
        ________________________________________
        [451] 20131101141851.706 (RX)
        00 00 00 00 64
        ________________________________________
        [452] 20131101141851.714 (RX)
        00 00 00 00 64
        ________________________________________
        [453] 20131101141851.722 (RX)
        00 00 00 00 64
        ________________________________________
        [454] 20131101141851.729 (RX)
        00 00 00 00 64
        ________________________________________
        [455] 20131101141851.737 (RX)
        00 00 00 00 64
        ________________________________________
        [456] 20131101141851.746 (RX)
        00 00 00 00 64
        ________________________________________
        [457] 20131101141851.754 (RX)
        00 00 00 00 64
        ________________________________________
        [458] 20131101141851.762 (RX)
        00 00 00 00 64
        ________________________________________
        [459] 20131101141851.770 (RX)
        00 00 00 00 64
        ________________________________________
        [460] 20131101141851.778 (RX)
        00 00 00 00 64
        ________________________________________
        [461] 20131101141851.786 (RX)
        00 00 00 00 64
        ________________________________________
        [464] 20131101141851.787 (TX)
        00 FF FF 00 64
        ________________________________________
        [464] 20131101141851.791 (RX)
        ________________________________________
        [462] 20131101141851.794 (RX)
        00 00 00 00 64
        ________________________________________
        [463] 20131101141851.802 (RX)
        00 00 00 00 64
        ________________________________________
        [465] 20131101141851.810 (RX)
        00 00 00 00 64
        ________________________________________
        [466] 20131101141851.818 (RX)
        00 00 00 00 64
        ________________________________________
        [467] 20131101141851.826 (RX)
        00 00 00 00 64
        ________________________________________
        [468] 20131101141851.834 (RX)
        00 00 00 00 64
        ________________________________________
        [469] 20131101141851.842 (RX)
        00 00 00 00 64
        ________________________________________
        [470] 20131101141851.850 (RX)
        00 00 00 00 64
        ________________________________________
        [471] 20131101141851.858 (RX)
        00 00 00 00 64
        ________________________________________
        [472] 20131101141851.865 (RX)
        00 00 00 00 64
        ________________________________________
        [473] 20131101141851.874 (RX)
        00 00 00 00 64
        ________________________________________
        [474] 20131101141851.881 (RX)
        00 00 00 00 64
        ________________________________________
        [475] 20131101141851.890 (RX)
        00 00 00 00 64
        ________________________________________
        [476] 20131101141851.898 (RX)
        00 00 00 00 64
        ________________________________________
        [479] 20131101141851.899 (TX)
        00 FF FF 00 65
        ________________________________________
        [479] 20131101141851.902 (RX)
        ________________________________________
        [477] 20131101141851.905 (RX)
        00 00 00 00 65
        ________________________________________
        [478] 20131101141851.914 (RX)
        00 00 00 00 65
        ________________________________________
        [480] 20131101141851.922 (RX)
        00 00 00 00 65
        ________________________________________
        [481] 20131101141851.930 (RX)
        00 00 00 00 65
        ________________________________________
        [482] 20131101141851.938 (RX)
        00 00 00 00 65
        ________________________________________
        [483] 20131101141851.946 (RX)
        00 00 00 00 65
        ________________________________________
        [484] 20131101141851.954 (RX)
        00 00 00 00 65
        ________________________________________
        [485] 20131101141851.962 (RX)
        00 00 00 00 65
        ________________________________________
        [486] 20131101141851.970 (RX)
        00 00 00 00 65
        ________________________________________
        [487] 20131101141851.978 (RX)
        00 00 00 00 65
        ________________________________________
        [488] 20131101141851.986 (RX)
        00 00 00 00 65
        ________________________________________
        [489] 20131101141851.994 (RX)
        00 00 00 00 65
        ________________________________________
        [490] 20131101141852.002 (RX)
        00 00 00 00 65
        ________________________________________
        [493] 20131101141852.005 (TX)
        00 FF FF 00 65
        ________________________________________
        [493] 20131101141852.008 (RX)
        ________________________________________
        [491] 20131101141852.010 (RX)
        00 00 00 00 65
        ________________________________________
        [492] 20131101141852.017 (RX)
        00 00 00 00 65
        ________________________________________
        [494] 20131101141852.025 (RX)
        00 00 00 00 65
        ________________________________________
        [495] 20131101141852.034 (RX)
        00 00 00 00 65
        ________________________________________
        [496] 20131101141852.041 (RX)
        00 00 00 00 65
        ________________________________________
        [497] 20131101141852.049 (RX)
        00 00 00 00 65
        ________________________________________
        [498] 20131101141852.057 (RX)
        00 00 00 00 65
        ________________________________________
        [499] 20131101141852.066 (RX)
        00 00 00 00 65
        ________________________________________
        [500] 20131101141852.074 (RX)
        00 00 00 00 65
        ________________________________________
        [501] 20131101141852.082 (RX)
        00 00 00 00 65
        ________________________________________
        [502] 20131101141852.090 (RX)
        00 00 00 00 65
        ________________________________________
        [503] 20131101141852.098 (RX)
        00 00 00 00 65
        ________________________________________
        [504] 20131101141852.106 (RX)
        00 00 00 00 65
        ________________________________________
        [505] 20131101141852.113 (RX)
        00 00 00 00 65
        ________________________________________
        [508] 20131101141852.117 (TX)
        00 FF FF 00 65
        ________________________________________
        [508] 20131101141852.121 (RX)
        ________________________________________
        [506] 20131101141852.121 (RX)

      • Chris Le Loup

        And this is the windows descriptor.

        thanks,
        chris

        File: \??\USB#VID_0CE5&PID_0003#5&367d7&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
        Driver key name: {745a17a0-74d3-11d0-b6fe-00a0c90f57da}066
        Device instance ID: USB\VID_0CE5&PID_0003\5&367D7&0&1
        Device hardware ID: USB\VID_0CE5&PID_0003&REV_0001
        Device service: HidUsb
        Device friendly name:
        Device location: Port_#0001.Hub_#0004
        Device physical object name: \Device\USBPDO-9
        Device descriptor
        USB: 0×0110
        Device class: 0×00
        Device subclass: 0×00
        Device protocol: 0×00
        Max packet size: 0×08 (8)
        Vendor ID: 0x0CE5
        Product ID: 0×0003
        Device ID: 0×0001
        Manufacturer: 0×01 (ValidationTech)
        Product: 0×02 (Matrix USB)
        Serial number ID: 0×00
        Number of configurations: 1
        Connection status: Device connected
        Current config value: 0×01
        Device bus speed: Low (USB 1.1, 1.5 Mbit/s)
        Device address: 0×01
        Open pipes: 1
        Pipe information
        Endpoint address: 0×81, Input
        Transfer type: Interrupt
        Max packet size: 0×0008 (8)
        Interval: 0x0A (10)
        Configuration descriptor
        Total length: 0×0022
        Number of interfaces: 1
        Configuration value: 0×01
        Configuration ID: 0×00
        Attributes ID: 0x0C
        Max power: 0×00 (0 Ma)
        Interface descriptor
        Interface number: 0×00
        Alternate setting: 0×00
        Num of endpoints: 1
        Interface class: 0×03 (Human Interface Device)
        Interface subclass: 0×00 (No Subclass)
        Interface protocol: 0×00 (None)
        Interface ID: 0×00
        HID descriptor
        HID: 0×0100
        Country code: 0×00
        Number of descriptors: 0×01
        Report descriptor
        Length: 0×20 (32)
        06 A0 FF: USAGE_PAGE (FFA0)
        09 01: USAGE (1)
        A1 01: COLLECTION (Application)
        09 03: USAGE (3)
        15 00: LOGICAL_MINIMUM (0)
        25 FF: LOGICAL_MAXIMUM (-127)
        75 08: REPORT_SIZE (8)
        95 05: REPORT_COUNT (5)
        81 02: INPUT (Data, Var, Abs)
        09 05: USAGE (5)
        15 00: LOGICAL_MINIMUM (0)
        25 FF: LOGICAL_MAXIMUM (-127)
        75 08: REPORT_SIZE (8)
        95 05: REPORT_COUNT (5)
        91 02: OUTPUT (Data, Var, Abs)
        C0: END_COLLECTION
        Endpoint descriptor
        Endpoint address: 0×81, Input
        Transfer type: Interrupt
        Max packet size: 0×0008 (8)
        Interval: 0x0A (10)

        • You need to find out what is being sent in the output report. Look for “Set Report” traffic to endpoint 0.

          • Chris Le Loup

            Thanks! I was able to initialize it as a HIDUniversal and using Set report I am sending constantly the data to the device.

            //sending poll
            int nRet = Usb.ctrlReq(1, 0, bmREQ_HIDOUT, HID_REQUEST_SET_REPORT, 1, 1, 1, nbytes, nbytes, data, NULL);

            Thanks,
            Chris

  • Alex_IME

    Hi Oleg, I’m currently on a project using your system arduino + usb_host. I correctly retrieve coordinates.
    Did you had any problems with the sensivity? For the same distance in X and Y. The result is Y=10*X.
    X never exceeds the size of byte (char). But Y varies between positive and negative value (exceeding the maximum, I think)

    • I haven’t seen mice with different sensitivity on X and Y. Both should be signed type and usually occupy a byte. Could it be possible that yours has 10-bit X and Y? Can you post HID report descriptor?

  • Alex_IME

    My HID Report:

    Device descriptor:
    Descriptor Length: 12
    Descriptor type: 01
    USB version: 0200
    Device class: 00
    Device Subclass: 00
    Device Protocol: 00
    Max.packet size: 08
    Vendor ID: 046D
    Product ID: C063
    Revision ID: 5700
    Mfg.string index: 01
    Prod.string index: 02
    Serial number index: 00
    Number of conf.: 01

    Configuration descriptor:
    Total length: 0022
    Num.intf: 01
    Conf.value: 01
    Conf.string: 00
    Attr.: A0
    Max.pwr: 31
    Interface descriptor:
    Intf.number: 00
    Alt.: 00
    Endpoints: 01
    Class: 03
    Subclass: 01
    Protocol: 02
    Intf.string: 00
    Unknown descriptor:
    Length: 09
    Type: 21
    Contents: 100100012247000705
    Endpoint descriptor:
    Endpoint address: 81
    Attr.: 03
    Max.pkt size: 0006
    Polling interval: 0A

    Thanks to help me :)

  • Alex_IME

    hid Report
    Start
    0000: 05 01 09 02 A1 01 09 01 A1 00 05 09 19 01 29 08
    0010: 15 00 25 01 95 08 75 01 81 02 95 00 81 03 05 01
    0020: 09 30 09 31 16 01 F8 26 FF 07 75 0C 95 02 81 06
    0030: 09 38 15 81 25 7F 75 08 95 01 81 06 05 0C 0A 38
    0040: 02 95 01 81 06 C0 C0
    Usage Page Gen Desktop Ctrls(01)
    Usage Mouse
    Collection Application
    Usage Pointer
    Collection Physical
    Usage Page Button(09)
    Usage Min(01)
    Usage Max(08)
    Logical Min(00)
    Logical Max(01)
    Report Count(08)
    Report Size(01)
    Input(00000010)
    Report Count(00)
    Input(00000011)
    Usage Page Gen Desktop Ctrls(01)
    Usage X
    Usage Y
    Logical Min(01F8)
    Logical Max(FF07)
    Report Size(0C)
    Report Count(02)
    Input(00000110)
    Usage Wheel
    Logical Min(81)
    Logical Max(7F)
    Report Size(08)
    Report Count(01)
    Input(00000110)
    Usage Page Consumer(0C)
    Usage AC Mir H
    Report Count(01)
    Input(00000110)
    End Collection
    End Collection Mouse Pointer Btn0001
    (00) Btn0002
    (00) Btn0003
    (00) Btn0004
    (00) Btn0005
    (00) Btn0006
    (00) Btn0007
    (00) Btn0008
    (00)

    X Y(FF)(00)
    Wheel(00)
    AC Mir H(00)
    Mouse Pointer Btn0001
    (00) Btn0002
    (00) Btn0003
    (00) Btn0004
    (00) Btn0005
    (00) Btn0006
    (00) Btn0007
    (00) Btn0008
    (00)

  • zabir

    hi , i’m trying to interface a usb chinese variant xbox controller ,bt, the example from USB_host_shield_20 isn’t working….can u help me about this?…i want to control a bot with this gamepad…
    -thank you

  • Imre

    Hi Oleg, I’m trying to connect my wireless gamepad with arduino with the HIDJoystick example. It works for some seconds but than every time the wireless connection breaks down. I don’t know whats the problem. Thank you for your help.

  • Ademir

    Hi,

    I just bought Arduino Due, and i’m willing to give it a try on the library, at least to check if the onboard USB host port would work. Thing is, USB Library doesn’t compile on IDE v. 1.5.5! I keep getting this error:
    error: ‘class USB’ has no member named ‘Init’
    I double-checked the paths and imports, until i tried with IDE version 1.0.5, which does compile every example, even the PTP Library ones.
    BUT: only v. 1.5.5 has support on Due board!

    Has anyone experienced this? Any thoughts?

    Thanks!

  • Ademir

    Hi again,
    I checked the USBHost source on Arduino IDE and it seems to be based on Oleg’s USB Host Library. I’m fairly new to Arduino and my C++ knowledge is buried in a 10-year deep cave, but i’m gonna do some digging and share the results (or frustrations) here.

    See you!

  • This library won’t work with on-board USB of Due.

  • How can these sketches be designed for USB HOST 2.0 when the structures called are not in the libraries? EP_RECORD for example. There are others. Really having a hard time finding any USB HOST 2 sketches that will correctly run and compile on UNO. What gives? Thanks, Ed

  • CT

    What needs to be done to make USB Host library work with Arduino Micro?

  • integrate

    Will the shield version work out of the box with Due? If not, what modifications need to be made?

Leave a Reply

  

  

  



You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">