Plug an ESP32 into a PSP (all models except PSP Go) via the remote port’s UART TX/RX (~2.5 V logic). Originally for remotes and GPS units, this port works great with microcontrollers when using a level shifter like MAX3232.
This allows for homebrew development, GPS integration, debug consoles, or even hardware extensions like LoRa, displays, and remote control systems.
- PSP remote port uses UART4, which outputs ~2.5 V logic on PSP‑1000 and ~1.9 V on PSP‑2000/3000.
- Do not connect directly to 3.3 V or 5 V UARTs. Use a MAX3232 to convert safely.
- The port is only powered when headphones are plugged in.
- Power pinout on the remote plug varies by model. Typical setup:
| Remote Pin | Signal | Function |
|---|---|---|
| Pin 1 | TX | PSP UART TX |
| Pin 2 | RX | PSP UART RX |
| Pin 3 | GND | Ground |
| Pin 4–6 | — | Unused or audio |
- Use a MAX3232, not MAX232 (which is 5 V).
- MAX3232 modules typically need 5 × 0.1 μF capacitors.
- Use T2IN/T2OUT and R2IN/R2OUT if using ESP32 UART2.
- Connect GND between PSP, MAX3232, and ESP32.
- Some GPS modules (like the Sony PSP-290) can plug directly into the port.
- Homebrew tools (like PSPlink) output UART debug info on this port.
Here are some examples of key components:
- ESP32 development board – generic dev kit
- Annotated ESP32 board – showing USB port and labels
- ESP32 DevKitC clone – breadboard-friendly form
- MAX3232 level-shifter modules – UART level conversion
| Module | Purpose |
|---|---|
| ESP8266 / ESP32‑S3 | Wi‑Fi reconnaissance, de-auth, Bluetooth, captive portals |
| CC1101 / NRF24L01+ / PN532 | RF (sub‑GHz), NFC, badge replay cloning |
| CH340 / FTDI | USB‑serial console |
| NEO‑6M GPS | Geolocation logging for Wi‑Fi surveys |
| Digispark / STM32 / ESP32‑S2 HID | USB HID / BadUSB payload delivery |
| Teensy + Audio Shield / STM32 | MIDI/noise glitch synthesis via UART |
| SX1276 LoRa | Long-range mesh networking |
| ePaper / OLED Display | Stealth badge or status display |
| Custom SD/Flash Adapter | Storage for payloads, OS images |
| Internal USB OTG Mods | Enables PSP as USB host |
| MAX3232 Level Shifter | Converts between 3.3 V/5 V and 2.5 V UART safely |
| AMS1117 3.3 V Regulator | Powers ESP32, LoRa, GPS modules |
Enable UART2 on the ESP32 to talk to the PSP:
#define RXD2 16 // Connect to PSP TX (via MAX3232)
#define TXD2 17 // Connect to PSP RX (via MAX3232)
void setup() {
Serial.begin(115200);
Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2);
}
void loop() {
if (Serial2.available()) {
Serial.write(Serial2.read());
}
}Alternatively:
HardwareSerial gpsSerial(2);
gpsSerial.begin(9600, SERIAL_8N1, RX_GPIO, TX_GPIO);This enables UART communication on custom pins and is compatible with many ESP32 boards.
- Wi‑Fi/Bluetooth serial console
- GPS-tagged Wi‑Fi surveys or wardriving
- LoRa mesh node with display feedback
- USB HID or BadUSB payload delivery (via OTG mod)
- Stealth badge/status interface (OLED/ePaper)
- On-device payload or OS image storage
- Complete media/network add-on inside PSP shell
- Debugging or serial console via PSPlink or custom homebrew
- Emulated remote commands sent to PSP via serial
- PSDevWiki: Serial Adapter – pinouts & wiring guides
- PSPlinkUSB GitHub – tools for serial communication with the PSP
- PS2Dev Forums – homebrew and reverse engineering archives
- YouTube tutorials – visual guides for PSP UART hacks
- GBAtemp PSP Dev Threads – beginner-friendly programming tips
- Wikipedia: ProDG – commercial PSP development tool overview
- Copetti PSP Breakdown – teardown & architecture
- AcidMods Forum – practical modding notes and builds
- RandomNerdTutorials – ESP32 UART code examples
- Marcus Comstedt's PSP Remote Reverse Engineering
- MAX3232 datasheet – voltage thresholds and layout
- Espressif UART documentation
- Sony PSP development community archives
- AcidMods and GBAtemp builds


