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.

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