Reverse-Engineering The Stadia Controller Bluetooth Switching Procedure

Ever since the demise of Google’s Stadia game streaming service, the associated Stadia controllers have found themselves in limbo, with the only way to switch them from the proprietary WiFi mode to Bluetooth by connecting to a special Google website. Yet as [Gary] found out, all this website does is flash a firmware file via WebUSB and WebHID over the original Stadia firmware with a generic Bluetooth controller firmware image. This is the reason why it’s a one-way process, but this wasn’t to [Gary]’s liking, so he figured out how to flash the controller himself, with the option to flash the original Stadia firmware or something else on it later, too.

[Gary]’s stadiatool follows the same procedure as the Google Stadia website, just implemented in Python and outside the control of Google. Although Google has recently announced that it will keep the Bluetooth switching website online one year longer – until December 31st 2024 – at some point this service will go away and only projects like [Gary]’s together with squirreled away firmware images can still save any stray Stadia controllers that will inevitably discovered in the back of a warehouse in the future.

Although we reported on the demise of Stadia when it happened in January of 2023, as Ars Technica notes it was common in 2022 to buy into Stadia and get a controller manufactured in the 2019 launch year, suggesting massive overproduction.

10 thoughts on “Reverse-Engineering The Stadia Controller Bluetooth Switching Procedure

  1. “This is the reason why it’s a one-way process, but this wasn’t to [Gary]’s liking, so he figured out how to flash the controller himself, with the option to flash the original Stadia firmware or something else on it later, too.”

    Kudos to [Gary] for pushing back on yet one more in a looong list of abandoned Google products.

    “On September 29, 2022, Google announced that it would shut down Stadia, citing its lack of traction with users.”[1]

    Yeah “lack of traction with users”… Google TAUGHT its users NOT to trust Google in the first place! Google is a serial quitter – its own worst enemy.

    * References:

    1. Google Stadia – Discontinuation of Stadia

    https://en.wikipedia.org/wiki/Google_Stadia#Discontinuation_of_Stadia

    1. The stupid thing is that they handled the shutdown pretty well; everyone got their games refunded and you can still use the controller. I bet that a lot more people would’ve bought in if they’d said that in the beginning. Like “we’re not planning to shut down anytime soon, but if we do you’ll get all your purchases refunded”.

      Ultimately though, the service just didn’t have a compelling use case. They needed to launch with a game that was so epic it wouldn’t be able to run on local hardware, and the closest they ever got to such a scenario is when Cyberpunk 2077 happened to release during a hardware shortage. Nobody needs a cloud service to play indie games that’ll run on any potato.

      1. Meanwhile smartphones have only gotten more powerful so PC games are more likely to run on them, though performance isn’t the only hurdle.

        I was surprised to find Wreckfest has an android port and it runs pretty well on my 2 year old phone.

  2. While I’m all for saving things. What is the point of keeping the original firmware?

    Haha I have firmware that speaks some proprietary nonsense for a cloud based service that is shut down offering me exactly 0 value.

    1. Flashing back the original firmware was one thing that Gary pitched, but since it’s a regular NXP RF chip, it could conceivably be flashed with something more exciting than a regular BT HID image. Main point being that this way the process is open and under control of the person who owns the hardware.

      1. Ah ok so the real goal was just the ability to gain a mechanism of reflashing the firmware over the air. That makes sense and has value. Sorry the article made it sound like the goal was recovering the original flash and that seemed very worthless to me.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.