####################################################Progetto OBD Panda 4X4##################################### Scopo: Progettare un sistema in grado di acquisire dalla centralina dell'auto i dati relativi ai parametri del motore e visualizzarli su un display lcd. Espandere il sistema con nuove funzionalita'. ######################################################################## Funzionalita': -Contagiri RPM OK -Carico motore -Distanza percorsa con pulsante reset -Distanza totale percorsa -Distanza rimanente benzina -Visualizzazione codice ISO OK -Shield LCD con tasti e menu (impostazioni, ecc.) OK -Contakilometri (km/h) -Temperatura interna cabina, esterna auto, acqua motore, aria motore -Tempo iniezione OK -Pressione aspirata OK -Posizione farfalla OK -Tensione batteria OK -Correzione Lambda OK -Conta marcia (in base agli RPM e velocita') su display 7 segmenti con led dp che lampeggia in base alla velocita' massima della marcia corrente -Allarme parametri critici (temperatura troppo alta, pressione, ecc.) OK -Applicazione bluetooth OK -Rimozione errori e visualizzazione codici diagnostica OK -Accensione automatica fari in scarsa luminosita' con fotoresistenza -Apertura automatica finestrini in base alla temperatura interna cabina -Chiusura automatica finestrini in caso di pioggia ###################################################################################### Dati: Centralina: IAW16F Auto: Panda 4x4 Trekking 1100 SPI Anno: 1999 Protocollo: ISO9141 Inizializzazione: La centralina della panda a differenza delle altre auto non ha bisogno di alcuna procedura di inizializzazione dell'invio del codice ISO, infatti quest'ultimo viene inviato ogni volta che viene acceso il quadro girando la chiave (FREE-RUNNING) passando quindi dallo stato di KEY-OFF allo stato di KEY-ON. Il codice ISO viene inviato sulla k-line alla velocita' di 1200 baud ed e' composto da 6 byte: (Nel caso della panda il codice ISO e' il seguente) 55-D0-85-OB-94-49. Entrando piu' nello specifico abbiamo 55 (Codice di autosincronismo, 1 bit di start) D0-85-0B-94 (4 bytes di campo informativo, 8 bit di dato) 49 (byte di controllo checksum, 1 bit di stop) Quindi il frame della comunicazione e': -1200 baud -1 bit di start (55) -8 bit di dato (D0-85-OB-94) -1 bit di stop (49) -no parity bit Quindi per ora mi sono limitato a parlare della parte di comuncazione relativa al codice ISO, quando saro' in grado di acquisirlo andro' oltre ed iniziero' a parlare della richiesta di comunicazione vera e propria con conseguente richiesta dei parametri del motore. Per ora lo scopo principale e' acquisire il codice ISO che e' la base di tutto. ######################################################################################## Prove: 25 Agosto Prova 1: montato circuito IAWScan PCB, provato con IAWScan ma non funzionante, eccetto un raro caso di comunicazione riuscita ma persa dopo qualche secondo 28 Agosto Prova 2: montato circuito reverse engineering VAG COM KKL RS232, provato con IAWScan ma non funzionante 28 Agosto Prova 3: collegato cavo VAG COM KKL, provato con IAWScan, funzionante 30 Agosto Prova 4: montato circuito a transistor, e provata la lettura con arduino, non funzionante 2 Settembre Prova 5: montato circuito partitore resistivo derivato dal circuito a transistor, provata lettura con arduino, alla prima prova il codice iso e' comparso sul monitor seriale in modo scomposto, tutte le prove successive sono fallite. Penso che devo ripetere la prova 5 con la centralina "fresca". Dopo aver navigato un po' su internet ho trovato il manuale di un Alfa Romeo dove e' descritta la procedura per cambiare l'iniettore, ma questo non e' cio' che mi interessa, nella procedura la cosa interessante e' che c'e' scritto che la centralina ha uno spegnimento ritardato e bisogna aspettare 2 minuti per il termine del power latch prima di riaccenderla. Questa puo' essere la causa dei problemi relativi a tutti i circuiti realizzati fino ad ora. Guardando meglio sul datasheet della centralina c'e' scritto che il codice ISO viene inviato ogni volta che lo stato passa da Key-off a Key-on con power latch terminato. Se il power latch non e' terminato ed e' ancora in corso e' necessario richiedere un parametro qualsiasi in chiave Key-On con connessione attiva seguito da Key-off e il power latch terminera' dopo 300ms. Il power latch è il tempo che intercorre tra lo spegnimento del quadro vettura e la reale disalimentazione della centralina motore. E' un tempo variabile da centralina a centralina e di solito è intorno ai 30 secondi (ci sono centraline con p.l. di 10 sec fino ai 90sec delle vecchie iaw 8f). In questo periodo di tempo la centralina salva tutto quello che ha in memoria ram sulla eeprom. 4 Settembre Ripetuta prova 5: il codice ISO viene acquisito correttamente. Adesso bisogna inviare la richiesta di comunicazione a 7812 baud. Dopo essere riuscito ad acquisire il codice ISO, devo connettermi a 7812 baud in modo da inviare le richieste per i parametri del motore. Quindi dopo aver ricevuto il codice ISO, devo aspettare 500ms per iniziare ad inviare la stringa di richiesta 0F,AA,CC intervallata da 110ms per ogni bit. Quindi: 0F->110ms->AA->110ms->CC->110ms. In questo modo la centralina dovrebbe entrare in comunicazione a 7812 baud e prepararsi a ricevere richieste ed inviare parametri sulla l-line. 6 Settembre Prova 6: montato circuito a transistor modificato con l-line, la centralina sembra inviare dati diversi dal solito che sembrerebbero veri ma alcune volte visualizza numeri impossibili. 9 Settembre: Acquistati connettori per diagnostica 10 Settembre: Assemblato connettore femmina, ripetuto test con circuito a transistor l-k line, migliorato programma e aggiunto metodo di visualizzazione decimale al posto di quella esadecimale (commentata), adesso la centralina invia dati che sembrerebbero essere reali (Temp aria 27c, Temp acqua 30c) ma ogni tanto ci sono dei picchi a valori irreali come 200c. La tensione della batteria non e' un parametro ancora valido. Prove da fare: -Commentare la riga di richiesta del parametro e vedere se sul monitor compaiono i stessi valori (per essere sicuro che la connessione a 7812 baud e' instaurata e funzionante e per essere sicuri che i valori visualizzati corrispondono al parametro richiesto e non sono valori a caso) -Aggiungere libreria RBDTimer per il multitasking (mentre si blocca per una delay continua a eseguire istruzioni) (NON ESEGUITE) 13 Settembre: -Effettuate nuove prove, i valori che sembravano reali sono effettivamente reali, i picchi di valori irreali sono stati risolti inserendo una delay da 1 secondo in ogni richiesta dei parametri del motore in questo modo arduino ha il tempo di acquisire ed elaborare i dati correttamente. -Sistemata forumula tensione batteria (stranamente sul manuale della centralina ci sono due formule e solo una e' giusta), adesso il parametro e' valido. -Commentate righe di visualizzazione in formato esadecimale, sostituite con formato decimale (anche questo potrebbe aver risolto i picchi di valori irreali.) -Aggiunti tutti i parametri leggibili dalla centralina(commentati) -Corrette tutte le unita' di misura Prove da fare: -Provare tutti i parametri aggiunti uno ad uno e verificare che i valori restituiti siano corretti e reali 14 Settembre: -Arrivato lcd 16x2, aggiornato sketch con supporto al display -Aggiunte animazioni avvio e curata la struttura generale del display -Costruito tastierino per menu lcd (ancora non aggiunto) 15 Settembre: -Effettuate prove con tastierino (rimosso in quanto quando si e' alla guida non e' comodo premere i pulsanti per visualizzare altri parametri del motore e cio' causa distrazioni quindi sono giunto alla conclusione che devo utilizzare un display 20x4 in questo modo posso visualizzare piu' informazioni sulla stessa schermata. L'interazione con l'utente deve essere minima per evitare incidenti) -Effettuata prova su centralina, il parametro degli rpm motore causava sbalzi sugli altri valori (temp acqua, temp aria, volt), disattivato momentaneamente, i parametri restanti vengono visualizzati perfettamente. -Migliorate delay programma -Costruita scheda definitiva (con arduino nano - l9637), teoricamente senza centralina sotto mano tutto funziona, compreso il display -Aggiunto buzzer Prove da fare: -Provare l9637 (arrivato) -Provare display 20x4 (deve arrivare) 16 Settembre: -Il cambio della macchina ha inspiegabilmente smesso di funzionare, non e' un problema causato da me alla centralina, si e' sganciato qualcosa all'interno del motore ora e' in attesa di rimozione -Effettuata prova scheda definitiva con l9637, non funzionante -Giornata da dimenticare. -Saldate 3 schede diverse ma nessuna ha funzionato, arduino nano cinese mi ha abbandonato 17 Settembre: -La macchina e' stata portata via dal meccanico, ora sono in attesa del ritorno -Comprato display 20x4 -Comprato kit 3 arduini nano 18 Settembre: -Saldato nuovo circuito definitivo con circuito a transistor al posto dell'l9637, va testato ma sto aspettando il ritorno della macchina -Aggiornato sketch per display 20x4 e curata la struttura del menu 29 Settembre: -Testato circuito definitivo a transistor, funziona perfettamente 7 Ottobre: -Saldato circuito stabilizzazione 5v per arduino -Costruita staffa per display lcd e scheda main 8 Ottobre: -Aggiornato sketch, rimosso scroll codice ISO e semplificata acquisizione codice ISO (per risparmiare sul tempo, ancora non funzionante) -Testato circuito, non funzionante (con alimentazione indipendente da batteria + pc connesso. A macchina spenta tutto funziona, appena accendo il motore inizia a dare valori a caso, ho ragione di pensare che quando accendo il motore c'e' un calo di tensione dovuto al motorino di avviamento (notabile dal quadro strumenti che diventa fioco) e il 7805 in uscita fornisce meno di 5v, facendo perdere la connessione ad arduino, il fatto che ci sia anche il pc connesso non significa niente in quanto il monitor seriale va riavviato -Aggiunto condensatore da 1000uf al posto di quello da 10uf sulla linea della 5v per compensare al calo di tensione all'accensione del motore. -Aggiunto jumper per interruzione pista 12v al 7805, quando bisogna fare il debug via usb il jumper deve essere tolto, mentre se si utilizza lo strumento in modalita' stand alone indipendente il jumper va inserito -Testato circuito, funziona perfettamente -Rimossa funzione pow per l'elevazione a potenza sulla formula dei giri motore ed inserito valore gia' calcolato. Da testare -Convertita variabile batteria e temperature da int a float per visualizzare in modo dettagliato i valori e curata visualizzazione elementi 9 Ottobre: -Testati aggiornamenti firmware, variabili float temperature non funzionanti, riportate ad int (credo che la centralina invia un numero intero), float batteria non funzionante (da correggere), rpm non testati -Realizzata prolunga 3pin per portare lo strumento all'interno dell'abitacolo -Testato nuovamente firmware con piccole modifiche apportate, float batteria funzionante, float temperature non funzionante (le due cifre dopo la virgola sono uguali a 0, probabilmente la centralina invia un numero intero in risposta) ma le tengo cosi', cambiata richiesta rpm (causava problemi con le richieste, sfasava i valori esatti della tensione e temperature con valori irreali), da correggere -Curato menu, inseriti controlli valori per visualizzare "0" quando lo strumento non e' collegato (invece di valori strani tipo -40 sulle temperature e -7324 sugli rpm) -Inseriti allarme temperature troppo alte e livello batteria troppo basso -Riscritto bootloader, sovrascritto old 328 bootloader con il bootloader di arduino nano 10 Ottobre: -Passata prolgunga 3 pin con fascette lungo il cofano e portata all'interno (ora manca il connettore per la 12v) -Testati valori temperature e tensione batteria con viaggio, tutto funzionante -Aggiunti Pressione Aria Aspirata, Posizione Stepper, Posizione Farfalla, Anticipo Accensione, Correzione Sonda Lambda -Rimossi parametri inutili dallo sketch Da fare: -Accensione sotto quadro e connettore 12v -Curare menu display e unita' di misura nuovi parametri aggiunti -Giri motore, cazzo -Supporto Bluetooth 12 Ottobre: -Bruciato fusibile servizi durante una prova (colpa del coccordillo nella presa dell'accendisigari) 13 Ottobre: -Sostituito fusibile -Procurato connettore per la 12v dell'accendisigari per evitare che l'evento si ripeta -Modificato sketch, aggiornata acquisizione codice ISO, aggiornata acquisizione rpm 15 Ottobre: -Corretta acquisizione codice ISO, ora funziona ed acquisisce sul momento (quindi se provato su un'altra panda con centralina FREE-RUNNING il codice verra' acquisito) -Ridotti tempi di aggiornamento parametri, ora i parametri vengono aggiornati piu' velocemente (da correggere il ghosting tra un aggiornamento e l'altro) -Corretta verifica connessione, adesso lo strumento invia la richiesta della tensione della batteria e verifica che la risposta sia giusta per poi dare conferma della connessione avvenuta -Aggiornato codice giri motore (ha funzionato solo una volta e basta) ancora non funzionante -Corretti giri motore, (non funzionava perche' effettuava la richiesta e leggeva la risposta troppo rapidamente, aggiunta delay per risolvere il problema) adesso i giri motore funzionano -Aggiornato schema EAGLE e power point 16 Ottobre: -Aggiunto codice per pulsante unico menu con istruzione switch e funzioni -Sistemare lcd flickering 17 Ottobre: -Aggiunto pulsante per menu -Migliorata struttura staffa -Cambiato condensatore da 1000uf 25v a 3300uf 6.3v -Codice per pulsante unico menu provato e funzionante -Aggiunte pagine menu -Creata applicazione android, aggiunto modulo bluetooth, aggiornato sketch per modulo bluetooth + workaround per disabilitare le funzioni normali quando il bluetooth e' connesso (il bt ha una funzione a parte) ancora non funzionante -Aggiornata applicazione, curato menu, aggiunte icone e assets, fixata lettura valori (ora ogni valore irreale e' al suo posto) -Aggiornato schema EAGLE e power point Da fare: -Accensione sotto quadro e connettore 12v -Sistemare bluetooth -Sistemare lcd flickering 18 Ottobre: -Cambiato nome modulo bluetooth -Testato bluetooth, perfettamente funzionante eccetto qualche valore (temperatura aria e tensione batteria hanno il float invertito) -Sistemate variabili float invertite (il problema era l'istruzione round nell'applicazione, rimosse tutte in quanto il valore viene visualizzato in automatico come deve essere per via di arduino che esegue i calcoli) 19 Ottobre: -Aggiornato Power Point -Testato strumento bluetooth+standard, tutto funziona tranne per qualche volta che il progetto si e' impallato, forse e' l'alto utilizzo della memoria su arduino oppure un problema con le masse poiche' guardando l'adattatore OBD-3Pin, oltre alla massa interna del connettore obd ci sono due morsetti + e - da applicare alla batteria. -Testato IAWScan con VAG COM KKL, catturati valori reali e confrontati con lo strumento. Problemi su alcuni valori. -Risolto parametro "Posizione Farfalla", l'operazione di calcolo del valore grezzo era sbagliata sul manuale della centralina (non e' la prima volta che c'e' qualcosa scritto in modo errato) -Risolto parametro "Tempo Iniezione", colpa mia... -Risolti bug e migliorati controlli parametri -Sostituito comando lcd.clear() con scrittura vuota di caratteri, in questo modo viene corretto il problema del flickering edel refresh rate -Spostate tutte le stringhe di testo dalla SRAM nella PROGMEM per risparmiare memoria. (da 87% di memoria dinamica a 41%!). -Curata visualizzazione menu aggiornata con metodo di sovrascrittura dei caratteri al posto di lcd.clear() Da fare: -Accensione sotto quadro e connettore 12v 20 Ottobre: -Aggiunto menu con navigazione 1 button -Curato menu e sistemato refresh rate lcd con sovrascrittura caratteri -Aggiunto menu diagnostica -Risolto problema selezione menu, quando si teneva premuto il tasto per dare l'ok si avviava l'ultimo test di diagnostica selezionato a causa di una condizione if non completa -Risolti problemi menu, curati particolari 21 Ottobre: -Aggiornato power point -Curato menu e bug visualizzazione -Aggiunto beep short click 22 Ottobre: -Accensione sotto quadro, aggiunto connettore 2 pin per alimentazione separata -Aggiunta massa al negativo della batteria per problemi di segnale (si bloccava, per il momento sembra funzionare) -Aggiornato power point -Ottimizzato uso memoria PROGMEM, a causa delle stringhe di testo e delle ripetute istruzioni, ero arrivato ad utilizzare 96% di memoria programma, aggiunte funzioni e unificate funzioni bluetooth con funzioni normali, ora l'utilizzo e' sceso a 87% -Corretta unificazione funzione bluetooth con funzione normale, quando il bluetooth veniva attivato lo strumento continuava a visualizzare i risultati su lcd e sull'applicazione i valori erano sfasati, aggiunte if al ciclo di visualizzazione per disabilitare il display quando il bluetooth e' connesso if(bluetooth==false). Ora i valori vengono visualizzati correttamente sull'applicazione. 25 Ottobre: -Preparato video dimostrativo -Corretto valore RPM in idle (7744) -Corretta acquisizione codice ISO (rimosso 1 ciclo di for per evitare (FFFFFFFFFF) 26 Ottobre: -Rimosso 1 ciclo di istruzioni per la visualizzazione dell'esito dei test di diagnostica (per evitare FFFFFF) -Testato Rele' generico, esito test negativo (EE) , gli altri sono tutti positivi (FF) -Testato strumento nuovamente, si e' ripresentato il problema di blocco (probabile microcontrollore difettoso essendo una cinesata) 20 Gennaio: -Buon anno(!) -Dopo 2 mesi di utilizzo cercando di capire la causa del blocco totalmente casuale ho scoperto uno strano fenomeno. Il problema del blocco (i valori visualizzati andavano a caso) consiste nel fatto che durante il viaggio in auto, in un momento non preciso (poteva avvenire da 5 minuti dall'accensione fino a mezz'ora dopo) il dispositivo andava in tilt senza una spiegazione logica. Ho pensato fosse un problema con le masse quindi ho separato la massa della centralina e quella della batteria (che alimenta il circuito) ma il problema si e' ripresentato. Ho cambiato il bootloader di arduino pensando che quello con la quale mi e' stato inviato aveva dei bug con il watch dog (cosa risaputa sull'old bootloader degli arduino nano cinesi) ma il problema si e' ripresentato. Allora questi ultimi giorni ho tenuto lo strumento attaccato all'alimentatore da banco (solo dal connettore + e - lasciando staccato il connettore 3 pin di diagnostica) per verificare se si comportava nello stesso modo come in auto (e anche per verificare che non fosse un problema legato al fatto che l'alimentazione veniva fornita dalla batteria dell'auto nonostante venisse stabilizzata con condensatore + lm7805) e per un buon lasso di tempo non ha dato problemi fino a quando ho spento il computer e ho staccato la spina della multipresa alla quale ho tutto collegato (tranne l'alimentatore da banco). Una volta staccata la spina della multipresa il dispositivo e' impazzito proprio come faceva in auto. Allora ho spento e riacceso il dispositivo ed ha ripreso a funzionare (proprio come facevo in auto), ho attaccato e ristaccato la spina ed e' impazzito di nuovo. Sembrerebbe che quando attacco/stacco la spina vengono generati dei disturbi che il dispositivo rileva mediante i tre cavi che vanno al connettore della centralina (che come detto prima ho lasciato staccato), e' come se questi cavi funzionassero da antenna e captassero i disturbi generati dal mio attaccare e staccare la spina della multipresa. Probabilmente in auto i disturbi vengono generati da tutta l'elettronica presente quindi batteria, quadro, rele', alternatore, fari, ecc. Da fare: -Dissaldare i 3 cavi del connettore di diagnostica dalla scheda e verificare se generando dei disturbi il dispositivo si blocca come faceva precedentemente (in poche parole togliamo "l'antenna dei disturbi") 21 Gennaio: -Effettuata prova, risulato negativo, i cavi sembrerebbero non causare problemi -Effettuate moltissime prove sulla sezione di alimentazione (condensatori di filtro, ulteriore stabilizzatore) esito negativo -Cambiato arduino nano -Dato che il problema del blocco consiste nella visualizzazione di valori strani sui parametri, ho deciso di dare la colpa alla sezione della lettura/scrittura delle linee K Line ed L line (gestite da 2 transistor) quindi ho aggiunto un condensatore ceramico da 0.1uF in parallelo tra la linea K e la linea L e i disturbi sono diminuiti molto. Per migliorare ulteriormente la cosa ho aggiunto altri due condensatori ceramici, sempre da 0.1uF questa volta pero' tra la linea L e massa e l'altro tra la linea K e massa. I disturbi generati tramite la connessione della spina della multipresa sembrerebbero non influenzare piu' il dispositivo (quindi la prova su banco ha esito positivo ora) non resta che provare il dispositivo in auto. -Sistemato il circuito in generale -Effettuata prova con condensatori aggiunti, il dispositivo non legge piu' i dati dalla centralina (infatti la prova su banco ha avuto esito positivo, pero' prima di effettuare la prova in auto ho notato che al parametro tensione batteria, invece di visualizzare 0.63v (valore default dalla quale mi accorgo che il dispositivo funziona) visualizzava -0.06v quindi sono partito mentalmente preparato che il dispositivo poteva non funzionare piu'. Allora ho sostituito i condensatori ceramici da 0.1uF con dei condensatori ceramici da 0.01uF, devo trovare il valore esatto che penso sia questo, la prova su banco ha sempre esito positivo infatti le interferenze che genero non danno piu' fastidio al dispositivo e il parametro tensione batteria ora e' tornato ad essere 0.63v. Non rimane altro che effettuare la prova in auto per vedere se legge di nuovo. 22 Gennaio: -Effettuata prova con condensatori da 0.01uF (10nF), il valore del parametro tensione batteria su banco e' corretto, purtroppo la prova in macchina ha dato esito negativo, i valori letti non sono reali. Quindi neanche questo e' il valore che sto cercando. Ho sostituito nuovamente i condensatori da 0.01uF con dei condensatori sempre ceramici da 1nF (al posto di 10nF). La prova su banco stavolta non ha dato esito positivo ma neanche negativo in quanto i disturbi sono presenti solo se generati insistentemente, vicini e con una grande potenza (questa volta sto utilizzando il taser che ho costruito per generare disturbi proprio perche' genera disturbi molto importanti), questo significa che e' necessaria la prova in auto. Se la prova in auto non dovesse funzionare dovro' aumentare ulteriormente il valore probabilmente sostituendo gli attuali condensatori da 1nF con condensatori da 4.7nF (una via di mezzo). 23 Gennaio: -Inserito connettore USB per cavo connettore diagnostica + alimentazione (in modo da rendere il dispositivo piu' portatile ed evitare di stressare i cavi) -Effettuata prova con condensatori ceramici da 1nF, i valori vengono letti correttamente (tuttavia non ho avuto il tempo di testare se il problema del blocco persisteva) 24 Gennaio: -Rimosso KM/H (era inutile in quanto non supportato) -Corrette condizioni azzeramento valori -Rimosse delay allarme (bloccavano il sistema in quanto la funzione delay non permette l'esecuzione di altri processi quando eseguita) -Aggiunta resistenza da 560ohm tra 12v e k-line (riguardando gli schemi elettrici degli adattatori rs232 per le centraline ho notato questo particolare e ho deciso di provare). Stando alle parole di wikipedia, la K-line va in idle high attraverso questa resistenza di pull-up -Effettuata prova su banco con resistore aggiunto, ora tutti i parametri non si muovono di una virgola -Effettuata prova in auto con resistore aggiunto, a quanto pare funziona perfettamente (ora bisogna fare test prolungati per vedere se il benedetto problema del blocco e' risolto una volta per tutte) -Aggiunto modulo RTC per orologio -Curato menu e riordinato parametri -Costruito menu impostazioni con relativi salvataggi nella memoria EEPROM (manca solo da configurarle) -Aggiunta fotoresistenza per controllo PWM retroilluminazione LCD -Effettuata prova in auto a lungo, il dispositivo funziona senza bloccarsi! -Aggiornato schema EAGLE e power point -28 Gennario: -Il dispositivo funziona perfettamente in ogni sua parte, testato per giorni -Aggiunto sensore di temperatura DS18B20 (per uso esterno all'auto) con le relative 2 librerie (sketch 105% di memoria) e relativo connettore -Commentate (disattivate) tutte le stringhe di codice relative al Serial.print per scopi di debug (Seriale USB con serial monitor) dato che ora non ci sono piu' bug e tutto funziona abbassando l'utilizzo di memoria dal 105% (a causa delle librerie del sensore di temperatura) a 95% -Corretti bug menu e curata estetica -Aggiunta funzione refresh sensore disconnesso (in modo che quando viene collegato viene riconosciuto automaticamente senza riavviare) -Aggiunta impostazione gradi celsius/fahrenheit -30 Gennaio: -Testato termometro con neve, i gradi negativi funzionano perfettamente -31 Gennaio: -Cambiato bootloader (optiboot) dato che arduino nano e' stato sostituito in precedenza. Il bootloader e' stato cambiato con l'optiboot per risparmiare memoria, una volta cambiato il bootloader non funzionava piu' il termometro (visualizzando 0.00), e varie altre scritte sulla pagina principale non venivano visualizzate. Nelle impostazioni invece dei parametri on-off venivano visualizzati altri valori. Tutto questo e' accaduto perche' scovrascrivendo il bootloader (e dato che quello nuovo occupa un quarto di quello vecchio) sono state sovrascritte anche le impostazioni salvate nella memoria EEPROM. E' bastato disattivare e riattivare tutte le impostazioni riscrivendole quindi nella EEPROM per far rinfunzionare il tutto. -Aggiunte impostazioni orologio -Aggiunta opzione riavvio su menu principale -Ottimizzata memoria il piu' possibile per fare entrare il programma nella memoria flash (bisogna testare nuovamente lo strumento perche' sono state cambiate le tipologie di variabili per risparmiare qualche byte) -Rimossa terza pagina dei parametri (erano inutili) -1 Febbraio: -Diminuite delay (da 15ms a 12ms), test effettuato con alimentazione esterna dato che via usb il dispositivo impazziva per via della scarsa corrente con delay basse -Corretto tempo iniezione (tipo variabile) -Effettuato test in auto, funziona perfettamente.