Jumping Jack Flash weblog

Manuale d’uso per timer KKMoon 12V con display e 3 tasti

Posted in hardware by jumpjack on 10 ottobre 2019

timer KKMoon - pulsanti

K1: tenere premuto per 2 secondi per entrare in modalità programmazione (programmi da P-1 a P-4).

K2: seleziona cifre partendo da sinistra

K3:
A cifra lampeggiante: incrementa di 1.
A cifre già prograsmmate: spostamento punto decimale.

P-1:
Accensione: relè 0, attesa segnale
Segnale: relè 1, timer T1, relè 0, fine.

P-2:
Accensione: niente
Segnale = Timer T1, relè 1, timer T2, relè 0, fine.

P-3 – Lampeggiatore
Accensione: Relè A, timer T1, relè B, timer T2, ripete all’infinito
Se A e B sono 0 o 1 lo si decide a timer avviato col tasto K1.
Nota: un giorno dura 1440 minuti e il timer può contare solo fino a 999 minuti, quindi può ripetere il ciclo ogni 12 ore, o al massimo ogni 16,65 ore.

P-4:
Accensione: Relè 0, attesa segnale
Segnale: Relè 1, timer T1, Relè 0, fine.

Specifiche:
Tensione di funzionamento: DC 12V / DC 24V (opzionale)
Intervallo di tempo (impostabile): 0,1 ~ 99,9 secondi; 1 ~ 999 secondi; 1 ~ 999 minuti
Segnale di tensione: DC 4 ~ 20V
Capacità di uscita: può controllare il carico entro DC 30V 10A o 10A 220V AC

Tagged with: , , , , , ,

Dimensionamento di fusibili

Posted in hardware by jumpjack on 10 settembre 2019

Qualche anno fa, quando ho rifatto da zero l’impianto elettrico dello scooter elettrico Ecojumbo 5000, ho avuto delle belle difficoltà a trovare normative e specifiche su come dimensionare correttamente fusibili per alte correnti continue.

Ecco ora un documento che fa un po’ di luce sulla questione:

https://www.littelfuse.com/~/media/electronics/product_catalogs/littelfuse_fuseology_selection_guide.pdf.pdf

 

  • Parametri del circuito
    • Corrente nominale (normal operating current)
    • Corrente massima di guasto (maximum fault current)
  • Parametri del fusibile
    • Tensione massima di lavoro (voltage rating)
    • Corrente nominale (“current rating”)
    • Corrente di corto circuito o Corrente di rottura o Corrente di sovraccarico (“short circuit rating” o “breaking capacity” o “interrupting rating”)

La corrente di corto circuito del fusibile deve essere maggiore o uguale della corrente massima di guasto del circuito, in modo che sia impossibile far scorrere nel circuito una corrente superiore alla sua corrente massima di guasto.

CCC >= CMG


Data la corrente nominale indicata nel datasheet, un fusibile non deve essere attraversato da più del 75% di questa corrente; o, detto al contrario, se devo permettere il passaggio di una corrente I in un circuito, il fusibile deve avere una corrente nominale di almeno I/0.75. Il valore 0.75 va poi moltiplicato per il fattore di derating dovuto alla differenza di temperatura rispetto alla temperatura ambiente, graficato nel datasheet.

Questo però è valido a 25°C in spazio aperto, condizioni standard utili solo per confrontare componenti diversi; bisogna però tenere conto del derating, ossia del cambio dei valori di specifica, al variare delle condizioni ambientali, essendo per definizione i fusibili componenti estremamente sensibili alle temperature.

Tensioni tipiche di specifica dei  fusibili sono: 32V, 63V, 125V, 250V e 600V. Il comportamento di un fusibile resta lo stesso al variare della tensione nel  range ammesso, mentre cambia molto al cambiare della corrente. Il documento non specifica come rapportare la tensione di lavoro in corrente continua con quella in corrente alternata, ma è presente un elenco di vari fusibili per i quali sono indicate le tensioni massime di lavoro sia in continua che in alternata, dai quali si evince che la tensione continua tollerata da un fusibile è 5 volte più grande di quella tollerata in regime di corrente alternata.

Il parametro principale per dimensionare un fusibile è quello che lo fa rompere: “overload current” o “corrente di sovraccarico“, che però non va mai da sola, ma è accompagnata dal tempo di apertura o tempo di rottura, cioè per quanto tempo può scorrere quella corrente nel fusibile prima che questo si fonda e apra il circuito. Questi due parametri del fusibile dipendono dalla “maximum fault current” (corrente massima di guasto) del circuito, cioè la corrente massima che si prevede possa scorrere nel circuito in caso di guasto.

 

 

 

Tagged with: ,

Sensori di piccole correnti per ESP32/ESP8266 e Arduino

Posted in hardware by jumpjack on 3 settembre 2019

INA219


MAX471

Dimensionamento della resistenza esterna su cui leggere la tensione con una Arduino o simili:

  • Rout [kOhm] = Vcc / (ILOADmax [A] * 0.5mA/A) = 2 * Vcc / ILOADmax
  • Vout [V] = 0.5 mA/A * Rout [kOhm] * ILOAD [A]
  • ILOADmax è la portata del MAX471, che è 3A, quindi:
  • Rout = 2*Vcc/3
  • Vout = I*Vcc/3
    • ESP32/ESP8266:
      • Rout = 2*3/3 = 2 kOhm per avere una variazione di 1mV per ogni mA; (2 resistenze di valore standard 1 kOhm in serie)
      • Vout [V]= I [A]
      • L’ESP32 legge i valori da 0 a 3.3V in 4096 step, quindi ogni step corrisponde a 0.80 mV letti e a 0.80 mA misurati.
    • Arduino
      • Rout = 2*5/3 = 3.3 kOhm
      • Vout [V]= 1.7 * I
      • Arduino legge i valori da 0 a 5V in 1024 step, quindi 4.9 mV per ogni step, che corrisponde a 8.3 mA misurati per ogni step.

In caso si volesse misurare anche la potenza, serve un sensore di tensione: questo regge fino a 250V alternati ed è isolato galvanicamente:

https://www.amazon.it/dp/B071W84XGP/

Si chiama ZMPT10B.

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

Posted in Diario elettrico GreenGo Icaro, hacking, hardware by jumpjack on 2 settembre 2019

Pinout

Terminata l’individuazione dei pin TX/RX da intercettare tramite apposito cavo:

Pinout centralina GSM Zhidou/Greengo Icaro

Pinout centralina GSM Zhidou/Greengo Icaro

 

Sul connettore nero sono i pin 33 e 34, ergo l’11mo e il 12mo partendo dal pin 23 (in basso nella figura qui sopra).

Il pin marchiato RX sul modulo va, da datasheet, collegato a RX sulla centralina, cioè qui viaggiano i dati provenienti dal modulo GSM, ergo le risposte del server. Il pin da “manomettere” e intercettare è quindi il TX, che corrisponde dal pin 33 sul connettore nero, l’undicesimo partendo dall’estremità del connettore contrassegnata dal n.23.

Il cavo

Un possibile cavo utilizzabile per questo hacking è il SAMTEC FFSD-25-D-03.00-01-N-R (datasheet):

  • FFSD = famiglia
    • FF passo 1.27 mm
    • S = socket (femmina); può andar bene anche la famiglia FFMD, con due spine maschio invece che due femmine, ma servirà un adattatore femmina-femmina; col connettore femmina-femmina (lettera S) serve invece un adattatore maschio-maschio, o semplicemente di inserire a mano 50 pin in uno dei due connettori femmina, in modo che diventi maschio.
    • D = doppia fila di pin
    • DA EVITARE le famiglie TCSD e TCMD, che hanno il passo sbagliato (2mm invece che 1.27mm)
  • 25 = 25 pin per fila
  • D = Doppio connettore
  • 03.00 = 3 pollici di lunghezza (7.5 cm)
  • 01 = valore fisso
  • N = presente tacca di polarizzazione
  • R = verso invertito del secondo connettore:

    L’ultima lettera va bene anche -O oppure -M (si tratta di cavi con 3 connettori invece che 2, uno dei quali invertito).

Il progetto

Questo è ciò che va realizzato per modificare il server a cui vengono inviate le telemetrie:

hacking icaro GSM – connessioni

Questa è l’unica connessione realmente necessaria, sia per modificare il server di invio dati, sia per loggare i dati stessi, ma chiaramente può essere utile collegarsi anche al pin 34(RX) per leggere e loggare la risposta del server.

 

Tagged with: , , , , ,

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

Vedi nuovo articolo: Hacking Icaro – Centralina GSM: Man in the Middle Attack – puntata 3

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  1.27mm, 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

 

Ecco uno schema di massima di come dovrebbe avvenire il collegamento “clandestino” tra modulo GSM e motherboard: IMMAGINE ERRATA! Vedere nuovo articolo

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 FFSD-25-D-03.00-01-N-R, ma è possibile arrangiarsi con varie altre possibilità, come descritto in figura; l’importante è che il codice 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); in caso contrario, quando si va a piegare a “U” il cavo, vanno a invertirsi le due file di pin! Il cavo deve invece restare disteso, quindi i due connettori alle due estremità devono avere versi opposti:

TCMD3

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:

  • TCSD-22-01
  • TCSD-22-01-F
  • TCSD-22-01-L-N
  • TCSD-22-01-N-P01

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, sia per la famiglia FFSD che FFMD:

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) – FFMD = maschio, FFSD = 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,
  • FFSD: passo 1.27 mm, femmina
  • FFMD: passo 1.27 mm, maschio
  • 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” 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

—-

Connettore maschio da PCB


 

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: