Nano and USB Host Shield

Hi all,

To summarise: I can't get an Arduino Nano to work with a USB Host Shield.

I have a project that is fully functional that I am trying to tidy up and improve. The existing project uses an Uno with a USB Host Shield and Adafruit RGB LCD Shield all stacked together. I then have cables running from the top of the LCD shield to an external component (RC transmitter). My intention is to condense it all down to a custom PCB with a thinner form factor, no cables, and preconfigured components to minimise assembly. I would like to sell this product, albeit in very small volumes.

To do this, my thoughts are to use an Arduino Nano, regular USB Host Shield (because I can't find a smaller one), and a lower cost LCD Shield than the Adafruit one, all mounted on headers on a custom PCB, so that once the headers are soldered I can just drop the boards on.

The problem I'm having is that I'm currently breadboarding the connections between a Nano and USB Host Shield, and can't get my sketch to run. Initially I just connected what seemed to be the necessary pins (5V, GND, D7-13), but when uploading my sketch or example sketches like PS4USB I consistently get the 'OSC did not start' error. Reading around this seems to indicate a problem with the connection between the two boards, so I proceeded to connect every single pin, but still the same issue. Somewhere said the Nano can't power the USB Host Shield sufficiently, but my USB peripheral was fully powered when plugged in; still I tried providing external power and same issue.

My understanding is that the Nano is just a small form factor Uno, but I'm wondering if there is some issue that means my idea of substituting it won't work.

The USB Host shield is this one: https://5.imimg.com/data5/XK/RR/MY-1833510/usb-host-shield-for-arduino.pdf. I can confirm it is not a dud because when used on the Uno the sketch runs.

I'd really appreciate any help as I feel like I've hit a dead end. If I can't make progress my alternative plan is to mount the Uno upside down on male headers :slight_smile:

10 Connect all wires.
20 Verify it works.
30 Remove one wire.
40 GOTO 20

The USB host shield clone boards are copies of the Circuit@Home board. Fortunately, schematics of the original are still available.

https://chome.nerpa.tech/downloads/#Arduino_USB_Host_Shield_Documentation

Base on short look, I think you need to add 3.3V and RST connections. D7 and D8 are not used.

After another look, MOSI, MISO, SCLK, RST connect via the UHS 2x6 ICSP connector, not D10, D11, D12.

Thanks for your replies.

customcontroller - I tried connecting jumpers from the 6 (2x3) ICSP connectors on the Nano, and also ensured that the 3.3v and RST pins were wired, but still had the same issue. Should I make sure NOT to wire any pins (i.e. D10-12) if they are connected by the ICSP?

xfpd - thanks for that link, I'll look into it some more.

I connected a Leonardo and UHS board via jumper wires. The wiring should be the same for Nano and UHS. I do not have a Nano handy.

  • Connect 6 pins on the ICSP connector.
  • Connect 3.3V, 5V, and ground.
  • On the UHS board connect the SS pin to the D10 pin on the Uno/Nano.
  • On the UHS board connect the INT pin to the D9 pin on the Uno/Nano.

At this point, the Leo successfully ran the board_qc example and displayed the USB descriptors of a USB keyboard. Connecting more pins should not hurt as long they connect straight through.

EDIT: I found an Uno clone and verified it works with the same wiring.
EDIT2: D9 and D10 fixed. Was reversed.

Thanks so much for going to this effort. I replicated what you did, and tried this wiring setup between my Uno and the UHS, and had a successful test.

I then replicated the wiring on the Nano and had a failed test:

Circuits At Home 2011
USB Host Shield Quality Control Routine
Reading REVISION register... Die revision invalid. Value returned: 00
Unrecoverable error - test halted!!
0x55 pattern is transmitted via SPI
Press RESET to restart test

I have 2 different UHS and both had the same result. I only have the one Nano so couldn't test a different one of those, but this is making me think the pinout of the Nano is different to the Uno?

I note from this Arduino Nano — Arduino Official Store that the Nano has SS on pin 10 (rather than 9 according to your wiring), and no INT. I don't really know what I'm talking about but do I somehow need to allocate INT to a pin?

I will correct my previous post because I reversed (SORRY!) INT and SS! I double checked my wiring.

  • On the UHS board the SS pin must be connected to D10 on the Uno/Nano.
  • On the UHS board the INT pin must be connected D9 on the Uno/Nano.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.