» Thema's » Reparatie, modernisering »Een zaklamp laten knipperen om de bedrijfsmodus te wijzigen

Hoe een zaklamp te flitsen om de bedrijfsmodi te wijzigen


De auteur van dit materiaal hield niet van de normale werking van de zaklamp BLF A6. Vervolgens besloot hij het softwaregedeelte van de zaklamp te laten flitsen en de modi in te stellen. Het bleek dat dit niet zo eenvoudig is, er is een minimum aan informatie over de firmware en pinouts en hij moest het beetje bij beetje verzamelen. En zodat ze niet verdwaalde, besloot hij anderen te helpen en alles in een artikel te regelen.

Dus voor werk heb je het volgende nodig:
Zaklamp BLF A6 (waarschijnlijk werkt dit met andere zaklampen op basis van ATtiny).
Pincet / dunne tang / kleine schaar.
Een computer voor firmware, bij voorkeur met een Linux-distributie.
USB ASP / programmeur Arduino / iets dat AVR-programmering kan doen (uiteraard is de USB ASP-programmeur beter, maar de wizard gebruikte Arduino).
High-speed Rail-to-Rail-versterker [SOIC-8] (je kunt het zonder, maar het is erg lastig).
Development board en jumperdraden voor aansluiting.

Firmware.
Firmware voor BLF A6 (en vele andere zaklampen) is beschikbaar hier. Hierover is een discussieforum beschikbaar de link.
U kunt de firmware downloaden door de zoekopdracht "bzr branch lp: flashlight-firmware" uit te voeren. Zaklamp-firmware / ToyKeeper / blf-a6-map nodig. Het bevat een gecompileerd bestand. hex, klaar voor firmware (blf-a6.hex) en C-code, die ook kan worden gewijzigd (blf-a6.c). Als je standaardfirmware wilt flashen, kun je de volgende stap overslaan en gewoon blf-a6.hex gebruiken. Sommige andere firmware in deze repository zal waarschijnlijk ook werken.

Wijzig firmware.
Voorzichtig symbolen, om de betekenis niet te verstoren, worden zonder vertaling gegeven.
Open blf-a6.c in uw favoriete teksteditor of IDE. De meest interessante regels zijn de modusgroepen tussen regels 94 en 109. Ze zien er als volgt uit:
// Modusgroep 1
#define NUM_MODES1 7
// PWM-niveaus voor het grote circuit (FET of Nx7135)
#define MODESNx1 0,0,0,7,56,137,255
// PWM-niveaus voor het kleine circuit (1x7135)
#define MODES1x1 3,20,110,255,255,255,0
// Mijn voorbeeld: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32)
// Krono-voorbeeld: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78)
// Manker2: 2 = 21, 3 = 39, 4 = 47, ... 6? = 68
// PWM-snelheid voor elke modus
#define MODES_PWM1 FASE, SNEL, SNEL, SNEL, SNEL, SNEL, FASE
// Modusgroep 2
#define NUM_MODES2 4
#define MODESNx2 0,0,90,255
#define MODES1x2 20.230.255,0
#define MODES_PWM2 SNEL, SNEL, SNEL, FASE

Voor elke groep is MODESN de PWM-waarde die wordt gebruikt voor FET en MODES1 is de PWM-waarde die wordt gebruikt voor 7135 in elke modus. Het nummer ligt in het bereik van 0 tot 255 en komt overeen met de helderheid van het licht. Meer info
hier. (scroll naar beneden naar "Mode control:") De master weet niet zeker wat de PWM-snelheid is.Als iemand het weet, vertel het me dan in de comments. Een veldeffecttransistor kan meer licht produceren dan 7135, maar 7135 houdt het lichtniveau gedurende de hele levensduur van de batterij min of meer gelijk, terwijl bij gebruik van een veldeffecttransistor het licht dimt wanneer de batterij leeg is.

Hier kunnen we de PWM-waarden aanpassen om modi naar onze smaak te maken. Je kunt ook het aantal modi wijzigen, maar de meester heeft dit niet gedaan omdat hij vier modi nodig heeft, en dit is het nummer in de tweede groep. Hij wilde een donkerder maanlichtregime en zette daarom de eerste op 0/1. Hij vindt de turbomodus ook een beetje zinloos, dus heb ik hem vervangen door 137/255, wat overeenkomt met de zesde modus in een groep van zeven modi.

Als je de code hebt die je nodig hebt, moet je deze compileren in een .hex-bestand. Je hebt tenminste gcc-avr en avr-libc nodig. Als je problemen hebt, kijk dan naar andere afhankelijkheden in het readme-bestand. De repository bevat een build-script, dus alles wat u hoeft te doen is uitvoeren:
../../bin/build.sh 13 blf-a6
in de blf-a6 map. ../../Bin/build.sh is het script. 13 geeft aan dat het voor ATtiny13 is, en blf-a6 geeft aan dat het voor BLF A6 is.
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.c
avr-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
Programma: 1022 bytes (99,8% vol)
gegevens: 13 bytes (20,3% vol)
De teams zijn al geoptimaliseerd qua grootte, dus als er staat dat ze voor meer dan 100% vol zijn, probeer dan te verwijderen
# definieer FULL_BIKING_STROBE

Lijn 125 spreuken klein fiets flitslicht. Als dit niet genoeg is, moet er iets anders worden gesneden.
Als de compilatie is voltooid, moet de map een bestand bevatten met de naam blf-a6.hex. Dit is een gecompileerde code, klaar voor firmware.

Demontage van de zaklamp.
Schroef de koplamp van de zaklamp los. Er zijn twee schroefverbindingen. Degene die zich dichter bij de zaklamp bevindt, bevestigt de reflector en LED, en degene die dichter bij het midden ligt, bevestigt het bord. We hebben een gemiddelde nodig.

Binnenin zie je een borgring met een veer en twee gaten langs de randen. Steek een pincet / dunne tang / schaar in de gaten en draai ze linksom.

Zodra de ring is verwijderd, heb je toegang tot het bord. Het zit nog steeds vast met twee draden, dus wees voorzichtig. Ze zijn in elkaar gedraaid, dus draai het bord totdat de draden los zitten. Draai dan het bord om. Het is noodzakelijk dat de chip met het opschrift "TINY13A" beter toegankelijk was.

Als de draden kort zijn en het lukt niet, dan moet je het bord verwijderen.






Verbinding.
Nu moet je het bord voorbereiden op firmware.
De wizard gebruikt SOIC8 om de ATtiny13-chip en de programmeur te verbinden.
Hoe een zaklamp te flitsen om de bedrijfsmodi te wijzigen



Zie de foto terwijl de wizard de verbinding maakt. Let op de rode lijn in de tweede figuur.

Als u de USB ASP V2.0-programmeur gebruikt, moet u deze als volgt aansluiten:
Pin 1 op ATtiny13 - Pin 5 op USB ASP (reset)
Pin 4 op ATtiny13 - Pin 10 op USB ASP (aarde)
Pin 5 op ATtiny13 - Pin 1 op USB ASP (MOSI)
Pin 6 op ATtiny13 - Pin 9 op USB ASP (MISO)
Pin 7 op ATtiny13 - Pin 7 op USB ASP (SCK)
Pin 8 op ATtiny13 - Pin 2 op USB ASP (VCC)

Als je Arduino gebruikt, zoals de wizard, volg dan deze stappen:
Open de Arduino IDE en zorg ervoor dat je Arduino is aangesloten op de computer. Zoek de ISP-schets in Bestand> Voorbeelden> 11.ArduinoISP> ArduinoISP en upload deze naar Arduino. Sluit vervolgens de ATtiny13 als volgt op aan:
Pin 1 op ATtiny13 - Pin 10 op Arduino (reset)
Pin 4 op ATtiny13 - GND op Arduino (Ground)
Pin 5 op ATtiny13 - Pin 11 op Arduino (MOSI)
Pin 6 op ATtiny13 - Pin 12 op Arduino (MISO)
Pin 7 op ATtiny13 - Pin 13 op Arduino (SCK)
Pin 8 op ATtiny13 - VCC / 5V of 3.3V op Arduino (bij voorkeur 5V)

Firmware.
Stap 5: flits het
Voor firmware moet u AVRDUDE installeren. Om te controleren of dit werkt met Arduino, schrijft de wizard een commando:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -n
Als dit werkt, ga dan naar de lege map en registreer:
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
Maak een reservekopie van bestaande firmware. Om te knipperen, vanuit de map met de gewijzigde blf-a6.hex begint het:
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
U moet stk500v1 specificeren als programmeur en de poort en gegevensoverdrachtsnelheid specificeren. Als je Arduino gebruikt en twijfelt, probeer dan ATtiny13 los te koppelen van Arduino en upload de schets naar de Arduino IDE met deze instellingen. Dit zal niet werken, maar je zult erachter komen welke opdracht wordt gebruikt in het consolevenster. Vervolgens kunt u de kenmerken kopiëren naar de AVRDUDE-opdracht.

Als u een USB ASP-programmeur gebruikt, voer dan uit:
avrdude -v -p attiny13 -c usbasp -n
Om te zien of dit werkt:
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
Maak een backup:
avrdude -v -p attiny13 -c usbasp -u -Uflash: w: blf-a6.hex -Ulfuse: w: 0x75: m -Uhfuse: w: 0xFF: m
Knipperen:
-Uflash: w: blf-a6.hex. Vervang blf-a6.hex door uw bestandsnaam als deze anders is.
-Ulfuse: w: 0x75: m en -Uhfuse: w: 0xFF: m
Als er een fout optreedt, betekent dit dat het afbeeldingsbestand te groot is om op de chip te passen en dat u een deel van de code moet verwijderen. Als alles normaal is, moeten er enkele voortgangsindicatoren worden weergegeven en vervolgens de woorden 'avrdude done. Thank you'.
Nadat je de chip hebt geflitst, monteer je de zaklamp en kijk of deze werkt.
Vraag \ onderwerp wordt automatisch gepubliceerd in de sociale media. sitenetwerk - blijf op de hoogte voor antwoorden daar:

Geschikt voor onderwerp

Gerelateerde onderwerpen

Voeg een opmerking toe

    • lachglimlachtxaxaokweet het nietyahoonea
      baaskrabbendwaasjaja-jaagressiefgeheim
      sorrydansdance2dance3pardonhulpdrankjes
      stopvriendengoedgoedfluitjebezwijmdtong
      rookklappencrayverklarenbeledigenddon-t_mentiondownloaden
      hittebooslach1mdavergaderingmoskingnegatief
      not_ipopcornstraffenlezenschrikschriktzoeken
      bespottendankjewelditto_clueUmnikacuutmee eens
      slechtbeeeblack_eyeblum3: oopscheppenverveling
      gecensureerdbeleefdheidgeheim2bedreigenoverwinningyusun_bespectacled
      shokrespektlolvoorgekomenwelkomkrutoyya_za
      ya_dobryihelperne_huliganne_othodifludverbodsluiten

We raden je aan om te lezen:

Geef het voor de smartphone ...