Innholdsfortegnelse:

Blinker tilpasset fastvare til en BLF A6 lommelykt: 5 trinn
Blinker tilpasset fastvare til en BLF A6 lommelykt: 5 trinn

Video: Blinker tilpasset fastvare til en BLF A6 lommelykt: 5 trinn

Video: Blinker tilpasset fastvare til en BLF A6 lommelykt: 5 trinn
Video: Wurkkos TS10 Flashlight Review: The BEST Budget Pocket Rocket (1400 lumens)? 2024, Juli
Anonim
Blinker tilpasset fastvare til en BLF A6 lommelykt
Blinker tilpasset fastvare til en BLF A6 lommelykt

Jeg har nylig fått en BLF A6. Det er veldig fint, men jeg liker ikke noen av standardmodusgruppene, så jeg endret fastvaren for å bruke mine foretrukne lysstyrker. Informasjonen var vanskelig å finne, så jeg legger alt jeg lærte her for meg selv og andre.

Rekvisita

BLF A6 (det vil sannsynligvis fungere med andre ATtiny -baserte lommelykter)

Pincett / tynn tang / liten saks / noe for å løsne førerkortets låsering

Datamaskin å blinke med, helst kjører en Linux -distribusjon

USB ASP programmerer / Arduino / noe som kan gjøre AVR programmering (tilsynelatende anbefales USB ASP programmereren, men jeg brukte en Arduino)

SOIC8 -klipp (det er mulig å klare seg uten, men det er veldig vanskelig og ikke anbefalt i det hele tatt)

(valgfritt) Brødbrett og/eller hoppetråder for å gjøre tilkoblingen enklere

Trinn 1: Last ned fastvaren

Fastvaren til BLF A6 (og mange andre lommelykter) er tilgjengelig her. Forfatteren snakker om det her. Du kan laste den ned ved å kjøre:

bzr branch lp: ~ toykeeper/lommelykt-firmware/blf-a6-final

i en terminal. (du må kanskje installere bzr)

Merk: i en tidligere redigering av denne Instructable brukte jeg "bzr branch lp: flashlight-firmware" i stedet. Jeg har siden lært at denne laster ned en utdatert versjon med feil verdier for off-time kondensatoren, noe som gjør at knappen trykker ubehagelig lenge. (takk til denne tråden på Reddit)

Mappen du ønsker er blf-a6-final/ToyKeeper/blf-a6. Den inneholder en kompilert.hex-fil som er klar til å blinke (blf-a6.hex) og C-koden som du kan endre. (blf-a6.c) Hvis du vil blinke med fastvare i lageret, kan du hoppe over neste trinn og bare bruke blf-a6.hex. Noe av den andre fastvaren i det depotet vil trolig også fungere.

Trinn 2: Endre fastvaren

Åpne blf-a6.c i din foretrukne tekstredigerer eller IDE. De mest interessante linjene er modusgruppene mellom linje 116 og 131. De ser slik ut:

// Modus gruppe 1 #definere NUM_MODES1 7 // PWM nivåer for den store kretsen (FET eller Nx7135) #definere MODESNx1 0, 0, 0, 7, 56, 137, 255 // PWM nivåer for den lille kretsen (1x7135) # definere MODES1x1 2, 20, 110, 255, 255, 255, 0 // Min prøve: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32) // Krono -prøve: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78) // Manker2: 2 = 21, 3 = 39, 4 = 47,… 6? = 68 // PWM -hastighet for hver modus #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, FASE

For hver gruppe er MODESN PWM -verdien som brukes for FET, og MODES1 er PWM -verdien som brukes for 7135 i hver modus. Tallet er mellom 0 og 255, og tilsvarer lysstyrken. Mer informasjon her. (bla ned til "Modusregulering:") Jeg er ikke sikker på hva PWM -hastigheten er nøyaktig. Hvis noen vet, fortell meg det i kommentarene. FET kan produsere mer lys enn 7135, men 7135 holder lysnivået mer eller mindre det samme gjennom batteriets levetid, mens FET blir mørkere etter hvert som det går tom for batteri.

Her kan du justere PWM -verdiene for å produsere moduser etter din smak. Du kan sikkert også endre antall moduser, men jeg har ikke prøvd det da jeg ønsket fire moduser, som tilfeldigvis er tallet i den andre gruppen. Jeg ønsket en mørkere måneskinnsmodus, så jeg satte den første til 0/1, og jeg synes turbomodus var litt meningsløs, så jeg byttet den ut med 137/255, tilsvarer modus seks i gruppen med syv moduser. Du kan sannsynligvis endre resten av koden om nødvendig, men jeg har ikke prøvd den.

Når du har koden du ønsker, må du kompilere den til en.hex -fil. I det minste trenger du gcc-avr og avr-libc. Hvis du har problemer, kan du se på de andre avhengighetene i fastvareopplysningene. Depotet inneholder et byggeskript, men jeg kunne ikke få det til å fungere. I stedet lastet jeg ned den gamle versjonen med

bzr branch lp: lommelykt-fastvare

og kopierte det gamle byggeskriptet (som jeg kunne komme i gang med) over det nye. Så løp jeg:

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

i blf-a6-mappen. (det burde være en bedre måte å gjøre det)../../bin/build.sh kaller skriptet, 13 angir at det bygger for en ATtiny13 og blf-a6 spesifiserer at det er for BLF A6. (duh) Det skal fortelle deg hvilke kommandoer det kjører og gi deg utgangen. Min ser slik ut:

avr -gcc -Wall -g -Os -mmcu = attiny13 -c -std = gnu99 -fgnu89 -inline -DATTINY = 13 -I.. -I../.. -I../../.. -fshort -enumer -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 -seksjon-flagg =.eeprom = tildeling, last-endring-seksjon-lma.eeprom = 0-ingen endring-advarsler -O ihex blf-a6.elf blf-a6.hex Program: 1022 byte (99,8% full) Data: 13 byte (20,3% full)

Kommandoene er allerede optimalisert for størrelse, så hvis det står at det er mer enn 100% fullt, kan du prøve å kommentere

#define FULL_BIKING_STROBE

på linje 147 for å bruke den mindre minimale sykkelstroben. Hvis det fortsatt ikke passer, må du sannsynligvis fjerne mer kode et sted. Når den er ferdig med å kompilere, bør det være en fil som heter blf-a6.hex i mappen. Dette er din kompilerte kode, klar til å blinke.

Trinn 3: Demonter lommelykten

Demonter lommelykten
Demonter lommelykten
Demonter lommelykten
Demonter lommelykten
Demonter lommelykten
Demonter lommelykten

Skru ut pæreenden mot klokken. Det er to skrueforbindelser her. Den som er nærmere pæreenden av lommelykten åpner reflektoren og LED -en, og den som er nærmere midten åpner førerkortet. Du vil ha den nærmere midten.

Innvendig bør du se batterifjæren og en låsering med to hull i den. Sett din pinsett / tynne tang / saks inn i hullene og roter dem mot klokken. Det er ganske stivt, og bruk av to separate objekter vil sannsynligvis ikke gi deg nok innflytelse. Jeg brukte saks på en sveitsisk hærkniv.

Når du har fått ringen ut, frigjør du førerkortet. Den er fortsatt festet med to ledninger, så vær forsiktig. De er vridd sammen, så roter brettet på en eller annen måte til ledningene løsner. Når du har nok spillerom, snu brettet. Du vil ha det slik at brikken med "TINY13A" på er høyere opp og mer tilgjengelig. Hvis det er på feil side, snu det motsatt vei. Tuck fjæren under siden. Dette vil midlertidig holde det på plass og gjøre det lettere å komme til brikken. Hvis du har problemer med dette kan du sannsynligvis skru av den andre skjøten og desolde de to ledningene fra den andre siden slik at du kan fjerne brettet helt, men jeg har ikke prøvd det.

Trinn 4: Koble til blinkende maskinvare

Koble til blinkende maskinvare
Koble til blinkende maskinvare
Koble til blinkende maskinvare
Koble til blinkende maskinvare
Koble til blinkende maskinvare
Koble til blinkende maskinvare

Nå bruker du SOIC8 -klippet til å koble ATtiny13 -brikken og programmereren din. Med SOIC8 -klippet mitt, hvis jeg har den røde ledningen til venstre i begge ender, tilsvarer pinneraden nærmere meg på klipsenden en rad med pinner nærmere meg på kontakten, når kontakten vender ned. (se mitt superkunstneriske diagram) Denne guiden anbefaler at du bruker en USB ASP V2.0 programmerer. Hvis du gjør det, kobler du det til slik:

  • Pin 1 på ATtiny13 til pin 5 på USB ASP (tilbakestill)
  • Pin 4 på ATtiny13 til pin 10 på USB ASP (bakken)
  • Pin 5 på ATtiny13 til pin 1 på USB ASP (MOSI)
  • Pin 6 på ATtiny13 til pin 9 på USB ASP (MISO)
  • Pin 7 på ATtiny13 til pin 7 på USB ASP (SCK)
  • Pin 8 på ATtiny13 til pin 2 på USB ASP (VCC)

Hvis du, som meg, bruker en Arduino, må du gjøre litt mer forberedelse. Følg trinn null og to i denne guiden:

Åpne Arduino IDE og kontroller at Arduino er koblet til datamaskinen din. Finn ISP -skissen i Fil> Eksempler> 11. ArduinoISP> ArduinoISP og last den opp til din Arduino. Koble deretter ATtiny13 til den slik:

  • Pin 1 på ATtiny13 til pin 10 på Arduino (tilbakestill)
  • Pin 4 på ATtiny13 til GND på Arduino (bakken)
  • Pin 5 på ATtiny13 til pin 11 på Arduino (MOSI)
  • Pin 6 på ATtiny13 til pin 12 på Arduino (MISO)
  • Pin 7 på ATtiny13 til pin 13 på Arduino (SCK)
  • Pin 8 på ATtiny13 til VCC / 5V / 3.3V på Arduino (alle skal fungere, men 5V er mer pålitelig) (VCC)

Jeg installerte maskinvarepakken også, men det var sannsynligvis ikke nødvendig. Hvis du er i tvil, prøv det. Det vil ikke gjøre noen skade. Men ikke brenn opplastingsprogrammet fordi det sannsynligvis vil mure lommelykten din.

Trinn 5: Flash det

For å blinke fastvaren må du installere AVRDUDE. For å sjekke at det fungerer med min Arduino, kjører jeg:

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

Hvis det fungerer, flytter jeg til en tom mappe et sted og kjører:

avrdude -v -p attiny13 -c stk500v1 -P /dev /ttyUSB0 -b 19200 -u -Utflash: r: flash -dump.hex: i -Ueeprom: r: eeprom -dump.hex: i -Ulfuse: r: lfuse -dump.hex: i -Uhfuse: r: hfuse -dump.hex: i

For å ta en sikkerhetskopi av eksisterende fastvare. Og for å blinke det, fra mappen med den modifiserte blf-a6.hex jeg kjører:

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

Av en eller annen grunn må jeg spesifisere stk500v1 som programmerer, og det fungerte ikke med mindre jeg spesifiserte port og baud rate. Hvis du bruker en Arduino og er i tvil, kan du prøve å koble ATtiny13 fra Arduino og laste opp en skisse i Arduino IDE ved å bruke innstillingene her. Det mislykkes, men det skal si hvilken kommando den bruker i konsollvinduet. Du kan kopiere attributtene til AVRDUDE -kommandoen.

Hvis du bruker en USB ASP -programmerer, kan du i stedet kjøre:

avrdude -v -p attiny13 -c usbasp -n

For å se om det fungerer og:

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

Slik tar du en sikkerhetskopi og:

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

For å blinke.

-Uflash: w: blf-a6.hex refererer til filen den blinker. Erstatt blf-a6.hex med filnavnet ditt hvis det er annerledes.

-Ulfuse: w: 0x75: m og -Uhfuse: w: 0xFF: m er sikringene. Din kan være annerledes, så dobbeltsjekk verdiene i lommelykt-firmware/bin/flash-tiny13-fuses.sh.

Hvis det gir en feil utenfor området, betyr det at bildet er for stort til å passe på brikken, og du må fjerne noen av koden. Hvis den blinker vellykket, bør den vise noen fremdriftslinjer, og si "avrdude ferdig. Takk."

Hvis det står "ugyldig enhetssignatur" og jumperen på programmereren din er satt til 3,3v, kan du prøve å sette den til 5v.

Etter at du har blinket den, sett sammen lommelykten på nytt og se om den fungerer. Mine gjorde, men timingen er av for noen ̶r̶e̶a̶s̶o̶n̶.̶ det lange presser trenger å være omtrent tre sekunder i stedet for ̶1̶.̶5̶.̶ Jeg vet ikke hvis den er noe å gjøre med Arduino eller fordi jeg har brukt feil innstillinger ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶ hvis du har noen ide, ̶ gi meg beskjed i ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶

Edit: Jeg fikset det. (se trinn 1)

Anbefalt: