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.
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!
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!
You need to uncomment the following line: https://github.com/felis/USB_Host_Shield_2.0/blob/master/avrpins.h#L29 and then everything should work.
The reason why it’s needed is because the Teensy and the Leonardo both uses the ATmega32U4, so I introduced that line when I added support for the Arduino Leonardo.
That worked. Thank you.
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?.
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
It uses FTDI USB to serial converter, you need to try an FTDI example -> https://github.com/felis/USB_Host_Shield_2.0/tree/master/examples/ftdi/USBFTDILoopback
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.
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?
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 .
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.
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!
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
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.
It seems that the device is based on CP210x USB to serial converter; I don’t have a driver for it yet, sorry.
As far as combining shields, read this article plus other two linked to at the end -> https://www.circuitsathome.com/mcu/running-multiple-slave-devices-on-arduino-spi-bus-hardware-modifications
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.
At the moment, I don’t have plans for CP210x.
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?
USB_desc will output descriptors from any device, supported or not.
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.
Thanks!
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
That library is quite outdated. Instead you should take a look at the following example: https://github.com/felis/USB_Host_Shield_2.0/blob/master/examples/Bluetooth/Wii/Wii.ino.
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?
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)
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.
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
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?
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 🙂
I need HID report descriptor. Please run this sketch and post the result -> https://github.com/felis/USB_Host_Shield_2.0/tree/master/examples/HID/USBHID_desc
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)
The report sizes for x and y are larger than 8 bits. Look at usages X and Y. The y also seem to be packed in a strange way. Take a look at the following article, it shows one way to deal with this kind of reports -> https://www.circuitsathome.com/mcu/using-logitech-extreme-3d-pro-joystick-with-arduino-hid-library
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
Please enable serial debugging: https://github.com/felis/USB_Host_Shield_2.0#enable-debugging and port the output, and then I will add support for it as well.
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.
Try to check if the power is sufficient. Power the Arduino from external 12V supply and see if it changes anything.
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!
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
which sketches? The 2.0 examples are in ‘examples’ directory of 2.0 tree -> https://github.com/felis/USB_Host_Shield_2.0/tree/master/examples
What needs to be done to make USB Host library work with Arduino Micro?
Will the shield version work out of the box with Due? If not, what modifications need to be made?
Nevermind, got it. Works well on the due.
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?
I’m not sure I understand. This function prints the ASCII -> https://github.com/felis/USB_Host_Shield_2.0/blob/xxxajk/examples/HID/USBHIDBootKbd/USBHIDBootKbd.ino#L91 . If you don’t need anything else, just comment out all other prints in the parser.
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?
Please see the picture of properly cut VBUS jumper on this page about half way down => https://www.pjrc.com/teensy/td_libs_USBHostShield.html
Right shift for ASCII caps does not work. Left shift works. Right Shift does not produce Cap ASCII character only left SHIFT works.
Responding to an earlier comment by Aditya, I would also be interested in a CP210x driver. Thanks.
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.
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.
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
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.
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.
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
Hi,
Please refer to this article for modifications necessary to run multiple SPI slaves -> https://www.circuitsathome.com/mcu/running-multiple-slave-devices-on-arduino-spi-bus
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
This article explains HID reports -> http://www.circuitsathome.com/mcu/usb/visualizing-hid-device-reports-and-report-descriptors
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.
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