INHOUDSOPGAWE:

Flitsende persoonlike firmware na 'n BLF A6 -flitslig: 5 stappe
Flitsende persoonlike firmware na 'n BLF A6 -flitslig: 5 stappe

Video: Flitsende persoonlike firmware na 'n BLF A6 -flitslig: 5 stappe

Video: Flitsende persoonlike firmware na 'n BLF A6 -flitslig: 5 stappe
Video: Прошивка Weloop Tommy на OSSW умные часы обзор новых возможностей 2024, Julie
Anonim
Flitsende persoonlike firmware na 'n BLF A6 -flitslig
Flitsende persoonlike firmware na 'n BLF A6 -flitslig

Ek het onlangs 'n BLF A6 gekry. Dit is baie lekker, maar ek hou nie van enige van die standaardmodusgroepe nie, so ek het die firmware aangepas om die helderheid van my voorkeur te gebruik. Die inligting was moeilik om te vind, so ek plaas alles wat ek geleer het hier vir myself en ander.

Voorrade

BLF A6 (dit sal waarskynlik werk met ander flitsligte gebaseer op ATtiny)

Pincet / dun tang / klein skêr / iets om die ring van die bestuurbord los te maak

Rekenaar om mee te flits, verkieslik met 'n Linux -verspreiding

USB ASP -programmeerder / Arduino / iets wat AVR -programmering kan doen (blykbaar word die USB ASP -programmeerder aanbeveel, maar ek het 'n Arduino gebruik)

SOIC8 -snit (dit is moontlik sonder, maar dit is baie moeilik en word glad nie aanbeveel nie)

(opsioneel) Broodbord- en/of draaddrade om die verbinding makliker te maak

Stap 1: Laai die firmware af

Die firmware vir die BLF A6 (en baie ander flitse) is hier beskikbaar. Die skrywer praat hieroor. U kan dit aflaai deur te hardloop:

bzr tak lp: ~ speelgoedhouer/flitslig-firmware/blf-a6-finale

in 'n terminale. (u moet moontlik bzr installeer)

Let wel: in 'n vorige wysiging van hierdie Instructable het ek eerder 'bzr branch lp: flitslig-firmware' gebruik. Ek het sedertdien geleer dat dit 'n verouderde weergawe met verkeerde waardes vir die af-tyd-kondensator aflaai, wat die knoppie ongemaklik lank laat druk. (te danke aan hierdie draad op Reddit)

Die gids wat u wil hê, is blf-a6-final/ToyKeeper/blf-a6. Dit bevat 'n saamgestelde.hex-lêer wat gereed is om te flits (blf-a6.hex) en die C-kode wat u kan verander. (blf-a6.c) As u die voorraad firmware wil flits, kan u die volgende stap oorslaan en blf-a6.hex gebruik. Sommige van die ander firmware in die bewaarplek sal waarskynlik ook werk.

Stap 2: Verander die firmware

Maak blf-a6.c oop in u teksredakteur of IDE wat u verkies. Die interessantste lyne is die modusgroepe tussen reëls 116 en 131. Dit lyk so:

// Modusgroep 1 #definieer NUM_MODES1 7 // PWM vlakke vir die groot stroombaan (FET of Nx7135) #definieer MODESNx1 0, 0, 0, 7, 56, 137, 255 // PWM vlakke vir die klein stroombaan (1x7135) # definieer MODES1x1 2, 20, 110, 255, 255, 255, 0 // My monster: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32) // Krono -monster: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78) // Manker2: 2 = 21, 3 = 39, 4 = 47,… 6? = 68 // PWM -spoed vir elke modus #define MODES_PWM1 FASE, FAST, FAST, FAST, FAST, FAST, FASE // Modusgroep 2 #define NUM_MODES2 4 #define MODESNx2 0, 0, 90, 255 #define MODES1x2 20, 230, 255, 0 #define MODES_PWM2 VINNIG, VINNIG, VINNIG, FASE

MODESN is vir elke groep die PWM -waarde wat vir die VOO gebruik word, en MODES1 is die PWM -waarde wat vir die 7135 in elke modus gebruik word. Die getal is tussen 0 en 255 en stem ooreen met die helderheid van die lig. Meer inligting hier. (blaai af na "Regulering van die modus:") Ek weet nie presies wat die PWM -snelheid is nie. As iemand weet, vertel my in die kommentaar. Die FET kan meer lig produseer as die 7135, maar die 7135 hou die ligvlak min of meer dieselfde gedurende die lewensduur van die battery, terwyl die FET donkerder word namate die battery opraak.

Hier kan u die PWM -waardes aanpas om modusse na u smaak te produseer. U kan waarskynlik ook die aantal modusse verander, maar ek het dit nie probeer nie, want ek wou vier modusse hê, wat toevallig die nommer in die tweede groep is. Ek wou 'n donkerder maanligmodus hê, so ek stel die eerste een op 0/1, en ek vind die turbomodus 'n bietjie nutteloos, so ek vervang dit met 137/255, die ekwivalent van modus ses in die groep met sewe modusse. U kan die res van die kode waarskynlik verander indien nodig, maar ek het dit nie probeer nie.

As u die gewenste kode het, moet u dit in 'n.hex -lêer saamstel. U het ten minste gcc-avr en avr-libc nodig. As u probleme ondervind, kyk dan na die ander afhanklikhede in die firmware -leesbrief. Die bewaarplek bevat 'n build -script, maar ek kon dit nie laat werk nie. In plaas daarvan het ek die ou weergawe afgelaai met

bzr branch lp: flitslig-firmware

en het die ou bouskrif (wat ek aan die werk kon kry) na die nuwe een gekopieer. Toe hardloop ek:

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

in die blf-a6-lêergids. (daar moet 'n beter manier wees om dit te doen) Die../../bin/build.sh noem die script, die 13 spesifiseer dat dit gebou is vir 'n ATtiny13 en die blf-a6 spesifiseer dat dit vir die BLF A6 is. (duh) Dit moet u vertel watter opdragte dit uitvoer en u die uitset gee. Myne lyk so:

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.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-geen-verandering-waarskuwings -O ihex blf-a6.elf blf-a6.hex Program: 1022 bytes (99,8% vol) Data: 13 grepe (20,3% vol)

Die opdragte is reeds geoptimaliseer vir grootte, so as dit sê dat dit meer as 100% vol is, probeer om kommentaar te lewer

#defineer VOL_BIKING_STROBE

op lyn 147 om die kleiner, minimale fietsstrook te gebruik. As dit nog steeds nie pas nie, moet u waarskynlik êrens meer kode verwyder. As die opstel klaar is, moet daar 'n lêer met die naam blf-a6.hex in die gids wees. Dit is u saamgestelde kode, gereed om te flits.

Stap 3: Demonteer die flitslig

Demonteer die flitslig
Demonteer die flitslig
Demonteer die flitslig
Demonteer die flitslig
Demonteer die flitslig
Demonteer die flitslig

Draai die gloeilampeinde teen die kloksgewys los. Daar is twee skroefverbindings hier. Die een wat nader aan die gloeilampeinde van die flitslig is, maak die reflektor en LED oop, en die een wat nader aan die middel is, maak die bestuurdersbord oop. U wil die een nader aan die middel hê.

Binne moet u die batteryveer en 'n borgring met twee gate daarin sien. Steek u pincet / dun tang / skêr in die gate en draai dit teen die kloksgewys. Dit is redelik styf, en die gebruik van twee afsonderlike voorwerpe gee u waarskynlik nie genoeg hefboomfinansiering nie. Ek het die skêr op 'n Swiss Army Mes gebruik.

Nadat u die ring uitgehaal het, maak die bestuurdersbord los. Dit is nog steeds vasgemaak met twee drade, so wees versigtig. Hulle is saamgedraai, so draai die bord op een of ander manier totdat die drade loskom. As u genoeg ruimte het, draai die bord om. U wil dit hê sodat die chip met 'TINY13A' hoër op en meer toeganklik is. As dit aan die verkeerde kant is, draai dit andersom. Steek die veer onder die sy. Dit sal dit tydelik op sy plek hou en dit makliker maak om by die chip te kom. As u hiermee probleme ondervind, kan u die ander verbinding waarskynlik losskroef en die twee drade van die ander kant losmaak, sodat u die bord heeltemal kan verwyder, maar ek het dit nie probeer nie.

Stap 4: Koppel flitsende hardeware

Koppel flitsende hardeware
Koppel flitsende hardeware
Koppel flitsende hardeware
Koppel flitsende hardeware
Koppel flitsende hardeware
Koppel flitsende hardeware

Nou gebruik u die SOIC8 -clip om die ATtiny13 -chip en u programmeerder aan te sluit. As ek met my SOIC8 -snit die rooi draad aan beide kante se linkerkant het, kom die ry penne nader aan my aan die uiteinde van die clip, ooreen met die ry penne wat nader aan my is aan die uiteinde van die connector, terwyl die connector na onder wys. (sien my super artistieke diagram) Hierdie gids beveel aan dat u 'n USB ASP V2.0 programmeerder gebruik. As u dit doen, koppel dit so:

  • Speld 1 op die ATtiny13 tot pen 5 op die USB ASP (herstel)
  • Speld 4 op die ATtiny13 aan pen 10 op die USB ASP (grond)
  • Speld 5 op die ATtiny13 aan pen 1 op die USB ASP (MOSI)
  • Speld 6 op die ATtiny13 aan pen 9 op die USB ASP (MISO)
  • Speld 7 op die ATtiny13 aan pen 7 op die USB ASP (SCK)
  • Speld 8 op die ATtiny13 aan pen 2 op die USB ASP (VCC)

As u net soos ek 'n Arduino gebruik, moet u 'n bietjie meer voorbereiding doen. Volg stap nul en twee van hierdie gids:

Maak die Arduino IDE oop en maak seker dat u Arduino aan u rekenaar gekoppel is. Vind die ISP -skets in File> Voorbeelde> 11. ArduinoISP> ArduinoISP en laai dit op na u Arduino. Koppel dan die ATtiny13 daarby soos volg:

  • Speld 1 op die ATtiny13 tot pen 10 op die Arduino (herstel)
  • Speld 4 op die ATtiny13 tot GND op die Arduino (grond)
  • Speld 5 op die ATtiny13 tot pen 11 op die Arduino (MOSI)
  • Speld 6 op die ATtiny13 tot pen 12 op die Arduino (MISO)
  • Speld 7 op die ATtiny13 tot pen 13 op die Arduino (SCK)
  • Speld 8 op die ATtiny13 tot VCC / 5V / 3.3V op die Arduino (enige moet werk, maar 5V is meer betroubaar) (VCC)

Ek het die hardeware pakket ook geïnstalleer, maar dit was waarskynlik nie nodig nie. As jy twyfel, probeer dit. Dit sal geen skade doen nie. Maar moenie die selflaaiprogram verbrand nie, want dit sal waarskynlik u flitslig steek.

Stap 5: Flits dit

Om die firmware te flits, moet u AVRDUDE installeer. Om te kyk of dit met my Arduino werk, hardloop ek:

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

As dit werk, gaan ek na 'n leë gids iewers en hardloop:

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

Om 'n rugsteun van die bestaande firmware te maak. En om dit te flits, uit die gids met die gewysigde blf-a6.hex wat ek uitvoer:

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

Om een of ander rede moet ek stk500v1 spesifiseer as die programmeerder, en dit werk nie, tensy ek die poort en baud -koers spesifiseer. As u 'n Arduino gebruik en twyfel, probeer om u ATtiny13 van die Arduino te ontkoppel en 'n skets in die Arduino IDE op te laai met behulp van die instellings hier. Dit sal misluk, maar dit moet in die konsole -venster sê watter opdrag dit gebruik. U kan die eienskappe na u AVRDUDE -opdrag kopieer.

As u 'n USB ASP -programmeerder gebruik, voer eerder die volgende uit:

avrdude -v -p attiny13 -c usbasp -n

Om te sien of dit werk en:

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

Om 'n rugsteun te maak en:

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

Om dit te flits.

-Uflash: w: blf-a6.hex verwys na die lêer wat dit flikker. Vervang blf-a6.hex met u lêernaam as dit anders is.

-Ulfuse: w: 0x75: m en -Uhfuse: w: 0xFF: m is die versekering. Die uwe kan anders wees, dus kontroleer die waardes in flitslig-firmware/bin/flash-tiny13-fuses.sh.

As dit 'n fout buite die bereik gee, beteken dit dat die prentjie te groot is om op die skyfie te pas, en u moet die kode verwyder. As dit suksesvol flits, moet dit 'n paar vorderingsbalkies vertoon en dan sê "avrdude done. Dankie."

As dit 'ongeldige toestelhandtekening' sê en die jumper op u programmeerder op 3,3v is, probeer dit dan op 5v.

Nadat u dit geflits het, monteer u flitslig weer en kyk of dit werk. Myn gedoen het, maar die tydsberekening is af vir 'n paar ̶r̶e̶a̶s̶o̶n̶.̶ die lang druk moet word sowat drie sekondes in plaas van 1.5. ek nie weet as it's iets te doen met die Arduino of omdat gebruik rails die verkeerde instellings ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶ indien u enige idee, ̶ laat my weet in die ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶

Edit: Ek het dit reggemaak. (sien stap 1)

Aanbeveel: