Encontrar Mapas num Binário Bruto Sem DAMOS

Porque é que a Análise de Binário Bruto é Importante no Tuning do Smart Roadster

Se pretende encontrar mapas ECU num binário hex sem ficheiro DAMOS, está a entrar numa das disciplinas mais gratificantes — e mais exigentes — do tuning de ECU. Um ficheiro DAMOS (ou A2L) fornece um diretório completo de mapas, etiquetado e pronto a editar. Sem ele, está a olhar para dezenas de milhares de bytes de hexadecimal bruto sem qualquer referência. Para o Smart Roadster 452 e a sua ECU Bosch MEG 1.1, os ficheiros DAMOS completos são raros no domínio público, o que significa que quem quer afinar este carro a partir dos princípios básicos precisa de saber localizar, identificar e validar mapas manualmente. Este guia apresenta a abordagem sistemática utilizada pelos profissionais: desde o reconhecimento de estruturas de dados até à verificação cruzada com o comportamento físico do motor. Não são necessários conhecimentos de assembly, mas é essencial ter paciência e uma mentalidade metódica.

Compreender o Binário Antes de Começar a Pesquisa

Antes de procurar mapas, é necessário perceber o que um binário de firmware contém. A imagem flash da MEG 1.1 tem tipicamente 512 KB. Esse espaço é partilhado entre código executável (rotinas que o processador executa), dados constantes (valores fixos como calibração de sensores) e tabelas de consulta — os mapas e curvas que pretende editar. As regiões de código são densas, irregulares e contêm muitas sequências de bytes curtas e repetidas, características de C compilado ou assembler. As regiões de mapas, pelo contrário, tendem a ser estruturadas, monótonas e regulares.

Abra o seu binário num editor hex ou no WinOLS. Se é novo na ferramenta, este guia para iniciantes sobre como abrir um binário do Smart Roadster no WinOLS irá ajudá-lo a orientar-se antes de mergulhar nas pesquisas manuais de mapas. No WinOLS, mude para a vista de mapa de 8 ou 16 bits e percorra o ficheiro. O seu olho rapidamente aprenderá a distinguir secções de código planas dos gradientes suaves e padrões repetidos que caracterizam os dados de calibração.

Ordem de Bytes e Largura de Dados

A MEG 1.1 utiliza uma arquitetura derivada do Motorola HC12 com ordem de bytes big-endian. Os valores de 16 bits são armazenados com o byte mais significativo primeiro. Ao ler uma palavra de 16 bits no offset 0x1A00, o valor é (byte[0x1A00] << 8) | byte[0x1A01]. Identificar incorretamente a ordem de bytes é um dos erros mais comuns dos iniciantes — um mapa de boost lido em little-endian parece absurdo, enquanto os mesmos dados em big-endian revelam uma curva de pressão coerente. Confirme sempre a ordem de bytes logo no início, encontrando um valor de referência conhecido (como o limitador de rotações, tipicamente cerca de 7.200 RPM codificado como 0x1C20) e verificando qual o modo que produz um número fisicamente plausível.

Reconhecimento de Padrões: A Técnica Central para Encontrar Mapas ECU num Binário Hex

O método prático para localizar mapas sem DAMOS baseia-se no reconhecimento das assinaturas que as tabelas de calibração deixam nos dados binários brutos.

Tabelas de Eixos e Sequências Monótonas

Os eixos — os pontos de quebra de RPM ou carga que indexam um mapa — são quase sempre sequências monotonicamente crescentes. Um eixo de RPM pode ser: 800, 1200, 1600, 2000, 2400, 3000, 3600, 4200, 5000, 6000, 7200 RPM. Em hex big-endian de 16 bits isso traduz-se em: 03 20, 04 B0, 06 40, 07 D0, 09 60, 0B B8, 0E 10, 10 68, 13 88, 17 70, 1C 20. Pesquise no seu binário sequências de palavras de 16 bits que aumentem em passos aproximadamente iguais ou fisicamente plausíveis. As tabelas de eixos têm normalmente entre 8 e 16 entradas na MEG 1.1. Depois de encontrar um eixo, os dados do mapa que este indexa estão quase sempre imediatamente a seguir na memória, ou apontados por uma tabela de ponteiros próxima.

Heurísticas de Forma de Mapa

Os mapas bidimensionais (eixo × eixo × valor) na MEG 1.1 têm tipicamente dimensões de 8×8, 12×8 ou 16×8. Os mapas de boost, mapas de avanço à ignição e mapas de enriquecimento de combustível seguem todos este padrão. No WinOLS, depois de selecionar uma região e atribuir a largura correta, um mapa genuíno revela-se como uma superfície suave — picos no canto de alta rotação e alta carga, vales em ralenti. Uma região de código aleatória selecionada com as mesmas dimensões parece ruído caótico. Comparar os valores do mapa de boost entre as variantes de 45kW, 60kW, 66kW e 74kW é uma forma fiável de validar cruzadamente qualquer tabela relacionada com boost que pense ter encontrado: os valores têm de ser fisicamente consistentes com as pressões de boost conhecidas para cada variante.

Valores Sentinela de Checksum

O firmware da MEG 1.1 contém blocos de checksum que protegem as regiões de calibração. Estes aparecem como pares de palavras de 32 bits em offsets fixos — o checksum armazenado e o seu complemento. Aprender a reconhecer estes sentinelas é valioso porque delimitam a região de dados de calibração, reduzindo drasticamente a área de pesquisa. Compreender como estes blocos funcionam é também crítico porque qualquer edição que altere dados de calibração sem atualizar o checksum fará com que a ECU rejeite o flash — conforme explicado em detalhe no artigo sobre porque é que a correção do checksum é essencial antes de gravar um binário modificado.

Ferramentas e Fluxo de Trabalho para Descoberta Manual de Mapas

Várias ferramentas aceleram o processo depois de compreender os princípios subjacentes.

Pesquisa de Mapas no WinOLS

O WinOLS inclui uma função de pesquisa de mapas integrada que avalia regiões do binário pela sua semelhança com formas típicas de mapas. Defina os parâmetros de pesquisa para big-endian de 16 bits, largura 8 ou 12, e deixe a ferramenta avaliar todos os possíveis endereços de início de tabela. Os resultados são classificados por uma pontuação de suavidade. Isto não é infalível — regiões de código suaves podem pontuar alto — mas elimina imediatamente cerca de 80% do espaço de pesquisa, deixando-lhe uma lista reduzida de candidatos para avaliar manualmente.

Editores Hex com Scripting

Ferramentas como o 010 Editor suportam modelos binários e scripting. Pode escrever um script curto que percorre o binário à procura de sequências de 16 bits monotonicamente crescentes com comprimento entre 8 e 16, reportando depois os seus offsets. Isto automatiza a procura de eixos e é particularmente eficaz ao cruzar dois binários de revisões de firmware diferentes — os dados de calibração genuínos movem-se de forma previsível entre versões, enquanto o código se reorganiza de forma mais dramática. A linguagem de modelos binários do 010 Editor está bem documentada e a comunidade publicou modelos genéricos para ECU automóvel que podem ser adaptados para a MEG 1.1.

Análise Diferencial Entre Variantes

Uma das técnicas mais poderosas disponíveis para o Smart Roadster é o diff de binários — comparar duas imagens de ECU que diferem apenas numa área de calibração. Por exemplo, um binário SB2 de 60kW e um de 66kW partilham o mesmo firmware base, mas diferem nas calibrações de boost, combustível e ignição. Carregar ambos no WinOLS e usar a funcionalidade de comparação de versões destaca exatamente quais os bytes que mudaram. Essas regiões alteradas são, por definição, dados de calibração e não código executável. Foi assim que a comunidade mapeou pela primeira vez a estrutura de calibração da MEG 1.1, e continua a ser o ponto de partida mais fiável para quem nunca trabalhou com esta ECU. Se tem curiosidade sobre o que um ficheiro DAMOS genuíno lhe ofereceria gratuitamente, o artigo que explica o que contém um ficheiro DAMOS e porque transforma o fluxo de trabalho de tuning coloca este esforço manual em perspetiva.

Validar Mapas Depois de os Encontrar

Encontrar uma tabela com aspeto plausível é apenas metade do trabalho. Tem de validá-la antes de confiar nela com o seu motor.

Verificações de Plausibilidade Física

Cada valor de mapa deve fazer sentido em termos de engenharia. Um mapa de avanço à ignição deve mostrar o máximo de avanço (talvez 28–32° APMS) a carga leve e RPM moderado, reduzindo sob alto boost para evitar detonação. Um mapa de pressão alvo de boost deve mostrar valores consistentes com os limites de hardware conhecidos do turbocompressor Garrett 1238S — aproximadamente 0,89 bar para o 45kW, escalando até 1,43 bar para o Brabus completo. Valores fora destes intervalos indicam um erro de escalonamento da sua parte ou que identificou incorretamente a tabela. A documentação técnica da Bosch sobre calibração de sensores de gestão do motor é uma referência útil para verificar se uma tabela de sensores suspeita tem um escalonamento fisicamente plausível.

Cruzamento com Dados em Tempo Real

O método de validação definitivo é fazer uma edição pequena e conservadora no mapa suspeito, gravar o binário modificado e observar a resposta do motor através de dados OBD em tempo real. Se acredita ter encontrado o mapa de pressão alvo de boost, aumente uma célula de gama média em 50 mbar e verifique se o boost medido nesse ponto de RPM e carga sobe aproximadamente o mesmo valor. Esta validação em ciclo fechado confirma simultaneamente a identidade do mapa e o seu fator de escala. Requer uma interface OBD fiável e uma ECU que aceite o seu flash — ambos pré-requisitos para qualquer trabalho sério de tuning.

Conhecimento da Comunidade como Verificação de Sanidade

A comunidade do Smart Roadster acumulou considerável conhecimento coletivo sobre as localizações dos mapas da MEG 1.1. Tópicos em fóruns como o Smart Car of America Forums e a comunidade europeia de entusiastas do Smart contêm tabelas parciais de offsets de mapas contribuídas por tuners que realizaram este trabalho ao longo de muitos anos. Trate os offsets provenientes da comunidade como hipóteses de partida e não como verdade absoluta — diferenças de versão de firmware significam que um offset correto para a versão 1037371568 pode estar alguns bytes desfasado numa revisão anterior. Verifique sempre em relação ao seu binário específico.

Erros Comuns ao Pesquisar Mapas em Binários Brutos

Mesmo tuners experientes cometem estes erros ao trabalhar sem DAMOS numa ECU desconhecida.

  • Confundir constantes de código com dados de calibração. O código C compilado contém muitos valores numéricos fixos que à primeira vista parecem mapas. Se uma região não responde a edições de forma fisicamente previsível, provavelmente é código.
  • Ignorar fatores de escala. Uma tabela de boost pode armazenar valores em unidades de 10 mbar, ou como percentagem de alguma referência interna. Um intervalo fisicamente implausível indica quase sempre uma incompreensão do escalonamento, não uma tabela errada.
  • Editar sem corrigir o checksum. A MEG 1.1 recusará arrancar a partir de um binário com checksum incorreto. Cada sessão de edição deve terminar com uma atualização do checksum — sem exceções.
  • Assumir as dimensões do mapa apenas por inspeção visual. Uma tabela 16×4 parece muito diferente de uma tabela 8×8 com os mesmos dados. Teste sempre múltiplas hipóteses de largura antes de concluir que encontrou a estrutura correta.
  • Trabalhar a partir de uma leitura corrompida. Um erro de um único byte na leitura original do binário contamina toda a análise derivada dele. Verifique sempre a sua leitura flash contra uma segunda leitura antes de iniciar qualquer análise.

Juntar Tudo: Um Fluxo de Trabalho Prático

Para encontrar mapas ECU num binário hex no Smart Roadster MEG 1.1, siga esta sequência. Primeiro, obtenha dois ou mais binários conhecidos de variantes de potência diferentes e compare-os para identificar os limites da região de calibração. Segundo, dentro dessas fronteiras, execute a pesquisa de mapas do WinOLS com definições big-endian de 16 bits e reveja os candidatos com maior pontuação. Terceiro, identifique as tabelas de eixos procurando sequências de 16 bits monotonicamente crescentes com valores físicos plausíveis (RPM, carga, temperatura). Quarto, reconstrua o mapa 2D lendo o bloco de dados imediatamente a seguir aos eixos, testando múltiplas hipóteses de largura até aparecer uma superfície suave. Quinto, valide o escalonamento cruzando com valores conhecidos — por exemplo, o avanço à ignição em ralenti deve estar próximo dos valores publicados na documentação de oficina da Smart. Sexto, faça uma edição mínima de teste, atualize os checksums e grave para validar. Sétimo, documente as suas descobertas com offsets, dimensões e fatores de escala para que o próximo tuner beneficie do seu trabalho. É lento da primeira vez. Ao quinto mapa torna-se quase intuitivo.

Dominar a capacidade de encontrar mapas ECU num binário hex sem DAMOS é o que distingue um verdadeiro tuner de ECU de alguém que simplesmente aplica ficheiros pré-escritos. Para o Smart Roadster 452, onde os dados de calibração de fábrica são escassos e as recompensas de um remap bem executado são significativas, esta competência é especialmente valiosa. A MEG 1.1 é uma ECU bem estruturada e, com as técnicas acima — análise diferencial, reconhecimento de padrões, verificações de plausibilidade física e validação em ciclo fechado — o seu panorama de calibração torna-se navegável. Tome o seu tempo, documente tudo e nunca grave um binário não validado num carro que preza.