Zwift Play Controller

Zwift Play Controller

Zwift Play Controller sind gedacht um Zwift zu bedienen, man braucht die Hände nicht vom Lenker zu nehmen 😀

Aber wie funktionieren sie? Schauen wir nach!

Hardware

wie zerlegt man den Zwift Play Controller? Dank der FCC muss ich das nicht, da Zwift Play Bluetooth verbaut hat muss es zertifiziert sein. Und in dieser sind Fotos der gesamten Hardware enthalten 😎

Zwift Play Controller FCC ID

Es ist die FCC ID 2A4DF-Z003, damit findet man: FCC Zwift Play Controller

FCC Zwift Play Controller

Zwift Play Controller Hardware

Es ist mittig ein 48 Pin QFN angebracht, ein ESP32 hätte so ein Gehäuse, jedoch kann die Beschriftung nicht gelesen werden.

Weitere 48 Pin QFN die BLE fähig sind:

  1. Nordic Semiconductor nRF52-Serie: Die nRF52-Serie von Nordic Semiconductor umfasst mehrere BLE-fähige Chips, die in 48-Pin QFN-Gehäusen erhältlich sind. Beispiele sind der nRF52832 und der nRF52840.

  2. Silicon Labs EFR32 Blue Gecko-Serie: Diese Serie bietet eine Auswahl an BLE-fähigen Chips, darunter der EFR32BG13 und EFR32BG22, die in 48-Pin QFN-Gehäusen verfügbar sind.

  3. Texas Instruments CC26xx/CC13xx-Serie: Die CC26xx und CC13xx-Chips von Texas Instruments sind BLE-fähige Mikrocontroller und Transceiver, die in verschiedenen Varianten erhältlich sind, darunter auch solche in 48-Pin QFN-Gehäusen.

  4. STMicroelectronics STM32WB-Serie: Die STM32WB-Serie von STMicroelectronics bietet BLE-fähige Mikrocontroller, darunter auch solche in 48-Pin QFN-Gehäusen.

  5. Dialog Semiconductor DA14531: Dies ist ein BLE-fähiger SoC (System-on-Chip) von Dialog Semiconductor, der in einem 48-Pin QFN-Gehäuse verfügbar ist.

  6. Semtech SX1280: Dies ist ein BLE- und LoRa-fähiger Transceiver von Semtech, der in einem 48-Pin QFN-Gehäuse verfügbar ist.

  7. Analog Devices ADuCM302x: Dies ist eine Serie von BLE-fähigen Mikrocontrollern von Analog Devices, die in 48-Pin QFN-Gehäusen erhältlich sind.

  8. Laird Connectivity BL654-Serie: Die BL654-Serie von Laird Connectivity bietet BLE- und WLAN-fähige Module, die in 48-Pin QFN-Gehäusen verfügbar sind.

  9. Maxim Integrated MAX32665: Dies ist ein BLE-fähiger Mikrocontroller von Maxim Integrated, der in einem 48-Pin QFN-Gehäuse verfügbar ist.

  10. Microchip ATSAMR30: Dies ist ein BLE-fähiger Mikrocontroller von Microchip, der in einem 48-Pin QFN-Gehäuse verfügbar ist.

Um es weiter einzugrenzen könnte man anhand der Pinout´s schauen wo sich die Antenne sowie der Quarz oder andere markante Bauteile befinden.

Das Wireshark Logfile zeigt "Nordic Semiconductor ASA" als Hersteller, und auf einen ersten Blick ist das Pinout des nRF52832 passend.

Vibration

Die Zwift Play Controller haben einen Vibrationsmotor verbaut der den Lenker vibrieren lässt bei gewissen Ereignissen.

Software

Es passiert alles über Bluetooth, mit dem USB-C Anschluss wird nur der Akku geladen.

Ich "spiele" Zwift am Android Handy, die Zwift Play Controller sind also über Bluetooth mit dem Android Handy verbunden. Wie kommunizieren diese mit dem Handy?

Dazu kann man in den Entwickleroptionen das Bluetooth HCI-Snoop-Protokoll aktivieren, dies speichert alle Bluetooth Ereignisse in eine btsnoop_hci.log Datei. Diese Datei bekommt man dann mit einem "adb bugreport <file_name>", das entpacken und die Datei btsnoop_hci.log liegt dann in: "FS/data/misc/bluetooth/logs" Diese Datei kann mit Wireshark geöffnet werden.

Zwift Play Controller Bluetooth Log Wireshark

Hier sieht man wie Zwift Play mit meinem Handy hin und her spricht. Bisher konnte ich daraus keine weiteren Info holen.

Adafruit hat ein Tutorial wie man BLE Geräte auslesen kann: Adafruit BLE

Dem entsprechend habe ich mit Nordics nRF Connect die GATT´s ausgelesen:

Zwift Play GATT

Und der Unknown Service "00000001-19ca-4651-86e5-fa29dcdd09d1" schaut interessant aus, diese Dinge bietet er an:

Zwift Play Unknown GATT

Hier stehe ich derzeit 🤓

Zur Inspiration: das lenken des Sterzo´s wurde auf einem Arduino nachgebaut: Zwift-Steer

Firmware Zwift Play

Die Firmware auf den Zwift Play Controller wird über die Zwift Companion App mittels Bluetooth upgedated.

Begonnen hat es mit der Firmware 1.0.0 und wurde auf 1.1.0, 1.1.1, 1.2.0 und dann 1.3.0 upgedates.

Details zur Firmware, das Changelog gibt es hier: Zwift Firmware Release Notes

Comments powered by CComment