Estrutura inicial
A arquitetura com dois ED100, os barramentos separados e o formato de registro começou a ser organizada.
Logger portátil com dois ED100 para registrar um BMS JBD em movimento, manter o painel original e transformar dados de campo em diagnóstico e ajustes de bateria.
A indicação de carga nem sempre parecia coerente com o comportamento real da bateria, e o funcionamento podia ser interrompido abruptamente perto do fim da descarga. Sem tensão, corrente, potência, capacidade remanescente e células registradas durante a condução, restavam apenas sintomas.
O desafio não era somente ler o BMS JBD na bancada. Era observar a bateria em movimento, preservar o painel original e registrar o que acontecia antes, durante e depois da falha.
O MasterLogger consulta o BMS aproximadamente uma vez por segundo, valida as respostas e registra snapshots, frames e erros. O SlaveLogger atende o painel original, mantém cache e idade dos dados e também registra as transações.
A separação permitiu concentrar a aquisição elétrica no Master e conservar, no Slave, o comportamento que o painel esperava encontrar.
Master e Slave não são medições independentes. O primeiro é a fonte das grandezas elétricas; o segundo documenta gateway, cache, idade e respostas ao painel. BMS e painel nunca compartilham o mesmo segmento RS485.
RTC, LittleFS, DMSLOG2, Wi-Fi local e exportação para CSV completam a cadeia sem depender de internet.
O caminho até o BMS é somente leitura. Escritas JBD são bloqueadas; o logger não altera SOC, capacidade, calibração, proteções ou MOSFETs.
Em 21/08/2026, o ensaio estacionário confirmou BMS ↔ Master, Master ↔ Slave e Slave ↔ painel. O painel aceitou a resposta JBD 0x03 e exibiu 100%; os logs preservaram 24 grupos de células e cinco temperaturas.
Em 18/09/2026, o conjunto acompanhou um percurso real de aproximadamente 60 km, da indicação de 100% até 0%. Isso é um ensaio de campo da unidade testada, não uma autonomia homologada ou medição metrológica.
O Master preservou 6.926 amostras elétricas úteis; o Slave manteve o painel atendido e registrou o envelhecimento do último estado quando o BMS deixou temporariamente de responder.
Medido: a proteção CellUV_P apareceu quando o BMS ainda informava 18% e 10,72 Ah. Naquele registro, o grupo 17 era o extremo inferior. Durante o percurso, o grupo 12 também mostrou afundamento sob carga e se tornou outro ponto prioritário de investigação.
Observado: no fim do ensaio, o grupo 17 chegou à região de tensão mais baixa do conjunto; uma leitura próxima de 2,45 V foi depois conferida diretamente. Os dados justificam investigar os grupos 12 e 17, mas não provam isoladamente que ambos sejam defeituosos.
O valor do logger não esteve apenas em gravar números. A cadeia temporal permitiu perguntar quanto de capacidade ainda era indicado, qual corrente circulava, qual grupo atingia o extremo inferior e quando a proteção surgia.
Também separou dois eventos distintos: o BMS ficar indisponível e o Master reiniciar próximo da rotação de arquivos. A coincidência temporal não transforma um evento na causa do outro.
O Slave preservou o último snapshot com age_ms crescente. Isso documenta cache antigo, não novas medições.
Antes, o problema podia ser resumido como “a moto corta antes do esperado” ou “o percentual não parece correto”. Depois, foi possível apresentar SOC, capacidade remanescente, corrente, potência, extremos das células e o instante da proteção.
Os gráficos criaram uma linguagem técnica comum entre a equipe brasileira e os fornecedores chineses. Uma das alternativas discutidas foi reduzir a corrente máxima, agora com dados reais para comparar o efeito.
Conversas privadas, nomes, números de série, identificadores do veículo e arquivos brutos não fazem parte desta publicação.
A capacidade configurada foi reduzida para aproximar SOC e RmCap da energia efetivamente utilizável nesta unidade. O limite do modo Sport também caiu, reduzindo a solicitação instantânea e o afundamento de tensão esperado nos grupos mais fracos.
Menos corrente e menor desempenho máximo em troca de menor solicitação instantânea da bateria e comportamento mais previsível no fim da descarga. Os 48 Ah pertencem à unidade testada, não são especificação universal das baterias DMS.
Nos dois conjuntos posteriores analisados, o SOC e a capacidade remanescente chegaram a zero sem nova ocorrência de CellUV_P, e a motocicleta ainda permanecia operacional naquele momento.
A velocidade máxima observada caiu de aproximadamente 106 km/h para 88 km/h. A condução pareceu mais suave, mas essa percepção é subjetiva e não demonstra sozinha confiabilidade ou durabilidade.
O novo comportamento foi mais coerente nas condições testadas. Um ensaio bem-sucedido não prova que o projeto da bateria esteja definitivamente resolvido.
O logger não transformou sozinho a motocicleta em um produto pronto. Ele tornou o comportamento da bateria observável e comparável, criando uma base concreta para ajustes que podem aumentar a previsibilidade e a viabilidade técnica do conjunto.
Com a mesma cadeia de aquisição, uma equipe pode reproduzir falhas, separar bateria, painel e logger, comparar antes e depois e discutir parâmetros com evidência — sem retirar do piloto o painel original durante o ensaio.
O LittleFS continha os registros, embora a interface chegasse a listar nenhum arquivo. A recuperação externa preservou treze DMSLOG2 válidos. A exclusão não se comportou como esperado, e o download CSV foi gerado sem o ponto antes da extensão.
O Master apresentou ESP_RST_PANIC perto da rotação de 512 KiB; o Slave avançou os arquivos sequencialmente, enquanto os reboots do Master criaram novos identificadores terminados em 000.
Normalização de caminhos, exclusão, rotação transacional e cache foram corrigidos no código em [Unreleased]. Os testes automatizados passaram, mas a revalidação física dessas correções permanece pendente.
Antes de uma nova rodada longa, ainda é necessário reproduzir em bancada rotação, falha de abertura, BMS ausente, cache envelhecido, listagem, download, CSV e exclusão nos dois ED100.
Outra motocicleta, a FY, também usa BMS JBD e apresenta um problema semelhante. A adaptação futura poderá reutilizar aquisição, gateway, RTC, Wi-Fi, LittleFS, DMSLOG2 e decoder, mas ainda exige captura real da comunicação, confirmação de pinagem, velocidade e comandos do painel. O suporte à FY ainda não existe.
Também permanecem desejáveis gráficos sanitizados de SOC/RmCap, pack, potência, temperaturas e age_ms. Eles só serão publicados quando estiverem revisados e não expuserem dados brutos ou identificadores.
A arquitetura com dois ED100, os barramentos separados e o formato de registro começou a ser organizada.
BMS, DMS-Link, resposta ao painel e gravação foram verificados com a motocicleta parada.
A primeira versão documentada do firmware foi publicada para preservar o estado testado.
O ensaio chegou a 0% de carga e revelou perda prolongada de comunicação com o BMS, reinicialização do Master e uma inconsistência na listagem dos logs.
Treze DMSLOG2 válidos foram recuperados do LittleFS e os segmentos Master e Slave foram correlacionados.
Com capacidade configurada em 48 Ah e limite Sport de 72 A, dois conjuntos de dados chegaram a 0% e 0 Ah sem nova ocorrência de CellUV_P.
Listagem, exclusão, rotação e política de cache foram corrigidas no código; a revalidação física em bancada permanece pendente.
Projeto independente. Os resultados pertencem às unidades e condições testadas e não são documentação oficial dos fabricantes. Ajustes em BMS e bateria exigem conhecimento técnico e validação apropriada.
O resultado mais importante não foi uma tela cheia de números. Foi uma cadeia de evidências capaz de transformar uma falha percebida em ajustes comparáveis — sem esconder os limites da própria ferramenta.