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.

182 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!!
    0x55 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?

    • You need to cut SS jumper, see hardware manual, under 5 -> https://www.circuitsathome.com/usb-host-shield-hardware-manual

      Let me know if you still have issues.

      • Chris

        Unfortunately, still having issues. I did cut the SS jumper (the instructions were very helpful in getting me where I am now). I wanted to make sure I had cut it properly so I even removed the header on pin 10. Is revision 01 the right revision I should be reading for this board?

        • Revision 01 of what?

          Does the board work without Ethernet shield installed? Did it work before modification? Could you please make a good picture of it and send it to me so I can troubleshoot?

          • Chris

            The qc sketch is returning a Die revision of 01. Many other people seems to get 03.

            I’m not using an ethernet shield, it is the arduino ethernet board (http://arduino.cc/en/Main/ArduinoBoardEthernet). My only shield is the USB host shield.

            The board works perfectly with the USB host shield attached or detached. I have a sketch that gets an IP address on the ethernet port and then performs some operations. All this works fine.

            It’s just that I can’t seem to get the USB host shield to do anything. I’ll take a picture, where should I send it? Thank you for all your help!

          • send it to any of the addresses listed here -> http://www.circuitsathome.com/contact .

  • 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: 0x00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 2
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_CAPABILITIES
        Status code: 0x00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 3
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_DEVICE_TEXT
        Status code: 0x00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 4
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_DEVICE_TEXT
        Status code: 0x00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 5
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_ID
        Status code: 0x00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 6
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_ID
        Status code: 0x00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 7
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_ID
        Status code: 0x00000000
        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: 0x00000000
        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 (0x19)
        Status code: 0xC00000BB
        Status: ERROR
        ________________________________________
        ID: 13
        Function: IRP_MJ_PNP
        Minor function: PNP_IRP_UNKNOWN (0x18)
        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: 0x00000000
        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: 0x00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 24
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_PNP_DEVICE_STATE
        Status code: 0x00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 25
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_ID
        Status code: 0x00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 26
        Function: IRP_MJ_PNP
        Minor function: IRP_MN_QUERY_ID
        Status code: 0x00000000
        Status: STATUS_SUCCESS
        ________________________________________
        ID: 29
        Function: IRP_MJ_SYSTEM_CONTROL
        Status code: 0x00000000
        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: 0x0110
        Device class: 0x00
        Device subclass: 0x00
        Device protocol: 0x00
        Max packet size: 0x08 (8)
        Vendor ID: 0x0CE5
        Product ID: 0x0003
        Device ID: 0x0001
        Manufacturer: 0x01 (ValidationTech)
        Product: 0x02 (Matrix USB)
        Serial number ID: 0x00
        Number of configurations: 1
        Connection status: Device connected
        Current config value: 0x01
        Device bus speed: Low (USB 1.1, 1.5 Mbit/s)
        Device address: 0x01
        Open pipes: 1
        Pipe information
        Endpoint address: 0x81, Input
        Transfer type: Interrupt
        Max packet size: 0x0008 (8)
        Interval: 0x0A (10)
        Configuration descriptor
        Total length: 0x0022
        Number of interfaces: 1
        Configuration value: 0x01
        Configuration ID: 0x00
        Attributes ID: 0x0C
        Max power: 0x00 (0 Ma)
        Interface descriptor
        Interface number: 0x00
        Alternate setting: 0x00
        Num of endpoints: 1
        Interface class: 0x03 (Human Interface Device)
        Interface subclass: 0x00 (No Subclass)
        Interface protocol: 0x00 (None)
        Interface ID: 0x00
        HID descriptor
        HID: 0x0100
        Country code: 0x00
        Number of descriptors: 0x01
        Report descriptor
        Length: 0x20 (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: 0x81, Input
        Transfer type: Interrupt
        Max packet size: 0x0008 (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?

  • I’m working with the example USBHIDBootKbd. I would like to get just the ASCII chars and not the rest of the output but I can’t see where the 0000000000000000 numbers come from no Serial Print statement for them. Where is this?

  • Thanks I think I found the command. So one more question. I’m hooking up a teensy 3.1 to the USB mini Host shield. Just want to make sure the VBus 5V mod is done right. you noted to break the jumper and hook a wire to the Vin on Teensey. do you break it horizontally ie the first block from the left?

  • Right shift for ASCII caps does not work. Left shift works. Right Shift does not produce Cap ASCII character only left SHIFT works.

  • Bobby Sharpe

    Responding to an earlier comment by Aditya, I would also be interested in a CP210x driver. Thanks.

  • Mike

    Hi Oleg,
    Nice work on the USB shield! Got all the examples I tried to work. My main desire with the shield however, is to do serial com to a Silicon Labs cp2101 ‘USB to UART Bridge Controller’ that’s in a home weather station. I had hoped one of the other serial implementations would work.

    I tried commenting out the vendor and id on the PL2303 but no joy. Haven’t figured out how to try and make the acm_terminal or FTDI work yet.

    My thought is to get a data sheet for each and look at the existing code to try and figure which one and how to modify. Any thoughts or help would be appreciated.

  • Mike

    Me again. I can’t believe that looking over my post I noticed the post before it was on the same device! I certainly didn’t do a very thorough search for cp2101 apparently.
    Sorry.

  • Thales

    Hi Oleg,

    i’m having trouble using USB Host Shield 2.0 on a barcode scanner. The barcode when reading the code, does not output in the Serial Monitor and after that is stay in a dead state (It cant trigger), coming back to read new codes after a few seconds. I’m using USBHIDBootKbd.

    From what I’ve been debugging the lib and the Task method of USB class is being reconfigured endlessly. That is, the “HU Configured” keeps popping up from time to time. And also from what I understand, the method Task seems is getting in state USB_STATE_DETACHED from time to time, which makes the lib is continuously being reconfigured.

    Please could say any reason for this to be happening?

    Thanks

    In the USB_desc my class, subclass and protocol are 3, 1, 1. Following the output of USBHID_desc

    Start
    IF OF FSHOST
    USB_STATE_CONFIGURING
    HU Init 2
    Addr:01
    NC:01
    Cnf:01
    HU configured
    0000: 06 00 FF 09 01 A1 01 19 00 29 FF 15 00 25 FF 95
    0010: 01 75 08 81 02 19 00 29 FF 15 00 25 FF 95 01 75
    0020: 08 91 02 C0
    Usage Page Undef(00)
    Usage
    Collection Application
    Usage Min(00)
    Usage Max(FF)
    Logical Min(00)
    Logical Max(FF)
    Report Count(01)
    Report Size(08)
    Input(00000010)
    Usage Min(00)
    Usage Max(FF)
    Logical Min(00)
    Logical Max(FF)
    Report Count(01)
    Report Size(08)
    Output(00000010)
    End Collection

    • Thales

      oleg,

      in fact the scanner is not being reconfigured forever. This happens only when I read the code. At this time the scanner is in a “dead state” and then back to read codes again after 1 or 2 reconfigurations.

    • Thales

      Hi Oleg, me again

      by their experience the USBHIDBootkbd can be used in this barcode scanner with this HID_Desc or I’ll have to write a HID report parsing?

      As I said before, when a code is read, the HIRQ (CONDETIRQ) detects that the device has been disconnected generating a SE0. It may be that reading the code is still being made?

      The HID_Desc:
      0000: 06 00 FF 09 01 A1 01 19 00 29 FF 15 00 25 FF 95
      0010: 01 75 08 81 02 19 00 29 FF 15 00 25 FF 95 01 75
      0020: 08 91 02 C0
      Usage Page Undef(00)
      Usage
      Collection Application
      Usage Min(00)
      Usage Max(FF)
      Logical Min(00)
      Logical Max(FF)
      Report Count(01)
      Report Size(08)
      Input(00000010)
      Usage Min(00)
      Usage Max(FF)
      Logical Min(00)
      Logical Max(FF)
      Report Count(01)
      Report Size(08)
      Output(00000010)
      End Collection

      Thanks for help me.

  • Jan

    Hi,

    LIB and Shield working well. I will connect a Keyboard. But I also wan’t to use an SD Card. So I have two Problems now:
    1. How can I check Status of Num Lock, and How can I set the LED
    2. Some kind of strange behavior with SD Card (SD is SS is on Pin 2) 3 Scenarios:
    a) SS Jumper standart on Pin 10 – SD is working, USB Shield is working ?!?
    b) SS Jumper Open, not connected anywhere and no Mod in UsbCore.h – SD is working, USB Shield is working ?!?
    c) SS Jumper Open, SS connected to Pin 8 and Mod in UsbCore.h – SD is not working, USB Shield is working

    Sure i can use scenario b), but i don’t understand why that works. any Ideas?

    Regards,
    Jan

  • Gernot

    Hi

    just got my shield and it runs great on my UNO. The mouse example runs perfect and now I would like to read out data from an USB sensor by Toradex that measures light /LUX.

    http://www.google.com/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=2&cad=rja&uact=8&ved=0CCYQFjAB&url=http%3A%2F%2Fdocs.toradex.com%2F100093-oak-luminosity-datasheet.pdf&ei=VsJxVOP4CouxygOrloGABQ&usg=AFQjCNFfonOQgmfYQPS3v-l6nTI3ehZzHQ&sig2=UmG7SVW3jkDMJcr6X1kruQ&bvm=bv.80185997,d.bGQ

    where the Sensor is desribed as:

    2.4 USB Interface
    Interface: USB 2.0 Full Speed (12Mbit/s)
    Connector: Standard USB Mini-B
    Device Class: HID
    Vendor ID: 0x1B67
    Product ID: 0x0003
    Sampling Rate: 4ms to 65s, user adjustable (minimum depending on integration time)
    Report Rate: 1ms to 65s, user adjustable

    The USB desc gives me following report

    Start
    0000: 06 00 FF 09 01 A1 01 75 08 95 20 15 00 26 FF 00
    0010: 09 02 B2 E2 01 05 01 09 46 A1 02 05 0A 15 00 26
    0020: FF 07 35 00 46 FF 07 66 01 10 55 0D 75 10 95 01
    0030: 09 01 79 04 82 E2 01 15 00 27 FE FF 00 00 35 00
    0040: 47 FE FF 00 00 67 E1 00 00 01 55 00 75 10 95 01
    0050: 09 02 79 05 82 E2 01 C0 C0
    Usage Page Undef(00)
    Usage
    Collection Application
    Report Size(08)
    Report Count(20)
    Logical Min(00)
    Logical Max(FF00)
    Usage
    Feature(11100010)
    Usage Page Gen Desktop Ctrls(01)
    Usage Vno
    Collection Logical
    Usage Page Ordinal(0A)
    Logical Min(00)
    Logical Max(FF07)
    Physical Min(00)
    Physical Max(FF07)
    Unit(0110)
    Unit Exp(0D)
    Report Size(10)
    Report Count(01)
    Usage Inst0001

    Input(11100010)
    Logical Min(00)
    Logical Max(FEFF0000)
    Physical Min(00)
    Physical Max(FEFF0000)
    Unit(E1000001)
    Unit Exp(00)
    Report Size(10)
    Report Count(01)
    Usage Inst0002

    Input(11100010)
    End Collection
    End Collection Vno Inst0001

    “Every 5 s”

    (05)
    Inst0002
    (05)
    Vno Inst0001

    “Every 5 s”

    (01)
    Inst0002
    (01)
    Vno Inst0001

    “Every 5 s”

    (04)
    Inst0002
    (04)
    Vno Inst0001

    “Every 5 s”

    (00)
    Inst0002
    (00)
    Vno Inst0001

    “Every 5 s”

    (03)
    Inst0002
    (03)
    Vno Inst0001

    “Every 5 s”

    (07)
    Inst0002
    (07)
    Vno Inst0001

    “Every 5 s”

    (02)
    Inst0002
    (02)
    Vno Inst0001

    “Every 5 s”

    (06)
    Inst0002
    (06)
    Vno Inst0001

    the sample rate is set to report every 5 s (indicated above by “Every 5 s”)

    the data in the PC application would look like:

    Time [s] Illuminance [lx]
    0.000000 32.000000
    5.000000 32.000000
    10.000000 33.000000
    15.000000 33.000000
    20.000000 33.000000
    25.000000 33.000000
    30.000000 32.000000
    35.000000 33.000000
    40.000000 1.000000
    45.000000 5.000000
    50.000000 125.000000
    55.000000 112.000000
    60.000000 137.000000
    65.000000 139.000000
    70.000000 23.000000
    75.000000 34.000000
    80.000000 15.000000
    85.000000 14.000000
    90.000000 14.000000
    95.000000 14.000000
    100.000000 14.000000
    105.000000 14.000000
    110.000000 14.000000
    115.000000 15.000000
    120.000000 16.000000
    125.000000 16.000000
    130.000000 16.000000
    135.000000 15.000000
    140.000000 15.000000
    145.000000 15.000000
    150.000000 15.000000
    155.000000 15.000000
    160.000000 15.000000
    165.000000 15.000000

    any help of getting the real data viua arduino would be highly appreciated

    Gernot

  • Silva

    Hello Oleg,
    I’m using the USBHIDBootKbd example to interface a usb keyboard.
    My problem is that if I press a key and don’t release it the example prints in the serial monitor just one letter.
    Example:
    If I press key ‘a’ and don’t release it I should get:
    “aaaaaaaaaaaaaaaaa” and so on,
    but instead I just get “a”.
    What should I modify in the sketch to support this action?
    Many thanks in advance.

  • Marco

    Hello,
    i’m trying to use USB HOST SHIELD LIBRARY 2.0 as keyboard passthrough to a connected PC.
    For me, i’m very beginner, is difficult to understand how it works the sketch “USBHDBootKBD”, the example of the library.
    Is it possible to have from someone very basic commented sketch just to do:
    – pressing “a” on the keyboard give me “b” received by the connected PC
    – pressing “LEFT CTRL” in the keyboard give me a result like i press ” LEFT_GUI” .
    This will help me a lot to understand how to use library !
    Thanks a lot,
    Marco