BROGX allows playing on Xbox completely wirelessly with all Bluetooth gamepads supported by BlueRetro.
Build from 2 parts
- one ESP-WROOM-32 chip/ESP32-WROOM32d DevkitC V4. module
- max.4 ATMEGA32U4 / Arduino pro micro/leonardo
This project combines BlueRetro by DarthCloud and OGX360 by Ryzee119.
Based on code and concept by netham45: https://github.com/netham45/BlueRetro.
An ESP32 allows connecting Bluetooth gamepads, and with modified BlueRetro software, data is sent over I2C to an Arduino.
The Arduino communicates with the Xbox over USB. A modification to the OGX360 software removes the master device and sets all as slaves.
- Bluetooth gamepads supported by BlueRetro
- Web Config
(https://konwektor.github.io/BlueRetroWebCfg/)
Added OGX360 to the game system list to unlock more functions (key bindings, combo shortcuts, etc.) - works same way as orginal webcfg for BlueRetro Port detection via Current Trigger- Port detection via isolated port Shield
Detects when a physical controller is connected and disconnects the Bluetooth controller on this port to make room for a wired one. - Xbox Power ON/OFF with Bluetooth Controller
Allows turning the console on and off with the controller (only in HW2 internal builds under specific conditions). - Port Status LED
Indicates the current status of each controller port.- Solid - BT controller connected,
- Pulsing - Bluetooth inquiry mode enable (new pairing).
- Off - no controller or port occupied by wired gamepad
- Global Status LED
Indicates the overall status of the ESP.- Solid: An error occured, try power cycle, check serial logs for detail.
- Pulsing: Bluetooth inquiry mode enable (new pairing).
- Off: No error and Bluetooth inquiry mode disabled.
User manual — Information about the adapter, programming, and hardware build details.
Quick info:
master is based on BlueRetro v25.10-beta (includes subsequent changes up to the latest commit; exact tracking is limited due to non-linear history).
- HW2 power on/off using gamepad combo
- HW2 DVD tray eject using gamepad combo
- HW2 DVD tray button:
Short push: Tray eject
1s < hold < 3s: Toggle Bluetooth inquiry start/stop (pairing mode)
3s < hold < 6s: Disconnect all connected Bluetooth gamepads
6s < hold: ESP32 firmware reset
- Restore rumble feedback for active port as DEV_PAD default config
Push Xbox button: Gamepad will rumble shortly n-times (where n = port number)
- Move virtual menu to DEV_PAD_ALT config
This version need also updating arduino firmware in case of use hw2, use mine fork at https://github.com/konwektor/ogx360. If You already got software for BlueRetro support in arduino, and staying by hw1 - no update is needed.
This can be compiled the same as BlueRetro.
Copy /configs/hw1/ogx360 or /configs/hw2/ogx360 to Your /Blueretro/sdkconfig
Update esp-idf to 5.5.0 2024-12-02, and rund "esp.py build".
Or just go to Releases, and download already compiled files.
-
All Xbox one x/s series x/s controllers working with rumble, no delay no stuck.
-
Wiiu pro rumble tested and working
-
Ps4 , ps5 rumble tested and working
-
All other bluetooth gamepads supported by Blueretro should work - not tested - got any???? Give me feedback.
BlueRetro is a multiplayer Bluetooth controllers adapter for various retro game consoles & computers. Lost or broken controllers? Reproduction too expensive? Need those rare and obscure accessories? Just use the Bluetooth devices you already got! The project is open source hardware & software under the CERN-OHL-P-2.0 & Apache-2.0 licenses respectively. It's built for the popular ESP32 chip. Wii, Switch, PS3, PS4, PS5, Xbox One, Xbox Series X|S & generic HID Bluetooth (BR/EDR & LE) devices are supported. Parallel 1P (Computers, NeoGeo, Supergun, JAMMA, Handheld, etc), Parallel 2P (Atari 2600/7800, Master System, Computers, etc), NES, PCE / TG16, Mega Drive / Genesis, SNES, CD-i, 3DO, Jaguar, Saturn, PSX, PC-FX, JVS (Arcade), Virtual Boy, N64, Dreamcast, PS2, GameCube & Wii extension are supported with simultaneous 4+ players using a single adapter.
Buying BlueRetro adapters from these makers helps support the continued development of the BlueRetro firmware!
Thanks to all sponsors!
- BlueRetro PS1/2 Receiver by mi213: 3D printed case & PCB for building DIY PS1/2 dongle.
https://github.com/Micha213/BlueRetro-PS1-2-Receiver - N64 BlueRetro Mount by reventlow64: 3d printed mount for ESP32-DevkitC for N64.
https://www.prusaprinters.org/prints/90275-nintendo-64-blueretro-bluetooth-receiver-mount - BlueRetro Adapter Case by Sigismond0: 3d printed case for ESP32-DevkitC.
https://www.prusaprinters.org/prints/116729-blueretro-bluetooth-controller-adapter-case - BlueRetro AIO by pmgducati: BlueRetro Through-hole base and cable PCBs.
https://github.com/pmgducati/Blue-Retro-AIO-Units - BlueRetro HW2 internal guides by Nostalgic Indulgences: Internal install guides
https://github.com/nostalgic-indulgences/BlueRetro_Internal_Installation - BlueRetro latency test by GamingNJncos: Documentation on how to run BlueRetro latency test
https://github.com/GamingNJncos/BLE-3D-Saturn-Public/tree/main/BlueRetro_Latency_Testing - BR4N64 by TharathielCB: Internal BlueRetro Flex-PCB for Nintendo 64
https://github.com/TharathielCB/BR4N64 - BlueMemCard by ChrispyNugget: Replacement PCB for PSX memory card that incorporates PicoMemcard and BlueRetro support
https://github.com/ChrispyNugget/BlueMemCard - BlueRetro HW2 QSB for GameCube by Arthrimus: Internal Blueretro PCB with CurrentTrigger for GameCube
https://github.com/Arthrimus/BlueRetro-HW2-GameCube

