Go Down

Topic: Arduino Due with Arduino USB Host Shield (Read 186 times) previous topic - next topic



My plan is to connect a standard keyboard to a USB Host Shield onto my Arduino Due.
When I press a key on the keyboard the Due emulates the pressed key to the computer.

To test the USB Host Shield I loaded the USBHID_desc sketch from the USB Host Shield 2.0 master library.

When I deployed the sketch onto the Due over the programming port (without the shiel attached) and opened the serial monitor it showed "Start" like it should. But when I put the USB Host Shield onto the Due I can only deploy the sketch over the native usb port and nothing shows in the serial monitor.

I have no idea what the problem could be.

Please help me I.  :smiley-confuse:


Thats weird.

When I just touched the usb port on the shield with the any usb connecter the serial information get onto the serial monitor.

Now it shows "OSC did not start". What does it mean?


Hi Metalistik,

I also am trying to do the same thing on an Official Arduino USB Host Shield and am experiencing the same problem. I have not come to any resolution yet. At first I thought the shield only operates at 5V since there is no jumper or anything to switch the operating voltages levels, however, the shield does have the IOREF pin and if it uses it as it should than it should be compatible with 3.3V IO.

I know from reading the forums that someone has gotten the USB shield to work before but I'm not sure if it needed to have the 3.3V jumper.

Can anyone shed light on this?




Sep 28, 2015, 06:33 pm Last Edit: Sep 28, 2015, 07:47 pm by promacjoe
 The official USB host shield Uses the Vin pin, and has its own voltage regulator circuit. and yes, according to the schematic, there is a jumper at the IOREF "pin 2 of the power connector",  But the schematic shows it directly connected to 5V through this jumper, and it would damage your DUE board if you used it. " DO NOT CONNECT THIS JUMPER ". the IOREF is also connected to the pull up resistors at SDA1 and SCL1.  the SPI is also used, but the schematic shows it using 3.3V. so there should not be any problem with the power.

The problem you are having should be software related, not in your hardware.


Thanks for the reply promacjoe!

Actually I should have been clear. The board that I have is this: https://www.arduino.cc/en/Main/ArduinoUSBHostShield
There is no jumper for which to select the voltage input for this particular model.

In the schematic I do see the 5V rail connecting to VCCIO through SJ1 but I don't know what SJ1 is referencing on the board itself.

Note that this code was working on an Arduino Uno and this USB Host Shield. I was controlling two DC motors with an Xbox and PS3 controller. I find it odd that after I connect the shield to the Due the com port cannot be used to upload code. The TX and RX pins seems to be at fault here but I don't know.

I have tried using some bi-directional logic converters to interface the shield to the Due but once again, as soon as I connect the RX and TX pins the serial gives up on me.


look at the USB host shield schematic. It shows a jumper, SJ1, connected to J2, pin 2.
" DO NOT CONNECT THIS JUMPER ". if this jumper gets connected, you may be sending 5V into the 3.3V power rail. This will destroy your DUE's Processor.

look at the Arduino due schematic. It shows the TX and RX lines connected to the USB programming controller, as well as pin 0 and 1 of the PWML connector. you cannot use these two pins for two different items at the same time. you must Disable (Not use) one or the other.

Alternatively you can use the second usb port, to program the due.


Following your warning I did I quick Ohm test to see if the 5V rail and VCCIO were shorted and it wasn't the
case so I still feel it should be safe to use. I still believe I should be able to use pin 0 and 1 with the USB Host Shield Communication and the Due Serial and I'm just missing some fundamental piece to this puzzle.

After much searching I was finally able to get a micro-A to USB female cable and so I am going to give your suggestion a go and use the Native port.

I found this useful post over here: http://forum.arduino.cc/index.php?topic=283058.0

Here is the link to the USBHost library: https://github.com/arduino/Arduino/tree/master/libraries/USBHost

Wish me luck!
I'll give you an update if I make progress.


With very little additional effort it worked! Xbox Commands being read and printed over serial.

Thanks for the help promacjoe!


I'm glad you got it working.

The host controller was probably trying to send a signal to the DUE saying, I'm here, talk to me. And when you tried to Upload your program, the signals interfered with each other.

Go Up