DIY PlayStation 3 Controller Charger with a Raspberry Pi Pico

2026-02-06

The PlayStation 3 (PS3) controllers (Sixaxis, DualShock 3) require an active USB handshake for charging. Supplying 5V via a USB charger won't charge the controller.

You can easily build a PS3 controller charger with a Raspberry Pi Pico (RP2040) and a cheap Micro USB OTG hub yourself. Multiple PS3 controllers can be charged simultaneously.

DIY PlayStation 3 Controller Charger with a Raspberry Pi Pico

The firmware turns the Pico into a minimal USB host that enumerates connected USB devices. We use the Adafruit TinyUSB Library for Arduino and the Arduino-Pico Core for this.

Firmware:

#include "Adafruit_TinyUSB.h"

#ifndef USE_TINYUSB_HOST
  #error Configure USB Stack as "Tools -> USB Stack -> Adafruit TinyUSB Host (native)"
#endif

Adafruit_USBH_Host USBHost;

void setup() {
  USBHost.begin(0);
}

void loop() {
  USBHost.task();
}

Prebuilt firmware (drag and drop the .uf2 file on a Pico): ps3charger.uf2