USB Host Shield 2.0: No power to USB port

Hi everyone

I am running into a power issue with a USB Host Shield 2.0 and could really use some troubleshooting advice. I have everything wired and stacked correctly, but I am getting absolutely zero power to the USB port, and my mouse won't turn on.

My Hardware:

  • Arduino Leonardo
  • USB Host Shield 2.0 (MAX3421E)
  • Redragon M910-KS Mouse

The Setup & Issue:
The boards are stacked, and out of the box, the required jumper pads are already soldered (the VBUS PWR 5V pad is bridged, and the lower 5V and 3.3V pads are bridged). Despite this, when I plug the Leonardo into my PC, the mouse gets no power.

I tried a few basic troubleshooting steps to see where the power was stopping:

  • Attempt 1: I ran a jumper wire from the Leonardo's 5V pin directly to the VBUS solder pad on the shield. The mouse flickered on for a split second, then immediately died.
  • Attempt 2: Suspecting the mouse was pulling too much power from the PC's USB port, I plugged a 12V/1A DC wall adapter into the Leonardo and tried the same 5V to VBUS hotwire. This time, the mouse didn't light up at all. (The Leonardo stayed powered on perfectly).
  • Attempt 3: Right next to the USB port, there is an unsoldered split-pad labeled 3.3V. Just to test the port itself, I touched my 5V jumper wire to the right half of that 3.3V pad (the side that leads directly into the port). The mouse instantly powered on and stayed on perfectly.

My Questions:

  • Based on these symptoms, does this indicate a short on the VBUS line, or is there something else I am missing about how power is routed to the port?
  • If the normal route is dead, is it safe to permanently solder a 5V wire to that specific half of the 3.3V pad, or will that damage the MAX3421E chip?
  • Are there any other tests I should run to properly diagnose this? (I don't have a multimeter)

Apologies in advance if some terminologies were used incorrectly, first time dipping my toes into this!

Thanks!!

Please post schematics. Hand drawn and a picture posted usually works fine.

Thank you Railroader.

Test 1 & 2

[12V Wall Adapter] --->          [Leonardo]
                                     |
[Mac] -----------USB-----------> [Leonardo]
                                 [Stacked]
                                 [Shield] ---------USB---------> [Mouse]

Test 3

[Mac] -----------USB-----------> [Leonardo]                      [Shield] ---------USB---------> [Mouse]
                                     |                               |
                                   [GND] ---------Jumper---------> [GND]
                                   [5V]  ---------Jumper---------> [3.3V Split-Pad (Right half)]

I will post a photo once I am back at my desk. Sorry in advance if this is not descriptive enough.

I don't know the products involved, but my bet is you needa seperatewall wart to power the shield.

in using-usb-host-shield-with-arduino there is a mention of issues with power

I think my host shield might be a defective board, or a cheap clone or something. Because I'd just noticed when I stack the boards together, it immediately loses connection and disappears from my laptop or PC, and if I do leave them stacked for a few seconds the Leonardo heats up pretty quickly.

sounds like there is a short circuit somewhere
are you sure you have the USB shield in correct orientation to the Leonardo board?
are you sure the USB shield is compatible with the Leonardo?

if you are looking for a microcontroller which directly (no need for a shield) supports USB OTG have a look at the ESP32-S3 which supports both USB device and USB Host

e.g. ESP32-S3-DevKit-1 acting as USB keyboard Host

the ESP32 series is supported by the ARDUINO IDE

sounds like there is a short circuit somewhere

I am brainstorming with multiple LLMs regarding this and they are all suspecting the same as well.

are you sure you have the USB shield in correct orientation to the Leonardo board?

Yes, everything is aligned properly.

are you sure the USB shield is compatible with the Leonardo?

I am honestly not sure, but it is the same one I have seen various people using online.

if you are looking for a microcontroller which directly (no need for a shield) supports USB OTG have a look at the ESP32-S3 which supports both USB device and USB Host

Question, how were you able to power up the keyboard via the ESP? If I did my research correctly, the ESP can't output power from either USB ports, right?

USB devices require 5V power and the ESP32-S3-DevKitC-1 OTG USB port can supply this by shorting a link on the underside of the PCB

e.g. a ESP32-S3-DevKitC-1ESP32-S3-DevKitC-1 acting as a Serial OTG Host to a USB-RS232 module connected to a Quectel modem board

if the ESP32-S3 PCB does not have a OTG USB connector one can be added by connecting a USB Type A female connector to GPIO20 and GPIO19 (plus 5V for USB OTG Host - red wire in photo below)
e.g. a Heltec ESP32S3 WiFi LoRa V3 acting as a Serial OTG Host to a USB-RS232 module connected to a Quectel modem board

I see what you mean, this is very insightful, thank you very much.

I have tried soldering (bridging the gap?) the USB->OTG on the back of the PCB, but I am honestly unsure if I have done it right. Then I've plugged things in and the mouse is not turning on.

Really appreciate everyone's help!

my ESP32-S3-DevKitC-1 works OK as a USB OTG Host Mouse when I solder the USB>OTG on the back of the PCB

using EspUsbHost library running File>Examples>EspUsbHost>EspUsbHostMouse

// Tools>Board to ESP32-S3-USB-OTG  
//     Upload Mode "UART0/Hardware CDC"
//     USB Mode "USB-OTG"

serial monitor output testing with two mice

connected: device: address=3 portId=0x01 vid=0458 pid=003a class=0x00(per-interface) speed=low-speed product="Optical Mouse"
pos: x=-200 y=-96  delta: dx=0 dy=1 wheel=0
pos: x=-202 y=-96  delta: dx=-2 dy=0 wheel=0
pos: x=-203 y=-96  delta: dx=-1 dy=0 wheel=0
pos: x=-205 y=-96  delta: dx=-2 dy=0 wheel=0
pos: x=-203 y=-95  delta: dx=2 dy=1 wheel=0
pos: x=-201 y=-94  delta: dx=2 dy=1 wheel=0
pos: x=-200 y=-94  delta: dx=1 dy=0 wheel=0
pos: x=-198 y=-94  delta: dx=2 dy=0 wheel=0
pos: x=-195 y=-94  delta: dx=3 dy=0 wheel=0
pos: x=-194 y=-94  delta: dx=1 dy=0 wheel=0
pos: x=-193 y=-93  delta: dx=1 dy=1 wheel=0
pos: x=-193 y=-89  delta: dx=0 dy=4 wheel=0
pos: x=-193 y=-77  delta: dx=0 dy=12 wheel=0
pos: x=-191 y=-73  delta: dx=2 dy=4 wheel=0
pos: x=-188 y=-63  delta: dx=3 dy=10 wheel=0
pos: x=-184 y=-56  delta: dx=4 dy=7 wheel=0
pos: x=-184 y=-47  delta: dx=0 dy=9 wheel=0
…
pos: x=-2585 y=-591  delta: dx=0 dy=-1 wheel=0
pos: x=-2587 y=-591  delta: dx=-2 dy=0 wheel=0
pos: x=-2588 y=-589  delta: dx=-1 dy=2 wheel=0
pos: x=-2588 y=-588  delta: dx=0 dy=1 wheel=0
pos: x=-2588 y=-587  delta: dx=0 dy=1 wheel=0
pos: x=-2588 y=-588  delta: dx=0 dy=-1 wheel=0
pos: x=-2589 y=-589  delta: dx=-1 dy=-1 wheel=0
pos: x=-2590 y=-589  delta: dx=-1 dy=0 wheel=0
left   press
left   release
pos: x=-2593 y=-589  delta: dx=-3 dy=0 wheel=0
pos: x=-2594 y=-589  delta: dx=-1 dy=0 wheel=0
right  press
right  release
pos: x=-2597 y=-587  delta: dx=-3 dy=2 wheel=0
pos: x=-2598 y=-586  delta: dx=-1 dy=1 wheel=0
pos: x=-2598 y=-584  delta: dx=0 dy=2 wheel=0
pos: x=-2598 y=-583  delta: dx=0 dy=1 wheel=0
…..
pos: x=-2547 y=-3346  delta: dx=-6 dy=5 wheel=0
pos: x=-2551 y=-3341  delta: dx=-4 dy=5 wheel=0
pos: x=-2555 y=-3335  delta: dx=-4 dy=6 wheel=0
pos: x=-2556 y=-3334  delta: dx=-1 dy=1 wheel=0
pos: x=-2557 y=-3333  delta: dx=-1 dy=1 wheel=0
pos: x=-2558 y=-3332  delta: dx=-1 dy=1 wheel=0
pos: x=-2558 y=-3331  delta: dx=0 dy=1 wheel=0
disconnected: device: address=3 portId=0x01 vid=0458 pid=003a class=0x00(per-interface) speed=low-speed product="Optical Mouse"
…




connected: device: address=4 portId=0x01 vid=045e pid=00a4 class=0x00(per-interface) speed=low-speed product="Microsoft(R) Compact Optical Mouse"
pos: x=-2557 y=-3330  delta: dx=1 dy=1 wheel=0
pos: x=-2559 y=-3330  delta: dx=-2 dy=0 wheel=0
pos: x=-2559 y=-3328  delta: dx=0 dy=2 wheel=0
pos: x=-2560 y=-3328  delta: dx=-1 dy=0 wheel=0
pos: x=-2560 y=-3329  delta: dx=0 dy=-1 wheel=0
pos: x=-2559 y=-3329  delta: dx=1 dy=0 wheel=0
pos: x=-2556 y=-3329  delta: dx=3 dy=0 wheel=0
pos: x=-2556 y=-3330  delta: dx=0 dy=-1 wheel=0
pos: x=-2555 y=-3329  delta: dx=1 dy=1 wheel=0
pos: x=-2556 y=-3330  delta: dx=-1 dy=-1 wheel=0
pos: x=-2557 y=-3330  delta: dx=-1 dy=0 wheel=0
pos: x=-2554 y=-3327  delta: dx=3 dy=3 wheel=0
…
pos: x=-2464 y=-3233  delta: dx=-1 dy=0 wheel=0
pos: x=-2465 y=-3234  delta: dx=-1 dy=-1 wheel=0
left   press
pos: x=-2465 y=-3233  delta: dx=0 dy=1 wheel=0
left   release
pos: x=-2466 y=-3233  delta: dx=-1 dy=0 wheel=0
right  press
right  release
pos: x=-2464 y=-3234  delta: dx=2 dy=-1 wheel=0
pos: x=-2463 y=-3234  delta: dx=1 dy=0 wheel=0
pos: x=-2462 y=-3234  delta: dx=1 dy=0 wheel=0
pos: x=-2463 y=-3234  delta: dx=-1 dy=0 wheel=0
pos: x=-2463 y=-3233  delta: dx=0 dy=1 wheel=0
pos: x=-2464 y=-3234  delta: dx=-1 dy=-1 wheel=0
pos: x=-2463 y=-3233  delta: dx=1 dy=1 wheel=0
pos: x=-2464 y=-3234  delta: dx=-1 dy=-1 wheel=0
pos: x=-2463 y=-3233  delta: dx=1 dy=1 wheel=0
….
pos: x=-2492 y=-3186  delta: dx=-1 dy=1 wheel=0
pos: x=-2492 y=-3185  delta: dx=0 dy=1 wheel=0
pos: x=-2491 y=-3185  delta: dx=1 dy=0 wheel=0
pos: x=-2490 y=-3185  delta: dx=1 dy=0 wheel=0
disconnected: device: address=4 portId=0x01 vid=045e pid=00a4 class=0x00(per-interface) speed=low-speed product="Microsoft(R) Compact Optical Mouse"

I am working on a Windows 11 desktop
can your laptop provide sufficient power via USB for the ESP32S3 and mouse

Hey thank you so so so so much! Once I set things up like you told me in the IDE everything just worked, the mouse lit up, and it was picking up the movements I was making!!!! REALLY APPRECIATE YOUR HELP!!!!

Was it a software thing that had to be enabled? I'm curious what happened haha

probably setting

//     USB Mode "USB-OTG"

enables it