Sisällysluettelo:

Mukautetun laiteohjelmiston vilkkuminen BLF A6 -taskulamppuun: 5 vaihetta
Mukautetun laiteohjelmiston vilkkuminen BLF A6 -taskulamppuun: 5 vaihetta

Video: Mukautetun laiteohjelmiston vilkkuminen BLF A6 -taskulamppuun: 5 vaihetta

Video: Mukautetun laiteohjelmiston vilkkuminen BLF A6 -taskulamppuun: 5 vaihetta
Video: Redmi 6 Pro Bootloop после пользовательского ПЗУ, завис в режиме быстрой загрузки, прошивка без ауте 2024, Heinäkuu
Anonim
Mukautetun laiteohjelmiston vilkkuminen BLF A6 -taskulampulle
Mukautetun laiteohjelmiston vilkkuminen BLF A6 -taskulampulle

Sain äskettäin BLF A6: n. Se on erittäin mukavaa, mutta en pidä kummastakaan oletustilaryhmästä, joten muutin laiteohjelmistoa käyttämään haluamiani kirkkauksia. Tietoa oli vaikea löytää, joten laitan kaiken oppimani tänne itselleni ja muille.

Tarvikkeet

BLF A6 (se toimii todennäköisesti muiden ATtiny -pohjaisten taskulamppujen kanssa)

Pinsetit / ohuet pihdit / pienet sakset / jotain, joka irrottaa ohjaimen levyn kiinnitysrenkaan

Tietokone välähtää, mieluiten Linux -jakelu

USB ASP -ohjelmoija / Arduino / jotain, joka voi tehdä AVR -ohjelmointia (ilmeisesti USB ASP -ohjelmoijaa suositellaan, mutta käytin Arduinoa)

SOIC8 -leike (on mahdollista tehdä ilmankin, mutta se on hyvin hankala eikä ollenkaan suositeltavaa)

(valinnainen) Breadboard- ja/tai hyppyjohdot yhdistämisen helpottamiseksi

Vaihe 1: Lataa laiteohjelmisto

BLF A6: n (ja monien muiden taskulamppujen) laiteohjelmisto on saatavana täältä. Kirjoittaja puhuu siitä täällä. Voit ladata sen suorittamalla:

bzr branch lp: ~ toykeeper/taskulamppu-laiteohjelmisto/blf-a6-final

terminaalissa. (sinun on ehkä asennettava bzr)

Huomaa: tämän Instructable-ohjelman edellisessä muokkauksessa käytin sen sijaan "bzr branch lp: flashlight-firmware". Olen sittemmin oppinut, että tämä lataa vanhentuneen version, jossa on väärät arvot off-time-kondensaattorille, mikä tekee painikkeesta epämiellyttävän pitkän. (kiitos tästä ketjusta Redditissä)

Haluttu kansio on blf-a6-final/ToyKeeper/blf-a6. Se sisältää kootun.hex-tiedoston, joka on valmis vilkuttamaan (blf-a6.hex), ja C-koodin, jota voit muokata. (blf-a6.c) Jos haluat flash-varaston laiteohjelmiston, voit ohittaa seuraavan vaiheen ja käyttää vain blf-a6.hex. Jotkut muut kyseisen arkiston laiteohjelmistot toimivat todennäköisesti myös.

Vaihe 2: Muokkaa laiteohjelmistoa

Avaa blf-a6.c haluamassasi tekstieditorissa tai IDE: ssä. Mielenkiintoisimmat rivit ovat rivien 116 ja 131 väliset moodiryhmät. Ne näyttävät tältä:

// Tilaryhmä 1 #määritä NUM_MODES1 7 // PWM -tasot suurelle piirille (FET tai Nx7135) #definise MODESNx1 0, 0, 0, 7, 56, 137, 255 // PWM -tasot pienelle piirille (1x7135) # Määritä TILAT: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78) // Manker2: 2 = 21, 3 = 39, 4 = 47,… 6? = 68 // PWM -nopeus jokaiselle moodille #define MODES_PWM1 PHASE, FAST, FAST, FAST, FAST, FAST, PHASE // Tilaryhmä 2 #define NUM_MODES2 4 #define MODESNx2 0, 0, 90, 255 #define MODES1x2 20, 230, 255, 0 #define MODES_PWM2 NOPEA, NOPEA, NOPEA, VAIHE

Kullekin ryhmälle MODESN on PET -arvo, jota käytetään FET: ssä, ja MODES1 on PWM -arvo, jota käytetään 7135: ssä kussakin tilassa. Luku on 0–255 ja vastaa valon kirkkautta. Lisätietoja tästä. (vieritä alas kohtaan "Tila -asetus"). En ole varma, mikä PWM -nopeus on tarkalleen. Jos joku tietää, kertokaa kommenteissa. FET voi tuottaa enemmän valoa kuin 7135, mutta 7135 pitää valon tason suunnilleen samana koko akun käyttöiän ajan, kun taas FET tummenee akun tyhjentyessä.

Täällä voit säätää PWM -arvoja tuottaaksesi haluamiasi tiloja. Voit todennäköisesti muuttaa myös tilojen määrää, mutta en ole kokeillut sitä, koska halusin neljä tilaa, mikä sattuu olemaan toisen ryhmän numero. Halusin tummemman kuutamotilan, joten asetin ensimmäisen asentoon 0/1, ja mielestäni turbo -tila on hieman turha, joten korvasin sen 137/255: llä, joka vastaa tilan kuutta seitsemän moodin ryhmässä. Voit luultavasti muokata loput koodia tarvittaessa, mutta en ole kokeillut sitä.

Kun olet saanut haluamasi koodin, sinun on käännettävä se.hex -tiedostoon. Tarvitset ainakin gcc-avr ja avr-libc. Jos sinulla on ongelmia, katso muita riippuvuuksia laiteohjelmiston lukemisesta. Varasto sisältää rakennuskomentosarjan, mutta en saanut sitä toimimaan. Sen sijaan latasin vanhan version

bzr branch lp: taskulamppu-laiteohjelmisto

ja kopioin vanhan rakennusskriptin (jotta pääsen töihin) uuden päälle. Sitten juoksin:

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

blf-a6-kansiossa. (pitäisi olla parempi tapa tehdä se. (duh) Sen pitäisi kertoa sinulle, mitä komentoja se suorittaa, ja antaa sinulle tuloksen. Omani näyttää tältä:

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 --no-change-varoitukset -O ihex blf-a6.elf blf-a6.hex Ohjelma: 1022 tavua (99,8% täynnä) Tiedot: 13 tavua (20,3% täynnä)

Komennot on jo optimoitu koolle, joten jos se sanoo olevan yli 100% täynnä, yritä kommentoida

#define FULL_BIKING_STROBE

linjalla 147 käyttää pienempää minimaalista pyöräilystrobea. Jos se ei vieläkään sovi, sinun on todennäköisesti poistettava lisää koodia jonnekin. Kun kääntäminen on valmis, kansiossa pitäisi olla tiedosto nimeltä blf-a6.hex. Tämä on koottu koodisi, valmis vilkkumaan.

Vaihe 3: Pura taskulamppu

Pura taskulamppu
Pura taskulamppu
Pura taskulamppu
Pura taskulamppu
Pura taskulamppu
Pura taskulamppu

Kierrä lampun pää irti vastapäivään. Tässä on kaksi ruuviliitosta. Lähempänä taskulampun polttimoa oleva pää avaa heijastimen ja LED -valon, ja lähempänä keskellä olevaa kuljettajataulua. Haluat lähempänä keskikohtaa.

Sisällä sinun pitäisi nähdä akun jousi ja kiinnitysrengas, jossa on kaksi reikää. Työnnä pinsetit / ohuet pihdit / sakset reikiin ja kierrä niitä vastapäivään. Se on melko jäykkä, eikä kahden erillisen kohteen käyttäminen todennäköisesti anna sinulle riittävästi vipuvaikutusta. Käytin saksia Sveitsin armeijan veitsellä.

Kun olet saanut renkaan irti, vapauta ohjainkortti. Se on edelleen kiinni kahdella johdolla, joten ole varovainen. Ne on kierretty yhteen, joten kierrä levyä tavalla tai toisella, kunnes johdot löystyvät. Kun sinulla on tarpeeksi liikkumavaraa, käännä lautaa. Haluat sen niin, että siru, jossa on "TINY13A", on korkeampi ja helpommin saatavilla. Jos se on väärällä puolella, käännä se toiseen suuntaan. Työnnä jousi sivun alle. Tämä pitää sen tilapäisesti paikallaan ja helpottaa pääsyä sirulle. Jos sinulla on ongelmia tämän kanssa, voit todennäköisesti irrottaa toisen liitoksen ja irrottaa kaksi johtoa toiselta puolelta, jotta voit poistaa levyn kokonaan, mutta en ole kokeillut sitä.

Vaihe 4: Liitä vilkkuva laitteisto

Liitä vilkkuva laitteisto
Liitä vilkkuva laitteisto
Liitä vilkkuva laitteisto
Liitä vilkkuva laitteisto
Liitä vilkkuva laitteisto
Liitä vilkkuva laitteisto

Nyt voit käyttää SOIC8 -leikettä ATtiny13 -sirun ja ohjelmoijan yhdistämiseen. Jos SOIC8 -pidikkeessäni on punainen johto molempien päiden vasemmalla puolella, nastarivi, joka on lähempänä minua pidikkeen päässä, vastaa nastariviä, joka on lähempänä minua liittimen päässä, kun liitin on alaspäin. (katso taiteellinen kaavioni) Tämä opas suosittelee käyttämään USB ASP V2.0 -ohjelmoijaa. Jos teet niin, liitä se seuraavasti:

  • Nasta 1 ATtiny13: ssa nasta 5 USB ASP: ssä (nollaus)
  • Nasta 4 ATtiny13: ssa nastaan 10 USB ASP: ssä (maa)
  • Kiinnitä ATtiny13: n nasta 5 USB ASP: n (MOSI) nastaan 1
  • Nasta 6 ATtiny13: ssa nastaan 9 USB ASP: ssä (MISO)
  • Nasta 7 ATtiny13: ssa nastaan 7 USB ASP: ssä (SCK)
  • Nasta 8 ATtiny13: ssa nasta 2 USB ASP (VCC)

Jos, kuten minä, käytät Arduinoa, sinun on valmisteltava hieman enemmän. Noudata tämän oppaan vaiheita nolla ja kaksi:

Avaa Arduino IDE ja varmista, että Arduino on liitetty tietokoneeseen. Etsi Internet -palveluntarjoajan luonnos kohdassa Tiedosto> Esimerkit> 11. ArduinoISP> ArduinoISP ja lataa se Arduinoosi. Liitä sitten ATtiny13 siihen seuraavasti:

  • Nasta 1 ATtiny13: ssa nastaan 10 Arduinossa (nollaus)
  • Nasta 4 ATtiny13: sta GND: hen Arduinolla (maa)
  • Nasta 5 ATtiny13: ssa nastaan 11 Arduinossa (MOSI)
  • Nasta 6 ATtiny13: ssa nastaan 12 Arduinossa (MISO)
  • Nasta 7 ATtiny13: ssa nastaan 13 Arduinossa (SCK)
  • Nasta 8 ATtiny13: sta VCC / 5V / 3,3 V: iin Arduinossa (minkä tahansa pitäisi toimia, mutta 5 V on luotettavampi) (VCC)

Asensin myös laitteistopaketin, mutta se ei todennäköisesti ollut välttämätöntä. Jos olet epävarma, kokeile sitä. Se ei tee mitään haittaa. Mutta älä polta käynnistyslatainta, koska se todennäköisesti sytyttää taskulampun.

Vaihe 5: Flash It

Jotta laiteohjelmisto voidaan päivittää, sinun on asennettava AVRDUDE. Tarkistaakseni, toimiiko se Arduinollani, suoritan:

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

Jos se toimii, siirryn jonnekin tyhjään kansioon ja suoritan:

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

Varmuuskopiointi olemassa olevasta laiteohjelmistosta. Ja vilkuttaa sitä kansiosta, jossa on muokattu blf-a6.hex, jota käytän:

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

Jostain syystä minun on määritettävä stk500v1 ohjelmoijaksi, eikä se toiminut, ellet määrittänyt porttia ja siirtonopeutta. Jos käytät Arduinoa ja olet epävarma, yritä irrottaa ATtiny13 Arduinosta ja ladata luonnos Arduino IDE: hen käyttämällä tässä olevia asetuksia. Se epäonnistuu, mutta sen pitäisi sanoa, mitä komentoa se käyttää konsoli -ikkunassa. Voit kopioida määritteet AVRDUDE -komentoosi.

Jos käytät USB ASP -ohjelmoijaa, suorita sen sijaan:

avrdude -v -p attiny13 -c usbasp -n

Tarkista, toimiiko se 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

Varmuuskopion tekeminen ja:

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

Vilkuttaa sitä.

-Uflash: w: blf-a6.hex viittaa vilkkuvaan tiedostoon. Korvaa blf-a6.hex tiedostonimellä, jos se on eri.

-Ulfuse: w: 0x75: m ja -Uhfuse: w: 0xFF: m ovat sulakkeita. Omat voivat olla erilaisia, joten tarkista arvot uudelleen taskulamppu-firmware/bin/flash-tiny13-fuses.sh.

Jos se antaa virheen alueen ulkopuolella, se tarkoittaa, että kuva on liian suuri mahtuakseen sirulle ja joudut poistamaan osan koodista. Jos se vilkkuu onnistuneesti, sen pitäisi näyttää joitakin edistymispalkkeja ja sanoa sitten "avrdude done. Kiitos".

Jos siinä lukee "virheellinen laitteen allekirjoitus" ja ohjelmoijan hyppyjohdin on asetettu arvoon 3.3v, yritä asettaa se arvoon 5v.

Kun olet väläyttänyt sen, koota taskulamppu ja katso, toimiiko se. Kaivos teki, mutta ajoitus on pois päältä jonkin ̶r̶e̶a̶s̶o̶n̶.̶ pitkän painaa täytyy olla noin kolmen sekunnin sijasta 1.5. En tiedä, jos sen idea jotain tekemistä Arduino tai siksi ive käytetty asetukset virheellisesti ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶ Jos sinulla mitään käsitystä, ̶ Kerrothan vuonna ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶

Edit: Korjasin. (katso vaihe 1)

Suositeltava: