» Thèmes » Réparation, modernisation »Comment flasher une lampe de poche pour changer de mode de fonctionnement

Comment flasher une lampe de poche pour changer de mode de fonctionnement


L'auteur de ce matériel n'a pas aimé les modes de fonctionnement normaux de la lampe de poche BLF A6. Puis il a décidé de flasher la partie logicielle de la lampe de poche, en réglant ses modes. En fin de compte, ce n'est pas si simple, il y a un minimum d'informations sur le firmware et les brochages et il a dû les collecter petit à petit. Et pour qu'elle ne se perde pas, il a décidé d'aider les autres et de tout arranger dans un article.

Donc, pour le travail, vous aurez besoin des éléments suivants:
Lampe de poche BLF A6 (cela fonctionnera probablement avec d'autres lampes de poche basées sur ATtiny).
Brucelles / pinces fines / petits ciseaux.
Un ordinateur pour le firmware, de préférence avec une distribution Linux.
USB ASP / Programmeur Arduino / quelque chose que la programmation AVR peut faire (évidemment, le programmeur USB ASP est meilleur, mais l'assistant a utilisé Arduino).
Amplificateur Rail-to-Rail à grande vitesse [SOIC-8] (vous pouvez vous en passer, mais c'est très gênant).
Carte de développement et fils de connexion pour la connexion.

Firmware.
Le firmware pour BLF A6 (et de nombreuses autres lampes de poche) est disponible ici. Un forum de discussion est disponible sur ce le lien.
Vous pouvez télécharger le firmware en exécutant la recherche "bzr branch lp: flashlight-firmware". Besoin du dossier de la lampe de poche-firmware / ToyKeeper / blf-a6. Il contient un fichier compilé. hex, prêt pour le firmware (blf-a6.hex) et le code C, qui peuvent également être modifiés (blf-a6.c). Si vous souhaitez flasher le firmware d'origine, vous pouvez ignorer l'étape suivante et utiliser simplement blf-a6.hex. Certains autres micrologiciels de ce référentiel fonctionneront probablement également.

Changer le firmware.
Attention les symboles, pour ne pas dénaturer le sens, sont donnés sans traduction.
Ouvrez blf-a6.c dans votre éditeur de texte ou IDE préféré. Les lignes les plus intéressantes sont les groupes de modes entre les lignes 94 et 109. Ils ressemblent à ceci:
// Groupe de modes 1
#define NUM_MODES1 7
// Niveaux PWM pour le grand circuit (FET ou Nx7135)
#define MODESNx1 0,0,0,7,56,137,255
// Niveaux PWM pour le petit circuit (1x7135)
#define MODES1x1 3,20,110,255,255,255,0
// Mon échantillon: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32)
// Échantillon Krono: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78)
// Manker2: 2 = 21, 3 = 39, 4 = 47, ... 6? = 68
// Vitesse PWM pour chaque mode
#define MODES_PWM1 PHASE, FAST, FAST, FAST, FAST, FAST, PHASE
// Groupe de modes 2
#define NUM_MODES2 4
#define MODESNx2 0,0,90,255
#define MODES1x2 20,230,255,0
#define MODES_PWM2 FAST, FAST, FAST, PHASE

Pour chaque groupe, MODESN est la valeur PWM utilisée pour FET, et MODES1 est la valeur PWM utilisée pour 7135 dans chaque mode. Le nombre est compris entre 0 et 255 et correspond à la luminosité de la lumière. En savoir plus
ici. (faites défiler jusqu'à "Contrôle de mode:") Le maître n'est pas sûr de la vitesse PWM.Si quelqu'un le sait, dites-le-moi dans les commentaires. Un transistor à effet de champ peut produire plus de lumière que le 7135, mais le 7135 maintient le niveau de lumière plus ou moins le même pendant toute la durée de vie de la batterie, tandis que lorsque vous utilisez un transistor à effet de champ, la lumière diminue lorsque la batterie est épuisée.

Ici, nous pouvons ajuster les valeurs PWM pour créer des modes à notre goût. Vous pouvez également changer le nombre de modes, mais le maître ne l'a pas fait car il a besoin de quatre modes, et c'est le numéro du deuxième groupe. Il voulait un régime de clair de lune plus sombre et a donc réglé le premier à 0/1. Il considère également le mode turbo un peu inutile, je l'ai donc remplacé par 137/255, ce qui équivaut au sixième mode dans un groupe de sept modes.

Lorsque vous avez le code dont vous avez besoin, vous devez le compiler dans un fichier .hex. Au moins, vous avez besoin de gcc-avr et avr-libc. Si vous rencontrez des problèmes, consultez les autres dépendances dans le fichier Lisez-moi. Le référentiel comprend un script de construction, donc tout ce que vous avez à faire est d'exécuter:
../../bin/build.sh 13 blf-a6
dans le dossier blf-a6. ../../Bin/build.sh est le script. 13 indique que c'est pour ATtiny13, et blf-a6 indique que c'est pour BLF A6.
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.c
avr-gcc -Mur -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
Programme: 1022 octets (99,8% complet)
données: 13 octets (20,3% plein)
Les équipes sont déjà optimisées en taille, donc s'il est écrit qu'elles sont à plus de 100% pleines, essayez de supprimer
#define FULL_BIKING_STROBE

Ligne 125 petits sorts vélo lumière stroboscopique. Si cela ne suffit pas, il faudra couper autre chose.
Une fois la compilation terminée, le dossier doit contenir un fichier nommé blf-a6.hex. Ceci est du code compilé, prêt pour le firmware.

Démontage de la lampe de poche.
Dévissez le projecteur de la lampe de poche. Il y a deux connexions à vis. Celui qui est le plus proche du corps de la lampe de poche fixe le réflecteur et la LED, et celui qui est le plus proche du milieu fixe la carte. Nous avons besoin d'une moyenne.

À l'intérieur, vous verrez un anneau élastique avec un ressort et deux trous le long des bords. Insérez des pincettes / pinces fines / ciseaux dans les trous et faites-les pivoter dans le sens antihoraire.

Une fois l'anneau retiré, vous aurez accès à la planche. Il est toujours attaché avec deux fils, alors faites attention. Ils sont torsadés ensemble, alors faites tourner la carte jusqu'à ce que les fils soient lâches. Retournez ensuite la planche. Il faut que la puce avec l'inscription "TINY13A" soit plus accessible.

Si les fils sont courts et que cela ne fonctionne pas, vous devez retirer la carte.






Connexion.
Vous devez maintenant préparer la carte pour le firmware.
L'assistant utilise SOIC8 pour connecter la puce ATtiny13 et le programmeur.
Comment flasher une lampe de poche pour changer de mode de fonctionnement



Voir la photo lorsque l'assistant établit la connexion. Remarquez la ligne rouge dans la deuxième figure.

Si vous utilisez le programmateur USB ASP V2.0, vous devez le connecter comme ceci:
Broche 1 sur ATtiny13 - Broche 5 sur USB ASP (réinitialisation)
Broche 4 sur ATtiny13 - Broche 10 sur USB ASP (masse)
Broche 5 sur ATtiny13 - Broche 1 sur USB ASP (MOSI)
Broche 6 sur ATtiny13 - Broche 9 sur USB ASP (MISO)
Broche 7 sur ATtiny13 - Broche 7 sur USB ASP (SCK)
Broche 8 sur ATtiny13 - Broche 2 sur USB ASP (VCC)

Si vous utilisez Arduino, comme l'assistant, suivez ces étapes:
Ouvrez l'IDE Arduino et assurez-vous que votre Arduino est connecté à l'ordinateur. Trouvez l'esquisse du FAI dans Fichier> Exemples> 11. ArduinoISP> ArduinoISP et téléchargez-la sur Arduino. Ensuite, connectez-y l'Attiny13 comme suit:
Broche 1 sur ATtiny13 - Broche 10 sur Arduino (réinitialisation)
Broche 4 sur ATtiny13 - GND sur Arduino (masse)
Broche 5 sur ATtiny13 - Broche 11 sur Arduino (MOSI)
Broche 6 sur ATtiny13 - Broche 12 sur Arduino (MISO)
Broche 7 sur ATtiny13 - Broche 13 sur Arduino (SCK)
Broche 8 sur ATtiny13 - VCC / 5V ou 3,3V sur Arduino (5V préféré)

Firmware.
Étape 5: flashez-le
Pour le firmware, vous devez installer AVRDUDE. Pour vérifier si cela fonctionne avec Arduino, l'assistant écrit une commande:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -n
Si cela fonctionne, allez dans le dossier vide et enregistrez-vous:
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
Faites une copie de sauvegarde du micrologiciel existant. Pour flasher, à partir du dossier avec le blf-a6.hex modifié, il démarre:
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
Vous devez spécifier stk500v1 en tant que programmeur et spécifier le port et la vitesse de transfert des données. Si vous utilisez Arduino et avez des doutes, essayez de déconnecter ATtiny13 d'Arduino et téléchargez l'esquisse sur l'IDE Arduino en utilisant ces paramètres. Cela ne fonctionnera pas, mais vous découvrirez quelle commande est utilisée dans la fenêtre de la console. Ensuite, vous pouvez copier les attributs dans la commande AVRDUDE.

Si vous utilisez un programmeur USB ASP, exécutez:
avrdude -v -p attiny13 -c usbasp -n
Pour voir si cela fonctionne:
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
Faites une sauvegarde:
avrdude -v -p attiny13 -c usbasp -u -Uflash: w: blf-a6.hex -Ulfuse: w: 0x75: m -Uhfuse: w: 0xFF: m
Pour flasher:
-Uflash: w: blf-a6.hex. Remplacez blf-a6.hex par votre nom de fichier s'il est différent.
-Ulfuse: w: 0x75: m et -Uhfuse: w: 0xFF: m
Si une erreur se produit, cela signifie que le fichier image est trop volumineux pour tenir sur la puce, et vous devrez supprimer une partie du code. Si tout est normal, certains indicateurs de progression devraient s'afficher, puis les mots "avrdude done. Merci".
Après avoir flashé la puce, assemblez la lampe de poche et voyez si cela fonctionne.
La question \ le sujet est automatiquement publié dans le social. réseau de sites - restez à l'écoute pour obtenir des réponses:

Convient pour le sujet

Sujets connexes

Ajoutez un commentaire

    • souriresouritxaxaokne sais pasYahoonea
      patronse gratterfououioui-ouiagressifsecret
      désolédansedanse2danse3pardonaiderles boissons
      arrêteramisbonbonsifflerévanouirla langue
      fumerapplaudircraydéclarermoqueurdon-t_mentiontélécharger
      chaleurirritérire1mdaréunionmasquagenégatif
      not_ipop-cornpunirlireeffrayerfait peurrecherche
      railleriemerci_vousçato_clueumnikaigud'accord
      mauvaisabeilleblack_eyeblum3rougirse vanterennui
      censuréplaisanteriesecret2menacervictoireyusun_bespectacled
      shokrespektlolprévalubienvenuekrutoyya_za
      ya_dobryiaidene_huliganne_othodifludinterdirefermer

Nous vous conseillons de lire:

Donnez-le au smartphone ...