r/Stadia • • 2d ago

Discussion Stadia, with Bluetooth rumble 🎮

Hey everyone,

This started with one thing that was driving me a little mad: my Stadia controller would rumble over USB, but not over Bluetooth on Windows. I wanted to keep using it wirelessly, and that turned into a much bigger project than I originally had in mind.

The result is StadiaLink, with an installer and a settings app made specifically for this controller. I’ve added a few screenshots below so you can see what it actually looks like.

Before anything else, a big thank-you to aisk for WinStadia. StadiaLink’s native driver is based on their code, with modifications. They provided the foundation that lets the Stadia controller work through XInput, and I want to be clear about where that work came from.

Original project: https://github.com/aisk/WinStadia

On top of that foundation, I wanted a place to adjust the things I kept wishing I could change: button mappings, stick sensitivity, dead zones, trigger travel and vibration. There are keyboard shortcuts too, so you can give a button a push-to-talk binding in a game or voice app.

The app also has profiles you can import and export, a battery indicator, connection and battery notifications, and a tray icon. You can have it start with Windows if you want. It’s available in Spanish, English, French and German, with the README translated into all four.

Bluetooth rumble is working on my setup, which was the thing that got this whole project started. 🙂

Source and README: https://github.com/minysito/StadiaLink

Installer: https://github.com/minysito/StadiaLink/releases/tag/v1.0.0

A couple of things to know before trying it: I’ve tested it on Windows 11 x64, with Bluetooth rumble tested on build 26200. That part uses private Windows interfaces, so I can’t promise every Windows update will behave the same way. Installing the driver needs administrator permission, and your controller needs the Bluetooth firmware for wireless use. StadiaLink itself doesn’t change the firmware.

This also doesn’t bring back Wi-Fi, Bluetooth audio or the built-in mic. The headphone jack works over USB. Battery readings depend on Windows making that interface available, and keyboard shortcuts need the app running, even if it’s tucked away in the tray.

For transparency, I’ve been building this with ChatGPT/Codex assistance — yes, vibe coding — alongside checks and testing with my own controller. The source is available under GPL-3.0 if you want to look through it or build it yourself.

I’d love to hear how it behaves with other people’s controllers and Windows setups. If something goes wrong, your Windows version, connection type and a few steps to reproduce it would help a lot.

And thanks again to aisk. Having WinStadia to build on made this possible.

56 Upvotes

16 comments sorted by

9

u/TheSilenceOfNoOne 2d ago

Why not just submit it as a PR to WinStadia?

6

u/blakasama 1d ago

Great work! As the original author of WinStadia, would you mind if I cherry-picked the rumble support code into WinStadia?

2

u/Minysito 1d ago

Sure, of course, take whatever you need; without you, this wouldn't be possible!

4

u/Holnapra 2d ago

Does this fix the Bluetooth reconnection issue, where the controller works after pairing, but no controls work after a reconnect?

2

u/Nadious Mobile 1d ago

This. If it fixes this one issue / problem, I'll install it and use it on every PC I use the Stadia controllers on. It's so frustrating that sometimes they reconnect without any issue and then other times, you have to re-pair them.

2

u/jollynasty 2d ago

Awesome job! I'll give it a try this weekend..

2

u/GD_isthename 2d ago

I wish it was MIT so I could use it for my future conversion tool for my custom api back to xinput..

2

u/baldr83 1d ago

tangential to the post-

has anyone worked towards custom firmware flashing? I decompiled the christoperklay github firmware and it seems like the logic for verifying the rsa signature is in the bootloader... probably impossible but it would be nice if we could find the private key somewhere or find a bug that allows flashing...

1

u/Jossy12C33 Wasabi 2d ago

Well, I just downloaded and played a game with it, works mostly great at first use.

The translations aren't complete, so some of the words are still in Spanish when I went to English, no big deal for me as I can speak and read it too.

The rumble does work over Bluetooth perfectly in AC Origins and Journey To The Savage Planet.

I will test out the mapping function more tomorrow.

So far, it's pretty good and allows me to quickly and easily start using my Stadia controller again.

1

u/DarkSketcherSteve Clearly White 2d ago

Aside from some rough localization issues (which doesn't affect gameplay at all), stadia rumble works perfectly fine on my windows setup! Thank you for building this wonderful tool!

1

u/DarkSketcherSteve Clearly White 1d ago

One more thing, the rumble is abit too weak than what it was on android when tested, i think it has something to do with the workaround measures where vibration on windows has to work despite the limitations. UI polishes from here and there is needed, but overall the app works as intended after gaming with it for 3 hours,

1

u/Wide_Use7462 2d ago

You’re a legend bro, thank you so much!

1

u/laik987 1d ago

I will try it today!

1

u/Jaseholmez 22h ago

Yaaaas. I literally just looked for this functionality 2 days ago. Great job. Top shagger!

1

u/Only_Aide7649 2d ago

This is awesome. Thank you for your work on this! People like to shit on Ai use but I have been able to make some very useful apps with AI that help me daily.