Logo del proyecto fl3xbl0w

Controlador del Motor de la Trotadora - fl3xbl0w

Lanzado el 28 may 2022

Proyecto de ingeniería inversa. Comenzó con la trotadora Bowflex Treadmill 22 pero terminó generalizándose para cualquier máquina con Android vendida por Nautilus Inc. (Nautilus, Bowflex, Schwinn).

Esto aplica principalmente a la Treadmill 22 & Treadmill 56.

La tarjeta de control del motor es fabricada por Electronics Way Industry.

Controlador de Tarjeta de Control del Motor B017D

Dado el manual de servicio proporcionado por Nautilus Inc. (respaldo en archive.org):

Diagrama eléctrico de la trotadora

Y enfocándonos específicamente en esta parte:

Camino de comunicación de la trotadora

Podemos identificar el “cable de comunicación” que conecta el controlador del motor como uno de 5 pines. Hay solo un conector de 5 pines. He etiquetado los cables con sus colores correspondientes (los datos & interruptor están optoaislados):

color del cableetiqueta
rojoGND
blancoRXD
negroTXD
amarillo+12
verdeSW

La tarjeta no está conectada directamente a la consola Android.

El único conector de 5 pines es de la marca Molex. Una búsqueda en Google de “conectores Molex pequeños” me llevó a una imagen de lo que llaman Molex Micro-Fit 3.0 Single Row (5-Pin), que se utiliza para conectar la tarjeta controladora del motor:

Conector Molex Micro-Fit 3.0

Enlace de AliExpress

Al echar un vistazo en NautilusLauncher.apk a través de jadx-gui, puedo ver que se comunican con la tablet Android con su “Consola Universal” usando Serie a 230400 Baudios (usando /dev/ttyS4). Eso NO es lo que estamos analizando aquí. Eso se refiere a la comunicación entre Android y la “Consola Universal”. Investigamos las comms entre la “Consola Universal” y la “Tarjeta de Control del Motor”.

Intentar conectar un ESP32 o un puente serie basado en CH340 directamente a los cables entre la base de la trotadora y la tarjeta controladora Bowflex hizo que la base de la trotadora no se inicializara correctamente, así que empecé a sospechar que están usando RS232.

Nota: Conectando solo a GND y RXD, podemos “ver” algo de información hexadecimal aparentemente basura a 9600 baudios. Conectar a TXD hace que la base de la trotadora no se inicialice.

— Continuará, necesito algo de tiempo para jugar con mi nuevo analizador lógico —

©2022-2024 Sebastián Barrenechea. Todos los derechos reservados.

Construido con Astro v4.16.13.