Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: I-download ang Firmware
- Hakbang 2: Baguhin ang Firmware
- Hakbang 3: I-disassemble ang Flashlight
- Hakbang 4: Ikonekta ang Flashing Hardware
- Hakbang 5: I-flash Ito
Video: Flashing Custom Firmware sa isang BLF A6 Flashlight: 5 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
Kamakailan ay nakakuha ako ng BLF A6. Napakaganda, ngunit hindi ko gusto ang alinman sa mga default mode na grupo, kaya binago ko ang firmware upang magamit ang aking ginustong mga ningning. Ang impormasyon ay mahirap hanapin, kaya inilalagay ko rito ang lahat ng natutunan ko para sa aking sarili at sa iba.
Mga gamit
BLF A6 (malamang na gagana ito sa iba pang mga flashlight na nakabatay sa ATtiny)
Mga Tweezer / manipis na pliers / maliit na gunting / isang bagay upang ma-undo ang singsing ng pagpapanatili ng driver board
Computer sa flash sa, mas mabuti na nagpapatakbo ng isang pamamahagi ng Linux
USB ASP programmer / Arduino / isang bagay na maaaring gawin ang AVR program (tila inirerekumenda ang USB ASP programmer, ngunit gumamit ako ng Arduino)
SOIC8 clip (posible na gawin nang walang, ngunit ito ay napaka fiddly at hindi sa lahat inirerekumenda)
(opsyonal) Breadboard at / o mga jumper wires upang gawing mas madali ang pagkonekta
Hakbang 1: I-download ang Firmware
Ang firmware para sa BLF A6 (at maraming iba pang mga flashlight) ay magagamit dito. Pinag-uusapan ito ng may-akda dito. Maaari mong i-download ito sa pamamagitan ng pagpapatakbo:
bzr branch lp: ~ toykeeper / flashlight-firmware / blf-a6-final
sa isang terminal. (maaaring kailanganin mong mag-install ng bzr)
Tandaan: sa isang nakaraang pag-edit ng Instructable na ito ginamit ko ang "bzr branch lp: flashlight-firmware" sa halip. Nalaman ko na na nagda-download ito ng isang hindi napapanahong bersyon na may maling mga halaga para sa off-time na kapasitor, na ginagawang hindi komportable ang pagpindot sa pindutan. (salamat sa thread na ito sa Reddit)
Ang folder na gusto mo ay blf-a6-final / ToyKeeper / blf-a6. Naglalaman ito ng isang pinagsamang.hex file na handa nang mag-flash (blf-a6.hex) at ang C code na maaari mong baguhin. (blf-a6.c) Kung nais mong i-flash ang stock firmware maaari mong laktawan ang susunod na hakbang at gamitin lamang ang blf-a6.hex. Ang ilan sa iba pang mga firmware sa lalagyan na iyon ay maaaring gumana din.
Hakbang 2: Baguhin ang Firmware
Buksan ang blf-a6.c sa iyong ginustong text editor o IDE. Ang pinaka-kagiliw-giliw na mga linya ay ang mga pangkat ng mode sa pagitan ng mga linya 116 at 131. Ganito ang hitsura nila:
// Mode group 1 # tukuyin ang mga antas ng NUM_MODES1 7 // PWM para sa malaking circuit (FET o Nx7135) #define MODESNx1 0, 0, 0, 7, 56, 137, 255 // Mga antas ng PWM para sa maliit na circuit (1x7135) # tukuyin ang MODES1x1 2, 20, 110, 255, 255, 255, 0 // Aking sample: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32) // Krono sample: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78) // Manker2: 2 = 21, 3 = 39, 4 = 47,… 6? = 68 // Bilis ng PWM para sa bawat mode #define MODES_PWM1 PHASE, FAST, FAST, FAST, FAST, FAST, PHASE // Mode group 2 #define NUM_MODES2 4 #define MODESNx2 0, 0, 90, 255 #define MODES1x2 20, 230, 255, 0 #define MODES_PWM2 FAST, FAST, FAST, PHASE
Para sa bawat pangkat, ang MODESN ay ang halagang PWM na ginamit para sa FET, at ang MODES1 ay ang halaga ng PWM na ginamit para sa 7135 sa bawat mode. Ang numero ay nasa pagitan ng 0 at 255, at tumutugma sa ningning ng ilaw. Dagdag pang impormasyon dito. (mag-scroll pababa sa "regulasyon ng Mode:") Hindi ako sigurado kung ano ang eksaktong bilis ng PWM. Kung may nakakaalam man, sabihin sa akin sa mga komento. Ang FET ay maaaring makagawa ng higit na ilaw kaysa sa 7135, ngunit ang 7135 ay pinapanatili ang antas ng ilaw higit pa o mas mababa sa pareho sa buhay ng baterya, habang ang FET ay nagiging mas madidilim habang nauubusan ito ng baterya.
Dito maaari mong ayusin ang mga halagang PWM upang makabuo ng mga mode ayon sa gusto mo. Marahil ay maaari mo ring baguhin ang bilang ng mga mode, ngunit hindi ko ito nasubukan ayon sa gusto ko ng apat na mode, na kung saan ay ang bilang sa pangalawang pangkat. Nais ko ng isang mas madidilim na mode ng buwan, kaya itinakda ko ang una sa 0/1, at nakita kong medyo walang kabuluhan ang turbo mode, kaya pinalitan ko ito ng 137/255, ang katumbas ng mode na anim sa pitong mode na grupo. Marahil ay maaari mong baguhin ang natitirang code kung kinakailangan, ngunit hindi ko ito nasubukan.
Kapag nakuha mo ang code na gusto mo, kailangan mo itong ipunin sa isang.hex file. Sa pinakamaliit, kailangan mo ng gcc-avr at avr-libc. Kung mayroon kang mga problema, tingnan ang iba pang mga dependency sa readme ng firmware. Ang repository ay nagsasama ng isang build script, ngunit hindi ko ito masabi upang gumana. Sa halip, na-download ko ang lumang bersyon sa
bzr branch lp: flashlight-firmware
at kinopya ang lumang build script (na maaari akong gumana) sa bago. Pagkatapos ay tumakbo ako:
../../bin/ build.sh 13 blf-a6
sa folder na blf-a6. (dapat mayroong isang mas mahusay na paraan upang magawa iyon) Ang../../bin/ build.sh ay tinatawag ang script, tinukoy ng 13 na nagtatayo ito para sa isang ATtiny13 at tinukoy ng blf-a6 na para ito sa BLF A6. (duh) Dapat mong sabihin sa iyo kung anong mga utos ang tumatakbo at bigyan ka ng output. Ang akin ay ganito:
avr-gcc -Wall -g -Os -mmcu = attiny13 -c -std = gnu99 -fgnu89-inline -DATTINY = 13 -ako.. -ako../.. -ako../../.. -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-warnings -O ihex blf-a6.elf blf-a6.hex Program: 1022 bytes (99.8% Full) Data: 13 bytes (20.3% Buo)
Ang mga utos ay na-optimize na para sa laki, kaya kung sasabihin nito na higit sa 100% ang buo, subukang mag-comment
# tukuyin ang FULL_BIKING_STROBE
sa linya 147 upang magamit ang mas maliit na minimal na biking strober. Kung hindi pa ito magkasya, malamang na aalisin mo ang higit pang code sa kung saan. Kapag natapos itong mag-ipon, dapat mayroong isang file na tinatawag na blf-a6.hex sa folder. Ito ang iyong naipong code, handa nang mag-flash.
Hakbang 3: I-disassemble ang Flashlight
Alisin ang takip ng bombilya laban sa pakaliwa. Mayroong dalawang mga joints ng tornilyo dito. Ang isa na malapit sa dulo ng bombilya ng flashlight ay magbubukas ng salamin at LED, at ang isa na malapit sa gitna ay bubukas ang driver board. Gusto mo yung mas malapit sa gitna.
Sa loob, dapat mong makita ang spring ng baterya at isang retain ring na may dalawang butas dito. Ipasok ang iyong mga sipit / manipis na pliers / gunting sa mga butas at paikutin ang mga ito laban sa pakaliwa. Ito ay medyo matigas, at ang paggamit ng dalawang magkakahiwalay na mga bagay ay maaaring hindi bibigyan ka ng sapat na leverage. Ginamit ko ang gunting sa isang Swiss Army Knife.
Kapag nakuha mo na ang singsing, palayain ang driver board. Nakalakip pa rin ito sa dalawang wires, kaya mag-ingat. Pinilipit silang magkasama, kaya paikutin ang pisara sa isang paraan o sa iba pa hanggang sa maluwag ang mga wire. Kapag mayroon kang sapat na daanan, i-flip ang board. Nais mo ito upang ang maliit na tilad na may "TINY13A" dito ay mas mataas at mas naa-access. Kung ito ay nasa maling panig, i-flip ito sa ibang paraan. I-tuck ang spring sa ilalim ng gilid. Pansamantalang panatilihin ito nito sa lugar at gawing mas madaling makarating sa maliit na tilad. Kung nagkakaproblema ka dito maaari mong marahil na i-unscrew ang iba pang sumali at masira ang dalawang wires mula sa kabilang panig upang maalis mo ang board ng buong buo, ngunit hindi ko ito nasubukan.
Hakbang 4: Ikonekta ang Flashing Hardware
Ngayon ay ginagamit mo ang SOIC8 clip upang ikonekta ang ATtiny13 chip at ang iyong programmer. Sa aking SOIC8 clip, kung mayroon akong pulang wire sa kaliwa ng parehong dulo, ang hilera ng mga pin na malapit sa akin sa clip end ay tumutugma sa hilera ng mga pin na mas malapit sa akin sa dulo ng konektor, kapag ang konektor ay nakaharap pababa. (tingnan ang aking sobrang artistikong diagram) Inirerekumenda ng gabay na ito na gumamit ka ng isang USB ASP V2.0 programmer. Kung gagawin mo ito, ikonekta ito tulad nito:
- I-pin ang 1 sa ATtiny13 upang i-pin 5 sa USB ASP (i-reset)
- I-pin ang 4 sa ATtiny13 upang i-pin 10 sa USB ASP (ground)
- I-pin ang 5 sa ATtiny13 upang i-pin ang 1 sa USB ASP (MOSI)
- I-pin ang 6 sa ATtiny13 upang i-pin ang 9 sa USB ASP (MISO)
- I-pin ang 7 sa ATtiny13 upang i-pin 7 sa USB ASP (SCK)
- I-pin ang 8 sa ATtiny13 upang i-pin 2 sa USB ASP (VCC)
Kung, tulad ng sa akin, gumagamit ka ng isang Arduino, kailangan mong gumawa ng kaunti pang paghahanda. Sundin ang mga hakbang sa zero at dalawa sa gabay na ito:
Buksan ang Arduino IDE at tiyaking nakakonekta ang iyong Arduino sa iyong computer. Hanapin ang sketch ng ISP sa File> Mga Halimbawa> 11. ArduinoISP> ArduinoISP at i-upload ito sa iyong Arduino. Pagkatapos ikonekta ang ATtiny13 dito tulad nito:
- I-pin ang 1 sa ATtiny13 upang i-pin ang 10 sa Arduino (i-reset)
- I-pin ang 4 sa ATtiny13 hanggang GND sa Arduino (ground)
- I-pin ang 5 sa ATtiny13 upang i-pin ang 11 sa Arduino (MOSI)
- I-pin ang 6 sa ATtiny13 upang i-pin ang 12 sa Arduino (MISO)
- I-pin ang 7 sa ATtiny13 upang i-pin ang 13 sa Arduino (SCK)
- I-pin ang 8 sa ATtiny13 hanggang VCC / 5V / 3.3V sa Arduino (ang anumang dapat gumana, ngunit ang 5V ay mas maaasahan) (VCC)
Na-install ko rin ang package ng hardware, ngunit marahil ay hindi kinakailangan. Kung may pag-aalinlangan, subukan ito. Hindi ito makakasama. Ngunit huwag sunugin ang bootloader dahil marahil ay ladrilyo nito ang iyong flashlight.
Hakbang 5: I-flash Ito
Upang mai-flash ang firmware, kailangan mong i-install ang AVRDUDE. Upang suriin ito gumagana sa aking Arduino, tumatakbo ako:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -n
Kung gagana ito, lumilipat ako sa isang walang laman na folder sa isang lugar at tumakbo:
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
Upang makagawa ng isang backup ng mayroon nang firmware. At upang mai-flash ito, mula sa folder na may binagong blf-a6.hex na pinatakbo ko:
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
Sa ilang kadahilanan, kailangan kong tukuyin ang stk500v1 bilang programmer, at hindi ito gumana maliban kung tinukoy ko ang port at baud rate. Kung gumagamit ka ng isang Arduino at may pag-aalinlangan, subukang idiskonekta ang iyong ATtiny13 mula sa Arduino at mag-upload ng isang sketch sa Arduino IDE gamit ang mga setting dito. Mabibigo ito, ngunit dapat sabihin kung anong utos ang ginagamit nito sa window ng console. Maaari mong kopyahin ang mga katangian sa iyong AVRDUDE command.
Kung gumagamit ka ng isang USB ASP programmer, sa halip magpatakbo ng:
avrdude -v -p attiny13 -c usbasp -n
Upang makita kung ito ay gumagana at:
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
Upang makagawa ng isang backup at:
avrdude -v -p attiny13 -c usbasp -u -Uflash: w: blf-a6.hex -Ulfuse: w: 0x75: m -Uhfuse: w: 0xFF: m
I-flash ito.
-Uflash: w: blf-a6.hex ay tumutukoy sa file na ito ay kumikislap. Palitan ang blf-a6.hex ng iyong pangalan ng file kung naiiba ito.
-Ulfuse: w: 0x75: m at -Uhfuse: w: 0xFF: m ang mga piyus. Maaaring magkakaiba ang iyo, kaya't i-double check ang mga halaga sa flashlight-firmware / bin / flash-tiny13-fuses.sh.
Kung nagbibigay ito ng isang error sa labas ng saklaw, nangangahulugan ito na ang imahe ay masyadong malaki upang magkasya sa maliit na tilad at kailangan mong alisin ang ilan sa mga code. Kung matagumpay itong nag-flash, dapat itong magpakita ng ilang mga progress bar, pagkatapos ay sabihin ang "avrdude tapos. Salamat."
Kung sinabing "hindi wastong lagda ng aparato" at ang jumper sa iyong programmer ay nakatakda sa 3.3v, subukang itakda ito sa 5v.
Pagkatapos mong mai-flash ito, muling tipunin ang iyong flashlight at tingnan kung gumagana ito. Mine ginawa, ngunit ang tiyempo ay off para sa ilang katinuan. sa mahabang pagpindot kailangan na maging tungkol sa tatlong segundo sa halip ng ̶1̶.̶5̶.̶ ko hindi alam kung Kung ito ay isang bagay na gawin sa Arduino o dahil ̶I̶'̶v̶e̶ ginagamit sa maling mga setting ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶ Kung mayroon kang anumang mga ideya, ̶ ipaalam sa akin kung sa ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶
I-edit: Inayos ko ito. (tingnan ang hakbang 1)
Inirerekumendang:
Firmware Flashing ng ESP8266: 4 Mga Hakbang
Firmware Flashing ng ESP8266: Sinubukan ng bawat isa na i-update ang firmware ng module na ESP8266 ang mga tagubilin ay maaaring makatulong sa iyo sa pag-flashing ng firmware sa ESP8266
Flashing SONOFF Tasmota Firmware sa NodeMCU: 9 Hakbang
Ang flashing na SONOFF Tasmota Firmware sa NodeMCU: Ang Sonoff ay isang switch na kinokontrol ng WiFi na naka-embed sa ESP8266 IC at may mga relay upang makontrol ang aparato sa pamamagitan ng Internet. Ang IC na ito ay maaaring mai-flash at muling mai-program ng Arduino IDE. Ang mga gumagawa ng Sonoff ay naglathala ng mga aklatan at mga file ng Arduino sa
Lumikha ng isang Flashing Lights Circuit Na may 555 Timer at isang Relay: 3 Hakbang
Lumikha ng isang Flashing Lights Circuit Sa isang 555 Timer at isang Relay: Pupunta ako sa iyo kung paano gumawa ng isang alternating pulsating circuit (gamit ang 555 timer) upang magpatakbo ng isang relay. Nakasalalay sa relay na maaari mong patakbuhin ang 120vac light. Hindi nito kahalili ang mabuti sa maliit na capacitor (ipapaliwanag ko sa paglaon)
I-convert ang isang 3xAAA Flashlight sa isang Lithium 18650 Cell: 9 Mga Hakbang
I-convert ang isang 3xAAA Flashlight sa isang Lithium 18650 Cell: Maaaring hindi ito nauugnay sa lahat ng 3x AAA flashlight, ngunit sa ilang mga caliper at sentido komun, marahil maaari mong suriin ang iyong sarili
Paano Gumawa ng isang Mabilis na Murang LED Flashlight Sa Isang Stick ng Deodorant !: 8 Hakbang
Paano Gumawa ng Mabilis na Murang LED Flashlight Gamit ang isang Stick of Deodorant !: Sa Instructable na ito, ipapakita ko sa iyo kung paano gumawa ng mabilis na coll, at murang LED flashlight mula sa isang stick ng deodorant! (at ilang iba pang mga bahagi)