Logo do projeto fl3xbl0w

Controlador do Motor da Esteira - fl3xbl0w

Lançado em 28 de mai. de 2022

Projeto de engenharia reversa. Começou com a esteira Bowflex Treadmill 22, mas acabou se generalizando para qualquer máquina com Android vendida pela Nautilus Inc. (Nautilus, Bowflex, Schwinn).

Isso se aplica principalmente à Treadmill 22 & Treadmill 56.

A placa de controle do motor é fabricada pela Electronics Way Industry.

Controlador da Placa de Controle do Motor B017D

Dado o manual de serviço fornecido pela Nautilus Inc. (backup no archive.org):

Diagrama elétrico da esteira

E focando especificamente nesta parte:

Caminho de comunicação da esteira

Podemos identificar o “cabo de comunicação” que conecta o controlador do motor como um de 5 pinos. Há apenas um conector de 5 pinos. Eu etiquetei os cabos com suas cores correspondentes (os dados & interruptor estão optoacoplados):

cor do caboetiqueta
vermelhoGND
brancoRXD
pretoTXD
amarelo+12
verdeSW

A placa não está conectada diretamente ao console Android.

O único conector de 5 pinos é da marca Molex. Uma busca no Google por “conectores Molex pequenos” me levou a uma imagem do que chamam de Molex Micro-Fit 3.0 Single Row (5-Pin), que é usado para conectar a placa controladora do motor:

Conector Molex Micro-Fit 3.0

Link do AliExpress

Ao dar uma olhada no NautilusLauncher.apk através do jadx-gui, posso ver que eles se comunicam com o tablet Android com sua “Console Universal” usando Série a 230400 Baud (usando /dev/ttyS4). Isso NÃO é o que estamos analisando aqui. Isso se refere à comunicação entre o Android e a “Console Universal”. Estamos investigando as comms entre a “Console Universal” e a “Placa de Controle do Motor”.

Tentar conectar um ESP32 ou uma ponte serial baseada em CH340 diretamente aos cabos entre a base da esteira e a placa controladora Bowflex fez com que a base da esteira não inicializasse corretamente, então comecei a suspeitar que estão usando RS232.

Nota: Conectando apenas ao GND e RXD, podemos “ver” algumas informações hexadecimais aparentemente sem sentido a 9600 baud. Conectar ao TXD faz com que a base da esteira não inicialize.

— Continua, preciso de algum tempo para brincar com meu novo analisador lógico —

Conteúdo traduzido por gpt-4-1106-preview

©2022-2024 Sebastián Barrenechea. Todos os direitos reservados.

Construído com Astro v4.16.13.