fl3xbl0w Projektlogo

Laufband-Motorsteuerung - fl3xbl0w

Veröffentlicht am 28. Mai 2022

Reverse-Engineering-Projekt. Es begann mit dem Bowflex Laufband 22, wurde aber verallgemeinert für jede von Nautilus Inc. (Nautilus, Bowflex, Schwinn) verkaufte Android-Maschine.

Dies gilt hauptsächlich für das Laufband 22 & Laufband 56.

Die Motorsteuerplatine wird von Electronics Way Industry hergestellt.

B017D Motorsteuerungsplatine

Angesichts des Servicehandbuchs von Nautilus Inc. (Backup auf archive.org):

Elektrischer Schaltplan des Laufbands

Und speziell auf diesen Teil fokussierend:

Kommunikationsweg des Laufbands

Können wir das “Kommunikationskabel”, das den Motorcontroller verbindet, als 5-poliges identifizieren. Es gibt nur einen 5-poligen Anschluss. Ich habe die Drähte mit ihren entsprechenden Farben beschriftet (Daten & Schalter sind optoisoliert):

DrahtfarbeBezeichnung
rotGND
weißRXD
schwarzTXD
gelb+12
grünSW

Die Platine ist nicht direkt mit der Android-Konsole verbunden.

Der einzige 5-polige Anschluss stammt von der Marke Molex. Eine Google-Suche nach “kleinen Molex-Anschlüssen” führte mich zu einem Bild von dem, was sie Molex Micro-Fit 3.0 Einzelreihe (5-polig) nennen, das verwendet wird, um die Motorsteuerplatine zu verbinden:

Molex Micro-Fit 3.0 Anschluss

AliExpress-Link

Wenn ich mir NautilusLauncher.apk durch jadx-gui anschaue, kann ich sehen, dass sie mit ihrem “Universal Console” über Serial bei 230400 Baud kommunizieren (unter Verwendung von /dev/ttyS4). Das ist NICHT das, was wir hier analysieren. Das bezieht sich auf die Kommunikation zwischen Android und der “Universal Console”. Wir untersuchen die Kommunikation zwischen der “Universal Console” und der “Motorsteuerplatine”.

Der Versuch, einen ESP32 oder eine CH340-basierte serielle Brücke direkt an die Drähte zwischen dem Laufbandsockel und der Bowflex-Steuerplatine anzuschließen, führte dazu, dass der Laufbandsockel nicht korrekt initialisiert wurde, also begann ich zu vermuten, dass sie RS232 verwenden.

Hinweis: Indem wir uns nur mit GND und RXD verbinden, können wir einige scheinbar unsinnige hexadezimale Informationen bei 9600 Baud “sehen”. Eine Verbindung zu TXD verursacht, dass der Laufbandsockel nicht initialisiert wird.

— Fortsetzung folgt, ich brauche etwas Zeit, um mit meinem neuen Logikanalysator zu spielen —

Inhalt übersetzt von gpt-4-1106-preview

©2022-2024 Sebastian Barrenechea. Alle Rechte vorbehalten.

Erstellt mit Astro v4.15.9.