USB host shield + barcode scanner: Scanner doesn't scan

Hello everyone,

I have this barcode scanner from Datalogic, QD2310 (manual), connect it to a USB host shiled (Sparkfun 09947) stacking with Arduino UNO.
I ran the board_qc sketch and passed the tests, below is the result for USBHID_desc sketch:

Start
0000: 05 8C 09 02 A1 01 09 12 A1 02 85 01 15 00 26 FF 
0010: 00 75 08 95 01 06 A1 FF 0A 06 A2 82 02 01 95 02 
0020: 0A 08 A2 82 02 01 95 03 05 8C 09 FB 09 FC 09 FD 
0030: 82 02 01 95 38 09 FE 82 02 01 25 01 75 01 95 08 
0040: 09 FF 81 02 C0 09 15 A1 02 85 02 26 FF 00 75 08 
0050: 95 01 06 A1 FF 0A 02 A2 82 02 01 25 02 95 01 0A 
0060: 01 A2 82 02 01 26 FF 00 95 01 09 00 82 02 01 95 
0070: 01 0A 07 A2 82 02 01 95 3B 0A 03 A2 25 01 75 01 

Usage Page Bar Code Scan(8C)
Usage
Collection Application
Usage
Collection Logical
Report Id(01)
Logical Min(00)
Logical Max(FF00)
Report Size(08)
Report Count(01)
Usage Page Undef(A1)
Usage
Input(00000010)
Report Count(02)
Usage
Input(00000010)
Report Count(03)
Usage Page Bar Code Scan(8C)
Usage
Usage
Usage
Input(00000010)
Report Count(38)
Usage
Input(00000010)
Logical Max(01)
Report Size(01)
Report Count(08)
Usage
Input(00000010)
End Collection
Usage
Collection Logical
Report Id(02)
Logical Max(FF00)
Report Size(08)
Report Count(01)
Usage Page Undef(A1)
Usage
Input(00000010)
Logical Max(02)
Report Count(01)
Usage
Input(00000010)
Logical Max(FF00)
Report Count(01)
Usage
Input(00000010)
Report Count(01)
Usage
Input(00000010)
Report Count(3B)
Usage
Logical Max(01)

Now the scanner doesn't work when I connect it to the USB host shield, while it scans fine if connected to a PC. Based on what I read in the manual, it is in disabled state when connected to the USB shield (I can only get out of disabled state to programming state, but not actually scanning codes).(attached 1)

Some of my guesses and what I have tried so far:

  • Need to set up a different interface type when connecting to USB host shield. I tried every type in the Manual, none of them worked.
  • By every type, I meant the default setting of every type. Maybe the scanner requires further config than default in order to work with the shield. In such case, what is the right interface to pick?
  • Could it be the sketch has to wake up/enable the scanner from the disabled state? Maybe this scanner need a driver to be installed on the host shield?

Any help is very much appreciated! Thank you.

Danny

I suggest configuring the interface for Keyboard Wedge, USB Keyboard with standard key encoding. Then run the example program USBHIDBootKbd. According to the manual, if the LED is on solid, it should be ready to scan.

Ok I finally got my scanner to work: I used sketch USBHIDMultimediaKbd from the library, instead of the USBHIDBootKbd, and it worked :expressionless: :|. Looked like the sketch allows to pick compatible interface for the scanner.