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.
--
Statistiques: nombre d'unités uniques
--
--
Liste de courses
Etape 0 - Je comprends rien !
Qu'est-ce que le CAN-BUS ?
Etape 1 - Soudure des connecteurs sur la Shield
Votre carte CAN-BUS Shield arrive avec ses PIN à souder vous-même:
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 !
Rappel:
Le schéma de câblage du module 8Mhz avec Arduino Nano est ici (c'est exactement le même pour un Arduino Uno)
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)
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):
Ou directement connecter deux fils (idéalement multibrins) du bornier (4) vers les PIN indiqués:
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:
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
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.
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" [↵]
Surprise, vous recevez un message de réponse et votre NAC affiche maintenant ceci:
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.
--
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.
--
Statistiques: nombre d'unités uniques
--
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
- 1 carte CAN-BUS Shield 2.0 (sans soudure ) - environ 24€ TTC - ou 1 carte CAN-Bus Shield 1.2 (avec soudure /!\) (aussi dispo ici) ou toute carte disposant d'un MCP2515 et d'un MCP2551/TJA1050
- 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
Votre carte CAN-BUS Shield arrive avec ses PIN à souder vous-même:
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:
Le schéma de câblage du module 8Mhz avec Arduino Nano est ici (c'est exactement le même pour un Arduino Uno)
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)
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):
Ou directement connecter deux fils (idéalement multibrins) du bornier (4) vers les PIN indiqués:
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:
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)
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.
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" [↵]
Surprise, vous recevez un message de réponse et votre NAC affiche maintenant ceci:
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: