r/Stadia • u/Supernielsen • 17h ago
PSA Stadia Controller Wi-Fi Provisioning - Python Script (BLE)
Hey everyone.
I was following the work of u/bitnullbyte and u/SnooGiraffes6688 who were looking into this, and then i saw u/HayleyTheLesbJesus mention "vibe coding". That gave me the idea to just give it a shot over the last 3 days.
I wanted to share what I've ended up with. It’s a Python script that hopefully some of you can use.
What it does:
The script connects to your controller via Bluetooth LE. It scans for nearby devices, lets you pick your controller from a list, and then handles the rest automatically. It reads the controller's unique DeviceKey from its device_info, encrypts your Wi-Fi password, and sends the payload. You can watch the state change all the way to 0x3C (Connected).
How to use it:
- Install dependencies:
pip install bleak cryptography - Put your controller in pairing mode (Hold
Y+Stadiabutton for 2 seconds until it flashes orange). - Run the script. It will ask you to pick your controller from the scanned list, and then prompt for your SSID and password (or you can pass them as arguments).
bash
stadia_gotham_wifi_provisioner.py --ssid "YourNetwork" --password "YourPassword"
(Note: Make sure the controller connects to a 2.4GHz network. If you have a WPA3/PMF router, you might need to use the --security wpa2-pmf flag).
Here is the script:
https://gist.github.com/supernielsen/6cb9215b21481baafe171d645542f40f
Getting it on Wi-Fi is just the first step, and now the controller is sitting on the network trying to talk to the old Google servers. The next logical step is probably trying to set up a local server/WebRTC endpoint to actually use it for input, but I'm just sharing this first part in case it helps someone else get their controller back online.



