Përmbajtje:

Ndezje e firmuerit të personalizuar në një elektrik dore BLF A6: 5 hapa
Ndezje e firmuerit të personalizuar në një elektrik dore BLF A6: 5 hapa

Video: Ndezje e firmuerit të personalizuar në një elektrik dore BLF A6: 5 hapa

Video: Ndezje e firmuerit të personalizuar në një elektrik dore BLF A6: 5 hapa
Video: BTT - Manta E3EZ - CM4 EMMc with MainSailOS 2024, Nëntor
Anonim
Ndezje e firmuerit të personalizuar në një elektrik dore BLF A6
Ndezje e firmuerit të personalizuar në një elektrik dore BLF A6

Kohët e fundit kam marrë një BLF A6. Veryshtë shumë bukur, por nuk më pëlqen asnjë nga grupet e modalitetit të paracaktuar, kështu që modifikova firmware -in për të përdorur shkëlqimet e mia të preferuara. Informacioni ishte i vështirë për tu gjetur, kështu që unë po vendos gjithçka që kam mësuar këtu për veten dhe të tjerët.

Furnizimet

BLF A6 (me siguri do të punojë me elektrik dore të tjera të bazuara në ATtiny)

Piskatore / pincë të holla / gërshërë të vogla / diçka për të zhbërë unazën mbajtëse të bordit të shoferit

Kompjuteri për të ndezur, mundësisht duke përdorur një shpërndarje Linux

Programues USB ASP / Arduino / diçka që mund të bëjë programimin AVR (me sa duket programuesi USB ASP rekomandohet, por unë kam përdorur një Arduino)

Klip SOIC8 (është e mundur të bëhet pa, por është shumë e çuditshme dhe aspak e rekomanduar)

(opsionale) Telat e breadboard dhe/ose telat e kërcyesit për ta bërë lidhjen më të lehtë

Hapi 1: Shkarkoni Firmware

Firmware për BLF A6 (dhe shumë elektrik dore) është në dispozicion këtu. Autori flet për të këtu. Mund ta shkarkoni duke ekzekutuar:

bzr dega lp: keeper mbajtës lodrash/elektrik dore-firmware/blf-a6-final

në një terminal. (mund t'ju duhet të instaloni bzr)

Shënim: në një redaktim të mëparshëm të këtij Instructable kam përdorur "bzr branch lp: elektrik dore-firmware" në vend. Që atëherë kam mësuar se ky shkarkon një version të vjetëruar me vlera të gabuara për kondensatorin jashtë orarit, duke bërë që butoni të shtypë në mënyrë të pakëndshme gjatë. (falë këtij fije në Reddit)

Dosja që dëshironi është blf-a6-final/ToyKeeper/blf-a6. Ai përmban një skedar.hex të përpiluar gati për t'u ndezur (blf-a6.hex) dhe kodin C që mund të modifikoni. (blf-a6.c) Nëse doni të ndezni firmware-in e aksioneve, mund të kaloni hapin tjetër dhe thjesht përdorni blf-a6.hex. Disa nga firmware -et e tjerë në atë depo ndoshta do të funksionojnë gjithashtu.

Hapi 2: Ndryshoni Firmware

Hapni blf-a6.c në redaktorin e tekstit ose IDE-në tuaj të preferuar. Linjat më interesante janë grupet e mënyrave midis rreshtave 116 dhe 131. Ato duken kështu:

// Grupi i modalitetit 1 #përcaktoni NUM_MODES1 7 // Nivelet PWM për qarkun e madh (FET ose Nx7135) #përcaktoni MODESNx1 0, 0, 0, 7, 56, 137, 255 // Nivelet PWM për qarkun e vogël (1x7135) # përcaktoni MODES1x1 2, 20, 110, 255, 255, 255, 0 // Mostra ime: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32) // Krono mostër: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78) // Manker2: 2 = 21, 3 = 39, 4 = 47,… 6? = 68 // Shpejtësia PWM për secilën mënyrë #përcakto MODES_PWM1 FAZA, FAST, FAST, FAST, FAST, FAST, FAZA // Grupi i modalitetit 2 #përcakto NUM_MODES2 4 #përcakto MODESNx2 0, 0, 90, 255 #define MODES1x2 20, 230, 255, 0 #përcaktoni MODES_PWM2 FAST, FAST, FAST, FAZ

Për secilin grup, MODESN është vlera PWM e përdorur për FET, dhe MODES1 është vlera PWM e përdorur për 7135 në secilën mënyrë. Numri është midis 0 dhe 255, dhe korrespondon me shkëlqimin e dritës. Më shumë informacion këtu. (lëvizni poshtë te "Rregullimi i modalitetit:") Nuk jam i sigurt se cila është saktësisht shpejtësia PWM. Nëse dikush e di, më tregoni në komente. FET mund të prodhojë më shumë dritë se 7135, por 7135 e mban nivelin e dritës pak a shumë të njëjtë gjatë jetës së baterisë, ndërsa FET bëhet më e errët ndërsa mbaron bateria.

Këtu mund të rregulloni vlerat PWM për të prodhuar mënyra sipas dëshirës tuaj. Ju ndoshta mund të ndryshoni edhe numrin e mënyrave, por unë nuk e kam provuar pasi doja katër mënyra, që ndodh të jetë numri në grupin e dytë. Doja një mënyrë më të errët të dritës së hënës, kështu që e vendosa të parën në 0/1, dhe më duket se modaliteti turbo është pak i kotë, kështu që e zëvendësova atë me 137/255, ekuivalentin e modalitetit gjashtë në grupin e shtatë mode. Ju ndoshta mund të modifikoni pjesën tjetër të kodit nëse është e nevojshme, por unë nuk e kam provuar.

Kur të keni kodin që dëshironi, duhet ta përpiloni atë në një skedar hex. Të paktën, keni nevojë për gcc-avr dhe avr-libc. Nëse keni probleme, shikoni varësitë e tjera në leximin e firmuerit. Depoja përfshin një skenar të ndërtuar, por unë nuk mund ta bëj atë të funksionojë. Në vend të kësaj, unë shkarkova versionin e vjetër me

bzr dega lp: elektrik dore-firmware

dhe kopjoi skenarin e vjetër të ndërtimit (që unë mund të filloja të punoja) mbi atë të ri. Pastaj vrapova:

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

në dosjen blf-a6. (duhet të ketë një mënyrë më të mirë për ta bërë atë).. (duh) Duhet t'ju tregojë se çfarë komandash po funksionon dhe t'ju japë daljen. E imja duket kështu:

avr -gcc -Mur -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 -seksion-flamuj =.eeprom = alokim, ngarkesë-ndryshim-seksion-lma. eeprom = 0-mos-ndryshim-paralajmërime -O ihex blf-a6.elf blf-a6.hex Program: 1022 bytes (99.8% Plotë) Të dhënat: 13 byte (20.3% e plotë)

Komandat tashmë janë optimizuar për madhësinë, kështu që nëse thotë se është më shumë se 100% e plotë, provoni të komentoni

#përcakto FULL_BIKING_STROBE

në linjën 147 për të përdorur strobin më të vogël minimal të biçikletës. Nëse akoma nuk përshtatet, me siguri do të duhet të hiqni diku më shumë kod. Kur të përfundojë përpilimi, duhet të ketë një skedar të quajtur blf-a6.hex në dosje. Ky është kodi juaj i përpiluar, gati për t'u ndezur.

Hapi 3: Çmontoni elektrik dore

Çmontoni elektrik dore
Çmontoni elektrik dore
Çmontoni elektrik dore
Çmontoni elektrik dore
Çmontoni elektrik dore
Çmontoni elektrik dore

Zhvidhoseni skajin e llambës në drejtim të kundërt të akrepave të orës. Ka dy nyje vidash këtu. Ai që është më afër skajit të llambës së elektrik dore hap reflektorin dhe LED, dhe ai më afër mesit hap tabelën e drejtuesit. Ju dëshironi atë më afër mesit.

Brenda, duhet të shihni burimin e baterisë dhe një unazë mbajtëse me dy vrima në të. Futni piskatoret / pincat / gërshërët tuaj të hollë në vrima dhe rrotulloni ato në drejtim të kundërt të akrepave të orës. Quiteshtë mjaft e ngurtë, dhe përdorimi i dy objekteve të ndara ndoshta nuk do t'ju japë fuqi të mjaftueshme. Kam përdorur gërshërët në një thikë të ushtrisë zvicerane.

Pasi të keni marrë unazën, lironi tabelën e shoferit. Stillshtë ende e lidhur me dy tela, prandaj ki kujdes. Ata janë të shtrembëruar së bashku, kështu që rrotulloni bordin në një mënyrë ose në një tjetër derisa telat të lirohen. Kur të keni hapësirë të mjaftueshme, rrokullisni tabelën. Ju dëshironi që çipi me "TINY13A" mbi të të jetë më i lartë dhe më i arritshëm. Nëse është në anën e gabuar, kthejeni atë në anën tjetër. Vendoseni pranverën nën anën. Kjo do ta mbajë përkohësisht në vend dhe do ta bëjë më të lehtë arritjen në çip. Nëse keni probleme me këtë, me siguri mund të hiqni lidhësin tjetër dhe të shkrini të dy telat nga ana tjetër, në mënyrë që të hiqni pllakën plotësisht, por unë nuk e kam provuar.

Hapi 4: Lidhni pajisjet ndezëse

Lidhni pajisjet ndezëse
Lidhni pajisjet ndezëse
Lidhni pajisjet ndezëse
Lidhni pajisjet ndezëse
Lidh pajisjen ndezëse
Lidh pajisjen ndezëse

Tani ju përdorni klipin SOIC8 për të lidhur çipin ATtiny13 dhe programuesin tuaj. Me kapësin tim SOIC8, nëse kam tela të kuq në të majtë të të dy skajeve, rreshti i kunjave më pranë meje në skajin e kapëses korrespondon me rreshtin e kunjave më afër meje në skajin e lidhësit, kur lidhësi është kthyer poshtë. (shiko diagramin tim super artistik) Ky udhëzues ju rekomandon të përdorni një programues USB ASP V2.0. Nëse e bëni, lidheni atë si kjo:

  • Pin 1 në ATtiny13 në pin 5 në USB ASP (rivendosje)
  • Pin 4 në ATtiny13 në pin 10 në USB ASP (tokë)
  • Pin 5 në ATtiny13 në pin 1 në USB ASP (MOSI)
  • Pin 6 në ATtiny13 në pin 9 në USB ASP (MISO)
  • Pin 7 në ATtiny13 në pin 7 në USB ASP (SCK)
  • Pin 8 në ATtiny13 në pin 2 në USB ASP (VCC)

Nëse, si unë, jeni duke përdorur një Arduino, duhet të bëni pak më shumë përgatitje. Ndiqni hapat zero dhe dy të këtij udhëzuesi:

Hapni Arduino IDE dhe sigurohuni që Arduino juaj të jetë i lidhur me kompjuterin tuaj. Gjeni skicën e ISP -së në Skedar> Shembuj> 11. ArduinoISP> ArduinoISP dhe ngarkojeni atë në Arduino tuaj. Pastaj lidhni ATtiny13 me të si kjo:

  • Pin 1 në ATtiny13 në pin 10 në Arduino (rivendosje)
  • Pin 4 në ATtiny13 në GND në Arduino (tokë)
  • Pin 5 në ATtiny13 në pin 11 në Arduino (MOSI)
  • Pin 6 në ATtiny13 në pin 12 në Arduino (MISO)
  • Pin 7 në ATtiny13 në pin 13 në Arduino (SCK)
  • Pin 8 në ATtiny13 në VCC / 5V / 3.3V në Arduino (çdo duhet të funksionojë, por 5V është më i besueshëm) (VCC)

Kam instaluar edhe paketën e harduerit, por ndoshta nuk ishte e nevojshme. Nëse keni dyshime, provojeni. Nuk do të bëjë asnjë dëm. Por mos e digjni ngarkuesin e ngarkimit sepse ai me siguri do të bëjë tulla me elektrik dore.

Hapi 5: Ndizeni atë

Për të ndezur firmware -in, duhet të instaloni AVRDUDE. Për të kontrolluar që funksionon me Arduino -n tim, unë drejtoj:

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

Nëse funksionon, kaloj diku në një dosje të zbrazët dhe ekzekutoj:

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

Për të bërë një kopje rezervë të firmuerit ekzistues. Dhe për ta ndezur atë, nga dosja me blf-a6 të modifikuar. Hex unë drejtoj:

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

Për disa arsye, më duhet të specifikoj stk500v1 si programues, dhe nuk funksionoi nëse nuk specifikova normën e portit dhe të baudit. Nëse jeni duke përdorur një Arduino dhe jeni në dyshim, provoni të shkëputni ATtiny13 tuaj nga Arduino dhe të ngarkoni një skicë në Arduino IDE duke përdorur cilësimet këtu. Do të dështojë, por duhet të thotë se çfarë komande po përdor në dritaren e tastierës. Ju mund t'i kopjoni atributet në komandën tuaj AVRDUDE.

Nëse jeni duke përdorur një programues USB ASP, në vend të kësaj ekzekutoni:

avrdude -v -p attiny13 -c usbasp -n

Për të parë nëse funksionon dhe:

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

Për të bërë një kopje rezervë dhe:

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

Për ta ndezur atë.

-Uflash: w: blf-a6.hex i referohet skedarit që ndizet. Zëvendësoni blf-a6.hex me emrin e skedarit tuaj nëse është i ndryshëm.

-Përdorimi i gabuar: w: 0x75: m dhe -Uhfuse: w: 0xFF: m janë siguresat. E juaja mund të jetë e ndryshme, kështu që kontrolloni dy herë vlerat në elektrik dore-firmware/bin/flash-tiny13-fuses.sh.

Nëse jep një gabim jashtë rrezes, do të thotë që imazhi është shumë i madh për t'u përshtatur në çip dhe ju duhet të hiqni një pjesë të kodit. Nëse pulson me sukses, duhet të shfaqë disa shirita progresi, pastaj të thotë "avrdude done. Faleminderit."

Nëse thotë "nënshkrimi i pajisjes së pavlefshme" dhe kërcyesi në programuesin tuaj është vendosur në 3.3v, provoni ta vendosni në 5v.

Pasi ta keni ndezur, montoni përsëri elektrikun tuaj elektrik dhe shihni nëse funksionon. Mine bëri, por koha është jashtë për disa ̶r̶e̶a̶s̶o̶n̶.̶ afat shtyn duhet të jetë rreth tre sekonda në vend të ̶1̶.̶5̶.̶ Unë nuk e di nëse atë e diçka të bëjë me Arduino ose për shkak se unë e kam përdorur gabuar konfigurimet e ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶ nëse ke ndonjë ide, ̶ lejoni të di në ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶

Edit: E rregullova. (shiko hapin 1)

Recommended: