ELM327 non si connette alla centralina - Arduino uno

Ciao a tutti,
sto cercando di connettere il mio arduino uno con la centralina della moto. La centralina è una marelli iaw 5 am2 ed utilizza un connettore 3 pin (come le macchine fiat).
Ho acquistato un cavo adattatore 3 pin - 16 pin per poter collegare l’elm 327 bluetooth.
L’elm327 si collega ad arduino uno tramite il modulo hc-05.

La connessione bluetooth fra i due dispositivi (elm327 e arduino uno) avviene tranquillamente, infatti inviando all’elm327 il comando ATZ ricevo la risposta “elm327 v2.1”.

Tutto dovrebbe essere pronto per la ricezione dei dati dalla centralina al monitor seriale.
Quindi invio il comando AT SP0 per settare il protocollo automatico dove ricevo una risposta “ok” ed infine invio la sequenza 0100 dove ricevo la seguente risposta:
18:17:30.821 → SEARCHING…
18:17:36.059 → UNABLE TO CONNECT

Ho provato ad utilizzare altre combinazioni di comandi ma il risultato non cambia.

Ho fatto una prova anche sulla mia macchina che utilizza la classica obdii a 16 pin e lo stesso procedimento sopra funziona correttamente.

Vi allego il codice che utilizzo per comunicare con l’elm327

#include <SoftwareSerial.h>

#define RxD 10                                   //Arduino pin connected to Tx of HC-05
#define TxD 11                                   //Arduino pin connected to Rx of HC-05

char recvChar;

SoftwareSerial blueToothSerial(RxD,TxD);

void setup()
{
  Serial.begin(38400);                            //Speed comunication
  blueToothSerial.begin(38400);                   //Speed comunication
  
  pinMode(RxD, INPUT);                            // Pin 10 -> the pin on which to receive serial data
  pinMode(TxD, OUTPUT);                           // Pin 11 -> the pin on which to transmit serial data     
} 
 
void loop() {

  if (blueToothSerial.available()) {
    char inByte = blueToothSerial.read();
    Serial.write(inByte);
  }

    if (Serial.available()) {
    char inByte = Serial.read();
    blueToothSerial.write(inByte);
  }
}

Riuscite a darmi qualche consiglio per il collegamento? avete idea del problema dove potrebbe essere?

Vi ringrazio anticipatamente

Ciao, non vorrei sbagliarmi,ma credo che il problema e forse dovuto al fatto che le moto (o la tua) non segue lo standard EOBD2, quello e per le auto e non sono al corrente che le moto ne facciano uso, almeno non mi risulta sulla tua centralina. Ma, il fatto che tu abbia una IAW con conettore a 3 pin, mi fa pensare che comunichi con protocollo KWP2000, ma non saprei se un normale ELM327 possa usare tale protocollo, oggi sono tutte CAN BUS (ormai da 15 anni a questa parte). Altrimenti, prova a vedere se vi e un sw per la diagnostica specifica per la tua moto che sia compatibile con la tua, magari e solo il caso di usare altri comandi per entrare nella ecu, o in alternativa, se hai un programma specifico per fiat, tipo Fiat Ecu scan se non ricordo male, e selezioni come vettura da diagnosticare una vettura di quelle fino al 2000, sono tutte con connettore a 3 pin e usano il protocollo KWP2000.

Ti ringrazio per la risposta, probabilmente è come dici tu, l'elm327 in mio possesso non riesce a leggere il protocollo della centralina, anche se mi sembrava di aver capito che la maggior parte degli elm327 (tra qui quello che ho acquistato io) leggesse bene o male tutti i protocolli.

Esiste un programma specifico per la moto a cui sono già riuscito a collegarmi tramite l'adattatore 16pin - usb (classico cavo blu).

Ho visto che esistono molte librerie per il protocollo kwp2000, il problema è il collegamento a questo punto, dal 3 pin della centralina ad arduino. Per caso hai qualche schema specifico che posso seguire?

Ti ringrazio

Aggiungo che ho provato a collegare attraverso l'adattatore 3 pin - 16 pin l'elm327 alla moto e collegarlo all'app scanm5x logger e tutto funziona correttamente.

Quindi a sto punto il modulo elm327 è adatto per il tipo di centralina, il problema rimane di capire quali comandi utilizzare per far sì che l'inizializzazione avvenga correttamente.

Mi fa piacere che a questo punto gia hai qualche dubbio in meno, il tuo ELM327 e in grado di comunicare correttamente con la tua moto. Adesso quindi ti devi concentrare sui comandi da inviare al tuo ELM327 che siano compatibili con la tua centralina. Purtroppo sul tema non posso aiutarti di più. Dovrai trovare una libreria specifica della tua moto/centralina.

Ma l’app che hai usato, hai dovuto inserire modello moto o diagnosi tipo obd da torque per esempio? Potresti verificare se la tua app puo darti le statistiche del protocollo usato e altre info utili? potrebbero aiutarti a qualcosa.

Purtroppo se non trovi librerie funzionanti, dovrai fare un bel po di “reverse engineering”, l’hacker insomma! grosso modo si fa “registrando” la comunicazione tra ELM327 e centralina con attrezzatura apposita, se e CAN BUS ci sono dei CAN BUS Sniffer che ti consentono di memorizzare ogni dato che passa per la linea CAN, ma dovrai avere oltre a tanta pazienza, un gran background per capire come funziona il protocollo, Io ci sto ancora studiando sopra, ma non ho fatto ancora nulla perché ora sono occupato ad altri progetti che hanno la priorità.

Se mi viene in mente qualcosa ti faccio sapere.

ciao.