Kohandatud püsivara vilkumine BLF A6 taskulambile: 5 sammu
Kohandatud püsivara vilkumine BLF A6 taskulambile: 5 sammu
Anonim
Kohandatud püsivara vilkumine BLF A6 taskulambile
Kohandatud püsivara vilkumine BLF A6 taskulambile

Sain hiljuti BLF A6. See on väga tore, kuid mulle ei meeldi kumbki vaikerežiimi rühm, seega muutsin püsivara oma eelistatud heleduste kasutamiseks. Teavet oli raske leida, seega panen kõik õpitu siia enda ja teiste jaoks.

Tarvikud

BLF A6 (see töötab tõenäoliselt teiste ATtiny -põhiste taskulampidega)

Pintsetid / õhukesed tangid / väikesed käärid / midagi juhtplaadi kinnitusrõnga eemaldamiseks

Arvuti, millega töötada, eelistatavalt Linuxi distributsiooniga

USB -ASP -programmeerija / Arduino / midagi, millega saab AVR -i programmeerida (ilmselt soovitatakse USB -ASP -programmeerijat, aga ma kasutasin Arduinot)

SOIC8 klipp (ilma selleta saab hakkama, kuid see on väga vaevaline ja pole üldse soovitatav)

(valikuline) Leibalaud ja/või hüppaja juhtmed ühendamise hõlbustamiseks

Samm: laadige alla püsivara

BLF A6 (ja paljude teiste taskulampide) püsivara on saadaval siin. Autor räägib sellest siin. Saate selle alla laadida, käivitades:

bzr filiaal lp: ~ mänguasjahoidja/taskulamp-püsivara/blf-a6-final

terminalis. (peate võib -olla installima bzr)

Märkus: selle juhendi eelmises muudatuses kasutasin selle asemel "bzr branch lp: flashlight-firmware". Olen sellest ajast peale õppinud, et see laadib alla aegunud versiooni, millel on väljalülitatud kondensaatori jaoks valed väärtused, muutes nupu ebamugavalt pikaks vajutamiseks. (tänu sellele lõimele Redditis)

Soovitud kaust on blf-a6-final/ToyKeeper/blf-a6. See sisaldab kompileeritud.hex-faili, mis on valmis vilkuma (blf-a6.hex), ja C-koodi, mida saate muuta. (blf-a6.c) Kui soovite varude püsivara välgutada, võite järgmise sammu vahele jätta ja kasutada lihtsalt blf-a6.hex. Tõenäoliselt töötab ka mõni muu selle hoidla püsivara.

Samm: muutke püsivara

Avage blf-a6.c oma eelistatud tekstiredaktoris või IDE-s. Kõige huvitavamad read on režiimirühmad ridade 116 ja 131 vahel. Need näevad välja sellised:

// Režiimirühm 1 #määratlege NUM_MODES1 7 // PWM tasemed suure vooluahela (FET või Nx7135) jaoks määrake MODES1x1 2, 20, 110, 255, 255, 255, 0 // Minu proov: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32) // Krooniproov: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78) // Manker2: 2 = 21, 3 = 39, 4 = 47,… 6? = 68 // PWM kiirus iga režiimi jaoks #define MODES_PWM1 PHASE, FAST, FAST, FAST, FAST, FAST, PHASE // Režiimirühm 2 #defineeri NUM_MODES2 4 #define MODESNx2 0, 0, 90, 255 #define MODES1x2 20, 230, 255, 0 #define MODES_PWM2 FAST, FAST, FAST, PHASE

Iga rühma puhul on MODESN FET jaoks kasutatav PWM väärtus ja MODES1 on PWM väärtus, mida kasutatakse igas režiimis 7135 puhul. Arv on vahemikus 0 kuni 255 ja vastab valguse heledusele. Rohkem infot siit. (kerige alla "Režiimi reguleerimine:") Ma pole kindel, mis PWM -i kiirus täpselt on. Kui keegi teab, öelge mulle kommentaarides. FET võib toota rohkem valgust kui 7135, kuid 7135 hoiab valguse taseme aku eluea jooksul enam -vähem samal tasemel, samal ajal kui FET muutub aku tühjenedes tumedamaks.

Siin saate reguleerida PWM väärtusi, et toota režiime oma maitse järgi. Tõenäoliselt saate muuta ka režiimide arvu, kuid ma pole seda proovinud, kuna soovisin nelja režiimi, mis juhtub olema teise rühma number. Tahtsin tumedamat kuuvalgustuse režiimi, seega seadsin esimese režiimi 0/1 ja leian, et turborežiim on natuke mõttetu, nii et asendasin selle 137/255 -ga, mis on seitsme režiimi rühma kuue režiimi ekvivalent. Tõenäoliselt saate ülejäänud koodi vajadusel muuta, kuid ma pole seda proovinud.

Kui olete soovitud koodi saanud, peate selle kompileerima.hex -failiks. Vähemalt vajate gcc-avr ja avr-libc. Kui teil on probleeme, vaadake teisi püsivara readme sõltuvusi. Hoidla sisaldab ehitusskripti, kuid ma ei saanud seda tööle panna. Selle asemel laadisin alla vana versiooni

bzr filiaal lp: taskulampi püsivara

ja kopeerisin vana ehitusskripti (et saaksin tööle asuda) uuele. Siis jooksin:

../../bin/build.sh 13 blf-a6

kaustas blf-a6. (selleks peaks olema parem viis)../../bin/build.sh kutsub skripti, 13 määrab, et see ehitatakse ATtiny13 jaoks ja blf-a6 täpsustab, et see on mõeldud BLF A6 jaoks. (duh) See peaks ütlema teile, milliseid käske see töötab, ja annab teile väljundi. Minu oma näeb välja selline:

avr -gcc -Sein -g -Os -mmcu = attiny13 -c -std = gnu99 -fgnu89 -inline -DATTINY = 13 -I.. -I../.. -I../../.. -fshort -enums -o blf -a6.o -c blf -a6.cavr -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-hoiatused -O ihex blf-a6.elf blf-a6.hex Programm: 1022 baiti (99,8% täis) Andmed: 13 baiti (20,3% täis)

Käsud on juba suuruse jaoks optimeeritud, nii et kui see ütleb, et see on rohkem kui 100% täis, proovige kommenteerida

#define FULL_BIKING_STROBE

real 147, et kasutada väiksemat minimaalset jalgrattasõidu strobi. Kui see ikkagi ei sobi, peate tõenäoliselt kusagilt rohkem koodi eemaldama. Kompileerimise lõppedes peaks kaustas olema fail nimega blf-a6.hex. See on teie kompileeritud kood, mis on valmis vilkuma.

Samm: võtke taskulamp lahti

Võtke taskulamp lahti
Võtke taskulamp lahti
Võtke taskulamp lahti
Võtke taskulamp lahti
Võtke taskulamp lahti
Võtke taskulamp lahti

Keerake pirni ots vastupäeva. Siin on kaks kruviühendust. Taskulambi pirnipoolsele otsale lähemal olev avab helkuri ja LED -i ning kesklinnale lähemale avaneb juhilaud. Tahad, et see oleks keskele lähemal.

Sees peaksite nägema aku vedru ja kinnitusrõngast, millel on kaks auku. Sisestage pintsetid / õhukesed tangid / käärid aukudesse ja pöörake neid vastupäeva. See on üsna jäik ja kahe eraldi objekti kasutamine ei anna teile tõenäoliselt piisavalt mõju. Ma kasutasin käärid Šveitsi armee nuga.

Kui olete rõnga välja võtnud, vabastage juhilaud. See on endiselt kahe juhtmega kinnitatud, seega olge ettevaatlik. Need on kokku keeratud, nii et pöörake plaati ühel või teisel viisil, kuni juhtmed lõdvenevad. Kui teil on piisavalt vabadust, keerake laud ümber. Soovite seda nii, et kiip, millel on kiri "TINY13A", oleks kõrgemal ja kättesaadavam. Kui see on valel poolel, pöörake seda teistpidi. Tõmmake vedru külje alla. See hoiab selle ajutiselt paigas ja hõlbustab kiibile jõudmist. Kui teil on sellega probleeme, võite tõenäoliselt teise ühenduskoha lahti keerata ja kaks juhtme teiselt poolt lahti keerata, et saaksite plaadi täielikult eemaldada, kuid ma pole seda proovinud.

Samm: ühendage vilkuv riistvara

Ühendage vilkuv riistvara
Ühendage vilkuv riistvara
Ühendage vilkuv riistvara
Ühendage vilkuv riistvara
Ühendage vilkuv riistvara
Ühendage vilkuv riistvara

Nüüd kasutate SOt8 klambrit ATtiny13 kiibi ja oma programmeerija ühendamiseks. Kui mul on SOIC8 klambriga punane traat mõlema otsa vasakul küljel, vastab klambri otsas mulle lähemal olev tihvtide rida mulle lähemal olevale tihvtide reale, kui pistik on allapoole. (vt minu superkunstilist skeemi) See juhend soovitab teil kasutada USB ASP V2.0 programmeerijat. Kui teete seda, ühendage see järgmiselt:

  • Pin 1 ATtiny13 -l kuni 5 USB -ASP -l (lähtestamine)
  • Pin 4 ATtiny13 -l kuni USB ASP (maandus) 10 -ni
  • Nõel 5 ATtiny13 -l kuni USB ASP (MOSI) 1
  • Pin 6 ATtiny13 -l kuni USB ASP (MISO) 9
  • Pin 7 ATtiny13 -l kuni USB ASP (SCK) 7
  • Pin 8. ATtiny13 -l kuni 2. USB -ASP (VCC)

Kui kasutate nagu mina, Arduinot, peate natuke rohkem ettevalmistusi tegema. Järgige selle juhendi samme null ja kaks:

Avage Arduino IDE ja veenduge, et teie Arduino oleks arvutiga ühendatud. Leidke Interneti -teenuse pakkuja visand menüüst Fail> Näited> 11. ArduinoISP> ArduinoISP ja laadige see oma Arduinole üles. Seejärel ühendage ATtiny13 sellega järgmiselt:

  • Kinnitage ATtiny13 tihvt 1 kuni Arduino tihvt 10 (lähtestamine)
  • Pin 4 ATtiny13 -lt GND -le Arduino (maa peal)
  • Pintsel 5 ATtiny13 -l kuni Arduino (MOSI) tihvt 11
  • Pintsel 6 ATtiny13 -l kuni Arduino (MISO) tihvt 12
  • Pintsel 7 ATtiny13 -l kuni Arduino (SCK) tihvt 13
  • Pin 8 ATtiny13 kuni VCC / 5V / 3.3V Arduino'l (kõik peaksid töötama, kuid 5 V on usaldusväärsem) (VCC)

Paigaldasin ka riistvarapaketi, kuid see polnud ilmselt vajalik. Kui kahtlete, proovige. See ei tee paha. Kuid ärge põletage alglaadurit, sest see võib tõenäoliselt teie taskulambi tellida.

Samm: välklamp

Püsivara välkimiseks peate installima AVRDUDE. Et kontrollida, kas see töötab minu Arduinoga, käivitan:

avrdude -v -p attiny13 -c stk500v1 -P /dev /ttyUSB0 -b 19200 -n

Kui see töötab, liigun kuhugi tühja kausta ja käivitan:

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

Olemasolevast püsivarast varukoopia tegemiseks. Ja selle välgutamiseks käivitan kausta, kus on muudetud blf-a6.hex:

avrdude -v -p attiny13 -c stk500v1 -P /dev /ttyUSB0 -b 19200 -u -Uflash: w: blf -a6.hex -Ulfuse: w: 0x75: m -Uhfuse: w: 0xFF: m

Millegipärast pean programmeerijaks määrama stk500v1 ja see ei töötanud, kui ma pole määranud pordi ja edastuskiirust. Kui kasutate Arduinot ja kahtlete selles, proovige oma ATtiny13 Arduino küljest lahti ühendada ja laadige üles visand Arduino IDE -sse, kasutades siinseid seadeid. See ebaõnnestub, kuid peaks ütlema, millist käsku see konsooli aknas kasutab. Atribuudid saate kopeerida oma käsku AVRDUDE.

Kui kasutate USB -ASP -programmeerijat, käivitage selle asemel:

avrdude -v -p attiny13 -c usbasp -n

Et näha, kas see töötab ja:

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

Varukoopia tegemiseks ja:

avrdude -v -p attiny13 -c usbasp -u -Uflash: w: blf -a6.hex -Ulfuse: w: 0x75: m -Uhfuse: w: 0xFF: m

Selle vilkumiseks.

-Uflash: w: blf-a6.hex viitab failile, mida see vilgutab. Asendage blf-a6.hex oma failinimega, kui see on erinev.

-Ulfuse: w: 0x75: m ja -Uhfuse: w: 0xFF: m on kaitsmed. Teie omad võivad olla erinevad, seega kontrollige topelt taskulampi-püsivara/bin/flash-tiny13-fuses.sh väärtusi.

Kui see annab vea vahemikust väljas, tähendab see, et pilt on kiibile mahutamiseks liiga suur ja peate osa koodist eemaldama. Kui see vilgub edukalt, peaks see kuvama mõningaid edenemisribasid ja ütlema "avrdude done. Aitäh."

Kui see ütleb "kehtetu seadme allkiri" ja teie programmeerija hüppaja on seatud 3.3v, proovige seadistada see 5v -le.

Pärast selle vilkumist pange taskulamp kokku ja vaadake, kas see töötab. Mine tegi, kuid ajastus on maha mõned ̶r̶e̶a̶s̶o̶n̶.̶ pikas vajutab tuleb umbes kolm sekundit asemel 1.5. Ma ei tea, kui IT'S midagi pistmist Arduino või seetõttu Olen kasutanud ekslikud seadistused ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶ Kui sul aimu, ̶ lase mulle teada ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶

Edit: parandasin ära. (vt 1. samm)