[TUTO] Télécodage et calibration d'un NAC / RCC / CIROCCO / CMB_NUM SANS Diagbox via Arduino

VLud

Lion de Bronze
19 Janvier 2018
1 893
1 061
113
France
Les mises à jour du tutoriel se feront désormais ici: https://vlud.net/nac-telecodage.html

Accès rapide : Télécodage et Calibration NAC ou RCC SANS Diagbox / Adaptateur CAN2010 sur CAN2004 / Remplacer un SMEG+ par un NAC sur 308 (sur 208) / Remplacer la caméra 130° par la caméra 180° sur 308 / Github

--

Avertissement: Ni moi ni @bagou91 ne sommes responsables en cas de dommages sur votre véhicule vous effectuez les opérations en connaissances de cause.

--

img


Statistiques: nombre d'unités uniques
statsSoft.png


--

Coût total de l'adaptateur: < 40€

--

Liste de courses
  • Un Arduino Uno (original ou copie) + cable USB B (aussi dispo ici avec cable USB inclus) - entre 10 et 25€ TTC - ou un Arduino Nano + cable mini USB

Liste de courses optionnelle
  • Un fer à souder de faible puissance (Antex 12W par ex) ou à température réglable et un peu d'étain (au plomb c'est mieux, ça fond plus vite) - environ 30€

Etape 0 - Je comprends rien !

Qu'est-ce que le CAN-BUS ?

Etape 1 - Soudure des connecteurs sur la Shield

Ceci n'est valide que pour les Shield 1.2 et 1.5, la Shield 2.0 de chez Seedstudio est livrée soudée :bien:

Votre carte CAN-BUS Shield arrive avec ses PIN à souder vous-même:
img


Je vous recommande de travailler sur une planche bien plane pour éviter que les connecteurs ne soient trop vers l'extérieur ou trop vers l'intérieur, c'est galère à rattraper après: souder un PIN de chaque bloc bleu pour vous assurer qu'il soit bien perpendiculaire à la carte avant de passer aux autres, si ajustement il y a, ce sera plus simple.



Voila pourquoi vous avez grand intérêt à avoir un fer de basse puissance et avec une petite panne, il faut mettre un peu d'étain sur chaque PIN, attention au sens du connecteur ISP, il doit être monté dans l'autre sens !

La bonne technique c'est de chauffer d'abord le PIN et la pastille avec la panne du fer à souder puis d'approcher l'étain

Rappel:

img


Le schéma de câblage du module 8Mhz avec Arduino Nano est ici (c'est exactement le même pour un Arduino Uno)

img


Etape 2 - Modification de la Shield

Ajoutez de l'isolant (ruban adhésif, etc) sous le connecteur DB9 (1) pour éviter le contact des PINs du connecteur avec la masse du port USB de l'Arduino (qui est juste en dessous).
Mettez également l’interrupteur sur OFF si vous n'utilisez pas ce port.

La résistance de terminaison de 120 Ohms (terminaison resistor) doit être activée sur votre carte (P1 non coupé sur v2.0 - rien à toucher -, Jumper J1 connecté - soudure ou cavalier - sur module 8Mhz)

Etape 3 - Préparer l'accès au CAN-BUS

Pour pouvoir utiliser le programme il faut que l'Arduino communique avec le boitier télématique (NAC ou RCC), on va utiliser la prise Diagnostic de la voiture (OBD2)

img


Chez PSA le CAN-BUS Diagnostic (Vitesse: 500 Kbps) utilise les PIN suivants:
PIN 3: CAN-BUS Diagnostic High
PIN 8: CAN-BUS Diagnostic Low

Selon le standard OBD2 il s'agit de PIN réservés aux constructeurs pour leur propre usage (Ici le télécodage / calibration d'une grande partie des ECU de la voiture)

--

Pour la connexion vous devez modifier un câble OBD2 vers DB9 (1) (V_OBD est inutile, GND est optionnel):
img


Ou directement connecter deux fils (idéalement multibrins) du bornier (4) vers les PIN indiqués:
img


Afin d'améliorer l'envoi et la réception de données (et éviter les blocages ou "stalling") il est recommandé d'avoir une masse commune entre l'Arduino et la voiture en connectant le PIN 5 (OBD2) vers n'importe quel point de masse (GND) sur l'Arduino

Etape 4 - Installation de l'IDE Arduino

Récupérez et installez le Legacy IDE compatible avec votre système d'exploitation directement sur https://www.arduino.cc/en/software#legacy-ide-18x

Etape 5 - Ajout des librairies nécessaires au projet dans votre IDE

Téléchargez arduino-mcp2515.zip - Librairie pour gérer les cartes CAN-BUS Shield
Téléchargez ArduinoThread.zip - Librairie pour l'éxécution parallèle de tâches (Protothread)

Et ajoutez les .zip un par un via ce menu:
img


Etape 6 - Compiler le Sketch Arduino

Récupérez le sketch arduino-psa-diag.ino (Version 1.9 - 10 / 01 / 2022)
Vous avez le choix entre copier le code source depuis le RAW et enregistrer le fichier .ino ou bien récupérer le ZIP du master pour directement récupérer le .ino et les ZIP des librairies
Dans le cas d'une carte CAN-BUS Shield V2.0 vous devez changer CS_PIN_CAN0 à 9 (au lieu de 10)

img

img


Etape 7 - Uploader le programme

Branchez votre Arduino en USB sur votre ordinateur.

Vous n'avez plus qu'à uploader le programme sur votre Arduino en cliquant sur la flèche allant à droite, vérifiez bien dans Tools > Port que vous avez bien sélectionné le bon port.

img

Le message après compilation indiquant qu'il reste peu de mémoire disponible est tout à fait normal et parfaitement pris en considération

Etape 8 - Débogage / Vérification

Evidemment si vous voulez faire quelque chose d’intéressant il faut que vous connectiez l'Arduino en USB sur votre PC Portable pendant qu'il est connecté au CAN-BUS actif de la voiture (ce qui implique d'avoir au minimum le contact allumé)

Ouvrez le terminal série (en baudrate 115200) et envoyez ">764:664" [↵] suivi de "1003" [↵]

img


Surprise, vous recevez un message de réponse et votre NAC affiche maintenant ceci:
img


Vous pouvez trouver une grande liste de commandes possibles sur le repo Github (et savoir ce que fait le sketch derrière les commandes que vous envoyez)

Vous pouvez ensuite fermer le terminal série pour libérer le port COM pour le programme qui suit.
 
Dernière édition:

Maintenant que votre shield est fonctionnelle c'est maintenant que le programme rentre en jeu.
Quel est son but ? Fournir une interface graphique à ces commandes disgracieuses :pt1cable:

img


Remercions @bagou91 qui est à l'origine de la plus grande partie du programme Windows (interface graphique), ayant plutôt participé à la partie communication du programme avec mon sketch Arduino

--
  • Comment as-t-on pu arriver à ce résultat ?
En analysant le CAN-BUS pendant l'utilisation de Diagbox, en analysant un dump complet de la mémoire NAND du NAC ainsi que le firmware non chiffré que PSA avait laissé fuité en 2017 (21-05-65-32_NAC-R0_NAC_EUR_WAVE2)

Mais même avec tout ça il s'avère que le NAC/NAC reste un calculateur sécurisé avec un système de seed/key (on vous donne un texte, vous le passez dans un algorithme secret et vous donnez ce texte modifié en réponse), sans la bonne réponse: le calculateur reste verrouillé et aucune modification n'est possible

Cet algorithme secret est toujours un secret (pour l'instant), le programme utilise une faiblesse de la génération des seed et un dictionnaire que j'ai établi (environ 16 millions de valeurs possibles générées maximum, au lieu de 4 Milliards théoriquement possible sur 4 bytes)
Mise à jour: Cet algorithme secret ne l'est maintenant plus :cool:

--

Téléchargez la dernière version de PSA-Arduino-NAC.exe ici (v1.3.1 - 26/04/2023)
Téléchargez la dernière version de PSA-Arduino-CIROCCO.exe ici (v1.2.7 - 16/03/2022)

Changelog:

  • v1.0 - 02/09/2020: Initial version
  • v1.0.2 - 04/09/2020: Clearer buttons text and fix Adaptive Cruise Control setting mislabeled
  • v1.0.3 - 06/09/2020: AIO Diagnostic session message and COM port settings changed
  • v1.0.4 - 25/09/2020: VisioPark zone configuration added
  • v1.0.5 - 25/09/2020: RCC Unlocking bruteforce + RCC Wave3 support
  • v1.0.6 - 26/09/2020: Fix software crash on NAC access
  • v1.0.7 - 26/09/2020: Error message if .log file is locked by another process
  • v1.0.8 - 26/09/2020: Retry zone reading if it fails
  • v1.0.9 - 27/09/2020: Extremely partial AIO support (Huge work needed)
  • v1.1.0 - 30/09/2020: RCC supported for writing ! Internet is now mandatory
  • v1.1.1 - 30/09/2020: Fix slow ECU unlocking
  • v1.1.2 - 30/09/2020: Fix RCC unlocking issues
  • v1.1.3 - 30/09/2020: Fix RCC calibration upload
  • v1.1.4 - 14/10/2020: Fix RCC calibration upload
  • v1.1.5 - 26/10/2020: Generic Diag sketch support + Sending hardware reference to the server to better identify differences in data between units
  • v1.1.6 - 24/11/2020: Russian translation by @SHKoder + Fix logs writing issues (a buffer has been added)
  • v1.1.7 - 27/11/2020: Fix automatic language selection (bug introduced in 1.1.6)
  • v1.1.8 - 28/11/2020: Remove some Russian added inside English setting names, fix "Alerts History" on Wave3/4
  • v1.1.9 - 29/11/2020: Fix Russian language crashing the app
  • v1.2.0 - 29/12/2020: Settings adjustments
  • v1.2.1 - 30/12/2020: Wave3/4 car type fix
  • v1.2.2 - 18/01/2021: Mono/bizone setting in zone 210D
  • v1.2.3 - 24/02/2021: Zone 2134 for electric cars (Wave3/4)
  • v1.2.4 - 02/03/2021: Rectifying some settings names (Thank's to @Hallahub) + Webasto settings in 210D zone
  • v1.2.5 - 06/03/2021: Fix introduced calibration issue in 1.2.4
  • v1.2.6 - 20/06/2021: Unobfuscated so no more virus false positive, new settings added
  • v1.2.7 - 13/12/2021: Sound adjustment for AAS in 2100, 2132 zone support, new values for menus in 2127, clearer 212A zone values, fix various settings names & values
  • v1.2.8 - 17/12/2021: Fix introducted bug with RCCs and 2132 zone support
  • v1.2.9 - 16/03/2022: Following deletion of many of my topics by admins of Forum-Peugeot, everything has been transferred to vlud.net
  • v1.3.0 - 12/03/2023: Chinese (TW) translation thanks to afu1986 (github.com), BTA setting in 2133, LVDS configs in 2133, translation fixes
  • v1.3.1 - 26/04/2023: FIAT Brand added, Car models added / rectified

--

Une connexion Internet est requise sur le PC pour le déverrouillage du calculateur (configuration et calibration)

--

Premièrement connectez vous à l'Arduino, le port COM de celui-ci ne doit pas être utilisé par l'IDE Arduino
img


Vous avez l'affichage de la calibration courante dans votre NAC (Ici de 508 R8)
Effectuez ensuite une lecture de tous les paramètres en cliquant sur "Read Parameters"

img


Fortement recommandé avant de bidouiller : Sauvegarde complète de la configuration actuelle de votre NAC, cliquez sur "Backup"

img


Enregistrez le fichier .nac en lieu sûr
Vous pouvez ensuite accéder aux paramètres en cliquant sur "Parameters":

img


Tous les paramètres sont repartis dans leur zone respective (c'est comme ça qu'ils sont stockés dans le NAC/RCC)

Certains paramètres sont liés à d'autres voire en doublon et ils ne sont pas forcément dans la même zone (je pense par exemple à l'activation du Menu Climatisation qui est dans la zone 212C et 210D)

Exemple de modification #1: ajout d'une caméra panoramique 180°
Tout ces paramètres doivent être activés et toutes les options de la zone 2106 (Caméra 130°) désactivées

img

Exemple de modification #2: modification du modèle de voiture
Les modèles listés dépendent de nombreux facteurs dont : La modèle de votre NAC *, la marque constructeur et l'ID du modèle

* Wave 1/2/3/4. Les NAC Wave 3 existent en deux variantes majeures (HD et non-HD), la version HD est dédiée aux écrans 10" quand l'autre est dédiée aux écrans 7" et 8", les NAC Wave 4 sont forcément HD.

/!\ Tous les modèles ne sont pas listés pour toutes les marques et tous les modèles, à vous de jouer

img


Cliquez sur "Save" pour enregistrer la configuration et validez:
img


Puis attendez que votre boitier redémarre tout seul: c'est terminé ! :chinois:

img


Les petits + du programme: Effacement des défauts après chaque télécodage / calibration et aucune erreur résiduelle de type "Télécodage Sécurisé" ou "Programmation manquante" affichée dans Diagbox. Mais aussi: aucune augmentation du compteur du nombre de téléchargements :bien:

Le détail des zones dans les fichiers de configuration ou dans les calibrations se trouve ici
 
Dernière édition:


Bonjour
Vous êtes impressionnants. Est ce que les modifications seront perdues après une mise à jour système ? Et la garantie du véhicule ?
Est ce qu’il sera possible d’activer la caméra avant Après bien sûr l’avoir installée?
Cordialement
Et encore bravo
Justan
 

Les modifications sont permanentes à part si Peugeot fait un nouveau télécodage derrière avec Diagbox
Peu de chance que la garantie soit touchée pour peu que vous ne mettiez pas feu au véhicule pendant les opérations :D
La caméra avant implique un ECU supplémentaire qui fait le switch entre le signal de la caméra arrière et celui de l'avant
 




Vraiment un super boulot, enfin quelque chose de sérieux pour nac, maintenant beaucoup de gens peuvent l'avoir, bravo pour l'excellent travail et le respect du partage.

( Désolé mon français, mais j'utilise Google Translate)
 
Dernière édition par un modérateur:



J'ai une question, sans aucune arrière pensé ! mais ça sert à quoi ?:voyons: désolé je ne maitrise pas le sujet :cry:
En tout cas y'a un joli travail !!! :bien:
 

J'ai une question, sans aucune arrière pensé ! mais ça sert à quoi ?:voyons: désolé je ne maitrise pas le sujet :cry:
En tout cas y'a un joli travail !!! :bien:

Ajouter une caméra de recul, activer Carplay/Android Auto sur les finitions Active (NAC ou RCCA2), activer l'entrée AUX quand elle est désactivée, installer un NAC d'occasion peu importe son origine (remplacement d'un SMEG sur voiture plus ancienne ou d'un RCC pour avoir la navigation), activer les menus pour une caméra avant, changer le nom du Bluetooth visible, etc etc

Très bon travail vlud et merci du partage.
Possible de télécharger la sauvegarde de l'étalonnage rcc pour 308T9?
:pt1cable:

Done
 








Congratulations for the excellent work and for the great professionalism shown in making your work public! THANK YOU!

Could anyone share the calibration file for a C4 Picasso II 5 seater (B78)?
 
  • J'aime
Reactions: MacSlavko




Ajouter une caméra de recul, activer Carplay/Android Auto sur les finitions Active (NAC ou RCCA2), activer l'entrée AUX quand elle est désactivée, installer un NAC d'occasion peu importe son origine (remplacement d'un SMEG sur voiture plus ancienne ou d'un RCC pour avoir la navigation), activer les menus pour une caméra avant, changer le nom du Bluetooth visible, etc etc

Done
Bonjour
Activer le menu pour une caméra avant veux dire qu’on peut connecter une caméra sur le système sans hardware supplémentaire j’ai cru comprendre qu’il fallait un ECU supplémentaire ? Peut on le trouver ? merci d’avance
 

Non toujours pas ... ma réponse est toujours la même, il faut quand même pouvoir l'activer avec le hardware supplémentaire
 

Salut vlud, est-il possible de faire une sauvegarde du fichier d'étalonnage présent dans le nac avant le remplacement?
 

Salut @RuLe ,

On creuse pour voir s'il est possible de récupérer la calibration courante du NAC...:voyons:
Sinon tu as à disposition sur le repositary la calibration de ton modèle de voiture + effectuer une sauvegarde des paramètres lu avec le logiciel.
 

Wouh, super travail. Je le garde de coté pour le jour où j'aurai envie de changer le SMEG+ pour le NAC de ma 308.
Et une petite question, est-ce le télécodage et la calibration réalisé via l'arduino peut supplanter l'étape du télécodage lors du remplacement du SMEG+ par le NAC?
Et encore, c'est vraiment du beau travail. Chapeau.
 
Dernière édition:

Oui parfaitement, en "restaurant" le fichier de config de ma 308 et en modifiant manuellement pour ajuster aux options de la voiture