PS4 Slim controller and Arduino UNO R3 USB Host Shield power issues

I am using a PS4 Slim controller over USB - connected to a USB Host Shield (with a soldered USB 5V jumper as well as the 5V and 3.3V pin jumpers, as per usual) on an Arduino Uno R3.

The issue I am running into: when connecting the Arduino to my laptop via USB, dedicated 9V 1A PSU, 12V 5A PSU, or a 9V battery (all tested with VIN + GND, then with DC barrel jack) the controller is not seen by the PS4USB example from the USB Host Shield 2.0 library. Next, I tried the qc example code and usbdesc and any other test examples mentioned in various other open and closed posts - to no avail.

However, connecting it to a 10000mAh power bank or my PC's front IO USB while running the PS4USB example shows proper operation - rumble works, colour changes with input, etc.

I am at a point where I've tried all of the power options available to me but the ones I need do not work for any obvious to me reason.

Any suggestions on getting the PS4 controller to work with the shield while getting power from a laptop or a battery? All input appreciated.

Post a schematic, the language of electronics, of what you have tried. Word problems do not work for me.

I tried a lot of things - the setup I described is just a way for me to test the PS4 controller's USB connectivity for use in an unrelated project, integration with that will come later on.

Here's what my Arduino and shield look like. As you can see, I have soldered the required jumpers for 5V operation.

And here's a crude illustration of what I've tried. The checks on the right represent the controller getting power - the Arduino and Shield were getting power in all instances. During 9V and 12V testing, I found the current draw to be 0.09mA in standby, and 0.14mA with the controller plugged in, which seems like way too small of a power draw for the controller.

Update: Metered the Arduino’s 5V pin and may have a clue of what’s going on.

Here are the different 5V pin voltages I measured with different power supplies, on 2 different PS4 Slim controllers.

  • PC USB port:
    4.85V - PS4 Controller is recognized by the shield and gets powered up.
  • Laptop USB port:
    4.99V - DS4 is not recognized and does not get powered up
  • 5V (actually 5.15V, still safe for onboard voltage regulator as it’s <5.3V) 5A regulated power supply connected to the 5V pin:
    5.15V - DS4 does not work
  • 9V 1A regulated power supply to the VIN pin:
    5.05V - DS4 does not work
  • 10000mAh power bank on trickle charge setting:
    4.9V - is recognized and gets powered up
  • 10000mAh power bank normal setting:
    4.95V - does not work.

Very interesting, not sure if this is due to the voltage drop of the controller actually powering up and drawing more current - or weird USB host shield overvoltage protection.

But, it seems as though a lower voltage corresponds to the controller working. Not sure what to make of it.

For anyone running into this issue, this was solved on the USB Host Shield 2.0 library GitHub page. Here is a link to the fix that worked for me. The whole issue thread describes issue and pins it to a manufacturing defect: CHIP MAXIM3421 · Issue #765 · felis/USB_Host_Shield_2.0 · GitHub

If the link is down, this is the final solution:

TeatrSveta commented on Jan 29

Solved!
The jumper for VBUS turned out to be key.
All descriptions of this type of boards indicate that you need to install a "5V" jumper. In this case, USB does not work.
As soon as I broke the "5V" jumper. And put the jumper on "3.3V" everything worked. Passed the board_gс test to the end. USB-MIDI dump utility sketch successfully launched.
I was able to test this change on 9 boards that I have. Everything worked.
The only thing - do not ask me why it worked that way. :wink:
Thanks for your support and help.
Alexey

TLDR if you are having power issues - don't jumper the 5V even though all the guides say so, jumper 3.3V.

Looks like so:

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