[OT] Interfaccia Protocollo ISO9141-2 (OBD)

Ciao, vi chiedo un aiuto che non c'entra con arduino ma non sò come fare con l'elettronica.
Dovrei costruirmi un'interfaccia per poter collegare una presa OBD con protocollo ISO9141-2 ad un computer, non ad arduino.
Forse qualcuno quì ne sa qualcosa.

Ho trovato questo e penso che sia adatto: http://www.vwitalia.it/forum/f85/guida-realizzazione-dell-interfaccia-iso-9141-2-obd-ii-551.html
Però usa anche un contatto (L-Line) che io non ho (sul pin 15).
Come si legge quà:http://www.diagnostics4u.com/9/diagnostic-information il pin 15 può non esserci:

ISO metal contacts in pins 4, 5, 7, and 16. (15 may or may not be present)

Cercando ISO9141-2 interface trovo il datasheet di un certo L9637:

The L9637 is a monolithic integrated circuit containing standard ISO 9141 compatible interface functions.

Ma non ho capito a cosa serve...

Ho visto anche questo schema, che usa solo la K-Line che è quella che ho io:
http://arduino.cc/forum/index.php/topic,57442.0.html
E quì escono già TX e RX.

Come fare?

Non mi pare che la cosa sia poi così OT... ho visto in giro gente che ha messo un arduino+shield lcd in auto per visualizzare gli rpm del motore e altre informazioni, in pratica una replica parziale del display di bordo con selettore funzione.

Se facessi questo:

senza però mettere la linea L, poi potrei collegarlo al pc, giusto?
ma poi per comunicarci come faccio? basta inviargli dei comandi con un termninale seriale?

Ho trovato anche questo: STN1110
Qualcuno ne sà qualcosa?

d407336:
Ho trovato anche questo: STN1110
Qualcuno ne sà qualcosa?

Sembra interessante, considerato che come interprete, il più diffuso e clonato, è l'ELM327 (http://www.elmelectronics.com/obdic.html#ELM327) che però costa di più.

Uno shield OBD con uno di questi chip venderebbe bene secondo me... :stuck_out_tongue:

(ammesso che sia corredato di opportuna libreria come il motor shield della ladyada)

Questo STN1110 costa 9 dollari, però la spedizione costa 40 dollari, quindi stò cercando delle alternative.
Penso che l'STN1110 sia un pic programmato in modo che faccia da interprete tra l'obd e la seriale del pc, quindi in teoria si potrebbe programmare anche un arduino (o atmega) per fargli fare la stessa cosa, è possibile?

L'STN1110 dovrebbe essere basato su un PIC24HJ128GP502.
Si può aggiornare il firmware di questo chip che però deve avere già il bootloader.
Ho scaricato l'ultimo firmware disponibile e ci sono questi files:

NLog.dll
stn1110-3.2.0.bin
stn1110-changelog.txt
StnBootloader.dll
StnFirmwareUpdater.exe
StnFirmwareUpdater.exe.config
StnLib.dll

Secondo voi avendo un programmatore pic è possibile caricargli lo stesso il firmware partendo da questi files o poi senza il bootloader originale non funzionerebbe niente?

Ho trovato anche questo:

This interface converts the ISO signals for the Arduino inputs. It consists of a small IC (Freescale MCZ33290EF), a 510 ohms resistor, a DB9M that will be plugged with the cable mentioned above, and few wires that connect to the Arduino board.

In pratica questo componente serve per poter collegare arduino all'obd, ma poi comunque non interpreta niente e bisogna scrivere un interprete per arduino?

Si, i dati in arrivo devono essere interpretati in base al protocollo della connesione ISO
Ho visto che sul sito da te indicato c'è qualche esempio --> GitHub - Magister54/opengauge: Automatically exported from code.google.com/p/opengauge

Il componente Freescale MCZ33290EF che c'è quì GitHub - Magister54/opengauge: Automatically exported from code.google.com/p/opengauge a cosa serve?

Serve da interfaccia tra Arduino e il bus dati della macchina.
Datasheet --> http://cache.freescale.com/files/analog/doc/data_sheet/MC33290.pdf?pspll=1
Quindi a livello elettrico sei a posto. Dal punto di vista software devi sempre far "capire" ad Arduino i dati in arrivo.

Quindi fà da interfaccia ma non da interprete.
Ho visto che con quel componente si hanno tx e rx a cui collegare l'arduino, servono per una comunicazione seriale?

Il datasheet parla di pin dati senza specificare il protocollo seriale utilizzato.

Ho trovato anche questo: http://www.st.com/internet/automotive/product/75181.jsp
Però non ho ancora ben capito che cosa fanno in pratica questi componenti... permettono di collegare l'arduino all'obd, ma loro in mezzo cosa ci fanno se non fanno da interprete?

Abbassano il livello del segnale in modo che sia compatibile con Arduino (0 - 5V)

Se fanno solo questo allora possono essere sostituiti dal circuito che ho messo nel terzo messaggio?