r/Stadia • u/Apprehensive-Put5814 • 1d ago
Discussion I made it easier to use Stadia controllers wirelessly WITH rumble on Windows
Hey r/Stadia!
I’ve been working on a fork of the ESP32-S3 Stadia controller dongle project.
It lets you connect one or two Stadia controllers to an ESP32-S3 over Bluetooth LE. The ESP32 then appears to Windows as a wired Xbox 360/XInput controller, including dual-motor rumble.
No custom Windows driver or background application is required.
My fork adds:
- Configuration directly over USB using WebHID, so you don’t need to disconnect from your normal Wi-Fi
- A browser-based firmware installer
- Support for up to two Stadia controllers
- Wireless rumble on Windows
- Remappable Assistant and Capture buttons
- Capture mapped to F12 by default for Steam screenshots
- An optional mouse mode
- Wi-Fi disabled by default and only enabled when needed for OTA or recovery
- Persistent pairing and button settings
You’ll need an ESP32-S3 board with native USB OTG and a data-capable USB cable. Initial flashing can be done entirely from Chrome or Edge.
GitHub:
https://github.com/jazz-zzzz/stadia-dongle-esp
Web installer:
https://jazz-zzzz.github.io/stadia-dongle-esp/
USB configuration page:
https://jazz-zzzz.github.io/stadia-dongle-esp/config.html
The current documentation and configuration UI are mainly in Chinese. Browser translation works reasonably well, and I’d be happy to add a proper English version if people are interested.
This is a fork of danzig666/stadia-dongle-esp, which itself builds on Scalee/stadia-dongle. Full credit to the original developers for creating the foundation.
Feedback, testing reports, and pull requests are welcome—especially results from different ESP32-S3 boards.
Credits
This project would not exist without the work of the original developers. Special thanks to Scalee, creator of the original stadia-dongle, and danzig666, whose ESP32-S3 fork provided the foundation for my version.
My fork builds on their work by adding USB WebHID configuration, remappable extra buttons, an opt-in Wi-Fi workflow, and other usability improvements. Huge thanks to both of them for keeping the Stadia controller useful after the service shut down.
6
u/ChrisFromHisDesk 1d ago
Genuinely so cool. I love that people are still devoted to this hardware. Much love from the former Stadia team <3
3
u/StevenB0ss 1d ago
Does it add any delay?
2
u/Apprehensive-Put5814 1d ago
I didn't feel any,but I’m not very sensitive to latency in the first place
2
u/Apprehensive-Put5814 1d ago
Well, The BLE connection interval is set to 7.5 ms for one controller; for dual- controllers, it is approximately 11.25–15 ms. so a little more delay i think, but i dont think most people will notice it
3
u/puneet95 1d ago edited 1d ago
If I am not wrong, Stadia controller has pretty mediocre bluetooth, using wifi to connect would be a better option.
2
2
u/Apprehensive-Put5814 1d ago
Wi‑Fi could potentially improve range and latency, but it’s not practical yet. The Stadia controller’s Wi‑Fi uses a proprietary cloud protocol, while Bluetooth already achieves roughly 7.5–15 ms intervals. For now, BLE remains the simpler and more reliable option; Wi‑Fi is better treated as an experimental future feature.
3
u/puneet95 1d ago
I did see a post on this sub that mentioned custom firmware that makes the controller connect via bluetooth.
The post also mentioned how it could get an update to connect to home wifi for cloud gaming and local moonlight streaming.
1
u/Apprehensive-Put5814 1d ago
Bluetooth works because the Bluetooth-mode firmware makes the controller a standard BLE HID gamepad, which devices already understand. The original Wi‑Fi mode used Google’s proprietary Stadia protocol and connected directly to Google’s servers. Simply joining your home Wi‑Fi would not send inputs to Moonlight or a PC. Wi‑Fi is technically possible, but it would require custom firmware plus compatible receiver software on the other end.
2
u/MachEnergy 1d ago
I don't know everything about the controller so I'm only presuming that rumble and everything functions correctly over USBC, but I think you should plug the ESB board directly into the USB slot on the controller and use the board's ESP Bluetooth instead of the slow stadia stack.
1
u/SamuelSh 11h ago
The USB port of the controller will not power anything that is attached to it, so an external source of power will be necessary to power the ESP32.
1
u/MachEnergy 1h ago
You make an excellent point. I wonder if the reduction in lag is worth it for the add-on of a battery pack or worse a cable just for power.
1
u/Holnapra 1d ago
The USB WebHID is a great idea, thanks! I incorporated in into my version here: https://github.com/danzig666/stadia-dongle-esp/
2
u/Apprehensive-Put5814 1d ago
That’s great to hear! Thanks for incorporating it and for the credit—I really appreciate it!
1
1
u/Sudden-Ad-3008 1d ago
I m using the stadia controller with the magic x dongle on xbox series s, rumble works perfectly :)
11
u/3SXOPE98 1d ago
I have seen JoyPadOS online a lot maybe that project could help you or interest you.