Help With Arduino USB Host Shield

Hello all,

I recently purchased an Arduino USB Host shield. I’m having a good bit of trouble getting it to properly initialize/recognize USB devices. I’m using a Leonardo, with the SFE USB host shield, with the Leonardo greenwired to do SPI over pins 11/12/13 instead of the ISP header (and the reset line to D7). When running the “board_qc.ino” program that comes with the USB library, I get mixed results depending on the device I have connected. The board always passes everything up to the “Checking USB device communication.” section, so I know the Arduino can properly talk to the USB controller. Of the eight USB devices I’ve tried, I’ve seen three different failure modes.

Here are the devices and what happens:

  1. Arduino Diecimila (FTDI USB → serial): Works properly, prints out USB descriptor, vendor ID, product ID, etc.

  2. Broadcom chipset USB Bluetooth 4.0 Adapter: Same behavior as Diecimila. Works as expected.

  3. ASIX USB2 → Ethernet adapter: Loops on “Waiting for device …” and “Device connected. Resetting” forever.

  4. Logitech USB Keyboard: Stops on “USB state machine reached error state”

  5. Plugable USB Keyboard: Same as 4), “USB state machine reached error state”

  6. Plugable 7 Port USB 2.0 HUB: Repeated error message of “Error reading device descriptor. Error code D6”

  7. Prolific PL2303 based USB → Serial cable: Works great. Same as 1 and 2.

  8. Hauppauge USB tuner: Same as 1, 2, and 7. Recognized properly.

  9. MY HTC 8X Phone: Never gets past “Waiting for device…” Isn’t recognized at all.

I can’t seem to see any pattern between the devices that work or not.

Anyone experienced anything like this, or is there anything that I’m doing wrong? This has made my mind melt and I need another set of eyes.

Thanks in advance for any help!

Matthew