İçindekiler:
- Gereçler
- Adım 1: Bellenimi İndirin
- Adım 2: Bellenimi Değiştirin
- 3. Adım: El Fenerini Sökün
- Adım 4: Yanıp Sönen Donanımı Bağlayın
- Adım 5: Flash It
Video: Bir BLF A6 El Fenerine Özel Ürün Yazılımını Yanıp Sönme: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Geçenlerde bir BLF A6 aldım. Çok hoş, ancak varsayılan mod gruplarından hiçbirini sevmiyorum, bu yüzden donanım yazılımını tercih ettiğim parlaklıkları kullanacak şekilde değiştirdim. Bilgiyi bulmak zordu, bu yüzden öğrendiğim her şeyi buraya kendim ve başkaları için koyuyorum.
Gereçler
BLF A6 (muhtemelen diğer ATtiny tabanlı el fenerleriyle çalışır)
Cımbız / ince pense / küçük makas / sürücü panosu tutma halkasını geri almak için bir şey
Yanıp sönecek bilgisayar, tercihen bir Linux dağıtımı çalıştırıyor
USB ASP programcısı / Arduino / AVR programlama yapabilen bir şey (görünüşe göre USB ASP programcısı önerilir, ancak bir Arduino kullandım)
SOIC8 klibi (onsuz yapmak mümkündür, ancak çok zor ve hiç önerilmez)
(isteğe bağlı) Bağlantıyı kolaylaştırmak için devre tahtası ve/veya atlama telleri
Adım 1: Bellenimi İndirin
BLF A6 (ve diğer birçok el feneri) için ürün yazılımı burada mevcuttur. Yazar burada anlatıyor. Çalıştırarak indirebilirsiniz:
bzr şube lp:~toykeeper/el feneri-firmware/blf-a6-final
bir terminalde. (bzr yüklemeniz gerekebilir)
Not: Bu Eğitilebilir Dosyanın önceki bir düzenlemesinde bunun yerine "bzr branch lp:flashlight-firmware" kullandım. O zamandan beri bunun, kapalı zaman kondansatörü için yanlış değerlere sahip eski bir sürümü indirdiğini ve düğmenin rahatsız edici şekilde uzun süre basılmasını sağladığını öğrendim. (Reddit'teki bu konuya teşekkürler)
İstediğiniz klasör blf-a6-final/ToyKeeper/blf-a6'dır. Flash'a hazır derlenmiş bir.hex dosyası (blf-a6.hex) ve değiştirebileceğiniz C kodu içerir. (blf-a6.c) Stok bellenimini flaş etmek istiyorsanız, bir sonraki adımı atlayabilir ve sadece blf-a6.hex'i kullanabilirsiniz. Bu depodaki diğer donanım yazılımlarından bazıları da muhtemelen çalışacaktır.
Adım 2: Bellenimi Değiştirin
blf-a6.c'yi tercih ettiğiniz metin düzenleyicide veya IDE'de açın. En ilginç satırlar, 116 ve 131 satırları arasındaki mod gruplarıdır. Şuna benziyorlar:
// Mod grubu 1#define NUM_MODES1 7 // Büyük devre için PWM seviyeleri (FET veya Nx7135) #define MODESNx1 0, 0, 0, 7, 56, 137, 255 // Küçük devre için PWM seviyeleri (1x7135) # tanım MODES1x1 2, 20, 110, 255, 255, 255, 0 // Benim örneğim: 6=0..6, 7=2..11, 8=8..21(15..32) // Krono örneği: 6=5..21, 7=17..32, 8=33..96(50..78) // Manker2: 2=21, 3=39, 4=47, … 6?=68 // Her mod için PWM hızı #define MODES_PWM1 FAZ, HIZLI, HIZLI, HIZLI, HIZLI, HIZLI, FAZ // Mod grubu 2 #define NUM_MODES2 4 #define MODESNx2 0, 0, 90, 255 #define MODES1x2 20, 230, 255, 0 #define MODES_PWM2 HIZLI, HIZLI, HIZLI, FAZ
Her grup için MODESN, FET için kullanılan PWM değeridir ve MODES1, her modda 7135 için kullanılan PWM değeridir. Sayı 0 ile 255 arasındadır ve ışığın parlaklığına karşılık gelir. Daha fazla bilgi burada. ("Mod düzenlemesi:" bölümüne gidin) PWM hızının tam olarak ne olduğundan emin değilim. Bilen varsa yorumlarda söylesin. FET, 7135'ten daha fazla ışık üretebilir, ancak 7135, pil ömrü boyunca ışık seviyesini aşağı yukarı aynı tutarken, FET pil bittiğinde daha koyulaşır.
Burada beğeninize göre modlar üretmek için PWM değerlerini ayarlayabilirsiniz. Muhtemelen mod sayısını da değiştirebilirsiniz ama ben dört mod istediğim için denemedim ki bu ikinci gruptaki sayı oluyor. Daha koyu bir ay ışığı modu istedim, bu yüzden ilkini 0/1'e ayarladım ve turbo modunu biraz anlamsız buluyorum, bu yüzden yedi mod grubundaki altı modun eşdeğeri olan 137/255 ile değiştirdim. Gerekirse muhtemelen kodun geri kalanını değiştirebilirsiniz, ancak denemedim.
İstediğiniz kodu aldığınızda, onu bir.hex dosyasına derlemeniz gerekir. En azından gcc-avr ve avr-libc'ye ihtiyacınız var. Sorun yaşarsanız, bellenim benioku dosyasındaki diğer bağımlılıklara bakın. Depo bir derleme komut dosyası içeriyor, ancak çalışmasını sağlayamadım. Bunun yerine, eski sürümü ile indirdim
bzr şube lp: el feneri-firmware
ve eski yapı betiğini (çalışabileceğim) yenisinin üzerine kopyaladım. Sonra koştum:
../../bin/build.sh 13 blf-a6
blf-a6 klasöründe. (bunu yapmanın daha iyi bir yolu olmalı)../../bin/build.sh komut dosyasını çağırır, 13 bir ATtiny13 için oluşturduğunu belirtir ve blf-a6, BLF A6 için olduğunu belirtir. (duh) Hangi komutları çalıştırdığını söylemeli ve size çıktıyı vermelidir. Benimki şuna benziyor:
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-uyarılar -O ihex blf-a6.elf blf-a6.hex Program: 1022 bayt (%99.8 Dolu)) Veri: 13 bayt (%20,3 Dolu)
Komutlar boyut için zaten optimize edilmiştir, bu nedenle %100'den fazla dolu olduğunu söylüyorsa yorum yapmayı deneyin
#define FULL_BIKING_STROBE
daha küçük minimal bisiklet flaşını kullanmak için 147 numaralı hatta. Hala uymuyorsa, muhtemelen bir yerden daha fazla kodu kaldırmanız gerekecek. Derleme bittiğinde, klasörde blf-a6.hex adlı bir dosya olmalıdır. Bu, derlenmiş kodunuz, yanıp sönmeye hazır.
3. Adım: El Fenerini Sökün
Ampul ucunu saat yönünün tersine çevirerek çıkarın. Burada iki vidalı bağlantı var. El fenerinin ampul ucuna yakın olan reflektör ve led'i, ortaya yakın olan ise sürücü panosunu açar. Ortaya daha yakın olanı istiyorsun.
İçeride, pil yayını ve içinde iki delik bulunan bir tutma halkasını görmelisiniz. Cımbızınızı/ince pense/makasınızı deliklere sokun ve saat yönünün tersine çevirin. Oldukça sert ve iki ayrı nesne kullanmak muhtemelen size yeterli kaldıraç sağlamayacaktır. Makası bir İsviçre Çakısı üzerinde kullandım.
Yüzüğü çıkardıktan sonra sürücü panosunu serbest bırakın. Hala iki kabloyla bağlı, bu yüzden dikkatli olun. Birlikte bükülmüşler, bu yüzden kablolar gevşeyene kadar tahtayı bir şekilde döndürün. Yeterli boşluğunuz olduğunda, tahtayı çevirin. Üzerinde "TINY13A" yazan çipin daha üstte ve daha erişilebilir olmasını istiyorsunuz. Yanlış taraftaysa, diğer tarafa çevirin. Yayı yanların altına sokun. Bu, onu geçici olarak yerinde tutacak ve çipe ulaşmayı kolaylaştıracaktır. Bununla ilgili bir sorununuz varsa, muhtemelen diğer bağlantıyı sökebilir ve diğer taraftaki iki kabloyu sökerek kartı tamamen çıkarabilirsiniz, ancak denemedim.
Adım 4: Yanıp Sönen Donanımı Bağlayın
Artık ATtiny13 yongasını ve programlayıcınızı bağlamak için SOIC8 klipsini kullanıyorsunuz. SOIC8 klipsimle, her iki ucun solunda kırmızı kablo varsa, klips ucunda bana daha yakın olan pim sırası, konektör aşağı baktığında, konektör ucunda bana daha yakın olan pim sırasına karşılık gelir. (süper sanatsal şemama bakın) Bu kılavuz, bir USB ASP V2.0 programlayıcı kullanmanızı önerir. Bunu yaparsanız, şu şekilde bağlayın:
- ATtiny13 üzerindeki Pin 1'i USB ASP'deki pin 5'e (sıfırlama)
- ATtiny13'teki 4 numaralı pimi USB ASP'deki (toprak) 10 numaralı pime
- ATtiny13 üzerindeki pin 5'i USB ASP'deki (MOSI) pin 1'e
- ATtiny13'teki 6 numaralı pin ile USB ASP'deki (MISO) 9 numaralı pin
- ATtiny13'teki 7 numaralı pini USB ASP'deki (SCK) 7 numaralı pin
- ATtiny13'teki 8 numaralı pini USB ASP'deki (VCC) pin 2'ye
Eğer benim gibi Arduino kullanıyorsanız biraz daha hazırlık yapmanız gerekiyor. Bu kılavuzun sıfır ve ikinci adımlarını izleyin:
Arduino IDE'yi açın ve Arduino'nuzun bilgisayarınıza bağlı olduğundan emin olun. Dosya>Örnekler>11. ArduinoISP>ArduinoISP'de ISP taslağını bulun ve Arduino'nuza yükleyin. Ardından ATtiny13'ü şu şekilde bağlayın:
- ATtiny13'teki Pin 1'i Arduino'daki pin 10'a (sıfırlama)
- ATtiny13'teki Pin 4'ü Arduino'daki GND'ye (toprak)
- ATtiny13'teki Pin 5'i Arduino'daki pin 11'e (MOSI)
- ATtiny13'teki 6 numaralı pini Arduino'daki (MISO) pin 12'ye
- ATtiny13'teki 7 numaralı pin ile Arduino'daki (SCK) 13 numaralı pin
- ATtiny13'teki Pin 8 - Arduino'daki VCC / 5V / 3.3V (herhangi biri çalışmalı, ancak 5V daha güvenilirdir)(VCC)
Donanım paketini de kurdum ama muhtemelen gerekli değildi. Şüpheniz varsa, deneyin. Zarar vermeyecek. Ancak önyükleyiciyi yakmayın çünkü muhtemelen el fenerinizi bozar.
Adım 5: Flash It
Bellenimi flaş etmek için AVRDUDE'u yüklemeniz gerekir. Arduino'mla çalışıp çalışmadığını kontrol etmek için şunu çalıştırıyorum:
avrdude -v -p attiny13 -c stk500v1 -P /dev/ttyUSB0 -b 19200 -n
İşe yararsa, bir yerde boş bir klasöre taşınır ve şunu çalıştırırım:
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
Mevcut bellenimin yedeğini almak için. Ve flaş yapmak için, değiştirilmiş blf-a6.hex'in bulunduğu klasörden çalıştırıyorum:
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
Nedense programlayıcı olarak stk500v1 belirtmem gerekiyor ve bağlantı noktası ve baud hızını belirtmedikçe çalışmadı. Bir Arduino kullanıyorsanız ve şüpheniz varsa, ATtiny13'ünüzü Arduino'dan ayırmayı ve buradaki ayarları kullanarak Arduino IDE'ye bir çizim yüklemeyi deneyin. Başarısız olacak, ancak konsol penceresinde hangi komutu kullandığını söylemelidir. Nitelikleri AVRDUDE komutunuza kopyalayabilirsiniz.
Bir USB ASP programcısı kullanıyorsanız, bunun yerine şunu çalıştırın:
avrdude -v -p attiny13 -c usbasp -n
Çalışıp çalışmadığını görmek için ve:
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
Yedekleme yapmak ve:
avrdude -v -p attiny13 -c usbasp -u -Uflash:w:blf-a6.hex -Ulfuse:w:0x75:m -Uhfuse:w:0xFF:m
Flashlamak için.
-Uflash:w:blf-a6.hex, yanıp söndüğü dosyaya atıfta bulunur. Farklıysa, blf-a6.hex'i dosya adınızla değiştirin.
-Ulfuse:w:0x75:m ve -Uhfuse:w:0xFF:m sigortalardır. Sizinki farklı olabilir, bu nedenle flashlight-firmware/bin/flash-tiny13-fuses.sh içindeki değerleri iki kez kontrol edin.
Menzil dışı hatası veriyorsa, görüntünün çipe sığmayacak kadar büyük olduğu ve kodun bir kısmını kaldırmanız gerektiği anlamına gelir. Başarılı bir şekilde yanıp sönerse, bazı ilerleme çubukları göstermeli ve ardından "avrdude yapıldı. Teşekkürler" demelidir.
"Geçersiz cihaz imzası" yazıyorsa ve programlayıcınızdaki jumper 3,3v'ye ayarlanmışsa, 5v'ye ayarlamayı deneyin.
Yanıp söndükten sonra, el fenerinizi yeniden monte edin ve çalışıp çalışmadığına bakın. Mayın yaptı ama zamanlama off için bazı ̶r̶e̶a̶s̶o̶n̶.̶ UZUN presler ihtiyaca olmak üç saniye yerine ̶1̶.̶5̶.̶ i düğünle biliyorsanız IT'S şeye do'yla Arduino nedeniyle veya boyunca hep şeffaf kullanılan yanlış ayarları ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶ Eğer varsa herhangi bir fikir, ̶ Let Me Know, The ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶
Düzenleme: Düzelttim. (bkz. adım 1)
Önerilen:
StickC M5Stack LED Yanıp Sönme: 7 Adım
StickC M5Stack LED Yanıp Sönme: Bu projede M5StickC ESP32 modülü kullanarak LED Yanıp Sönme nasıl bağlanacağını ve yapılacağını öğreneceğiz.Videoyu İzle
Yanıp Sönme: Mapa Logistico Para Rastgele Yanıp Sönme: 5 Adım
Yanıp Sönme: Mapa Logistico Para Rastgele Yanıp Sönme: Este este este esteğr edilemez para un generador de aleatoriedad, utilizando un mapa logístico, que ahora explico que es. Con el mapa logístico, se enciende ve apaga un led de forma aleatoria. Este puede servir simplemente de ejemplo de commo a
Sonoff Anahtar Modülünü Sürmek için Homie Ürün Yazılımını Kullanın (ESP8266 Tabanlı): 5 Adım (Resimlerle)
Sonoff Anahtar Modülünü Sürmek için Homie Ürün Yazılımını Kullanın (ESP8266 Tabanlı): Bu bir takip talimatıdır, bunu "IoT veya Ev Otomasyonu için Homie Cihazları Oluşturma"dan biraz sonra yazdım. Daha sonra, D1 Mini panoları etrafında temel izlemeye (DHT22, DS18B20, ışık) odaklanıyordu. Bu sefer, ho
Arduino V3.2 Deney 1: Bir Işığı Yanıp Sönme: 12 Adım
Arduino V3.2 Deney 1: Bir Işığı Yanıp Sönme: Sparkfun kitinde (veya gerçekten başka herhangi bir devre kitinde) bulunan malzemeleri kullanarak, Adruino IDE'deki bazı temel kodlarla bir LED'i yanıp sönebilirsiniz
LINUX'tan IPod Ürün Yazılımını Hacklemek: 3 Adım
LINUX'tan iPod Aygıt Yazılımını Hackleme: Birçoğunuz iPod'ların (5. nesil video ve altı) özelleştirilebileceğini veya hacklenebileceğini fark edebilirsiniz. Şimdiye kadar bu işlem Windows kullanıcıları ile sınırlıydı ve Mac'ten daha da geliştiriliyor; artık Linux kullanıcıları da bu yeteneğe sahip olacak.NOT: LÜTFEN D