Dans les coulisses

Comment nous avons créé le Multimap

Plusieurs cartographies dans un seul calculateur, choisies au volant avec le levier du régulateur. Ni boîtier, ni fil, ni outil dans la boîte à gants. Voici comment on y est arrivés, étape par étape, avec les vraies images de notre atelier logiciel.

6 étapesGolf IV R32 · Bosch ME7Audi TT / S3 1.8 turbo · en bêta
1

L'idée : une voiture, plusieurs caractères

Un moteur à l'E85 ne se règle pas comme un moteur au SP98. Jusqu'ici, changer de carburant voulait dire reflasher le calculateur à chaque plein. Absurde pour qui alterne.

La question de départ tenait en une ligne : et si les cartes vivaient toutes dans le calculateur, et qu'on choisissait la bonne depuis le volant ? Sans boîtier ajouté, sans fil tiré, avec une commande qui existe déjà sur la voiture : le levier du régulateur de vitesse. Et toujours réversible.

Le Studio ECU identifie le calculateur : référence, matériel, numéro logiciel, taille, puis quatre contrôles
Tout commence par une lecture. Le Studio identifie le calculateur exact et passe quatre contrôles avant de toucher à quoi que ce soit : sommes de contrôle, points d'accroche, zone libre, table des défauts.
2

Lire, puis comprendre

La mémoire d'un calculateur, c'est un mur d'un million d'octets. Une cartographie n'y est qu'une suite de chiffres, un programme aussi. Rien n'est étiqueté.

Avant d'écrire une ligne, on identifie donc exactement ce qu'on a en main : la référence du calculateur, la version de son logiciel, l'état de ses sommes de contrôle, et des centaines de constantes de calibration comparées à ce qu'on connaît. C'est cette identification qui autorise la suite, ou l'interdit.

Le débogueur C167 maison : modules à gauche, instructions au centre, registres à droite, explication en bas
Notre débogueur C167. Le processeur du calculateur exécute des instructions ; l'outil que nous avons écrit les affiche une par une, nomme les routines et explique chaque instruction en clair.
3

Désassembler : lire le programme comme un livre

Le calculateur est piloté par un processeur. Pour savoir ce qu'il fait du levier, des cartes, de l'injection, il faut lire son programme dans sa langue : instruction par instruction.

Nous avons écrit notre propre désassembleur et débogueur pour ce processeur. Il découpe le code en routines, suit les adresses mémoire, et permet de vérifier chaque hypothèse à l'octet plutôt que de la croire sur parole. C'est long. C'est aussi ce qui sépare une fonction prouvée d'une fonction supposée.

Le schéma des commandes au volant : chaque position du levier du régulateur et ce qu'elle déclenche
Les commandes au volant. Le levier du régulateur parle déjà au calculateur : le schéma résume quelle position fait quoi, une fois la chaîne retrouvée dans le code.
4

Trouver le levier

Le régulateur de vitesse envoie l'état de son levier au calculateur, qui le range quelque part en mémoire. Il fallait retrouver , et surtout prouver qu'on ne se trompait pas de case.

Plusieurs pistes ont été fausses avant la bonne. La bonne a été vérifiée de trois façons indépendantes : dans le code qui la lit, dans la mémoire qui la porte, et sur la voiture, levier en main. Le geste retenu, maintenir le levier tout en pressant l'embrayage, ne peut rien déclencher par accident en roulant.

Les points d'accroche vérifiés : les octets d'origine exacts où la greffe se branche
Points d'accroche vérifiés. Les quelques octets précis où notre code se branche sur celui d'origine, contrôlés avant chaque génération de fichier.
5

Greffer la bascule

Le Multimap n'est pas une cartographie de plus : c'est un petit programme greffé dans une zone libre de la mémoire, lancé au démarrage. Il surveille le levier et l'embrayage, et copie la carte choisie dans les tables que le moteur lit en temps réel.

Le programme d'origine, lui, n'est pas réécrit : on s'y accroche en quelques points, on ne le déforme pas. C'est ce qui rend le retour à l'origine trivial, et ce qui permet d'ajouter des cartes à la demande : E85, sport, éco, bridée pour un prêt ou un rodage.

Les cartographies connues du calculateur, listées par le Studio
Les cartes connues. Injection, allumage, couple, protections : chaque table a une adresse, une géométrie et une échelle, vérifiées avant de servir de base à une carte du Multimap.
6

Recompter, vérifier, rouler

Un calculateur refuse un fichier dont les sommes de contrôle sont fausses. Le Studio les recalcule toutes, contrôle que la table des défauts est intacte, et relit le fichier produit comme s'il venait d'un inconnu : on ne livre rien qu'on n'ait pas relu.

Ensuite seulement vient la route : bascule levier en main, retour à l'origine, relevés à chaud et à froid. Sur la Golf R32 c'est fait. Sur les Audi TT et S3 1.8 turbo, le portage est développé et contrôlé au Studio mais pas encore validé sur route : c'est pour ça qu'il est vendu en bêta, retouches incluses.

La table des défauts du calculateur, consultée dans le Studio : chaque code, son libellé, son état
La table des défauts, intacte. Le calculateur surveille des centaines de défauts ; après la greffe, le Studio vérifie que cette table est exactement celle d'origine. Rien n'est éteint en douce.

🛡️ Ce qu'on ne fait jamais, même quand c'est possible

Lire le programme d'un calculateur donne accès à tout. Notre règle est de n'y toucher que dans un sens : celui qui protège le moteur.

  • L'avance à l'allumage ne s'avance jamais. On ne fait que la retarder. Avancer, c'est jouer avec le cliquetis et le piston, surtout à froid.
  • Les protections restent en place. Cliquetis, température d'échappement, protection des composants : on les décrit, on ne les desserre pas.
  • On n'appauvrit pas. L'E85 demande plus de carburant, pas moins. Un mélange pauvre à pleine charge, c'est une fonte de piston.
  • Le retour à l'origine est toujours possible. Votre lecture d'origine est archivée ; le programme d'origine n'est pas réécrit.
🎛️

Envie de l'essayer sur la vôtre ?

Disponible sur Golf IV R32 (Bosch ME7). En version bêta, retouches incluses, sur Audi TT et S3 1.8 turbo (ME7.5).