Jumping Jack Flash weblog

Hex editors con evidenziazione sintassi

Posted in Uncategorized by jumpjack on 22 luglio 2018

Flex Hex

http://www.flexhex.com/product/features.phtml

Permette di:

  • Definire strutture complesse di dati tramite costrutti in linguaggio C, anche di dimensioni variabili a seconda di valolri nel file
  • Effettuare ricerche multiple contemporanee con risultati multipli
  • Evidenziare intervalli
  • Evidenziare pattern
  • Definire segnalibri
  • Salvare e ricaricare da file le suddette definizioni

 

FRHED

Ne esistono almeno tre varianti diverse, indipendenti e ferme in vari stadi di sviluppo:

  • SourceForce (kimmov)- Ultimo aggiornamento: 2009
  • GITHUB (alistairmcmillan)- Ultimo aggiornamento: 2012
  • Bitbucket (jtuc)- Ultimo aggiornamento: giugno 2018

Il programma è stato creato nel 1998. Sembra che dal 2008 sia stato incluso dentro a Winmerge, che si trova su BitBucket. Però WinMerge è presente anche su SourceForge, dove la versione stabile più recente sembrerebbe essere la 2.14.0 del 2013, mentre quella in lavorazione è del 2018. Nella versione del 2013 però Frhed non c’è, e il changelog dice che è stato rimosso dalla GUI nel 2009.

Nella maggior parte delle distribuzioni manca il file di esempio che definisce le struttre/template/pattern identificate dal programma, sample.tpl , ma si tratta di un semplice file di  testo che contiene queste tre righe:

BYTE filetype
WORD version
DWORD filelength

La prima parola indica quanti byte accorpare, la seconda indica il nome dato a quell’accorpamento.

Altri valori possibili sono solo “float” e “double”, quindi complessivamente le parole chiave possibili, con la rispettiva lunghezza in byte, sono:

  • BYTE  – 1
  • WORD – 2
  • DWORD – 4
  • float – ???
  • double – ???

 

Sembra che le uniche versioni compilate per Windows disponibili per download siano quelle su soruceforge, la cui ultima è la 1.6.0 del 2009 (o una 1.7.1 definita “instabile”):

http://frhed.sourceforge.net/en/

Richiesta di chiarimento

 

 

WxMEdit

https://wxmedit.github.io/downloads.html (3.1, anno ignoto)

https://sourceforge.net/projects/wxmedit/ (3.1, 2016)

 

 

 

WxHexEditor

https://github.com/EUA/wxHexEditor

I  template/pattern/structure vengono chiamati “tags”.

E’ piuttosto acerbo e con diversi bug, ma evidenzia correttamente le tag e mostra in un unico pannello le posizioni (cliccabili) di tutte le ripetizioni dei risultati di ricerca (ma non delle tag…)

 

Preon

https://github.com/preon/preon

(da compilare)

 

 

Kaitai Struct

http://kaitai.io/

 

Hex Editor Neo

https://freehexeditorneo.com/

 

 

Binary Viewer

http://www.proxoft.com/binaryViewer.aspx

Chiama i pattern “hexadecimal sequences”, stanno nella finestra di dialogo della ricerca.

 

Hexinator

(già noto come “Synalyze It!”, nato inizialmente su Macintosh, forse a pagamento)

https://hexinator.com/

 

Signatures database

https://www.filesignatures.net/index.php?search=jpg&mode=EXT

Tagged with: , ,

Diario elettrico GreenGo Icaro: più velocità

Posted in minicar elettriche by jumpjack on 1 aprile 2018

La mia Icaro “A1” 6kW è venduta per 65 km/h, ne segna 60 sul cruscotto e ne fa 55 di GPS.
Sto cercando di capire se questa velocità può essere aumentata; per il momento ho scoperto che il limite non dipende dalla centralina Kelly KHB72701, perchè all’acquisto era già tarata su massima velocità del motore e massima corrente dalla batteria e al motore.

Adesso sto cercando di fare due cose:
– trovare un modo per conoscere gli RPM del motore in tempo reale
– capire se anche il BMS impone limiti su tensione e/o corrente


Un po’ di teoria

La velocità di un motore elettrico è proporzionale alla tensione ad esso applicata, in base a una costante Kv che dipende da come è costruito il motore stesso, e che quindi non può essere variata. Quindi la velocità massima di un motore è:
V = Kt * G
Con G = Giri al minuto, epsressi in RPM

Un motore funziona sempre in modo duale: gira se gli si invia una corrente, produce una corrente se fatto girare a mano. Purtroppo, questa seconda cosa la fa sempre… anche mentre riceve corrente che lo fa girare! Mentre gira, infatti, produce una Forza Contro Elettro Motrice (f.c.e.m), cioè una tensione, che si oppone alla tensione che gli viene fornita; quando la f.c.e.m., che è =0 a motore fermo, diventa uguale alla V fornita, il motore smette di accelerare, cioè raggiunge la sua velocità massima intrinseca.

Questo valore viene indicato sul datasheet come “rated speed” o “maximum speed” (in realtà devo ancora capire bene quale delle due…).

Ora, c’è questo problema:

Sono dati che ho raccolto faticosamente in giro per siti cinesi.
La penultima riga è quella che ci interessa: si vede che i motori usati nelle varie versioni di Icaro/Zhidou si sono evoluti negli anni, passando dai primissimi installati sulla versione al piombo, da 3100/3600 RPM, ai più recenti montati sulla ZD D2 da 15 kW, con 4200/5000 rpm.
Nella riga in alto, “Maximum speed”, si vede come anche la velocità massima è progredita di pari passo nei vari modelli; riporto nella lista qui sotto i km/h, gli rpm e il rapporto kmh/rpm:

ZD311D (piombo): 45/3100/0.014
ZD311B (piombo): 50/3000/0.017
ZD311A/Icaro_A1: 60/3000/0.020
E20/H1: 80/4200/0.019
ZD D1/D2/D2S: 85/4200/0.020

Questo rapporto potrebbe forse coincidere, o essere proporzionale, con il “rapporto al ponte” o “rapporto di trasmissione”, cioè il rapporto dell’unica “marcia” della icaro; nei primi tre modelli è andato aumentando (probabilmente stavano ancora “facendo esperimenti”), poi si è stabilizzato su 0.020 (probabilmente la E20/H1 era limitata elettronicamente per non eccedere gli 80 km/h di legge, decaduti e passati a 90 nel 2016 con la nuova normativa).

Ecco invece una tabella che elenca i motori di quello che potrebbe essere il fornitore: anche se non è possibile leggere etichette o datasheet sul sito, questa immagine li tradisce perchè è il VMS montato sulla mia ICaro!

In quella tabella, gli rpm nominali e massimi dei motori sono:

  • 4/8kW: 3100/3600
  • 5/10kW: 3000/3500
  • 6/12kW: 3000/3600
    9/18kW: 5000/5700
  • 15/35kW: 5000/7000 (motore da 96V invece che 72)
  • 15/30kW: 5200/7200 (motore da 114V invece che 72)

Quelli delle varie icaro sono:

  • ZD311D – 4/8kW: 3100/3600
  • Z301B – 5/10kW: 3000/3500
  • ZD311A – 6/12kW: 3000/3600
  • E20/H1/D1 – 9/18kW: 5000/5700
  • D2/D2S – 15/30kW: 4200/5000 (batteria da 144V invece che 72)

Le motorizzazioni a 72V sono cioè esattamente identiche nella mia tabella e in quella del fornitore, che quindi sembrerebbe proprio essere confermato.


Osservazioni pratiche

Durante i miei viaggi ho notato una cosa: in pianura il tachimetro non va mai di neanche mezzo mm oltre i 60 km/h, ma in discese ripide, con l’acceleratore a tavoletta, sono arrivato anche a 75. Solo che, appunto con l’acceleratore a tavoletta… si innesca la rigenerazione in frenata! E la tensione di batteria sale fino a 80V, contro i 74-75 in pianura. Questo sembra voler dire che a 70-75 km/h la velocità del motore supera quella che la tensione di batteria può indurgli, quindi la f.c.e.m. supera la V, e quindi il comportamento da generatore prevale su quello da motore.


Conclusioni ipotetiche

Quanto sopra potrebbe significare che attualmente la mia Icaro è configurata non solo elettronicamente, ma anche meccanicamente per non poter fisicamente andare più veloce.

Ci sarebbero quindi tre modi per andare più veloce:

  1. Aumentare la tensione che arriva al motore
  2. Cambiare il rapporto al ponte
  3. Cambiare motore
  • Il primo modo è purtroppo impensabile, perchè tutta l’elettronica di bordo è tarata su un massimo di 90V, che lasciano solo 3,6 V di margine rispetto agli 86,4V che la batteria raggiunge probabilmente durante la ricarica (3.65V/cella), per poi scendere a 80 quando la batteria è bilanciata e pronta; c’è una remota speranza che il BMS forzi la batteria a non arrivare nemmeno a 80V, perchè leggo questo valore solo durante la frenata rigenerativa, però non sono ancora riuscito ad accedere al BMS.
  • Il secondo modo sarebbe fattibile: la GLCar di Modena fornisce un kit di modifica da inserire nel differenziale, che cambia il rapporto al ponte permettendo di raggiungere i 75 km/h di GPS; costa 550E + IVA
  • Il terzo modo non è ancora chiaro se sia fattibile: pare che lo sia sicuramente sui modelli “A1+”, mentre “forse sì forse no” sui modelli “A1”, che non tollererebbero l’albero più lungo del motore da 9kW (mentre sulle A1+ avrebbero già in fabbrica adattato il differenziale per ospitare il nuovo albero motore). Se fosse fattibile, diventerebbe possibile portare la velocità agli 85 km/h della D1, ancora compatibili con l’omologazione L7e della Icaro (max 90 km/h). Però il numero del motore è riportato sulla carta di circolazione. E poi temo che il motore da 9 kW costi più di 1000 euro, a cui andrebbero aggiunti differenziale, manodopera e spedizione a Modena…. Immagino si arrivi a 2000 euro e rotti… che corrisponderebbero a 20.000 km percorsi in elettrico (2000 euro di benzina in meno), contro i 5500 necessari per il kit del differenziale, 5500 km che potrei  fare in meno di un anno. 🙂  Vedremo…

RPM da recuperare

C’è un’ultima faccenda: la “rated speed” e la “maximum speed”: devo capire se a 60 km/h il motore gira a “rated speed” o a “maximum speed”, perchè se  fosse il primo caso, forse con la fantomatica funzione “boost”, attivabile sulla centralina aggiungendo un pulsante, potrei recuperare quei 500 RPM che “mi mancano”. Per capirlo devo riuscire ad accedere al computer di bordo (ECU o VMS che sia), forse tramite OBD, forse tramite Arduino+CANbus shield, chissà.

 

 

Diario elettrico hoverboard – 4 gennaio 2018: le modifiche

Posted in ambiente, hoverboard, scooter elettrici by jumpjack on 4 gennaio 2018

Sono ormai parecchi mesi che ho comprato un simil-segway, cioè un “hoverboard col manico”.

Hoverboard Go!Smart

Hoverboard Go!Smart

Lo trovo decisamente utile per le escursioni turistiche cittadine, anche se purtroppo in alcuni posti iniziano a vietarmi l’ingresso…. tipo un paio di musei, o i supermercati dei centri commerciali.

Comunque, nel frattempo ho apportato alcune modifiche/migliorie al prodotto:

  • spostamento display: nativamente il display per la ricarica si trova sulla pedana, in mezzo ai piedi, ed è scomodissimo da consultare; ma il manico è cavo e il manubrio è di plastica, anch’esso cavo, quindi non ci è voluto molto a “trasferire” il display nel manubrio, rendendolo così molto più leggibile; il cavo di collegamento è un cordone a spirale del telefono, che così può assecondare allungamenti e accorciamenti del manico telescopico.
  • Posizione iniziale del display, al centro della pedana

     

     

    Nuova posizione del display

  • rinforzo sul manubrio: il punto di attacco del manubrio all’hoverboard è molto sollecitato a causa della leva lunga un metro, quindi stavano saltando alcuni punti di saldatura: niente di drammatico, perchè comunque il manico è avvitato con due viti, però iniziava ad avere troppo “gioco”: forse 1 grado… che a un metro di distanza significava spostare il manubro di 5-10 centimetri a destra o a sinistra senza che il mezzo effettivamente svoltasse; così, ho aggiunto un piastrino di alluminio che blocca il gioco del manubrio.
  • antifurto: visto che probabilmente sempre più spesso mi vieteranno di entrare da qualche parte, ma che comunque il mezzo è impagabile per coprire la distanza dal parcheggio al luogo di interesse, ho aggiunto alla pedana un anello d’acciaio, dentro al quale posso far passare un antifurto da bici, e legare così l’aggeggio a un palo proprio come si fa con una bici. Il telaio è di alluminio quindi non è stato difficile forarlo.
  • Anello antifurto

 

Collegamento di un CellLog8S/8m ad Arduino o a ESP8266

Posted in auto elettriche, batterie, hardware, scooter elettrici by jumpjack on 2 gennaio 2017

L’utente pa.hioficr sul forum https://endless-sphere.com/forums/viewtopic.php?f=14&t=20142 ha scoperto che è possibile leggere in tempo reale i dati di log di un CellLog (sia 8S con memoria che 8S senza memoria) semplicemente “agganciandosi” al pin TX dell’Atmel montato sul CellLog.

Questo significa che invece di spendere 40-50 euro per comprare un CellLog8S con memoria e infilarlo nel sottosella per poi aspettare di arrivare a casa per scaricare i dati letti, è in linea di principio possibile collegare al CellLog8M da 15 euro un ESP8266 da 8 euro che tramite Wifi invia dati a uno smartphone che li mostra in tempo reale sullo schermo durante la marcia; probabilmente è anche possibile scrivere un SW che legge i dati da più di un celllog contemporaneamente, sfruttando l’emulatore di porte seriali.

Questo è lo schema elettrico originale dell’autore:

celllog-000

 

Questa è una sua successiva modifica per implementare anche avvio del logging e reset del CellLog:

celllog-001

Di seguito la spiegazione del funzionamento che ho dedotto io dallo schema, inserita anche nella seconda edizione del mio libro “Guida alla costruzione di una batteria al litio per mezzi elettrici”, di imminente pubblicazione:

 

8.1.2. Materiale occorrente
Q1 = 2n3906 o altro PNP
R1 = R4 = R6 = R7 = 220 ohm
R2 = R5 = 330 ohm
R3 = 4700 ohm
U1 = U2 = optocoupler/fotoaccoppiatore a 2 canali, 5V, 8 pin, uscita a fototransistor di tipo NPN (es. Vishay ILD615, Fairchild MCT61, Isocom ISP827,… )
8.1.3. Spiegazione del funzionamento
Il circuito può essere suddiviso in 4 parti: le prime due ricevono dati dal CellLog tramite il primo fotoaccoppiatore e li inviano al microcontrollore esterno; le altre due ricevono invece dati dal microcontrollore e li inviano al CellLog tramite il secondo fotoaccoppiatore.
8.1.3.1. Rilevamento accensione
In Figura 127 è riportata la parte dedicata al rilevamento dell’accensione; notare che nella figura il transistor è stato capovolto rispetto allo schema originale reperito su internet, per renderlo coerente con la notazione standard di avere la corrente che scorre dall’alto verso il basso; inoltre lo schema è stato semplificato e ripulito, per facilitarne la comprensione, lasciando però inalterati i collegamenti e i componenti.
Il microcontrollore (MCU) è programmato per leggere sul pin MCU_CL8.1_DETECT lo stato del CellLog: quando il pin è “basso” (0V), vuol dire che il CellLog è acceso; normalmente questo pin è invece a 5V perché connesso all’alimentazione dell’MCU tramite R5 (che serve a limitare a 15mA la corrente Collettore-Emettitore quando il transistor è in conduzione); quando però il CellLog viene acceso, i suoi 5V arrivano, tramite la resistenza R4 (che limita la corrente a 23 mA) sul pin 4, e mettono in conduzione il fotodiodo 3-4, che mette a sua volta in conduzione il fototransistor 5-6, che mette a massa il pin MCU_CL8.1_DETECT.
celllog-002
Figura 127 – Rilevamento accensione
8.1.3.2. Lettura dati
Dobbiamo far “riflettere” sul piedino RX del microcontrollore esterno lo stato del pin TX del CellLog, tramite il fotoaccoppiatore; per farlo, usiamo il pin TX del CellLog per controllare la base di un transistor collegato all’ingresso del fotoaccoppiatore; il transistor serve a far sì che basti prelevare dal CellLog una piccolissima corrente (1 mA grazie a R3 da 4300 ohm) per attivare il fotodiodo, che richiede invece alcune decine di mA; in pratica è un transistor di disaccoppiamento, che cioè rende indipendenti gli assorbimenti di corrente di CellLog e fotoaccoppiatore.
celllog-003
Figura 128 – Circuito TX-RX con transistor PNP o NPN
Il progettista ha scelto di usare un transistor di tipo PNP, che viene acceso da una tensione di base negativa rispetto all’emettitore; l’emettitore va quindi collegato stabilmente alla tensione di alimentazione 5V, in modo che il transistor entri in conduzione quando TX va a 0V. Quando questo accade, succederà quanto segue, in sequenza:
1. Q1 si accenderà
2. Passerà una corrente nel fotodiodo 1-2
3. Si accenderà il fototransistor 7-8
Dobbiamo ora fare in modo che tutto ciò risulti in una tensione di 0V sul piedino RX del microcontrollore esterno, corrispondente al piedino 8 del primo fotoaccoppiatore, che è il collettore del fototransistor di uscita; per farlo, dobbiamo fare in modo che il piedino 8 si trovi normalmente a 5V, e venga portato a 0V solo quando si accende il fototransistor 7-8; bisogna quindi tenere il pin 8 costantemente collegato ai 5V del microcontrollore esterno, e il pin 7 alla sua massa; in questo modo, l’accensione del fototransistor 7-8, che avviene quando TX del CellLog va a 0, collegherà il pin 8 a massa tramite il 7, cioè metterà RX del microcontrollore esrerno a 0, riflettendo così esattamente lo stato del pin TX del CellLog.
Se non dovessimo avere disponibile un transistor PNP ma solo un NPN, occorrerà invertire la logica del circuito.
8.1.3.3. Reset
Il “cervello” del CellLog, un microcontrollore ATMEL, è dotato di un piedino di reset, che possiamo controllare tramite il nostro microcontrollore esterno; per farlo, al pin di reset colleghiamo il collettore del fototransistor 5-6 del secondo fotoaccoppiatore (pin 5); controlliamo questo fototransistor tramite il rispettivo fotodiodo 3-4, collegato al pin MCU_CL8.1_RESET del nostro microcontrollore esterno; basterà quindi mettere alto questo pin per mettere in conduzione il fotodiodo e il fototransistor e quindi resettare il CellLog.
celllog-005
8.1.3.4. Avvio log
Per far partire il logging è necessario premere per 3 secondi il pulsante 2 del CellLog (SW2); possiamo farlo fare al nostro microcontrollore esterno collegando l’interruttore in parallelo a un’uscita del secondo fotoaccoppiatore: quando sull’ingresso ci sarà una tensione di 5V (impostata via software), il fototransistor di uscita entrerà in conduzione chiudendo l’interruttore e avviando così il logging.

celllog-004

Spina mennekes tipo 2 fatta in casa: test sul campo della spina FME (puntata 6)

Posted in auto elettriche, batterie, scooter elettrici by jumpjack on 7 giugno 2014

Buone notizie e cattive notizie allo stesso tempo:

La spina, dopo aver tagliato una piccola mezza luna dalla sua estramità per dargli la forma della presa mennekes, riesce ad entrare nella colonnina ENEL.

E questa è la buona notizia.

Quella cattiva è che non entra abbastanza! 😦

E’ troppo corta.
(more…)