Développement d'un outil de diagnostique basé sur Arduino

Avatar du membre
gwicki
Membre actif
Membre actif
Auteur du sujet
Messages : 53
Enregistré le : mer. févr. 05, 2020 11:37 pm
Prénom : Gilles
Carrosserie : Break
Motorisation : 2,0L
Type : XU10J4R (RFV)
Finition : Ne sais pas
Millésime : 1998
Kilométrage : 270000
Gilles
31 ans
406 Ne sais pas
2,0L
XU10J4R (RFV)
Millésime 1998

Développement d'un outil de diagnostique basé sur Arduino

Messagepar gwicki » dim. mars 29, 2020 12:48 pm

Bonjour,
ayant deux Peugeot que j'entretiens moi-même (une 406 break phase 1 et une 306 cabriolet phase 3), un outil de diagnostique me serait bien utile. Cependant comme je suis maniaque du logiciel libre et que j'aime bien avoir un contrôle maximal sur les outils que j'utilise (au niveau logiciel et matériel), j'ai pensé à faire mon propre outil de diagnostique basé sur Arduino, dont je publierais ensuite les schémas et le code pour qu'ils puissent servir à d'autres.
J'ai ce câble:
DSC03996.JPG

Je pense relier les broches utiles du côté DB25 à l'Arduino qui va communiquer avec les microcontrôleurs de la voiture, en déduire les éventuels défauts et transmettre les résultats par USB à un PC qui les affichera.
J'ai trouvé cette doc dans laquelle à la page 23 il est dit quelle broche du connecteur de diagnostique sert à quoi pour une 406 phase 1.
406Ph1-D8-ES9J4_Schema-CalculateurCMM[PACK].pdf

Il semble y avoir deux protocoles de communication qui sont utilisés (Bus diagnostic ISO5 et Bus diagnostic ISO8). Je n'arrive pas à trouver d'informations sur ces protocoles. Est-ce que quelqu'un en aurait?
Bonne journée
Gilles
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Avatar du membre
ubuntu406
Modérateur
Modérateur
Messages : 3011
Enregistré le : ven. juil. 07, 2017 12:48 am
Prénom : Brice
Carrosserie : Berline
Motorisation : 2,0L HDI
Type : DW10ATED (RHZ)
Finition : SV
Millésime : 2001
Kilométrage : 292000
Localisation : Seine et marne 77
Brice
43 ans
Seine et marne 77
406 SV
2,0L HDI
DW10ATED (RHZ)
Millésime 2001

Re: Développement d'un outil de diagnostique basé sur Arduino

Messagepar ubuntu406 » lun. mars 30, 2020 11:43 am

Si le chef Youri30 passe par là

Sinon pour (SemiMux: DW10), y'a plusieurs reseau de COM entre divers calculateurs:

_Moteur: KWP / K-Line
_Carroserie: VAN

Avatar du membre
Youri30
Administrateur du site
Administrateur du site
Messages : 27650
Enregistré le : lun. sept. 19, 2011 12:57 pm
Prénom : Youri
Carrosserie : Berline
Motorisation : 2,2L HDI
Type : DW12TED4 (4HX)
Finition : Sport Pack
Millésime : 2001
Kilométrage : 402642
Localisation : Alès (30)
Youri
57 ans
Alès (30)
406 Sport Pack
2,2L HDI
DW12TED4 (4HX)
Millésime 2001

Re: Développement d'un outil de diagnostique basé sur Arduino

Messagepar Youri30 » mar. mars 31, 2020 7:50 am

gwicki a écrit :comme je suis maniaque du logiciel libre et que j'aime bien avoir un contrôle maximal sur les outils que j'utilise (au niveau logiciel et matériel)

Bienvenue au club ;)

ISO5 et ISO8 ne sont pas des noms de protocoles, tu ne trouveras effectivement rien avec ça.

Pour les protocoles, je ne te recommande pas de chercher à les implémenter toi-même. D’une part, tu auras du mal à trouver les specs des différents protocoles, d’autre part c’est un énorme boulot de codage et mise au point…
Et surtout, c’est pas utile de vouloir réinventer la roue quand il y a des chips qui font déjà le taf. Renseigne toi sur les chips ELM327 et STN1110, ils implémentent toute une gamme de protocoles de diag et s’interfacent facilement en UART.

Pour l’ELM327, je ne parle pas des boîtiers tout faits et fermés, je parle du chip lui-même, que tu peux trouver chez Elm Electronics.
Le STN1110 est un autre chip, plus ou moins équivalent, et moins cher. On le trouve là : https://www.scantool.net/stn1110/
Penche toi déjà sur les datasheets de ces deux composants, il y a de la lecture et tu auras (presque) tout ce qu’il faut pour te faire une belle interface : des schémas d’application, une description sommaire des protocoles, … ;)
Image- Qu'est-ce que tu vas faire aujourd'hui ?
- Rien.
- C'est déjà ce que t'as fait hier !
- Ouais mais j'ai pas fini.

Avatar du membre
gwicki
Membre actif
Membre actif
Auteur du sujet
Messages : 53
Enregistré le : mer. févr. 05, 2020 11:37 pm
Prénom : Gilles
Carrosserie : Break
Motorisation : 2,0L
Type : XU10J4R (RFV)
Finition : Ne sais pas
Millésime : 1998
Kilométrage : 270000
Gilles
31 ans
406 Ne sais pas
2,0L
XU10J4R (RFV)
Millésime 1998

Re: Développement d'un outil de diagnostique basé sur Arduino

Messagepar gwicki » mar. mars 31, 2020 11:56 am

Merci pour ces précieux renseignements. D'après ce que j'ai vu, il semble que les 406 phase 2 utilisent le protocole ISO 9141-2 présent sur les deux circuits, par contre je n'arrive pas à trouver lequel c'est pour les phase 1. La mienne est une phase 1 de 1998. Est-ce que ces circuits implémentent aussi le protocole qui correspond à cette génération?

Avatar du membre
Youri30
Administrateur du site
Administrateur du site
Messages : 27650
Enregistré le : lun. sept. 19, 2011 12:57 pm
Prénom : Youri
Carrosserie : Berline
Motorisation : 2,2L HDI
Type : DW12TED4 (4HX)
Finition : Sport Pack
Millésime : 2001
Kilométrage : 402642
Localisation : Alès (30)
Youri
57 ans
Alès (30)
406 Sport Pack
2,2L HDI
DW12TED4 (4HX)
Millésime 2001

Re: Développement d'un outil de diagnostique basé sur Arduino

Messagepar Youri30 » mar. mars 31, 2020 1:08 pm

Je ne sais pas quel est le protocole utilisé sur ton modèle… :tristounet:
Et donc, je ne peux pas te dire si ces chips supportent ce protocole.

Mais, j’aurais tendance à penser que, à partir du moment où tu as le connecteur standard 16 voies, le protocole utilisé est un protocole standard et qu’il est donc très probablement implémenté sur ELM327 et STN1110. Mais ça reste une supposition, qu’il faudra tester pour en être certain… Je n’ai pas de voiture sous la main sur laquelle je pourrais faire le test… :tristounet:
Image- Qu'est-ce que tu vas faire aujourd'hui ?
- Rien.
- C'est déjà ce que t'as fait hier !
- Ouais mais j'ai pas fini.

Avatar du membre
gwicki
Membre actif
Membre actif
Auteur du sujet
Messages : 53
Enregistré le : mer. févr. 05, 2020 11:37 pm
Prénom : Gilles
Carrosserie : Break
Motorisation : 2,0L
Type : XU10J4R (RFV)
Finition : Ne sais pas
Millésime : 1998
Kilométrage : 270000
Gilles
31 ans
406 Ne sais pas
2,0L
XU10J4R (RFV)
Millésime 1998

Re: Développement d'un outil de diagnostique basé sur Arduino

Messagepar gwicki » mar. mars 31, 2020 1:40 pm

Ok, je vais essayer de me renseigner un peu plus et je te tiens au courant.

Avatar du membre
ubuntu406
Modérateur
Modérateur
Messages : 3011
Enregistré le : ven. juil. 07, 2017 12:48 am
Prénom : Brice
Carrosserie : Berline
Motorisation : 2,0L HDI
Type : DW10ATED (RHZ)
Finition : SV
Millésime : 2001
Kilométrage : 292000
Localisation : Seine et marne 77
Brice
43 ans
Seine et marne 77
406 SV
2,0L HDI
DW10ATED (RHZ)
Millésime 2001

Re: Développement d'un outil de diagnostique basé sur Arduino

Messagepar ubuntu406 » mar. mars 31, 2020 1:44 pm

Hors-sujet
Moi je sais que le OBD1 est bien bidouillé chez les passionné/compétiteur model 306.
Ce référer chez eux et nous informer ici (si possible)

Avatar du membre
gwicki
Membre actif
Membre actif
Auteur du sujet
Messages : 53
Enregistré le : mer. févr. 05, 2020 11:37 pm
Prénom : Gilles
Carrosserie : Break
Motorisation : 2,0L
Type : XU10J4R (RFV)
Finition : Ne sais pas
Millésime : 1998
Kilométrage : 270000
Gilles
31 ans
406 Ne sais pas
2,0L
XU10J4R (RFV)
Millésime 1998

Re: Développement d'un outil de diagnostique basé sur Arduino

Messagepar gwicki » mar. mars 31, 2020 3:32 pm

ubuntu406 a écrit :
Hors-sujet
Moi je sais que le OBD1 est bien bidouillé chez les passionné/compétiteur model 306.
Ce référer chez eux et nous informer ici (si possible)

Alors je vais regarder de ce côté-là aussi ;)

D'après ce que jul31 dit dans ce poste, il semble que le protocole OBD des phase 1 est propre à Peugeot et donc que ça ne fonctionne pas avec ces circuits.
viewtopic.php?f=24&t=6890

@jul31 Est-ce que tu as finalement mesuré à l'oscilloscope les trames du protocole OBD des phase 1 comme tu parlais de le faire dans ton poste? Si c'est le cas ça m'arrangerait bien si tu es d'accord de me les partager. ;)

Avatar du membre
gwicki
Membre actif
Membre actif
Auteur du sujet
Messages : 53
Enregistré le : mer. févr. 05, 2020 11:37 pm
Prénom : Gilles
Carrosserie : Break
Motorisation : 2,0L
Type : XU10J4R (RFV)
Finition : Ne sais pas
Millésime : 1998
Kilométrage : 270000
Gilles
31 ans
406 Ne sais pas
2,0L
XU10J4R (RFV)
Millésime 1998

Re: Développement d'un outil de diagnostique basé sur Arduino

Messagepar gwicki » dim. mai 10, 2020 9:17 am

J'ai finalement réussi à acheter ceci: https://ch.farnell.com/fr-CH/mikroelekt ... dp/2858030.
C'est une carte interface OBD2 UART basée sur le STN1110. Ça ne fonctionnera probablement pas tel quel sur ma voiture mais je vais déjà essayer avec des voitures plus récentes et ensuite je verrai pour la mienne.

Avatar du membre
gwicki
Membre actif
Membre actif
Auteur du sujet
Messages : 53
Enregistré le : mer. févr. 05, 2020 11:37 pm
Prénom : Gilles
Carrosserie : Break
Motorisation : 2,0L
Type : XU10J4R (RFV)
Finition : Ne sais pas
Millésime : 1998
Kilométrage : 270000
Gilles
31 ans
406 Ne sais pas
2,0L
XU10J4R (RFV)
Millésime 1998

Re: Développement d'un outil de diagnostique basé sur Arduino

Messagepar gwicki » lun. oct. 05, 2020 1:00 pm

Alors j'ai acheté un adaptateur pour relier le côté UART de la carte avec le STN1110 à l'UART d'une carte Arduino Uno.
https://ch.farnell.com/fr-CH/mikroelekt ... dp/2431450
Comme ce bus UART est le même que celui utilisé pour programmer le microcontrôleur de l'Arduino par le port USB (il y a un circuit de conversion USB - UART sur la carte), je peux envoyer des commandes à mon STN1110 depuis mon ordi connecté en USB à la carte Arduino. Pour cela il faut retirer le microcontrôleur pour qu'il n'interfère pas avec le bus UART. J'ai également dû modifier la carte adaptateur entre l'Arduino et la carte avec le STN1110 pour que le RX et le TX soient dans le bon sens (de base j'avais RX sur RX et TX sur TX, il faut l'inverse).
Comme prévu ça fonctionne avec les voitures compatibles OBD2, par contre j'ai essayé sur ma 306 cab phase 3 de 2000 et là le STN1110 n'arrive pas à se connecter au système de la voiture.