İçindekiler:

Bir BLF A6 El Fenerine Özel Ürün Yazılımını Yanıp Sönme: 5 Adım
Bir BLF A6 El Fenerine Özel Ürün Yazılımını Yanıp Sönme: 5 Adım

Video: Bir BLF A6 El Fenerine Özel Ürün Yazılımını Yanıp Sönme: 5 Adım

Video: Bir BLF A6 El Fenerine Özel Ürün Yazılımını Yanıp Sönme: 5 Adım
Video: 1,290,000 CD El Feneri, Bütçe Işık Forumu Giga-Atıcı! 2024, Temmuz
Anonim
Bir BLF A6 El Fenerine Özel Ürün Yazılımını Yanıp Sönme
Bir BLF A6 El Fenerine Özel Ürün Yazılımını Yanıp Sönme

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

El fenerini sökün
El fenerini sökün
El fenerini sökün
El fenerini sökün
El fenerini sökün
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

Yanıp Sönen Donanımı Bağlayın
Yanıp Sönen Donanımı Bağlayın
Yanıp Sönen Donanımı Bağlayın
Yanıp Sönen Donanımı Bağlayın
Yanıp Sönen Donanımı Bağlayın
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: