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.
Dado el manual de servicio proporcionado por Nautilus Inc. (respaldo en archive.org):
Y enfocándonos específicamente en esta parte:
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 cable | etiqueta |
---|---|
rojo | GND |
blanco | RXD |
negro | TXD |
amarillo | +12 |
verde | SW |
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:
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.