» discussioni » Riparazione, modernizzazione »Come far lampeggiare una torcia per cambiare le modalità operative

Come far lampeggiare una torcia per cambiare le modalità operative


L'autore di questo materiale non ha gradito le normali modalità di funzionamento della torcia BLF A6. Quindi ha deciso di eseguire il flashing della parte software della torcia, impostandone le modalità. Come si è scoperto, questo non è così semplice, ci sono un minimo di informazioni sul firmware e sui pinout e ha dovuto raccoglierle poco a poco. E così che non si sarebbe persa, ha deciso di aiutare gli altri e organizzare tutto in un articolo.

Quindi, per lavoro avrai bisogno di quanto segue:
Torcia BLF A6 (probabilmente funzionerà con altre torce basate su ATtiny).
Pinzette / pinze sottili / forbici piccole.
Un computer per firmware, preferibilmente con una distribuzione Linux.
ASP / programmatore USB Arduino / qualcosa che la programmazione AVR può fare (ovviamente, il programmatore ASP USB è migliore, ma la procedura guidata ha usato Arduino).
Amplificatore Rail-to-Rail ad alta velocità [SOIC-8] (puoi farne a meno, ma è molto scomodo).
Scheda di sviluppo e ponticelli per il collegamento.

Firmware.
È disponibile il firmware per BLF A6 (e molte altre torce elettriche) qui. Un forum di discussione è disponibile su questo il link.
È possibile scaricare il firmware eseguendo la ricerca "bzr branch lp: flashlight-firmware". Hai bisogno di torcia-firmware / cartella ToyKeeper / blf-a6. Contiene un file compilato. hex, pronto per il firmware (blf-a6.hex) e codice C, che può anche essere modificato (blf-a6.c). Se si desidera eseguire il flashing del firmware stock, è possibile saltare al passaggio successivo e utilizzare solo blf-a6.hex. Probabilmente funzionerà anche qualche altro firmware in questo repository.

Cambia firmware.
Attenzione i simboli, per non distorcere il significato, sono dati senza traduzione.
Apri blf-a6.c nel tuo editor di testo o IDE preferito. Le linee più interessanti sono i gruppi di modalità tra le linee 94 e 109. Sembrano così:
// Gruppo modalità 1
#define NUM_MODES1 7
// Livelli PWM per il grande circuito (FET o Nx7135)
#define MODESNx1 0,0,0,7,56,137,255
// Livelli PWM per il piccolo circuito (1x7135)
#define MODES1x1 3,20.110.255.255.255,0
// Il mio campione: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32)
// Campione di Krono: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78)
// Manker2: 2 = 21, 3 = 39, 4 = 47, ... 6? = 68
// Velocità PWM per ciascuna modalità
#define MODES_PWM1 FASE, VELOCE, VELOCE, VELOCE, VELOCE, FASE
// Gruppo modalità 2
#define NUM_MODES2 4
#define MODESNx2 0,0,90.255
#define MODES1x2 20.230.255,0
#define MODES_PWM2 FAST, FAST, FAST, FASE

Per ciascun gruppo, MODESN è il valore PWM utilizzato per FET e MODES1 è il valore PWM utilizzato per 7135 in ciascuna modalità. Il numero è compreso tra 0 e 255 e corrisponde alla luminosità della luce. Maggiori info
qui. (scorrere fino a "Controllo modalità:") Il master non è sicuro di quale sia la velocità PWM.Se qualcuno lo sa, dimmelo nei commenti. Un transistor ad effetto di campo può produrre più luce di 7135, ma 7135 mantiene il livello della luce più o meno lo stesso per tutta la durata della batteria, mentre quando si utilizza un transistor ad effetto di campo, la luce si attenua quando la batteria si esaurisce.

Qui possiamo adattare i valori PWM per creare modalità a nostro piacimento. Puoi anche cambiare il numero di modalità, ma il master non lo ha fatto perché ha bisogno di quattro modalità, e questo è il numero nel secondo gruppo. Voleva un regime più scuro al chiaro di luna e quindi imposta il primo a 0/1. Considera anche la modalità turbo un po 'inutile, quindi l'ho sostituita con 137/255, che equivale alla sesta modalità in un gruppo di sette modalità.

Quando hai il codice che ti serve, devi compilarlo in un file .hex. Almeno hai bisogno di gcc-avr e avr-libc. In caso di problemi, consultare le altre dipendenze nel file Leggimi. Il repository include uno script di build, quindi tutto ciò che devi fare è eseguire:
../../bin/build.sh 13 blf-a6
nella cartella blf-a6. ../../Bin/build.sh è lo script. 13 indica che è per ATtiny13 e blf-a6 indica che è per BLF A6.
avr-gcc -Wall -g -Os -mmcu = attiny13 -c -std = gnu99 -fgnu89-inline -DATTINY = 13 -I .. -I ../ .. -I ../../ .. -fshort -enums -o blf-a6.o -c blf-a6.c
avr-gcc -Wall -g -Os -mmcu = attiny13 -fgnu89-inline -o blf-a6.elf blf-a6.o
avr-objcopy --set-section-flags = .eeprom = alloc, load --change-section-lma .eeprom = 0 --no-change-warnings -O ihex blf-a6.elf blf-a6.hex
Programma: 1022 byte (99,8% completo)
dati: 13 byte (20,3% pieno)
I team hanno già dimensioni ottimizzate, quindi se è scritto che sono pieni al 100%, prova a eliminarli
#define FULL_BIKING_STROBE

Linea 125 incantesimi piccoli ciclo luce stroboscopica. Se questo non è abbastanza, allora qualcos'altro dovrà essere tagliato.
Al termine della compilazione, la cartella deve contenere un file denominato blf-a6.hex. Questo è un codice compilato, pronto per il firmware.

Smantellamento della torcia.
Svitare il proiettore della torcia. Ci sono due collegamenti a vite. Quello più vicino al corpo della torcia fissa il riflettore e il LED, mentre quello più vicino al centro fissa la scheda. Abbiamo bisogno di una media.

All'interno vedrai un anello elastico con una molla e due fori lungo i bordi. Inserire pinzette / pinze sottili / forbici nei fori e ruotarle in senso antiorario.

Una volta rimosso l'anello, avrai accesso al tabellone. È ancora attaccato con due fili, quindi fai attenzione. Sono intrecciati insieme, quindi ruota la scheda fino a quando i fili non sono allentati. Quindi capovolgere la scheda. È necessario che il chip con la scritta "TINY13A" fosse più accessibile.

Se i fili sono corti e non funziona, è necessario rimuovere la scheda.






Connection.
Ora devi preparare la scheda per il firmware.
La procedura guidata utilizza SOIC8 per collegare il chip ATtiny13 e il programmatore.
Come far lampeggiare una torcia per cambiare le modalità operative



Guarda la foto mentre la procedura guidata effettua la connessione. Notare la linea rossa nella seconda figura.

Se si utilizza il programmatore USB ASP V2.0, è necessario collegarlo in questo modo:
Pin 1 su ATtiny13 - Pin 5 su USB ASP (ripristinato)
Pin 4 su ATtiny13 - Pin 10 su USB ASP (terra)
Pin 5 su ATtiny13 - Pin 1 su USB ASP (MOSI)
Pin 6 su ATtiny13 - Pin 9 su USB ASP (MISO)
Pin 7 su ATtiny13 - Pin 7 su USB ASP (SCK)
Pin 8 su ATtiny13 - Pin 2 su USB ASP (VCC)

Se usi Arduino, come la procedura guidata, segui questi passaggi:
Apri l'IDE di Arduino e assicurati che Arduino sia collegato al computer. Trova lo schizzo ISP in File> Esempi> 11.ArduinoISP> ArduinoISP e caricalo su Arduino. Quindi collegare ATtiny13 ad esso come segue:
Pin 1 su ATtiny13 - Pin 10 su Arduino (ripristina)
Pin 4 su ATtiny13 - GND su Arduino (Terra)
Pin 5 su ATtiny13 - Pin 11 su Arduino (MOSI)
Pin 6 su ATtiny13 - Pin 12 su Arduino (MISO)
Pin 7 su ATtiny13 - Pin 13 su Arduino (SCK)
Pin 8 su ATtiny13 - VCC / 5V o 3.3V su Arduino (5V preferito)

Firmware.
Passaggio 5: flash
Per il firmware, è necessario installare AVRDUDE. Per verificare se funziona con Arduino, la procedura guidata scrive un comando:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -n
Se funziona, vai nella cartella vuota e registrati:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -u -Uflash: r: flash-dump.hex: i -Ueeprom: r: eeprom-dump.hex: i -Ulfuse: r: lfuse -dump.hex: i -Uhfuse: r: hfuse-dump.hex: i
Creare una copia di backup del firmware esistente. Per lampeggiare, dalla cartella con il blf-a6.hex modificato inizia:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -u -Ulash: w: blf-a6.hex -Ulfuse: w: 0x75: m -Uhfuse: w: 0xFF: m
È necessario specificare stk500v1 come programmatore e specificare la velocità di trasferimento dei dati e della porta. Se stai usando Arduino e sei in dubbio, prova a disconnettere ATtiny13 da Arduino e carica lo schizzo sull'IDE di Arduino usando queste impostazioni. Questo non funzionerà, ma scoprirai quale comando viene utilizzato nella finestra della console. Successivamente, è possibile copiare gli attributi nel comando AVRDUDE.

Se si utilizza un programmatore ASP USB, eseguire:
avrdude -v -p attiny13 -c usbasp -n
Per vedere se funziona:
avrdude -v -p attiny13 -c usbasp -u -Uflash: r: flash-dump.hex: i -Ueeprom: r: eeprom-dump.hex: i -Ulfuse: r: lfuse-dump.hex: i -Uhfuse: r: hfuse-dump.hex: i
Fai un backup:
avrdude -v -p attiny13 -c usbasp -u -Uflash: w: blf-a6.hex -Ulfuse: w: 0x75: m -Uhfuse: w: 0xFF: m
Per lampeggiare:
-Uflash: w: blf-a6.hex. Sostituisci blf-a6.hex con il nome del tuo file se è diverso.
-Ulfuse: w: 0x75: m e -Uhfuse: w: 0xFF: m
Se si verifica un errore, ciò significa che il file di immagine è troppo grande per adattarsi al chip e sarà necessario eliminare parte del codice. Se tutto è normale, dovrebbero essere visualizzati alcuni indicatori di progresso, quindi le parole "avrdude done. Grazie".
Dopo aver acceso il chip, assemblare la torcia e vedere se funziona.
La domanda \ topic viene automaticamente pubblicata nei social. rete del sito - rimanete sintonizzati per le risposte lì:

Adatto per argomento

Argomenti correlati

Aggiungi un commento

    • sorrideresorrisiXaxabeneDONTKNOWyahoonea
      capozeroimbrogliaresìSì-sìaggressivosegreto
      scusaballaredance2dance3perdonoaiutobevande
      arrestoamicibuonogoodgoodfischiodeliquiolinguetta
      fumobattimanicraydeclarederisoriodon-t_mentionscaricare
      caloreadiratolaugh1mdaincontromoskingnegativo
      not_ipopcornpunireleggerespaventarespaventacerca
      schernirethank_youquestoto_clueumnikacutoconcordare
      cattivobeeeblack_eyeblum3arrossirevanterianoia
      censuratospiritosagginesecret2minacciarevittoriayusun_bespectacled
      ShokRespektlolPrevedbenvenutoKrutoyya_za
      ya_dobryiaiutantene_huliganne_othodiFludbandovicino

Ti consigliamo di leggere:

Passalo per lo smartphone ...