Inhoudsopgave:
- Benodigdheden
- Stap 1: Download de firmware
- Stap 2: wijzig de firmware
- Stap 3: Demonteer de zaklamp
- Stap 4: sluit knipperende hardware aan
- Stap 5: Flash het
Video: Aangepaste firmware flashen naar een BLF A6-zaklamp - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Ik heb sinds kort een BLF A6. Het is erg mooi, maar ik hou niet van een van de standaardmodusgroepen, dus ik heb de firmware aangepast om mijn voorkeurshelderheden te gebruiken. De informatie was moeilijk te vinden, dus ik plaats alles wat ik heb geleerd hier voor mezelf en anderen.
Benodigdheden
BLF A6 (het zal waarschijnlijk werken met andere op ATtiny gebaseerde zaklampen)
Pincet / dunne tang / kleine schaar / iets om de borgring van het bestuurdersbord los te maken
Computer om mee te flashen, bij voorkeur met een Linux-distributie
USB ASP-programmeur / Arduino / iets dat AVR-programmering kan doen (blijkbaar wordt de USB ASP-programmeur aanbevolen, maar ik gebruikte een Arduino)
SOIC8-clip (het is mogelijk om zonder te doen, maar het is erg onhandig en helemaal niet aanbevolen)
(optioneel) Breadboard en/of jumperdraden om het aansluiten te vergemakkelijken
Stap 1: Download de firmware
De firmware voor de BLF A6 (en vele andere zaklampen) is hier beschikbaar. De auteur vertelt er hier over. Je kunt het downloaden door het volgende uit te voeren:
bzr branch lp:~toykeeper/zaklamp-firmware/blf-a6-final
in een terminal. (misschien moet je bzr installeren)
Opmerking: in een eerdere bewerking van deze Instructable heb ik in plaats daarvan "bzr branch lp:flashlight-firmware" gebruikt. Ik heb sindsdien geleerd dat dit een verouderde versie downloadt met verkeerde waarden voor de off-time condensator, waardoor de knop onaangenaam lang ingedrukt wordt. (dankzij dit draadje op Reddit)
De gewenste map is blf-a6-final/ToyKeeper/blf-a6. Het bevat een gecompileerd.hex-bestand dat klaar is om te flashen (blf-a6.hex) en de C-code die u kunt wijzigen. (blf-a6.c) Als u de standaardfirmware wilt flashen, kunt u de volgende stap overslaan en gewoon blf-a6.hex gebruiken. Sommige van de andere firmware in die repository zullen waarschijnlijk ook werken.
Stap 2: wijzig de firmware
Open blf-a6.c in uw favoriete teksteditor of IDE. De meest interessante regels zijn de modusgroepen tussen regel 116 en 131. 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) # definieer MODES1x1 2, 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, 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 SNEL, SNEL, SNEL, FASE
Voor elke groep is MODESN de PWM-waarde die wordt gebruikt voor de FET en MODES1 is de PWM-waarde die wordt gebruikt voor de 7135 in elke modus. Het getal ligt tussen 0 en 255 en komt overeen met de helderheid van het licht. Meer informatie hier. (scroll naar beneden naar "Mode-regeling:") Ik weet niet zeker wat PWM-snelheid precies is. Als iemand het weet, vertel het me dan in de comments. De FET kan meer licht produceren dan de 7135, maar de 7135 houdt het lichtniveau min of meer hetzelfde gedurende de levensduur van de batterij, terwijl de FET donkerder wordt naarmate de batterij leeg raakt.
Hier kunt u de PWM-waarden aanpassen om modi naar uw wens te produceren. Je kunt waarschijnlijk ook het aantal modi wijzigen, maar ik heb het niet geprobeerd omdat ik vier modi wilde, wat toevallig het nummer in de tweede groep is. Ik wilde een donkerdere maanlichtmodus, dus ik zette de eerste op 0/1, en ik vind de turbomodus een beetje zinloos, dus heb ik hem vervangen door 137/255, het equivalent van modus zes in de groep met zeven modi. U kunt de rest van de code waarschijnlijk indien nodig wijzigen, maar ik heb het niet geprobeerd.
Als je de gewenste code hebt, moet je deze compileren naar een.hex-bestand. Je hebt op zijn minst gcc-avr en avr-libc nodig. Als je problemen hebt, kijk dan naar de andere afhankelijkheden in de firmware readme. De repository bevat een buildscript, maar ik kreeg het niet werkend. In plaats daarvan heb ik de oude versie gedownload met
bzr branch lp:zaklamp-firmware
en kopieerde het oude build-script (dat ik aan het werk kon) over het nieuwe. Toen liep ik:
../../bin/build.sh 13 blf-a6
in de blf-a6-map. (er zou een betere manier moeten zijn om dat te doen) De../../bin/build.sh roept het script aan, de 13 specificeert dat het aan het bouwen is voor een ATtiny13 en de blf-a6 specificeert dat het voor de BLF A6 is. (duh) Het zou je moeten vertellen welke commando's het uitvoert en je de output geven. De mijne ziet er zo uit:
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-warnings -O ihex blf-a6.elf blf-a6.hex Programma: 1022 bytes (99,8% vol) Gegevens: 13 bytes (20,3% vol)
De commando's zijn al geoptimaliseerd voor grootte, dus als het zegt dat het meer dan 100% vol is, probeer dan commentaar te geven
#define FULL_BIKING_STROBE
op lijn 147 om de kleinere minimale fietsflitser te gebruiken. Als het nog steeds niet past, moet je waarschijnlijk ergens meer code verwijderen. Als het compileren klaar is, zou er een bestand met de naam blf-a6.hex in de map moeten staan. Dit is je gecompileerde code, klaar om te flashen.
Stap 3: Demonteer de zaklamp
Schroef het uiteinde van de lamp tegen de klok in los. Er zijn hier twee schroefverbindingen. Degene die zich dichter bij het gloeilampuiteinde van de zaklamp bevindt, opent de reflector en LED, en degene die dichter bij het midden is, opent het bestuurdersbord. Je wilt die dichter bij het midden.
Binnenin zou je de batterijveer en een borgring met twee gaten erin moeten zien. Steek je pincet / dunne tang / schaar in de gaatjes en draai ze tegen de klok in. Het is behoorlijk stijf en het gebruik van twee afzonderlijke objecten zal je waarschijnlijk niet genoeg hefboomwerking geven. Ik gebruikte de schaar op een Zwitsers zakmes.
Zodra je de ring eruit hebt, maak je het bestuurdersbord vrij. Het zit nog steeds vast met twee draden, dus wees voorzichtig. Ze zijn in elkaar gedraaid, dus draai het bord op de een of andere manier totdat de draden loskomen. Als je genoeg speelruimte hebt, draai je het bord om. Je wilt dat de chip met "TINY13A" erop hoger staat en beter toegankelijk is. Als het aan de verkeerde kant is, draai het dan de andere kant op. Stop de veer onder de zijkant. Dit houdt het tijdelijk op zijn plaats en maakt het gemakkelijker om bij de chip te komen. Als je hier problemen mee hebt, kun je waarschijnlijk de andere verbinding losschroeven en de twee draden van de andere kant losmaken, zodat je het bord volledig kunt verwijderen, maar ik heb het niet geprobeerd.
Stap 4: sluit knipperende hardware aan
Nu gebruik je de SOIC8 clip om de ATtiny13 chip en je programmer aan te sluiten. Met mijn SOIC8-clip, als ik de rode draad aan de linkerkant van beide uiteinden heb, komt de rij pinnen die het dichtst bij me is aan het uiteinde van de clip overeen met de rij pinnen die het dichtst bij me is aan het uiteinde van de connector, wanneer de connector naar beneden is gericht. (zie mijn superartistieke diagram) Deze gids raadt je aan een USB ASP V2.0 programmer te gebruiken. Als je dat doet, sluit je het als volgt aan:
- Pin 1 op de ATtiny13 naar pin 5 op de USB ASP (reset)
- Pin 4 op de ATtiny13 naar pin 10 op de USB ASP (aarde)
- Pin 5 op de ATtiny13 naar pin 1 op de USB ASP (MOSI)
- Pin 6 op de ATtiny13 naar pin 9 op de USB ASP (MISO)
- Pin 7 op de ATtiny13 naar pin 7 op de USB ASP (SCK)
- Pin 8 op de ATtiny13 naar pin 2 op de USB ASP (VCC)
Als je, zoals ik, een Arduino gebruikt, moet je wat meer voorbereiding doen. Volg stap nul en twee van deze handleiding:
Open de Arduino IDE en zorg ervoor dat uw Arduino is aangesloten op uw computer. Zoek de ISP-schets in Bestand>Voorbeelden>11. ArduinoISP>ArduinoISP en upload deze naar uw Arduino. Sluit de ATtiny13 er dan als volgt op aan:
- Pin 1 op de ATtiny13 naar pin 10 op de Arduino (reset)
- Pin 4 op de ATtiny13 naar GND op de Arduino (aarde)
- Pin 5 op de ATtiny13 naar pin 11 op de Arduino (MOSI)
- Pin 6 op de ATtiny13 naar pin 12 op de Arduino (MISO)
- Pin 7 op de ATtiny13 naar pin 13 op de Arduino (SCK)
- Pin 8 op de ATtiny13 naar VCC / 5V / 3.3V op de Arduino (alles zou moeten werken, maar 5V is betrouwbaarder) (VCC)
Ik heb het hardwarepakket ook geïnstalleerd, maar dat was waarschijnlijk niet nodig. Probeer het bij twijfel. Het kan geen kwaad. Maar verbrand de bootloader niet, omdat deze waarschijnlijk je zaklamp zal blokkeren.
Stap 5: Flash het
Om de firmware te flashen, moet u AVRDUDE installeren. Om te controleren of het werkt met mijn Arduino, voer ik uit:
avrdude -v -p attiny13 -c stk500v1 -P /dev/ttyUSB0 -b 19200 -n
Als het werkt, ga ik ergens naar een lege map en voer het volgende uit:
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
Om een back-up te maken van de bestaande firmware. En om het te flashen, vanuit de map met de gewijzigde blf-a6.hex die ik uitvoer:
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
Om de een of andere reden moet ik stk500v1 specificeren als de programmeur, en het werkte niet tenzij ik de poort en de baudrate specificeerde. Als je een Arduino gebruikt en twijfelt, probeer dan je ATtiny13 los te koppelen van de Arduino en een schets te uploaden in de Arduino IDE met behulp van de instellingen hier. Het zal mislukken, maar het zou moeten zeggen welk commando het gebruikt in het consolevenster. U kunt de attributen naar uw AVRDUDE-opdracht kopiëren.
Als u een USB ASP-programmeur gebruikt, voert u in plaats daarvan het volgende uit:
avrdude -v -p attiny13 -c usbasp -n
Om te zien of het werkt en:
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
Om een back-up te maken en:
avrdude -v -p attiny13 -c usbasp -u -Uflash:w:blf-a6.hex -Ulfuse:w:0x75:m -Uhfuse:w:0xFF:m
Om het te flashen.
-Uflash:w:blf-a6.hex verwijst naar het bestand dat knippert. Vervang blf-a6.hex door uw bestandsnaam als deze anders is.
-Ulfuse:w:0x75:m en -Uhfuse:w:0xFF:m zijn de zekeringen. De jouwe kan anders zijn, dus controleer de waarden in flashlight-firmware/bin/flash-tiny13-fuses.sh.
Als het een fout buiten het bereik geeft, betekent dit dat de afbeelding te groot is om op de chip te passen en dat u een deel van de code moet verwijderen. Als het met succes knippert, zou het enkele voortgangsbalken moeten weergeven en vervolgens "avrdude done. Thank you" zeggen.
Als er "ongeldige apparaathandtekening" staat en de jumper op uw programmer is ingesteld op 3,3v, probeer deze dan in te stellen op 5v.
Nadat je het hebt geflitst, zet je je zaklamp weer in elkaar en kijk je of het werkt. Mine deed, maar de timing is uitgeschakeld voor een aantal ̶r̶e̶a̶s̶o̶n̶.̶ de lange persen moeten worden ongeveer drie seconden in plaats van 1.5. Ik weet niet of het is iets te maken met de Arduino of omdat ik heb gebruikt de verkeerde instellingen ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶ Als je enig idee, ̶ laat het me weten in het ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶
Edit: ik heb het aangepast. (zie stap 1)
Aanbevolen:
Bouw een draagbare bewegingstracker (BLE van Arduino naar een aangepaste Android Studio-app): 4 stappen
Bouw een draagbare bewegingstracker (BLE van Arduino tot een aangepaste Android Studio-app): Bluetooth Low Energy (BLE) is een vorm van Bluetooth-communicatie met laag vermogen. Draagbare apparaten, zoals de slimme kleding die ik help ontwerpen bij Predictive Wear, moeten het stroomverbruik waar mogelijk beperken om de levensduur van de batterij te verlengen, en regelmatig gebruik maken van BLE
Game-saves kopiëren naar een MU van Microsoft of een derde partij op een eenvoudige manier: 9 stappen
Game Saves kopiëren naar een Microsoft of 3rd Party MU op de GEMAKKELIJKE MANIER .: Originele tutorial HIER Er zijn tal van Softmod-tutorials die er zijn en ze zijn allemaal goed, maar het is lastig om de opslagbestanden op de Xbox HDD te krijgen, ik heb een leven gemaakt cd die het eenvoudig maakt om dat te doen. Dit is geen complete softmod-tutorial, dit
Flash AT Command Firmware naar ESP01-module (vereist een USB-naar-TTL-adapter): 5 stappen
Flash AT Command Firmware naar ESP01-module (vereist een USB-naar-TTL-adapter): door Jay Amiel AjocGensan PHfacebook.com/geeamealyoutube.com/jayamielajoc
Hoe u uw aangepaste firmware MOD voor uw PSP: 12 stappen
How to Your Custom Firmware MOD Your PSP: In deze instructable laat ik je zien hoe je een pandora-batterij, een magische geheugenstick en het installatieproces maakt! Ik zal je ook laten zien hoe je je Pandora-batterij terug kunt zetten naar een normale batterij! Video inbegrepen!Materialen:-Allereerst je g
Een Meraki / Accton / Fonero flashen met OpenWRT met Linux: 3 stappen
Een Meraki / Accton / Fonero flashen met OpenWRT Linux gebruiken: Deze instructable laat je zien hoe je je Meraki / Accton / Fonero-hardware flasht met OpenWRT Linux met behulp van een Linux-pc. Auteur website: http://ruckman.net