Jump to content

Les Mystères... du Port Consult : Se fabriquer une interface pour les Patrols 2.8 et 3.0Di ou acheter un câble ECUTALK et l'appli NDSI ET VERIFIER LE BON ETAT DE SA POMPE VP44


Recommended Posts

Posted (edited)

C'est tout de même dommage de ne pas trouver des interfaces Consult Bluetooth qui fonctionnent correctement.

Seuls certains d'entre nous (très peu) ont eu la chance d'acquérir une interface Consult BT qui marche. Aucune des trois que j'avais achetées n'avait fonctionné au final, et j'avais donc du me résoudre à utiliser l'interface filaire chinoise DDL modifiée comme je l'ai expliqué dans "les astuces".

Je n'avais jamais eu non plus le temps de me pencher un peu plus sur le sujet. C'est fait. Rien de bien sorcier, comme toujours, si on fait attention de ne pas tomber dans les nombreuses trappes...

Je suis donc reparti de la documentation disponible sur le net, en particulier de chez PLMS pour le schéma électronique qu'ils ont mis en ligne, à fin, déjà, de réaliser un premier essai sur "table", puis sur mon Patrol, bien sûr.

Comme le +12V est assez "bruité", je me suis dit qu'il ne devait pas être étranger aux difficultés rencontrées et j'ai gardé cela en tête.  Ensuite, je voulais essayer "avec les "moyens du bord", c'est à dire ce que j'avais dans "les tiroirs". ça tombe bien, les Magic Box m'ont fait acheter tout un tas de composants, alors autant les utiliser. Je vais décrire ici toutes les étapes, une à une, pour ceux que ça intéresse.

Edited by phdv61
  • Like 1
  • I just love it 2
Posted

L'essentiel au niveau hardware est là :

1. Electrical and Signaling protocol
1.1. Consult terminal or PC communications is via three wire bus. TX, RX and Async
Clock.
1.2. TX data to ECU level is 12V, idle low (see interface schematic). ECU output is
open collector and can be sourced from the interface logic level (5 V). The ECU
data output is idle high.
Clock to the ECU seems fine with a 5v source from the interface.
1.3. Communications baud rate is 9600 baud (default). Clock speed for this baud rate
is 153.6 Khz, plus or minus 5 khz (as tested by PL& MS). Other baud rates and
matched clocks may be possible as well. Clock GENERATED by the Host
terminal (Consult or PC Interface). Synchronizing the clock to the data lines is
NOT necessary. E.g. the clock free runs at the required speed. (16x the data rate).
1.4. The Data Format is 1 start bit (always low), 8 data bits, no parity, 1 stop bit
(always high).
The data is actually processed by the ECU's micro LSB first. Each serial string is
made up of blocks of : <Start bit (0)> <8 data bits LSB-MSB(xxxxxxxx)><Stop
bit (1)>
Data is sent as raw Hex,8N1, no spaces or carriage return characters etc are
used.

Posted

Comme j'ai acquis une bonne petite expérience avec le monde Arduino, et les microcontrôleurs ATMega, et que j'ai un paquet de composants dans mes tiroirs, je suis parti là-dessus pour valider "sur table".

L'ATMega permet de générer une horloge à la fréquence qu'on souhaite, de même qu'il permet de gérer des ports série au format TTL, en hard comme en soft. Enfin, la carte Arduino dispose d'un USB.  Il suffira juste d'adapter les différents signaux comme il faut, en émission comme en réception.

Sur le schéma PLMS, on enlève donc la génération d'horloge, ainsi que l'interface RS232, devenue inutile. Et je décide de prendre une carte Arduino Uno de mes tiroirs, avec un "shield" me permettant de souder et connecter tous les composants nécessaires au "conditionnement" des signaux.

voilà ce qu'il faut "construire" :

 

Capture d’écran 2023-11-06 à 17.32.35.png

Posted (edited)

ETAPE 3

J'ai rentré le schéma électronique sur le site chinois EASYEDA, pour avoir une idée en 3D de comment je vais positionner et souder les différents composants sur le "shield" UNO : Et ça a donné ça :

Capturedecran2023-11-06a17_41_35.thumb.png.a04122b736b9f2265e4cc5e08fc3f431.png

En réalité, le shield que j'avais disposait de différentes pastilles Gnd et +5V, que j'ai utilisées pour limiter les soudures/connexions.  Et j'ai utilisé un connecteur OBD2 pré-cablé que j'ai relié à mes 5 connecteurs à vis.

J'ai aussi déjà prévu le connecteur pour brancher le module Bluetooth, mais pour supprimer le câble USB il faudra que je rajoute un régulateur 5V et 4 capas sur mon shield + de quoi faire le reset de l'ATMega lorsque la connexion BT s'établit. Je ferai dans les prochains jours, mais je sais déjà que çà marche car c'est comme cela que MB est faite.

Edited by phdv61
Posted

ETAPE 4 : les quelques lignes de logiciel pour générer l'horloge, et gérer les lectures/écritures des données.

On gère une Led qui clignote toutes les secondes pour montrer que le logiciel 'vit' et qui scintille chaque fois qu'un caractère est reçu du port Consult ( en provenance du patrol donc).

/****************************************************************************************************
 
  INTERFACE CONSULT pc, via USB ou Bluetooth  PhDV61  - 6 Novembre 2023
  ETAPE 1 : génération d'horloge (CLK) 153,4 kHz sur D9, passée ensuite dans un transistor pour la rendre "bien propre et carrée"

  Pin 13 :  output LED
  Pin  9 :  output PWM +5V à 153,8kHz qui nous servira d'horloge CLK pour l'interface CONSULT.

  ETAPE 2 : il faut définir un port software serial (Rx, Tx) . On prendra ici les pins D2 et D3
            
            En sortie ECU, transistor collecteur ouvert = donc à tirer au +5V avec résistance 6.8kOhms, pour une conversion directe en logique TTL
            et on branche sur D2. La sortie Rx (D3) est envoyée sur un transistor inverseur, car le niveau est idle bas, et en +12V.

  Et le +5V proviendra du port USB... facile.
 
  principe : lire sur le port Rx soft serial 9600 bits/s et envoyer tout caractère lu sur serial USB ou le BT .
             lire le port serial USB ou le BT, et envoyer tout caractère lu sur le Tx soft serial

********************************************************************************************************/

#include "SoftwareSerial.h"

SoftwareSerial MyBlue(2, 3); // 2 : broche receive  "RX" soft coté Arduino         tirée au +5V par résistance 6.8k si provient de l'ECU
                                                // 3 : broche transmit "TX" soft coté Arduino     (avec pont diviseur si va vers module BT  direct transistor si vers ECU  )

const int   ledPin=13, Clock=9;
boolean     toggle = true;
long        timer = 0, timer_life = 0,  delai = 512, scintillement=75;  
byte        incoming_byte, outcoming_byte;

int          FREQUENCY = 103;          // 0x7fff donne du 250Hz. 103 en décimal nous génère une horloge de 153,846kHz à partir du 16MHz.
int          PWM       =  52;          //   car 16 MHz / (103+1) = ... 153 846 Hz très précisément. Quasiment ce qu'on veut.
boolean      Led = false;

void setup() {
 
  Serial.begin(9600);     // on initialise le port série PC <-> Arduino via USB ou BT à 9600 bauds.
  MyBlue.begin(9600);     // Baud Rate Consult
 
  setupPWM16();
  pinMode(ledPin,  OUTPUT);
  pinMode(Clock,   OUTPUT);
 
  analogWrite16( Clock , uint16_t (PWM)); // et c'est parti pour la génération d"horloge sur le port 9

  digitalWrite(13, HIGH);
 
  timer = millis();        // pour faire scintiller la LED
  timer_life = millis() + delai;   // compteur de vie 1s
 
}

void loop() {
    
 if  (Serial.available())  
 {
    outcoming_byte = (byte) Serial.read();
    MyBlue.write( outcoming_byte);   // on a reçu un char du PC , qu'on envoit vers l'ECU (TX Arduino -D3 )
 }

if  (MyBlue.available())
  {
    incoming_byte= (byte) MyBlue.read();
    Serial.write(incoming_byte);   // on a reçu un char de l'ECU sur RX Arduino (D2)" , qu'on envoit vers le PC
    timer = millis()+scintillement; Led=true;
    digitalWrite(13, HIGH);
  }  

  // Si la Led de réception de données était allumée, on l'éteint au bout d'un certain temps  
  if ( (millis()>timer) && Led ) // extinction de la LED au bout du délai de scintillement. Cela peut arrêter le cligotement "de vie"
  {
    Led=false;
    digitalWrite(13, LOW);
  }

 // allumage extinction de la LED "de vie"
 if ( millis()>timer_life) // qui l'emporte dans tous les cas sur tout "scintillement" en cours...
  {
    if (toggle) { digitalWrite(13, LOW); }
    else        { digitalWrite(13, HIGH);}
    timer_life=millis()+delai;
    toggle=!toggle;
    // MyBlue.write( 0xEF);delay(5);MyBlue.write( 0xFF);delay(5);MyBlue.write( 0xFF);
  }  
}


void setupPWM16() {
 
    DDRB |= _BV(PB1) | _BV(PB2);        /* set pins as outputs */
    
    TCCR1A = _BV(COM1A1) | _BV(COM1B1)  /* non-inverting PWM */
        | _BV(WGM11);                   /* mode 14: fast PWM, TOP=ICR1 */

    TCCR1B = _BV(WGM13) | _BV(WGM12)
        | _BV(CS10);                    /* no prescaling */
 
    ICR1 = FREQUENCY;                   // 0x7fff donne du 250Hz. 103 en décimal nous génère une horloge de 153,846kHz à partir du 16MHz.
                                        //   car 16 MHz / (103+1) = ... 153 846 Hz très précisément. Quasiment ce qu'on veut !
}

/* 16-bit version of analogWrite(). Works only on pins 9 and 10. */
void analogWrite16(uint8_t pin, uint16_t val)
{
    switch (pin) {
        case  9: OCR1A = val; break;
        case 10: OCR1B = val; break;
    }
}

Posted (edited)

Et voilà.

Cette interface et le logiciel à mettre sur l'Arduino gèrent la communication avec l'ECU, et permettent d'utiliser les logiciels PC - Windows ECUTalk, NDSI, Conzult, etc...

Cela valide donc ce que je voulais valider, puisque ça marche.

Il me reste à me faire fabriquer 5 CI avec tout dessus mais en composants discrets qu'il faudra souder, pour avoir enfin une interface Consult Bluetooth qui marche, car faire fabriquer juste une carte en CMS, cela ne vaut pas la peine.

yapluka.

Capturedecran2023-11-06a18_38_16.png.ed30d4f27d053fb1725ccbd566daa23c.png

Et une fois tout soudé, hop dans la boite noire que je cacherai sous le tableau de bord...

Capturedecran2023-11-06a18_36_50.png.9144db717d632b35a2b6d7b9f2f1c863.png

 

 

 

Edited by phdv61
Posted

Ah oui, j’oubliais. 

en mode USB filaire, je devrais pouvoir faire tourner l’appli Consult NDSI Android sur mon auto-radio aussi. Pratique !

En BT, c’est moins sûr, mais ca tournera sur le téléphone par contre. 

  • Like 1
Posted (edited)

Je confirme, en mode USB filaire, et en branchant le coté USB sur l'autoradio Android ( et en choisissant l'USB "CH340" car c'est ce composant et non le composant FTDI qui est utilisé par les versions chinoises de l'Arduino Uno, l'appli NDSI (Nissan data Scan 1) marche parfaitement. Elle se connecte, lit et efface les défauts, et permet d'afficher tous les paramètres consult.

L'appli Android est présentée là :

https://nisscan.com/product/nds-i-android-app/?v=11aedd0e4327

Elle existe en version gratuite 'Lite' sur Google play, et en version complète pour seulement 7,5 Euros. Alors autant ne pas se priver, d'autant que la version 'lite' a besoin d'une connexion internet pour passer des pubs, ce qui oblige à connecter l'autoradio au Wifi du téléphone.

Pour se connecter en USB sur le port consult, il suffit d'acheter un simple câble Ecutalk là : https://www.ecutalk.com.au/interface.aspx

avec la prise "OBD2" et non pas la prise "DDL".  140 AUD soit environ 100E.   Souvent en rupture de stock. 

 

Ce câble a un composant 'FTDI'. Il y a une manip à faire sur l'autoradio, expliquée ici (en Anglais, mais les images parlent d'elles-mêmes) :

 

Bref, pour 110E, même les plus radins d'entre vous qui veulent toujours que tout soit gratuit seront comblés !

Edit : certes avec un fil, mais la plupart des auto-radios Android ont un USB "arrière" qui permettra de cacher tout cela derrière le tableau de bord. donc le BT devient presque un "accessoire" non indispensable.

Et voilà.

Edited by phdv61
  • Like 1
  • I just love it 1
  • phdv61 changed the title to Les Mystères... du Port Consult : Se bricoler une interface pour les Patrols 2.8 et 3.0Di ou acheter un câble ECUTALK et l'appli NDSI
  • 8 months later...
Posted

Excuse moi, mais je cherche partout pour trouver une solution à mon problème, mais pour moi tout ces trucs c'est trop compliqué, c'est pas à 70 balais que je vais m'y mettre.

Peu importe que cela me coûte mais il faut que j'arrive à faite tourner mon td6.

  • 5 months later...
Posted (edited)

Je reviens sur ce sujet, car j'ai simplifié ce que j'avais fait.

J'ai refait complètement le design, à la fois matériel, et logiciel. Je viens de lancer 5 circuits imprimés en fabrication pour valider.

- coté matériel, un Arduino nano chinois dont on utilise le composant USB CH340, 2 transistors (U2-U4), un ampli op rail-to rail (U1), deux capas, et quelques résistances. j'ai repris la forme de la carte Magic Box, pour que ça rentre dans le même boitier. Ce ne sera pas petit, mais ce n'est pas grave. C'est destiné à aller derrière la console centrale. Tout en composants discrets traversants, faciles à disposer et souder.

- coté logiciel, ultra simple. quelques lignes de code suffisent  (une dizaine) Utilisation de la bibliothèque série full duplex AltSoftSerial. On lit le port USB, et on écrit sur une pin du Nano, et inversement. Le nano sert aussi à générer l'horloge de 153,8 kHz dont a besoin l'ECU. Pour cela, on programme correctement le timer1 sur la pinoche D3.  Les différents composants servent à tranformer la logique TTL (0-5V) en signaux 0-12V comme le veut l'ECU, et pour l'un d'eux en logique inversée.

Enfin, On se sert du 5V de l'USB, disponible sur le Nano pour alimenter l'ampli-op (U1).

Capturedecran2025-01-04a15_23_12.png.e481035b0fea04d107e89428b2308361.png

Capturedecran2025-01-04a15_23_42.png.a6586d1f5c00df2044c10bfb343254b0.png

Je monterai un CI avec les composants à réception pour tester dans le Patrol.

Edited by phdv61
  • Like 1
Posted

Wow! Super!

Et on pourra changer la valeur du MAF? 😛😂 

  • Like 1
Posted
Il y a 3 heures, Talou a dit :

Wow! Super!

Et on pourra changer la valeur du MAF? 😛😂 

Meuh non. c'est juste une interface filaire Consult toute bête, pour ceux qui voudraient se la fabriquer pour s'amuser un peu et apprendre. Elle reviendra à une vingtaine d'Euros. Mais je ne les fabriquerai certainement pas.

Posted
Il y a 4 heures, phdv61 a dit :

Meuh non. c'est juste une interface filaire Consult toute bête, pour ceux qui voudraient se la fabriquer pour s'amuser un peu et apprendre. Elle reviendra à une vingtaine d'Euros. Mais je ne les fabriquerai certainement pas.

Donc plus besoin d’acheter un câble ECUTalk ou équivalent ?

Posted (edited)

si tu te fabriques une interface, non

Attends juste que j’aie validé le fonctionnement du CI nu sur lequel il faudra souder les composants et mettre un nano, sur support  au cas oû.

J’ai payé 5E les 5 circuits nus chez EasyEDA .je mettrai le Gerber dans une ’astuce’ ainsi que tout ce qu’il faut approvisionner. 

Edited by phdv61
Posted

Vu mes grandes qualités pour tout ce qui approche de près ou de loin  de vos astuces électroniques, je le commande chez Ecutalk dès la réouverture des commandes.🤣

Posted

 Cela doit bien faire 6 mois qu’ils sont en rupture.

 

Posted

Mddr. pas de bol,  mon Patrol n'est pas près de rouler alors.

En 2025 pas de Rallye des Gazelles alors.

Posted
il y a une heure, HENRI IV a dit :

Mddr. pas de bol,  mon Patrol n'est pas près de rouler alors.

En 2025 pas de Rallye des Gazelles alors.

Tu as une chance inouïe.  J'avais conservé le connecteur DDL de mon interface chinoise modifiée, et je ne l'avais pas coupé à ras.

connecteur_DDL.thumb.jpg.d29ab26b5415124f16c0d0a5539ff984.jpg

On verra ce qu'on peut faire...

 

  • Thanks 1
Posted
Il y a 15 heures, phdv61 a dit :

Tu as une chance inouïe.  J'avais conservé le connecteur DDL de mon interface chinoise modifiée, et je ne l'avais pas coupé à ras.

connecteur_DDL.thumb.jpg.d29ab26b5415124f16c0d0a5539ff984.jpg

On verra ce qu'on peut faire...

 

👍

Posted (edited)

Avec l'appli NDSI, tu as deux écrans. Un écran ("dash" en Anglais, comme "tableau de bord"), sur lequel tu peux choisir des paramètres qui évoluent dans le temps, comme la température LDR, l'avance à l'allumage, la quantité de gasoil demandée à la pompe, la température du gasoil qui arrive à la pompe ... etc 

IMG_5561.thumb.jpg.c1c4237de9646ef44948e3271c41c157.jpg

 

et un écran "data display", sur lequel moi j'affiche l'état des divers switches ( pédale haute, pédale basse, A/C, bouton "HEAT",  point mort (neutral swith) ... etc

IMG_5564.thumb.jpg.0d68cdd0219e1e5499e5c9e7f67afdd6.jpg

IMG_5563.thumb.jpg.939fbcc274ad60df95ab5b72a74ca390.jpg

closed TPS et Closed accelerator switch sont la même chose ( switch "pédale d'accélérateur en position haute"). Il faut que j'en supprime un et le remplace par un autre.

Et sur un 3e écran, on lit et obtient les codes erreur en clair (mais en Anglais) avec le numéro de DTC).

Ton problème c'est que tu ne démarres pas. Tu ne pourras que vérifier l'état des switches, la valeur du débitmètre sur les deux positions de clef,  la température du LDR. Tu vas être limité.

 

 

IMG_5562.jpg

Edited by phdv61
  • Thanks 1
Posted

J'ai commandé sur le bon canard le faisceau qui part de l'ECU jusqu'à la pompe, il doit arriver d'un jour à l'autre.

Je veux vérifier la continuité des fils, être sûr qu'elle est bonne et comparer avec mon faisceau sur lequel j'ai remplacé des connecteurs, car je trouve bizarre entre autre que le fil  qui part de l'ECU jusqu'à l'EV de la pompe ne soit pas alimenté, ayant du tirer une deuxième ligne.

Cela me permettrais d'éliminer l'alimentation électrique et si problème je remplace le faisceau.

La pompe je viens de la changer et la personne qui me l'a vendue m'a certifié son bon fonctionnement. (Faisons confiance)

Donc, s'il ne démarre pas, ne resterait plus que ?????

Bougies de préchauffage bonnes, pas de prise d'air, EV alimentée.

Fafa à incriminé l'actuateur sur la pompe que j'ai déposée : j'en avais trouvé sur le net, les ai contactés pour savoir s'il pouvait le monter sur ma pompe et le régler : Réponse pas disponible pour le moment.

 

 

  • phdv61 changed the title to Les Mystères... du Port Consult : Se fabriquer une interface pour les Patrols 2.8 et 3.0Di ou acheter un câble ECUTALK et l'appli NDSI ET VERIFIER LE BON ETAT DE SA POMPE VP44

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

Ce site web utilise les cookies pour améliorer votre expérience de navigation.