Jumping Jack Flash weblog

Diario elettrico Greengo/Zhidou Icaro: 2 agoto 2019 – problemi al motore

Ieri mattina, nuovo tipo di problema, questa volta riguardante il motore: all’improvviso, durante la marcia a bassa velocità, l’auto ha iniziato ad accelerare a singhiozzo, nonostante il pedale dell’acceleratore fosse fermo, e l’ago del tachimetro ha iniziato ad andare su e giù a vanvera; mi sono fermato, ho spento e riacceso, e tutto ok, ma la cosa è un po’ preoccupante, perchè sembra decisamente un problema di lettura dei sensori di hall, quei 3 sensori che permettono al motorcontroller di sapere in ogni istante a che velocità e in che direzione si sta muovendo il motore; il che vuol dire che se le letture sono a vanvera, la centralina potrebbe “ingranare la retromarcia” in qualunque momento…

Stamattina ho dato una controllata a fili, cavi e cavetti, ma non mi sembra ci sia nessun falso contatto; però il problema si è ripresentato un paio di volte, e una volta anche quando ero in velocità. Mettendo un momento in folle su “N” e poi di nuovo in drive su “D” il problema sembra risolversi, ma il differenziale non è molto contento di queste accelerazioni/decelerazioni improvvise, quindi questo sembrerebbe proprio essere un motivo in più per disattivare la famigerata rigenerazione in frenata, che secondo la Kelly, che fabbrica il motorcontroller, potrebbe essere la causa degli improvvisi, salturari depotenziamenti.

L’alernativa sarebbe forse cambiare il cavo che contiene i fili del sensore di hall, che magari si è deteriorato; ma il cavo costa 30 euro e la spedizione dalla Cina 35 euro….

Vedremo.

——————

A proposito del problema del depotenziamento, sono arrivato per ora a  questa conclusione:

il depotenziamento ha due possibili cause: il BMS, e il motorcontroller;

  1.  pare che il BMS sia tarato per tagliare la potenza se legge una differenza di tensione superiore a un tot tra cella più alta e cella più bassa; in origine sono 300 V, ma pare che nelle versioni successive di auto e/o BMS abbiano modificato o tolto questo limite, come è stato fatto sulla mia Icaro. Sulla quale però ogni tanto, anche se più raramente, il problema si ripresenta. E quindi entra in gioco una seconda possibile causa.
  2. anche il motorcontroller è tarato per tagliare la potenza in base alla tensione, ma di tutta la batteria: succede sia in accelerazione, se la tensione scende troppo, che in frenata rigenerativa, se la tensione sale troppo.

Abbassamenti eccessivi non ne ho mai rilevati in accelerazione, nonostante i 250A tirati fuori al posto dei 150A di origine (a seguito di una mia rimappatura della centralina), ma in compenso a volte mi è capitato di trovare la batteria a 81V la mattina, appena caricata, e a volte addirittura a 85V se si era appena spento il caricabatterie; trattandosi di 24 celle, significa 3.375V  e 3,54V per cella; se in questa situazione esco dal parcheggio, che ha una rampa in discesa, la tensione probabilmente sale ulteriormente (non ho un logger, devo vedere tutto a occhio), e la centralina va in protezione. Nella schermata 2 del SW di configurazione si possono impostare le soglie di intervento del regen (voce 5, nota 4)

La spiegazione dice:

  • Under voltage [3]: Controller will cut back current at battery voltage lower than 1.1x he value, cut out at the vale, and resume operation at 1.05x value
  • Over voltage [4]: Controller will cut back regen current at 0.95x the value, cut out regen if voltage reachd the setting, and resume regen at 0.95x value.

Traduzioni:

  • Sottotensione [3]: il controller ridurrà la corrente quando la tensione di batteria scenderà sotto 1.1 volte il valore impostato, la taglierà completamente quando raggiungerà esattamente il valore impostato, e la ripristinerà solo quando la tensione risalirà ad almeno 1.05 volte il valore impostato.
  • Sovratensione [4]: Il controller ridurrà la rigenerazione quando la tensione raggiungerà il 95% del valore impostato, lo azzererà al raggiungimento del valore esatto, e ripristinerà al ragiungimento  del 95%.

In questo caso ci interessa il punto 2 (sovratensione), l’altro riguarda la corrente esratta dalla batteria in accelerazione.

La Icaro monta 24 celle LiFePO4; in genere le LiFePO4 (ma ce ne sono tante varianti) hanno tensione massima di 3.33V e tensione di ricarica finale di 3.65V; a livello di batteria quste tensioni equivalgono a 80V e 87,6V. La tensione di ricarica finale permane però solo finchè resta collegato il caricabatteria; quando si stacca, la tensione decade spontaneamente a 3.33V/80V.

Il 95% di questi due valori massimi è:

  • 80.0 * 0.95 = 76 V
  • 87.6 * 0.95 = 83.2 V

Non ho invece modo di sapere quali sono i valori di intervento del BMS, quindi devo supporre che il BMS non effettui nessun intervento, ed agire quindi solo sul motorcontroller, assicurandomi che riduca la tensione di regen quando la tensione supera i 76V, e lo tagli completamente se supera gli 80V.

Purtroppo non ricordo a quanto impostai questa soglia l’anno scorso, però so che sia in ufficio che a casa l’uscita dal parcheggio (occasione in cui spesso si verifica il depoteniamento automatico) c’è una rampa in discesa; se a casa sicuramente parto con la batteria a 80V (a volte anche 81V), in ufficio, dopo 10 km di viaggio, mi pare difficile partire con questa tensione, ma la verità è che non ho mai controllato, mi sono sempre limitato a controllare che la tensione di cella non SCENDESSE sotto livelli critici, non ho mai pensato a verificare che non salisse troppo.

Dovrò quindi risistemare un po’ i parametri della centralina: o disattivo completamente il regen – cosa che renderebbe solo fastidioso, anzichè pericoloso, il problema dei sensori di hall –  oppure cambio la soglia di intervento in modo che la tensione di batteria non superi mai gli 80V a causa del regen.

 

 

Hacking Icaro – Centralina GSM: Man in the Middle Attack – puntata 2

Posted in auto elettriche, hacking, hardware by jumpjack on 11 luglio 2019

Una settimana di studi e teorie non sono valsi l’avere i pezzi tra le mani…

A quanto pare il passo dei due connettori non è di 2mm, ma di 1.27mm! Vale a dire 0.050″.

Quindi sia la striscia di cavi che le pin strip… sono completamente inutili, tocca ricominciare la ricerca da capo.

Per fortuna però ormai ho acquisito un po’ di esperienza nel decodificare i datasheet di questi cavi, e ci è voluto poco: quello che mi serve non è un cavo TCMD o TCSD (passo 2.0mm) , ma un cavo di una famiglia diversa: o FFMD o FFSD  (passo 1.27mm). Si tratta sempre di cavi IDC di tipo TigerEye, ma i pin hanno appunto passo 0.050″/1.27mm. “M” sta per “maschio” e “S” per socket, cioè femmina, poi per il resto la nomenclatura Samtec rimane la stessa, quindi un FFxD-25-D avrà due connettori uguali mentre un FFxD-25-T li avrà di sesso opposto; purtroppo da 2×22 pin non esistono, quindi devo prendere il numero subito superiore, 2×25. Altre famiglie sono FFTP e FMTP, che però hanno i cavi “twistati” a 2 a 2; non significa che i contatti siano “incrociati”, ma solo che i fili sono arrotolati l’uno sull’altro (credo per attenuare le interferenze elettomagnetiche), ma poi terminano da entrambi i lati nella stessa posizione.

Le sigle papabili sono quindi:

  • FFMD-25-T-xx.xx-01: maschio/femmina
  • FFMD-25-D-xx.xx-01: doppio maschio
  • FFSD-25-T-xx.xx-01: maschio/femmina
  • FFSD-25-D-xx.xx-01: doppia femmina

Twisted:

  • FFTP-25-T-xx.xx-01: twisted, maschio/femmina
  • FFTP-25-D-xx.xx-01: twisted,  doppia femmina
  • FMTP-25-T-xx.xx-01: twisted, maschio/femmina
  • FMTP-25-D-xx.xx-01: twisted, doppio maschio

Può darsi che alcune delle combinazioni maschio/femmina non esistano perchè coincidenti con altre sigle.

Purtroppo su https://www.toby.co.uk  un FFMD-25-T-08.00-01-N costa circa 32,00 sterline fra tasse e spedizione.

Su RS-components non ci sono cavi maschio/femmina in magazzino, ma ho visto che la strip-pin con passo 2.0mm che ho ordinato per sbaglio entrano senza sforzo nè gioco nel connettore-femmina della scheda GSM, quindi basterà sfilarne 22 uno per uno e infilarli in uno dei due connettori-femmina per ottenere un connettore maschio; il femmina/femmina più economico è un FFSD-25-D-04.00-01-N, cioè 2×25 pin lungo 4 pollici (10 cm) del costo di 13,54 euro, che con IVA e spedizione diventano 22,62€; prenderò questo e speriamo che stavolta i conti tornino.

 

connettore GSM nero con righello e pin

Tagged with: , ,

Hacking Icaro – Centralina GSM: Man in the Middle Attack

Posted in Diario elettrico GreenGo Icaro, GPS, hacking, hardware by jumpjack on 10 luglio 2019

Un attacco “Man in the middle” è quello che prevede che un hacker si inserisca nel canale di trasmissione tra due dispositivi per intercettare i dati, senza interromperli ma modificandoli, in modo che a entrambi gli interlocutori originali la trasmissione sembri ancora genuina, mentre in realtà qualcosa è cambiato.

E’ quello che ho deciso di fare come nuovo tentativo di “entrare nella testa” della mia Icaro. 🙂

Nella centralina GSM/GPS è infatti presente, come già detto in precedenza, un modulo GSM G600; questo modulo è saldato su un PCB che chiameremo “A”; il PCB è connesso tramite un connettore bianco a un secondo PCB che chiameremo “B”; il PCB “B” è infine connesso alla scheda madre tramite un connettore nero; ed è qui che cercherò di insinuarmi. Se infatti il connettore bianco ha pin talmente microscopici e vicini da non poter essere maneggiati con strumenti manuali, il connettore nero ha invece pin più grossi e distanziati (passo di 2mm); si tratta di un connettore a 44 pin, due dei quali sono sicuramente i TX e RX del modulo GSM, il quale ho già verificato  che comunica con l’MCU tramite semplici comandi AT testuali: è così infatti che sono riuscito a leggere quale IP la centralina cerca di contattare, che purtroppo corrisponde al sito abbandonato etheria.it; quindi, anche se la centralina funziona e tenta di inviare dati, non ricevendo risposta probabilmente non passa mai dalla modalità “handshaking” al vero e prorio invio dati. Però in compenso i server eteria.biz (senza H e con dominio .biz) pare funzionino ancora (così mi hanno detto…).

Il mio tentativo sarà quindi di interrompere fisicamente le due connessioni TX e RX, dirottarle a una mia scheda ESP32, e sostituire ogni chiamata del modem al server sbagliato con una chiamata al server giusto… e vedere cosa succede.

Per farlo, mi serviranno due connettori aggiuntivi: un maschio e una femmina che facciano da interruzione tra GSM e MCU, e al tempo stesso da “dirottatore” verso l’ESP32.

Sfortunatamente questi connettori non hanno il classico passo da 1/10 di pollice (2.54mm), ma da 2.00 mm, quindi non ho niente in “magazzino” che vada bene, dovrò comprare dei connettori specifici.

Dopo una settimana di ricerche sui siti più disparati (www.distrelec.it, www.farnell.it, www.mouser.it, www.tme.eu, https://it.rs-online.com), mi sono fatto una discreta cultura sui possibili modi di realizzare una connessione a 44 fili tra i due PCB; ho individuato varie possibilità:

  1. Cavo preassemblato
  2. Cavo autocostruito
  3. Connettori saldati su piastra millefori, connessi tramite fili singoli
  4. Ponticelli dupont

Ognuno ha i suoi pro e i suoi contro:

  1. il cavo preassemblato sarebbe ovviamente la scelta migliore, ma fra costi netti, tasse e spedizioni, un cavo a 40 poli finisce per costare fra i 40 e i 50 euro!
  2. il cavo autocostruito, comprando una piattina e due connettori IDC, finirebbe per costare solo 5-10 euro in meno di un cavo preassemblato.
  3. inizialmente avevo pensato di costruirmi un  “cavo” saldando due connettori maschio e femmina a due pezzi di piastra millefori, e poi collegarli tra loro tramite fili volanti, ma sarebbe un lavoro troppo approssimativo e disordinato

Alla fine ho scoperto una cosa molto interessante: oltre ai classici “ponticelli dupont” usati per prototipazione su Arduino, che hanno passo da 2.54mm, esistono anche dei ponticelli più piccoli, con passo da 2.0mm: sono molto inconsueti e poco diffusi, quindi ordinarli significherebbe doverseli per forza far spedire dalla Cina e vederli arrivare fra 3 o 4 mesi; poi però, a forza di cercare, ho trovato una soluzione al tempo stesso rapida ed economica: una spedizione Amazon Prime, di questo oggetto:

Si tratta di una sorta di cavo piatto un po’ primitivo, senza nè connettori plastici singoli nè connettori da 44 pin: sono solo 40 fili intestati con terminali femmina; l’inserzione era un po’ confusa e maltradotta, ma sperabilmente dovrebbe trattarsi di terminali da 2.0mm; sono solo 40 invece dei 44 necessari, ma in realtà non tutti i pin del connettore sulla scheda GSM sono popolati, quindi si dovrebbe riuscire ad adattare il cavo.

Adesso dall’inserzione, che includeva vari oggetti diversi, questo in particolare è sparito, quindi non resta che sperare che non mi mandino invece quest’altro oggetto, che ha la stessa foto ma è dichiarato avere passo da 2.54mm. Sennò c’è il reso gratuito Amazon.

In ogni caso, resta poi il problema che sui due PCB ho un connettore maschio e uno femmina, mentre questo cavo ha solo femmine; ho quindi aggiunto all’ordine questo strip maschio-maschio con passo da 2.0mm:

Cercando “jumper wire 2.0 mm” si troverebero varie altre alternative, ma tutte senza Prime, quindi con data di arrivo imprecisata.

Ecco uno schema di massima di come dovrebbe avvenire il collegamento “clandestino” tra modulo GSM e motherboard:

cavo intercettazione centralina GSM/GPS icaro

Cavo intercettazione centralina GSM/GPS icaro

Il cavo ideale sarebbe il TCSD-22-T-03.00-01,o l’omologo  TCMD-22-T-03.00-01 (anche se probabilmente non esistono due cavi identici con sigle diverse), ma è possibile arrangiarsi con varie altre possibilità, come descritto in figura; l’importante è che il codice non finisca con -R o con -O, che significa che il connettore finale  è capovolto (-R se sono 2 connettori, -O se sono 3 in daisy-chain, nel qual caso prima della “O” ci sarebbe anche una “Dxx”, con xx distanza tra connettore 2 e connettore 3).

Il sito https://www.toby.co.uk forse non è “fintamente inglese” comei vari mouser, farnell ecc. che in realtà spediscono dalla Cina o dall’America, quindi è possibile che ordinando qui il materiale arrivi nel giro di una settimana invece che di 3-4 mesi.

Anche il sito https://www.enrgtech.co.uk/ sembra inglese autentico.

Ecco alcuni possibili codici di cavi validi:

Nota:  essendo lo strip-pin sulla motherboard non protetto da un case, qualunque connettore femmina con più di 22 pin si può adattare, quindi per esempio anche TCSD-25-01 e successivi. Il limite ovviamente è la larghezza massima disponibile all’interno dello scatolotto della centralina. Foto del connettore maschio sulla motherboard:

connettore GSM nero con righello e pin

 

Sul sito Samtec c’è anche un configuratore 3d che permette di vedere in tempo reale come cambia il cavo al cambiare delle opzioni del suo part number, ma per ora è disponibile solo per la famiglia TCSD, non per la TCMD:

Samtec TCSD IDC 3d configurator

Samtec TCSD IDC 3d configurator

Qui di seguito riporto invece gli esiti delle mie ricerche precedenti alla decisione finale di comprare ponticell dupont.

Cavi preassemblati

Ho trovato due soli produttori per cavi piatti con connettori con passo (“pitch”) da 2.0mm e a 44 pin: Samtec e 3M; questi sono due esempi di datasheet dei loro prodotti:

La Samtec usa questa nomenclatura

xxxD-22-T-LL.LL-01-N-R

  • xxx: famiglia del cavo (v. sotto) – TCMD = maschio, TCSD = femmina
  • D: doppia fila di pin
  • 22: numero di pin per fila
  • T:  connettore di sesso opposto  all’altra estremità del cavo (invece di fili liberi); S = fili liberi, D = connettore identico all’altro
  • LL.LL: lunghezza in pollici del cavo
  • 01: numero fisso
  • N: presente solo se è presente prima la “T”, e significa “notch polarization”)
  • R: verso invertito del connettore; O = verso invertito del connettore finale se i connettori sono 3 (daisy-chain)

 

Famiglia del cavo

  • TCSD 2.00 mm  – Tigereye Cable Socket Double – IDC Ribbon Cable Assembly, Socket
  • TCMD 2.00 mm – Tigereye Cable Male Double – IDC Ribbon Cable Assembly, Terminal
  • EHT 2.00 mm Shrouded IDC Ejector Header
  • STMM 2.00 mm Shrouded Terminal Strip, Cable Mate
  • ZSTMM 2.00 mm Shrouded Variable Stack Height Terminal Strip, Cable Mate
  • ETMM 2.00 mm Shrouded Terminal Strip For Strain Relief for TCSD

(ho cancellato le famiglie non adatte al mio caso)

Qui la pagina Samtec per la ricerca visuale.

Alcune note:

  • il passo da 2.00 mm del connettore implica un passo da 1.0mm dei fili, mentre il passo tipico di 2.54mm (ad esempio per la piattina dell’hard disk) implica un passo di 1.27 mm per  i fili
  • il “passo” in inglese si chiama “pitch”
  • IDC significa “Insulation-Displacement Connector” (“connettore a spestamento di guaina”): significa che i fili non sono connessi ai pin tramite saldatura, ma grazie a delle affilate “microforcelle” presenti sul loro retro; l’apertura della forcella è poco più larga del diametro del conduttore di rame interno al filo, quindi quando si inserisce il filo nella forcella, questa taglia e sposta la guaina, andando a toccare il conduttore e garantendo un contatto elettrico stabile e addirittura a tenuta d’aria:

IDC connection, Torq-Tite patent

IDC connection, Torq-Tite patent

  • Nel datasheet c’è un’immagine un po’ fuorviante, che potrebbe far credere che in certi connettori i pin sono sfalsati; in realtà l’immagine di sinistra nella figura qui sotto mostra il connettore visto dal lato opposto dei pin, che invece sono disposti a griglia come mostrato a destra, in altra immagine tratta dallo stesso datahseet:

Connettore femmina da PCB

  • DS1026-05-2*22S8BV – Presa; con pioli; femmina; PIN: 44; dritto; 2mm; THT; 2×22 (codice TME.EU: ZL265-44DG)

    Datasheet: link

 

  • MMS-122-01-L-DV – Codice RS: 180-3564 – Connettore femmina per PCB Samtec serie MMS, 44 vie, 2 file, passo 2mm, foro passante RS-COMPONENTS 6,969€ x 13
  • MMS-122-01-L-DV – Codice RS-COMPONENTS: 180-3930 – Connettore femmina per PCB Samtec serie MMS, 44 vie, 2 file, passo 2mm, foro passante –   €10,10 x 1

Connettore maschio da PCB

Come maschio ci sono varie possibilità, nessuna delle quali identica al connettore che è sulla centralina:

 

DS1014-44SF1B – (2 file da 22) – TME.EU

Datasheet: link

Differenza: presa incapsulata invece che pin liberi

La sigla “DS1014-44SF1B” significa:

  • DS1014: codice prodotto
  • 44: numero contatti
  • S: montaggio di tipo V/T
  • F1: contatti in oro
  • B: colore nero

 

DS1002-02-2*25BT1F6 (2 file da 25) – TME.EU

(immagine non disponibile)

Datasheet: link

Differenza: due file da 25 pin invece che da 22.

La sigla DS1002-02-2*25BT1F6 significa:

  • DS1002-02: codice prodotto
  • 2*25: disposizione contatti
  • B: tipo di clip a “4 fingers” (???)
  • T1: placcatura pin in stagno
  • F6: placcatura clip in stagno

 

Altri:

  • 57102-F08-11ULF (2 file da 11, quindi ne servirebbero 2) – TME.EU – “Pin header; wire-board; male; Minitek; 2mm; PIN: 22; THT” – 1,46€
  • 57102-F08-25ULF (2 file da 25, da tagliare) “Pin header; wire-board; male; Minitek; 2mm; PIN: 22; THT” – TME.EU – 1,55€
  • 87831-4420 – Connettore circuito stampato serie MILLI-GRID Molex, 44 vie, 2 file, passo 2mm, 2A, Diritta – Codice RS-COMPONENTS: 670-1009 – 8,17 euro (5 pezzi)

 

  • A3-44PA-2SV(71)Codice RS 764-4622 – Connettore maschio serie A3 Hirose, 44 vie, 2 file, passo 2mm, 2A, Diritta – RS-COMPONENTS – 3,51€
  • 87758-4416 – Codice RS 670-3733 – Connettore circuito stampato serie MILLI-GRID Molex, 44 vie, 2 file, passo 2mm, 2A, Diritta – RS-COMPONENTS17,00 euro (confezione da 10)
  • 832-80-022-20-001101 – Codice RS 701-9761 – in connettore per circuito stampato, Preci-Dip, 832-80-022-20-001101, maschio, 22 vie, 2 file, 2mm foro passante – RS-COMPONENTS – 12,39 euro (confezione da 5)

Tutte le foto del modulo GSM:

connettore GSM nero con righello e pin

Connettore lato SIM con pinout marziale

connettore GSM nero con righello

Hacking Icaro: centralina GSM – puntata 2 (16/3/2019)

Posted in hardware by jumpjack on 16 marzo 2019

Puntata precedente: https://jumpjack.wordpress.com/2019/03/10/esame-della-centralina-gsm-gps-greengo-icaro/

Sostituendo la SIM originale della movistar con una generica SIM Wind, sono riuscito ad ottenere l’aggancio alla rete GPRS!

Purtroppo il comando di connessione non è molto chiaro:

AT+CGDCONT=1,”IP”,”%1?….4.?..b#”

Il terzo parametro dovrebbe essere l’indirizzo IP dell’APN dell’operatore…. ma sembra scritto in codice binario invece che come stringa, quindi non si capisce a chi tenti di collegarsi.

In binario: 25 31 3F 10 10 06 04 34 07 3F 01 02 62 23

La buona notizia è che però a questo comando della MCU, e al successivo ATD*99***1# ,  il modulo GSM risponde con CONNECT, quindi l’aggancio avviene di sicuro.

…dopodichè non si capisce più niente: tutta la comunicazione passa da testuale (comandi AT) a binaria!

Leggendo come testo quello che la MCU invia al modem… si vede questo:


~?}#?!

}!}!} }4}"}&} }

 } } }%}&eglj}'}

"}(}"?m~

~?

}#?!}"}!} }2}"}&

} } } } }#}$?#}

'}"}(}"??~

~?#GPRS~?}#?!}!}#

} }.}"}&} } } }

 }'}"}(}"*?~

~?#~

~?!~?!/~

~?!~?!~?!??~

~!E?

_n?-? (?a~

~!E

?

_n?x?ls~

~!E0? ??~

~!E

}]

?

_n?4Vx?Jg~

~!En?p ??~

~!E

{

?

_n?4Vx~!

E_n???~

~!E?4Vx~

!E

_n???~

~!E?q~!E?

_n??I:~

~!E~

~!Et

?

_n?x?o.~

~!E0? ?~

Espresso in esadecimale non è che sia molto più chiaro…:
7E3F7D233F21
7D217D217D207D347D227D267D207D
207D207D207D257D2665676C6A7D277D
227D287D223F6D7E
7E3F
7D233F217D227D217D207D327D227D26
7D207D207D207D207D237D243F237D
277D227D287D223F3F7E
7E3F230102475052537E3F7D233F217D217D23
7D207D2E7D227D267D207D207D207D
207D277D227D287D222A3F7E
7E3F2301047E
7E3F2101057E3F2101062F7E
7E3F21010703067E3F2102017E3F2101083F3F7E
7E21453F04
5F6E3F16042D073F0102080928083F617E
7E2145
3F04
5F6E3F160478053F010104026C737E
7E2145303F160402203F3F7E
7E2145
7D5D
3F04
5F6E3F1604123456780204053F010104024A677E
7E21456E3F16047002203F3F7E
7E214506
7B
3F04
5F6E3F1604123456787E21
455F6E3F160404023F3F7E
7E21450B3F123456787E
214504
5F6E3F16040104023F3F7E
7E21453F717E21453F04
5F6E3F16043F01010402493A7E
7E2145047E
7E214574
3F04
5F6E3F160478053F010104026F2E7E
7E2145303F160402203F7E
Tutta roba incomprensibile, però qui c’è qualche indizio su cui investigare:
https://www.embeddedrelated.com/showthread/comp.arch.embedded/40457-1.php
Potrebbe cioè trattarsi di una comunicazione su protocollo PPP; devo quindi o studiarmi il protocollo a basso livello, o trovare un decodificare automatico.

Questo è invece quello che risponde il modem subito dopo aver risposto CONNECT:
~ÿ}#À!}!}!} }2}"}&} } } } }#}$À#}'}"}(}"Ý”~~ÿ}#À!}$}!} }*}%}&eglj`…~~ÿ}#À!}"}#} }.}"}&} } } } }'}"}(}"}4¼~~À#
In hex:

7EFF7D23C0217D217D217D207D327D227D267D207D207D207D207D237D24C0237D277D227D287D22DD947E7EFF7D23C0217D247D217D207D2A7D257D2665676C6A60857E7EFF7D23C0217D227D237D207D2E7D227D267D207D207D207D207D277D227D287D227D34BC7E7EC0230204000500AA5E7E7E8021030500
030600000000C6A17E7E8021030600
030600000000C1777E7E802101010004BB997E7E8021030700
0306
B506E685837E7E8021020800
0306
B506E68A397E

Tutto questo avviene al banco, con la centralina scollegata dalla icaro.


Alcuni link utili:
Protocollo PPP:
http://www.powerfast.net/maxtnt/~ascend/MaxTNT/admin/ppprime.htm
http://www.netfor2.com/ppp.htm
Decoder:
https://hpd.gasmi.net/  – hex decoder generico – 1
http://packetor.com/ – hex decoder generico – 2

 

Tagged with: , , , ,

Hacking Icaro: centralina GSM/GPS – puntata 1 (3/3/2019)

Posted in hacking, hardware, minicar elettriche by jumpjack on 10 marzo 2019

L’anno scorso ho provato a smontare ed esaminare la centralina GPS/GSM che rende(va) la Icaro (o meglio i.car.0) una “interconnected car”, inviando a una centrale di monitoraggio remoto decine e decine di telemetrie, come descritto in questo thread:

https://www.forumelettrico.it/forum/centralina-gsm-gps-t2437.html

Alcune foto della centralina.

Qui si vede il contenitore dell SIM card e un connettore a pettine a 12 pin:

Questo è il modulo GPS, un “GA71 V4.0 SiRF star III” a 20 canali:

 

Alcune marcature utili per l’identificazione:

Visione d’insieme; in alto la batteria-tampone ricaricabile al NiMH da 3.6V:

Questi pin, apparentemente interessanti… si sono rivelati completamente muti e inutili:

 

 

Quelli che invece si sono rivelati molto interessanti sono quelli dello strip maschio a 12 pin: collegandolo a un adattatore TTL/seriale per il PC, sono riuscito a dare una sniffata, scoprendo questo:

Per il momento non sono riuscito ad agganciare la rete, nemmeno togliendo la SIM originale e mettendo la mia, ma farò ovviamente altre prove.

Probabilmente, infatti, solo una volta che la scheda riesce ad agganciare la rete fa un tentativo di agganciarsi ai server remoti che un tempo leggevano queste telemetrie; bisogna vedere poi:

  • se la scheda aspetta una risposta dal server prima di inviare dati, o se li invia “a fondo perduto”
  • se è possibile riprogrammare a mano l’indirizzo a cui la scheda tenta di collegarsi
  • varie ed eventuali

Comandi AT:

Diario elettrico GreenGo Icaro – La manopola del volume

Posted in Diario elettrico GreenGo Icaro, hacking, hardware, minicar elettriche, Uncategorized by jumpjack on 26 gennaio 2019

Primo prototipo: gennaio 2019

Ho finalmente applicato una nuova modifica per migliorare la sicurezza dell’auto: lo spostamento dei comandi dell’autoradio.

In origine la manopola di accensione e del volume si trova tra i pulsanti del cambio; il che vuol dire che si rischia di mettere in folle mentre si guida, tentando di alzare il volume… Un’assurdità.

Così ho comprato un encoder per pochi euro, una manopola per ancora meno euro, ci ho attaccato 4 fili et voila. 🙂

In questa foto apparentemente non si vede niente… ma solo perchè la modifica è molto pulita: semplicemente, al posto della terza manopola, che nel mio modello A1 è finta perchè non è presente l’aria condizionata, ho messo una manopola vera, che dietro è collegata a un encoder con interruttore, avvitato a una tavoletta di compensato che a sua volta è avvitata al cruscotto:

Poi basta allungare i fili che normalmente vanno alla manopola originale, e farli arrivare invece a questa…

Spiegazione morsetti dell’encoder: http://henrysbench.capnfatz.com/henrys-bench/arduino-sensors-and-input/keyes-ky-040-arduino-rotary-encoder-user-manual/

Fin qui si tratta del primo prototipo, realizzato a gennaio; funzionava abbastanza  bene, ma con due difetti minori:

  1. La manopola era un po’ “ballerina”, perchè il perno del decoder era troppo corto per spuntare dalla plastica, quindi ho dovuto fargli una prolunga stampata in 3d, che non è molto precisa, quindi la manopola ha un po’ di gioco.
  2. Per qualche strano motivo, in certe situazioni imprecisate quando alzo il volume, si sente un “bip” e il tablet cambia schermata! Altre volte la radio inizia ad aumentare di volume in modo incontrollabile senza che io tocchi niente.

Il secondo problema mi ha costretto ad aspettare “tempi migliori” prima di pubblicare ufficialmente questo post, per aver tempo di individuare il problema. Poi l’auto è stata in officina per 3 mesi e mezzo… e tra una cosa e l’altra siamo arrivati a giugno.

Versione 2: giugno 2019

In base a quanto descritto nel punto due qui sopra, ho pensato che ci fosse un problema di falso contatto, che in termini elettronici si traduce in resistenza spuria. Ma in teoria un encoder non dovrebbe contenere nessuna resistenza, essendo composto semplicemente di 3 interruttori: due che servono a determinare il verso di rotazione, e un terzo è collegato alla pressione dell’alberino rotante. Comunque ho deciso di fare alcune prove collegando resistenze di valori diversi ai PIN a cui è collegato l’encoder, iniziando dal quello collegato all’interruttore a pressione, e in effetti ho avuto conferma dei miei sospetti. Ecco infatti la lista degli effetti che ho rilevato sul tablet collegando ai due PIN diversi valori di resistenza; tutti i valori sono espressi in kOhm:

  1. 0-0.3 (0-300 ohm): on/off
  2. 0.5-0.9 (500-900 ohm): Home page
  3. 1.9-2.0: Radio giù
  4. 2.0-3.9: Radio su
  5. 3.5-4.5: Cambio banda AM/FM
  6. 4.8-6.5: modalità (musica, film, aux)
  7. 6.8-8.4:  mute
  8. 8.4-17: funzioni non chiare
  9. 17-20: volume su
  10. 22-28: volume giù
  11. 40-70: Navigatore
  12. 100: Telefono

Ovviamente non si tratta di valori precisi ma di intervalli di valori, all’interno dei quali deve cadere la resistenza di valore standard che si utilizza. I valori sono i seguenti:

In base a questa tabella, i valori da usare per attivare le funzioni sopra descritte sono:

  1. On/off: nessuna resistenza
  2. Home page: 560/680/820 ohm
  3. Radio giù: 1.8 K
  4. Radio su: 2.2 K
  5. Cambio banda AM/FM: 3.9 K
  6. Modalità (musica, film, aux): 5.6 K
  7. Mute: 8.2 K
  8. 8.4-17: funzioni non chiare
  9. Volume su: 15 K
  10. Volume giù: 22/27 K
  11. Navigatore: 47/56/68 K
  12. Telefono: 100 K

Sono poi andato a esaminare più da vicino l’encoder e mi sono accorto di una grossa svista: non si tratta di un encoder semplice; è invece collegato ad alcune resistenze di polarizzazione da 1 kOhm:

Quindi erano queste che probabilmente facevano scattare in certe posizioni della manopola le funzioni del tablet; così ho rimosso del tutto l’encoder dal suo PCB e l’ho collegato direttamente al tablet. Per predisporre il lavoro a modifiche successive ho collegato, piuttosto che dei fili volanti, una serie di morsetti; al tablet ho collegato un morsetto femmina a 4 pin, in modo che sia più facile fare le prove successive con resistenze provvisorie volanti; ho poi collegato un morsetto maschio all’encoder, dopodichè ho praticato dei fori negli spazi vuoti della pulsantiera degli specchietti, per implementare le nuove funzioni:

 

 

Come connettori ho usato quelli che ho imparato a conoscere sull’Ecojumbo: impermeabili e a prova di  disconnessione, grazie  a un  sistema  di  aggancio  a molla:

Ho collocato i due nuovi pulsanti in una zona libera della pulsantiera degli specchietti:


I due pulsanti rossi servono ad alzare ed abbassare la frequenza di sintonia; il pulsante quadrato nero al momento, giusto per prova, attiva il navigatore, che però non è molto utile se lo schermo non funziona perchè non posso impostare la destinazione; vorrei invece fare in modo che attivasse direttamente la telecamera di retromarcia che ho installato e che normalmente richiede diversi clicchi sul touch screen per essere attivata. Se invece potessi attivarla al volo con un pulsante sarebbe molto più comodo.

La manopola questa volta l’ho fissata in modo diverso e più stabile: usando un piastrino di plexglass abbastanza sottile da entrare nell’incavo della plastica, rendendo così non necessaria la prolunga stampata in 3d; per tenerlo in posizione ho aggiunto due viti. Il lavoro resta comunque abbastanza pulito:


“Pulito” finchè non metto i fili; una volta saldati al decoder, la faccenda si fa più complessa…

 

Sul tablet c’è anche una schermata che permetterebbe di assegnare delle funzioni ai pulsanti al volante… anche se di pulsanti al volante nella Icaro non ce ne sono. Comunque la schermata del tablet è questa:

Come si vede, molte delle funzioni che ho scoperto sono proprio elencate in questa schermata; purtroppo aggiungere dei pulsanti al volante non è possibile perché l’unico filo che arriva dentro al volante è quello del clacson, e per portare altri fili l’unico modo sarebbe usare un particolare interruttore a strisciamento che permette al volante di girare senza interrompere i contatti; c’è già un meccanismo di questo tipo sulla Icaro, ma soltanto uno dei 5 pin è popolato, e aggiungere nuovi fili sarebbe un lavorone perché dovrei smontare lo sterzo e quindi non se ne parla. Però Se riesco effettivamente a trovare altre funzioni attivabili senza touchscreen potrei comunque realizzare un tastierino esterno per attivarle.

 

Di seguito  le altre foto che ho fatto lavorando al progetto:

 

Studio di fattibilità – antenna esterna per Sonoff Pow Rev2

Posted in hardware by jumpjack on 4 gennaio 2019

Il Sonoff pow prima versione era predisposto per collegare, al posto dell’antennina interna di 2 cm, un antennone esterno “grosso a piacere”: bastava infatti saldare un connettore UFL sulle piazzole predisposte sul circuito stampato, e spostare un condensatore:

 

 

 

Adesso è uscito il Sonoff Pow “Rev 2” (da non confondere col “Sonoff Pow 2.0”, vedi immagine comparativa più avanti), che ha due brutte novità: non c’è più il fusibile, e soprattutto non c’è più la predisposizione per l’antenna esterna:

 

Da un’analisi del nuovo circuito sembra però che ci si potrebbe comunque arrangiare senza troppe complicazioni: anche se non ci sono le 3 piazzole necessarie per il connettore UFL, in realtà il connettore UFL ha 4 terminali, ma in realtà 3 sono in comune e corrispondono alla massa, e uno corrisponde al segnale:

 

UFL connector dimensions and pinout

Si potrebbe allora forse semplicemente collocare il  connettore UFL in questa posizione, saldando solo il pin di destra con la piazzola di massa soprastante:

Sonoff POW 2 External antenna on UFL connector

Probabilmente bisognerà anche tagliare la traccia che porta all’antenna incorporata, perchè, anche se non può fare contatto col pin centrale di massa del connettore, potrebbe entrare in risonanza con l’antenna esterna e ridurre, invece che aumentare, la portata (ma ci vorrebbe qualcuno che ci capisca un po’ di più di antenne…)

Chi dispone di un saldatore ad aria calda, che permette di saldare i component SMD appoggiandoli direttamente sulle piazzole stagnate, si potrebbe pensare anche a un montaggio più pulito, spostando il connettore di pochi mm più in alto:

 

Ecco infine una comparativa fra le due versioni (e mezzo) di Sonoff POW:

Tagged with: , , ,

Appunti su aria condizionata termoelettrica per veicoli (TE-HVAC o TEAC)

Posted in auto elettriche, hardware by jumpjack on 30 dicembre 2018

Thermo-Electric Heating, Ventilation and Air Conditioning

  1. Experimental validation of the optimum design of automotive air-to-air thermoelectric air conditioner (TEAC) – Alaa Attar, HoSung Lee, Sean Weera
  2. “Vehicular Thermoelectric Applications Session – DEER 2009” – John W Fairbanks – Department of Energy – Vehicle Technologies – Washington, D.C. – August 5, 2009: “total cooling power required to cool the zone of a single occupant is around 630 W while 3.5 to 4.5 kW is needed to cool the entire cabin”
  3. Modeling a Thermoelectric HVAC System for Automobiles,” Journal of Electronic Materials, vol. 38, no. 7, pp. 1093-1097, 2009: “For ambient temperatures of 25°C and 30°C, the conventional auto HVAC system has cooling capacity of five times higher than the thermoelectric HVAC system at the same input power”
  4. Design and Analysis of a Thermoelectric HVAC System for Passenger Vehicles” SAE International, Vols. 2010-01-0807, 2010.”, D. C. D. a. L. J. Wang – Esperimento con 6 celle peltier da 48W l’una (tot 288W): temperatura dell’abitacolo abbassata a 7°C!
  5. Thermoelectric Air Cooling For Cars” – Manoj S. Raut, Dr.P. V. Walke  (grande quantità di dati numerici e formule)

Dalla ricerca 5:

  • Calore specifico aria a 30°C: 1007 J/KgK
  • Densità aria: 1.164 kg/m3
  • Volume abitacolo: 1m3 –> 1.164 kg
  • Temperatura interna: 23°C
  • Temperatura esterna: 30°C
  • Differenza temperatura: 7°C

Per abbassare di 7°C la temperatura dell’aria che esce da un “raffreddatore termoelettrico” di 0.0054128 cm2 di diametro alla velocità di 5 m/s (=0.027064 m3/s = 97 m3/h) servono 222W di “potenza raffreddante” (Qc):

P = m * C * DeltaT

  • m= massa d’aria per secondo = rho * volume/secondo = 1.164 * 0.0270640.031502496 [kg/s]
  • C = calore specifico aria
  • DeltaT = Differenza di temperatura ingresso/uscita

P = 0.031502496 * 1007 * 7 = 222 W

L’autore usa 6 celle di peltier “TEC1-12704” in “disposizione mista serie/parallelo”, ognuna con potenza raffreddante minima di 36W alimentata a  15.4V/4.1A/63.14W (quindi 1:1.75 circa), ma a 12V assorbe invece 3.2A/38.4W

 

Questi i grafici presi da alcune schede tecniche:

Schede tecniche:

 

 

 

 

Diario elettrico Greengo Icaro – 23/12/2018: il blocco di sicurezza per la presa Mennekes

Posted in 3d, Diario elettrico GreenGo Icaro, hardware, minicar elettriche by jumpjack on 23 dicembre 2018

Download file 3d stampabile: https://skfb.ly/6Gtzn

Un post su un forum mi ha fatto tornare in mente un vecchio problema su cui avevo pensato di lavorare, ma che mi era poi passato di mente perchè piuttosto complicato e rimandato a “prima o poi”.

Ok, è arrivato il poi.

La presa mennekes sulla Icaro non prevede il blocco automatico della spina durante la ricarica, cosa che normalmente avviene, sia lato-auto che lato-colonnina, per mezzo di un perno metallico che si introduce in apposito foro nella spina, per evitare che per errore o per vandalismo il cavo venga sconnesso durante la ricarica senza prima aver spento la colonnina; la cosa non dovrebbe danneggiare niente, perchè uno dei 5 pin è stato progettato appositamente più corto degli altri in modo da scollegarsi per primo e comandare lo spegnimento elettronico della colonnina in caso di disconnessione prematura del cavo; però è anche vero che questo blocco torna utile per evitare che qualche “dispettoso” ci sfili il cavo durante la ricarica sperando così che la colonnina lo sblocchi anche sul suo lato, per poter ricaricare la sua macchina o semplicemente per fregarci 200 euro di cavo.

Meglio quindi disporre di questo dispositivo di sicurezza.

Nel catalogo SCAME il meccanismo che attiva il perno metallico (tecnicamente detto “di interblocco”) viene chiamato “BLOCCO SPINA SUPERIORE PRESA T2S-T2C” e ha codice 200.23260BS, per un costo di 65 euro; presso altri fornitori si trova a prezzi più bassi, ma a non meno di 30 euro.

In realtà, però, si tratta di un semplice perno azionato da un relè, quindi, se la propria auto ne è sprovvista, piuttosto che buttare 65 euro se ne possono spendere 10 per comprare online questo pezzo inventato da me (oppure stamparselo da soli al costo di pochi centesimi se si ha una stampante 3d), e altri 5 euro per comprare una qualunque spina industriale, da cui andremo a estrarre uno dei pin piccoli, da 5mm, da usare come “perno manuale”.

Normalmente ecco come si presenta la presa con montato il meccanismo standard di interblocco:

 

Dettaglio del meccanismo di interblocco:

La presa di ricarica della Icaro è protetta dal rivestimento plastico nero dell’interno dell’abitacolo; se non si vuole smontare l’intera parte di rivestimento del bagagliaio, si può ritagliare un foro intorno alla sporgenza in corrispondenza con la presa, in modo da accedere al retro della presa stessa, stando attenti, quando si arriva a tagliare la parte bassa, a non andare troppo a fondo nel taglio per non toccare i cavi.

Io per effettuare il taglio ho usato un dremel, perchè la plastica è spessa e il taglierino è impreciso. L’operazione ha richiesto meno di 10 minuti.

Nel mio caso il buco nel tessuto isolante era un po’ piccolo e rendeva scomodo lavorare, quindi l’ho allargato un po’ con un  taglierino, in modo da accedere comodamente alla presa.

Dopo aver rimosso il rivestimento nero e scoperto il connettore, è necessario rimuovere temporaneamente la fascetta metallica che tiene la guarnizione fissata alla presa, sia per poter estrarre la presa dall’esterno ed esaminarla, sia per poter estrarre la piccola guarnizione rettangolare che nasconde il foro di interlock della presa; nella foto che segue il foro centrale superiore è già stato privato della guarnizione, che è invece ancora in posizione nel foro 1, rendendolo di fatto totalmente invisibile a prima vista:

Qui è possibile vedere le tre guarnizioni, che hanno una sporgenza che si inserisce nel buco di interlock.

La prossima foto mostra il buco centrale superiore con e senza spina inserita:

 

Tornando alla foto iniziale che mostra la presa inserita nella carrozzeria, si può dedurre, ora che è nota la posizione del buco, che esso è in posizione difficilmente accessibile perchè aderente alla carrozzeria e intralciato da tessuto isolante e rivestimento plastica; tuttavia, il perno di blocco funziona anche se inserito diagonalmente, e non deve essere preciso al decimo di mm rispetto al buco.

Ho quindi progettato questo pezzo da stampare in 3d, che realizza un supporto inclinato da inserire al posto della guarnizione, nella sua stessa slitta:

Il forellino laterale serve a far passare un filo da legare al perno, che essendo manuale va sfilato quando non serve; legandolo a questo buco si evita di perderlo in giro per la macchina.

Ecco come appare il perno inserito a mano nel pezzo, accanto alla guarnizione che va a  sostituire:

Anche se il pezzo funziona egregiamente già così, ho deciso di fare qualche miglioramento, in questo secondo progetto:

Le novità sono il foro “di appoggio”, così non si deve lasciare il perno a ciondolare nel bagagliaio quando non è in uso, e il foro passa-filo di forma adesso triangolare, così le stampanti a filo possono stamparlo senza supporto, fastidioso da rimuovere e causa sempre sbavature. C’è inoltre un ispessimento graduale dei lati del pezzo, in modo che, inserito a fondo nella slitta, rimanga incastrato. In ogni caso, però, la grossa guarnizione della presa,  tenuta ferma dalla fascetta, impedisce che il pezzo (così come la guarnizione che c’era prima) si sfili.

Ecco come appare il nuovo pezzo stampato:

Con questa seconda stampa ho avuto modo di verificare se il buco di appoggio è sufficientemente largo: da progetto ha un diametro di 5mm, ma anche se al calibro il perno misura 4.90-4.95, c’entra un po’ a forza; se da una parte non è un problema per il  foro di parcheggio, renderebbe però scomodo l’uso del foro “di lavoro”, perchè non si capirebbe bene quando il perno arriva fino in fondo, motivo per cui ho fatto il foro di lavoro grande quanto il foro della presa e rettangolare, in modo che il perno ci entri con ampio gioco.

Anche se già così funziona bene e il perno blocca perfettamente la spina inserita, probabilmente farò un terzo progetto, con foro di lavoro tondo ma magari largo 5.5 o 6 mm; la seccatura è che per ogni nuovo progetto bisogna aspettare tre quarti d’ora per la stampa…

Per il momento il lavoro completato appare così:

Dovrò comunque allargare un po’ il buco sulla parte superiore, perchè il perno è molto lungo e, nonostante l’inclinazione, risulta comunque un po’ troppo scomodo inserirlo.

 

Ingrandimento:


Aggiornamento:

Ho realizzato un’ultima versione del supporto per il perno, col buco di appoggio 2mm più largo, e quello di lavoro più stretto e inclinato, per facilitare l’inserimento del perno. Qui c’è il file STL stampabile:

Download file 3d stampabile: https://skfb.ly/6Gtzn

Chi non ha una stampante 3d può farselo stampare online e inviare a casa cliccando qui, al costo di 5,00 euro + spedizione.

Nota: E’ comunque necessario anche allargare un po’ il buco nel rivestimento plastico della Icaro, per fare un po’ di spazio sopra al perno, rispetto alla figura sopra.

 

 

 

 

Nuovi appunti su ESP8266

Posted in esp8266, hardware by jumpjack on 24 novembre 2017

E’ uscito il successore, ESP8285:

  • 1 Mbyte di memoria flash incorporata nel chip stesso
  • velocità di upload di 4 Mbps invece dei soliti 115200
  • Processore Tensilica L106 32-bit  (100% compatibile con SW di ESP8266, quindi probabilmente con Arduino IDE, previa reflash)
  • 80MHz (160 MHz)
  • RTC (Real Time Clock) incorporato
  • Predisposto per supporto per SD-Card
  • Predisposto per ricevitore IR (infrarossi)
  • 17 GPIO
    • Assegnazioni riservate:
    • Pin Name Pin Num IO Function Name
      MTCK 12 IO13 Button (Reset)
      GPIO0 15 IO0 Wi-Fi Light
      MTDI 10 IO12 Link Light
  • Assorbimento massimo: 160 mA in trasmissione, ma la documentazione parla di un piccco di 500 mA all’avvio del predecessore ESP8266. Per questo motivo è sconsigliato alimentare l’ESP dalla porta USB di un PC, che sopporta AL MASSIMO 500 mA, quindi è troppo al limite; il costruttore consiglia inoltre di alimentare l’ESP tramite un DC/DC converter (che trasforma tensioni sotto- o sopra-soglia nei 3.3V richiesti) o un Low DropOut regulator (che può gestire solo tensioni sopra-soglia, quindi per esempio passare da 5V a 3.3V), mentre sconsiglia di usare direttamente una batteria al litio (LiPo o NCM)perchè ha un range di tensione troppo ampio durante la scarica: 3.0-4.2V contro i 3.0-3.6 accettati dall’ESP. Andrevve invece bene una LiFePO4, che ha una tensione massima di 3.3, però scende fino a 2.8, che non è abbastanza, quindi non si sfrutterebbe appieno la carica.
    Esempio di LDO:AMS1117,

 

Board di programmazione (con USB e pulsanti):

https://wiki.wemos.cc/products:d1:d1_mini_lite 3.00 dollari su Aliexpress

 

Modulo da solo:

2.79 euro su Electrodragon, 8 dollari su Amazon.com .

 

Datasheet:

https://dziadalnfpolx.cloudfront.net/blog/wp-content/uploads/2016/06/ESP8285-datasheet-EN_V1.0_20160302.pdf

 

Rivenditore di “follie” Espressif/AiTinker (tra cui un modulo GSM+GPRS+GPS + SDCard a 6 euro tutto incluso!!):

https://anxinke.world.taobao.com/

 


Documentazione tecnica ufficiale su motivi di reset dell’ESP8266:

http://wiki.ai-thinker.com/_media/esp8266/faq/esp8266_reset_causes_and_common_fatal_exception_causes_cn.pdf

FAQ espressif (in cinese…): http://wiki.ai-thinker.com/_media/esp8266/faq/espressif_faq_cn.pdf

Stesse FAQ ma in inglese: http://espressif.com/sites/default/files/documentation/espressif_faq_en.pdf


Note tecniche:

L’ESP8266 incorpora due Watchdog Timer (WDT o WT), uno HW e uno SW, per default entrambi abilitati.

Il WT HW ha un timeout di 1.6 secondi, seguito  da un “interrupt handling interval” di 6.6 secondi (“tempo di riserva” disponibile per azzerare il WT prima che si resetti l’ESP), per un totale di 8.2 secondi: se il programma non resetta il  timer entro 1.6 secondi, l’ESP POTREBBE resettaresi; se non lo resetta entra 8.2 secondi, l’ESP si resetta di sicuro.

Per resettare il WT in uno sketch IDE si può usare un’istruzione delay() “a vanvera”, oppure l’apposita funzione ESP.wdtFeed(); in realtà è già “segretamente” implementata in modo trasparente in varie librerie, ma se non dovesse bastare (cioè se lo sketch si dovesse riavviare senza motivo) si può provare a resettare il  WT a mano.

Per esempio se nella routine loop() non c’è nemmeno un delay(), l’ESP si potrebbe resettare per timeout del WT.

 

il WT SW ha un timeout di 1.6 secondi e un “interrupt handling interval” uguale, di 1.6 secondi,  per un totale di 3.2 secondi.

 

il WT HW non può essere spento, il WT SW sì, ma solo tramite programmi scritti con l’SDK.

 

Per creare ritardi che non resettino l’ESp il costruttore raccomanda di non usare loop, ma callback o timer.


All’accensione l’ESP invia sulla seriale a 74880 bps questo messaggio standard di avvio:

ets Jan 8 2013,rst cause:X, boot mode:(Y,Z)

il valore di X può essere:

  1. .
  2. .
  3. .
  4. .

Quello di Y è dato dalla combinazione dei 3 “GPIO di avvio” (“strapping pin”, pin di bootstrap), 15, 0 e 2, che essendo 3 bit possono comporre numeri da 0 a 7:

0:Remapping

  1. UART Boot
  2. Jump Boot
  3. Flash Boot
  4. SDIO LowSpeed V2 IO
  5. SDIO HighSpeed V1 IO
  6. SDIO HighSpeed V2 IO
  7. SDIO HighSpeed V2 IO

Si tratta quindi di pin riservati al sistema e non possono essere usati nei propri progetti.

Questi 3 pin vengono letti 60 ms dopo che il pin CHIP_EN (Chip enable) è stato portato a 3.3V, che a sua volta deve avvenire dopo l’accensione; la sequenza di boot quindi è:

  • Azione esterna: alimentazione a 3.3V
  • Il pin di reset, inizialmente a 0V, passa automaticamente a 3.3V
  • Azione esterna: CH_EN alto
  • Azione interna: lettura strap-pin
  • Azione interna: attivazione porta seriale

Il pin CH_EN non ha un pull-up interno.

Il pin di reset ha un pull-up interno, cioè normalmente è a 3.3V se è scollegato; se viene posto a zero tramite azione esterna, il chip si resetta.


L’ADC interno è cablato con gli stessi circuiti del wifi, quindi ha frequenza di campionamento diversa a seconda se il WiFi è attivo(1000 campioni/sec) o no (100.000 campioni/s), ed ha una risoluzione interna di 12bit ma disponibile di 10 bit. Il costruttore sconsiglia di effettuare contemporaneamente letture ADC e uso del WiFi.


L’ESP8266 non supporta nativamente le SD-Card sui pin SDIO perchè questi sono configurati come slave, quindi l’ESP può fungere solo da dispositivo.


Tutti i pin tranne GPIO4, GPIO5 (collegati al flashing) e GPIO16  hanno un pullup integrato, cioè se scollegati sono a 3.3V.

Per GPIO4 e GPIO5 non si può usare una resistenza di pullup da 1 Mohm, ma al massimo da 100k.


Le board bianche predisposte per saldarci un ESP8266 in modo che abbia piedinatura standard, sono predisposte per un regolatore di tensione che PERO’ non può essere un classico 1117 perchè la piedinatura non corrisponde: serve un XC6206P332A o 6206A in package SOT89, perchè i piedini sono Vss, Vin e Vout; se si monta questo regolatore, bisogna eliminare la “finta resistenza” centrale da 0 ohm.

Un HT7333 è anche meglio perchè a riposo dissipa solo 0.004 mA invece che 5 mA (fonte)

 

 

 

Tagged with: , ,