Tartalomjegyzék:

Egyéni firmware villogása BLF A6 zseblámpához: 5 lépés
Egyéni firmware villogása BLF A6 zseblámpához: 5 lépés

Videó: Egyéni firmware villogása BLF A6 zseblámpához: 5 lépés

Videó: Egyéni firmware villogása BLF A6 zseblámpához: 5 lépés
Videó: Безопасность Windows: для администраторов и технической поддержки 2024, Július
Anonim
Egyéni firmware villogása BLF A6 zseblámpára
Egyéni firmware villogása BLF A6 zseblámpára

Nemrég kaptam egy BLF A6 -ot. Nagyon szép, de nem szeretem az alapértelmezett módok egyikét sem, ezért módosítottam a firmware -t, hogy a kívánt fényerősséget használjam. Az információkat nehéz volt megtalálni, ezért mindent, amit tanultam, ide teszem magamnak és másoknak.

Kellékek

BLF A6 (valószínűleg más ATtiny alapú zseblámpákkal is működik)

Csipesz / vékony fogó / kicsi olló / valami, ami feloldja a vezetőlap rögzítőgyűrűjét

Villogó számítógép, lehetőleg Linux disztribúciót futtatva

USB ASP programozó / Arduino / valami, ami képes AVR programozásra (nyilvánvalóan az USB ASP programozó ajánlott, de én egy Arduino -t használtam)

SOIC8 klip (lehet csinálni anélkül is, de nagyon heves és egyáltalán nem ajánlott)

(opcionális) Breadboard és/vagy jumper vezetékek a csatlakoztatás megkönnyítése érdekében

Lépés: Töltse le a firmware -t

A BLF A6 (és sok más zseblámpa) firmware -je itt érhető el. A szerző itt beszél erről. Futtatásával letöltheti:

bzr ág lp: ~ toykeeper/zseblámpa-firmware/blf-a6-final

egy terminálban. (lehet, hogy telepítened kell a bzr -t)

Megjegyzés: ennek az utasításnak az előző szerkesztésében a "bzr branch lp: flashlight-firmware" -t használtam helyette. Azóta megtanultam, hogy ez letölt egy elavult verziót, amely rossz értékekkel rendelkezik a kikapcsolási idő kondenzátorához, így a gomb kényelmetlenül hosszú ideig tart. (ennek a szálnak köszönhetően a Reddit -en)

A kívánt mappa a blf-a6-final/ToyKeeper/blf-a6. Tartalmaz egy fordított, lefordított.hex fájlt (blf-a6.hex) és a módosítható C kódot. (blf-a6.c) Ha az állomány firmware-jét szeretné villogni, kihagyhatja a következő lépést, és csak a blf-a6.hex-et használja. Valószínűleg a tároló többi firmware -je is működik.

2. lépés: Módosítsa a firmware -t

Nyissa meg a blf-a6.c fájlt a kívánt szövegszerkesztőben vagy az IDE-ben. A legérdekesebb sorok a 116. és 131. sor közötti módcsoportok. Így néznek ki:

// 1. módcsoport #határozza meg a NUM_MODES1 7 // PWM szintet a nagy áramkörhöz (FET vagy Nx7135) #definálja a MODESNx1 0, 0, 0, 7, 56, 137, 255 // PWM szinteket a kis áramkörhöz (1x7135) # módok meghatározása1x1 2, 20, 110, 255, 255, 255, 0 // Saját minta: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32) // Krono minta: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78) // Manker2: 2 = 21, 3 = 39, 4 = 47,… 6? = 68 // PWM sebesség minden üzemmódhoz #define MODES_PWM1 PHASE, FAST, FAST, FAST, FAST, FAST, PHASE // 2. módcsoport #define NUM_MODES2 4 #define MODESNx2 0, 0, 90, 255 #define MODES1x2 20, 230, 255, 0 #define MODES_PWM2 GYORS, GYORS, GYORS, FÁZIS

Minden csoport esetében a MODESN a FET -hez használt PWM -érték, a MODES1 pedig a 7135 -hez használt PWM -érték minden üzemmódban. A szám 0 és 255 között van, és megfelel a fényerősségnek. További információ itt. (görgessen le a "Módszabályozás:" lehetőséghez) Nem vagyok biztos abban, hogy pontosan mi a PWM sebesség. Ha valaki tudja, írja meg kommentben. A FET több fényt képes előállítani, mint a 7135, de a 7135 az akkumulátor élettartama alatt nagyjából ugyanazt a fényerőt tartja, míg a FET sötétebb lesz, amint lemerül.

Itt állíthatja be a PWM értékeket, hogy tetszés szerinti módokat állítson elő. Valószínűleg megváltoztathatja az üzemmódok számát is, de nem próbáltam ki, mivel négy módot szerettem volna, ami történetesen a második csoport száma. Sötétebb holdfényes módot szerettem volna, ezért az elsőt 0/1 -re állítottam, és a turbó üzemmódot kissé értelmetlennek találom, ezért lecseréltem a 137/255 -re, ami a hat üzemmódnak megfelelő hét üzemmód csoportban. Valószínűleg szükség esetén módosíthatja a kód többi részét, de nem próbáltam ki.

Ha megvan a kívánt kód, le kell fordítania egy.hex fájlba. Legalább gcc-avr és avr-libc szükséges. Ha problémái vannak, nézze meg a firmware readme egyéb függőségeit. A lerakat tartalmaz egy build szkriptet, de nem tudtam működésbe hozni. Ehelyett letöltöttem a régi verziót

bzr ág lp: zseblámpa-firmware

és lemásoltam a régi build szkriptet (hogy munkába állhassak) az új felett. Aztán futottam:

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

a blf-a6 mappában. (ennek jobb módja kellene, hogy legyen) A../../bin/build.sh meghívja a szkriptet, a 13 megadja, hogy az ATtiny13-hoz épül, a blf-a6 pedig azt, hogy a BLF A6-hoz való. (duh) Meg kell mondania, hogy milyen parancsok futnak, és meg kell adnia a kimenetet. Az enyém így néz ki:

avr -gcc -Fal -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-figyelmeztetések -O ihex blf-a6.elf blf-a6.hex Program: 1022 bájt (99,8% teljes) Adatok: 13 bájt (20,3% teljes)

A parancsok már méretre vannak optimalizálva, ezért ha azt mondja, hogy több mint 100% -ban megtelt, próbálja meg megjegyzéseket fűzni

#define FULL_BIKING_STROBE

a 147 -es vonalon a kisebb, minimális kerékpáros strobe használatához. Ha még mindig nem illeszkedik, akkor valószínűleg valahol el kell távolítania több kódot. A fordítás befejeztével a mappában kell lennie egy blf-a6.hex nevű fájlnak. Ez az összeállított kódja, készen áll a villogásra.

3. lépés: Szerelje szét a zseblámpát

Szerelje szét a zseblámpát
Szerelje szét a zseblámpát
Szerelje szét a zseblámpát
Szerelje szét a zseblámpát
Szerelje szét a zseblámpát
Szerelje szét a zseblámpát

Csavarja le az izzó végét az óramutató járásával ellentétes irányban. Itt két csavarkötés található. A zseblámpa izzó végéhez közelebb eső a fényvisszaverőt és a LED -et nyitja meg, a középső pedig a vezetőoldalt. Azt szeretné, ha közelebb lenne a közepéhez.

Belül látnia kell az akkumulátor rugóját és egy rögzítőgyűrűt két lyukkal. Helyezze a csipeszt / vékony fogót / ollót a lyukakba, és forgassa el az óramutató járásával ellentétes irányba. Elég merev, és két különálló objektum használata valószínűleg nem ad elegendő erőt. Az ollót egy svájci kést használtam.

Miután kihúzta a gyűrűt, szabadítsa fel a vezetőlemezt. Még mindig két vezetékkel van rögzítve, ezért legyen óvatos. Össze vannak csavarva, ezért forgassa el a táblát így vagy úgy, amíg a vezetékek meg nem lazulnak. Ha elegendő mozgástere van, fordítsa meg a táblát. Azt szeretné, hogy a "TINY13A" feliratú chip magasabb legyen és hozzáférhetőbb legyen. Ha rossz oldalon van, fordítsa meg a másik irányba. Dugja be a rugót az oldal alá. Ez ideiglenesen a helyén tartja, és megkönnyíti a chiphez való hozzáférést. Ha problémái vannak ezzel, valószínűleg lecsavarhatja a másik csatlakozót, és kioldhatja a két vezetéket a másik oldalról, így teljesen eltávolíthatja a táblát, de nem próbáltam.

4. lépés: Csatlakoztassa a villogó hardvert

Csatlakoztassa a villogó hardvert
Csatlakoztassa a villogó hardvert
Csatlakoztassa a villogó hardvert
Csatlakoztassa a villogó hardvert
Csatlakoztassa a villogó hardvert
Csatlakoztassa a villogó hardvert

Most a SOIC8 klip segítségével csatlakoztathatja az ATtiny13 chipet és a programozóját. A SOIC8 klipemnél, ha mindkét végén balra van a piros huzal, akkor a csipesz végén a hozzám közelebb lévő csapok sora megfelel a csatlakozó végén lévő hozzám közelebbi csapoknak, amikor a csatlakozó lefelé néz. (lásd a szuper művészi diagramomat) Ez az útmutató USB ASP V2.0 programozó használatát javasolja. Ha igen, csatlakoztassa így:

  • 1. tű az ATtiny13 -n az 5. tűn az USB ASP -n (visszaállítás)
  • Az ATtiny13 4. tűje az USB ASP (földelt) 10. lábához
  • Az ATtiny13 5. tűje az USB ASP (MOSI) 1. tűjébe
  • Az ATtiny13 6. tűje az USB ASP (MISO) 9. tűjéig
  • 7. tű az ATtiny13 -on az USB ASP (SCK) 7. tűjére
  • Az ATtiny13 8. tűje az USB ASP (VCC) 2. tűjébe

Ha hozzám hasonlóan Arduino -t használ, akkor kicsit elő kell készítenie. Kövesse az útmutató nulla és második lépését:

Nyissa meg az Arduino IDE -t, és győződjön meg arról, hogy az Arduino csatlakoztatva van a számítógéphez. Keresse meg az internetszolgáltató vázlatát a Fájl> Példák> 11. ArduinoISP> ArduinoISP menüpontban, és töltse fel az Arduino -ra. Ezután csatlakoztassa az ATtiny13 -at ehhez:

  • 1. tű az ATtiny13 -on az Arduino 10. tűjére (visszaállítás)
  • 4. tű az ATtiny13 -tól a GND -hez az Arduino -n (föld)
  • 5. tű az ATtiny13 -on az Arduino (MOSI) 11. tűjére
  • 6. tű az ATtiny13 -on az Arduino (MISO) 12. tűjére
  • 7. tű az ATtiny13 -on az Arduino (SCK) 13. tűjére
  • 8. tű az ATtiny13 -tól VCC / 5V / 3.3V -ig az Arduino -n (bármelyiknek működnie kell, de az 5V megbízhatóbb) (VCC)

Telepítettem a hardvercsomagot is, de valószínűleg nem volt rá szükség. Ha kétségei vannak, próbálja ki. Nem fog ártani. De ne égesse el a rendszerbetöltőt, mert valószínűleg eltömné a zseblámpát.

5. lépés: Villanás

A firmware frissítéséhez telepítenie kell az AVRDUDE programot. Annak ellenőrzésére, hogy működik -e az Arduino -mmal, futtatom:

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

Ha működik, átmegyek egy üres mappába valahol, és futtatom:

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

Biztonsági másolat készítése a meglévő firmware -ről. És hogy villogjon, a módosított blf-a6.hex mappából futok:

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

Valamilyen oknál fogva meg kell adnom az stk500v1 programozót, és ez nem működött, hacsak nem adtam meg a portot és az átviteli sebességet. Ha Arduino -t használ, és kétségei vannak, próbálja meg leválasztani az ATtiny13 készüléket az Arduino -ról, és töltsön fel egy vázlatot az Arduino IDE -be az itt található beállítások segítségével. Sikertelen lesz, de meg kell írnia, hogy milyen parancsot használ a konzol ablakában. Az attribútumokat átmásolhatja az AVRDUDE parancsba.

Ha USB ASP programozót használ, akkor futtassa:

avrdude -v -p attiny13 -c usbasp -n

Hogy lássa, működik -e és:

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

Biztonsági másolat készítése és:

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

Villogni.

-Uflash: w: blf-a6.hex a villogó fájlra utal. Ha más, cserélje ki a blf-a6.hex fájlt a fájl nevével.

-Ulfuse: w: 0x75: m és -Uhfuse: w: 0xFF: m a biztosítékok. A tiétek eltérő lehet, ezért ellenőrizze kétszer az elemeket a zseblámpa-firmware/bin/flash-tiny13-fuses.sh fájlban.

Ha a tartományon kívüli hibát ad, az azt jelenti, hogy a kép túl nagy ahhoz, hogy elférjen a chipen, és el kell távolítania a kód egy részét. Ha sikeresen villog, akkor néhány haladási sávot kell megjelenítenie, majd mondja: "avrdude done. Köszönöm."

Ha azt írja, hogy "érvénytelen eszköz aláírás", és a programozó jumperje 3.3v -ra van állítva, próbálja meg 5v -ra állítani.

Miután felvillantotta, szerelje vissza a zseblámpát, és nézze meg, működik -e. Az enyém volt, de az időzítés ki hosszabb ̶r̶e̶a̶s̶o̶n̶.̶ hosszú prések meg kell körülbelül három másodpercig helyett ̶1̶.̶5̶.̶ Nem tudom, ha Advertisement valami köze az Arduino, vagy mert én is használtam megfelelő beállításokat ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶ Ha van bármilyen ötlete, ̶ hadd tudja, a ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶

Szerk.: Javítottam. (lásd az 1. lépést)

Ajánlott: