Мазмуну:

BLF A6 Чырагына Custom Firmware жарк этип: 5 кадам
BLF A6 Чырагына Custom Firmware жарк этип: 5 кадам

Video: BLF A6 Чырагына Custom Firmware жарк этип: 5 кадам

Video: BLF A6 Чырагына Custom Firmware жарк этип: 5 кадам
Video: BLF A6 Special Edition flashlight review! 2024, Ноябрь
Anonim
BLF A6 фонаригине Custom Firmware жаркылдайт
BLF A6 фонаригине Custom Firmware жаркылдайт

Мен жакында BLF A6 алдым. Бул абдан жагымдуу, бирок мен демейки режимдеги топтордун бирин жактырбайм, андыктан мен жактырган жарыктыгымды колдонуу үчүн программаны өзгөрттүм. Маалыматты табуу кыйын болчу, ошондуктан мен үйрөнгөн нерселеримдин бардыгын бул жерге өзүм жана башкалар үчүн салып жатам.

Жабдуулар

BLF A6 (балким, башка ATtiny негизделген фонарлар менен иштейт)

Пинцет / жука кычкач / кичинекей кайчы / айдоочу тактайын кармоочу шакегин чече турган нерсе

Компьютер жарк этип, жакшыраак Linux бөлүштүрүүсүн иштетет

USB ASP программисти / Arduino / AVR программалоо кыла турган нерсе (кыязы, USB ASP программисти сунушталат, бирок мен Arduino колдондум)

SOIC8 клиби (ансыз деле кылса болот, бирок бул абдан күлкүлүү жана таптакыр сунушталбайт)

(милдеттүү эмес) Баннер жана/же секирүүчү зымдар туташууну жеңилдетүү үчүн

1 -кадам: Камтылган программаны жүктөп алыңыз

BLF A6 (жана башка көптөгөн фонарлар) үчүн камтылган программа бул жерде. Автор бул жерде бул жөнүндө сөз кылат. Аны иштетүү менен жүктөп алсаңыз болот:

bzr бутагы lp: ~ toykeeper/flashlight-firmware/blf-a6-final

терминалда. (bzr орнотушуңуз керек болушу мүмкүн)

Эскертүү: бул Нускаманын мурунку редакциясында мен "bzr branch lp: flashlight-firmware" колдончумун. Мен кийинчерээк бул конденсатор үчүн туура эмес баалуулуктарга ээ болгон эскирген версияны жүктөп, баскычты ыңгайсыз узакка басып турганын билдим. (Redditтеги бул темага рахмат)

Сиз каалаган папка blf-a6-final/ToyKeeper/blf-a6. Бул флешке даяр болгон.hex файлын (blf-a6.hex) жана сиз өзгөртө турган С кодун камтыйт. (blf-a6.c) Эгерде сиз акциялардын программасын жаркыраткыңыз келсе, кийинки кадамды өткөрүп жиберип, жөн гана blf-a6.hex колдонуңуз. Ошол репозиторийдеги башка программалык камсыздоолордун айрымдары, балким, дагы иштейт.

2 -кадам: Камтылган программаны өзгөртүү

Тандалган текст редакторунда же IDEде blf-a6.c ачыңыз. Эң кызыктуу линиялар 116 жана 131 линияларынын ортосундагы режим топтору. Алар мындай көрүнөт:

// Режим тобу 1 #NUM_MODES1 7 // чоң схема үчүн PWM деңгээлин аныктайт (FET же Nx7135) #MODESNx1 0, 0, 0, 7, 56, 137, 255 // чакан схема үчүн PWM деңгээлин аныктоо (1x7135) # MODES1x1 2, 20, 110, 255, 255, 255, 0 // Менин үлгүм: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32) // Krono үлгүсү: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78) // Манкер2: 2 = 21, 3 = 39, 4 = 47,… 6? = 68 // Ар бир режим үчүн PWM ылдамдыгы #аныктоо MODES_PWM1 ЭТАБЫ, ТЕЗ, ТЕЗ, ТЕЗ, ТЕЗ, ТЕЗ, ФАЗА // 2 -топтун тобу #NUM_MODES2 4 #define MODESNx2 0, 0, 90, 255 #define MODES1x2 20, 230, 255, 0 #define MODES_PWM2 FAST, FAST, FAST, PHASE

Ар бир топ үчүн MODESN - FET үчүн колдонулган PWM мааниси, ал эми MODES1 - ар бир режимде 7135 үчүн колдонулган PWM мааниси. Саны 0ден 255ке чейин жана жарыктын жарыгына туура келет. Көбүрөөк маалымат бул жерде. ("Режимди жөнгө салуу" бөлүмүнө ылдый жылыңыз) PWM ылдамдыгы так экенин билбейм. Эгерде кимдир бирөө билсе, комментарийлерде мага айтыңыз. ФЕТӨ 7135ке караганда көбүрөөк жарык бере алат, бирок 7135 батарейканын иштөө мөөнөтү ичинде жарыктын деңгээлин аздыр -көптүр бирдей сактайт, ал эми ФЕТӨ батарейкасы түгөнгөн сайын караңгы болуп калат.

Бул жерде сиз өзүңүзгө жаккан режимдерди чыгаруу үчүн PWM баалуулуктарын тууралай аласыз. Сиз, балким, режимдердин санын дагы өзгөртө аласыз, бирок мен муну экинчи топтогу сан болуп калган төрт режимди каалагандай сынап көргөн жокмун. Мен караңгы айдын режимин кааладым, ошондуктан биринчисин 0/1ге койдум жана турбо режимин бир аз маанисиз деп таптым, ошондуктан аны 137/255 менен алмаштырдым, жети режим тобундагы алты режимдин эквиваленти. Мүмкүн болсо, калган кодду өзгөртө аласыз, бирок мен аны сынап көргөн жокмун.

Сиз каалаган кодду алгандан кийин, аны.hex файлына түзүшүңүз керек. Жок дегенде gcc-avr жана avr-libc керек. Эгерде сизде көйгөйлөр болсо, камтылган программалык камсыздоонун башка көз карандылыктарын караңыз. Репозиторийде курулуш скрипти камтылган, бирок мен аны иштете алган жокмун. Анын ордуна, мен эски версиясын жүктөп алдым

bzr филиалы lp: фонарь-жабдык

жана эски курулуш скриптин (мен иштей алмакмын) жаңыга көчүрдүм. Анан мен чуркадым:

../../bin/build.sh 13 blf-a6

blf-a6 папкасында. (муну жасоонун жакшы жолу болушу керек)../../bin/build.sh скриптти чакырат, 13 ал ATtiny13 үчүн курулганын жана blf-a6 BLF A6 үчүн экенин көрсөтөт. (Дух) Бул сизге кандай буйруктар иштеп жатканын айтып, сизге жыйынтык бериши керек. Меники мындай көрүнөт:

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 -бөлүм-желектер =.eeprom = бөлүү, жүктөө-өзгөртүү-бөлүм-lma.eeprom = 0-өзгөртүү-эскертүүлөр -O ihex blf-a6.elf blf-a6.hex Программа: 1022 байт (99,8% Толук)) Маалымат: 13 байт (20,3% Толук)

Буйруктар мурунтан эле өлчөмү үчүн оптималдаштырылган, андыктан ал 100% дан ашык деп айтса, комментарий жазып көрүңүз

#FULL_BIKING_STROBE деп аныктаңыз

кичинекей минималдуу велосипед стробун колдонуу үчүн 147 -сапта. Эгер ал дагы эле туура келбесе, анда башка кодду бир жерден алып салышыңыз керек болот. Компиляция аяктагандан кийин, папкада blf-a6.hex деп аталган файл болушу керек. Бул сиздин түзгөн кодуңуз, жаркыроого даяр.

3 -кадам: Чыракты ажыратыңыз

Чыракты ажыратыңыз
Чыракты ажыратыңыз
Чыракты ажыратыңыз
Чыракты ажыратыңыз
Чыракты ажыратыңыз
Чыракты ажыратыңыз

Лампочканын учун сааттын жебесине каршы бурап алыңыз. Бул жерде эки бурама бириктиргич бар. Кол чырактын лампочкасынын учуна жакыныраак рефлектор менен светодиодду, ал эми ортосуна жакыныраак айдоочу тактасын ачат. Сиз ортого жакыныраак болгуңуз келет.

Ичинде, батарейканын булагын жана ичинде эки тешиги бар кармоочу шакекти көрүшүңүз керек. Пинцетти / ичке кычкачты / кайчыны тешиктерге салыңыз жана сааттын жебесине каршы буруңуз. Бул абдан катаал жана эки башка объектти колдонуу сизге жетиштүү рычаг бербейт. Мен Швейцария армиясынын бычагына кайчыны колдондум.

Шакекти алгандан кийин, айдоочу тактасын бошотуңуз. Ал дагы эле эки зым менен туташтырылган, андыктан этият болуңуз. Алар чогуу бурулган, андыктан такты тигил же бул жакка зымдар бошогонго чейин буруңуз. Сизге жетиштүү боштук болгондо, тактайды оодарыңыз. Сиз муну каалайсыз, анын үстүндө "TINY13A" чипи жогору жана жеткиликтүү болот. Эгерде ал туура эмес тарапта болсо, аны башка жакка буруңуз. Жазды капталдын астына катыңыз. Бул аны убактылуу кармап турат жана чипке кирүүнү жеңилдетет. Эгерде сизде көйгөй жаралса, анда башка бириктиргичти чечип, такты такыр алып салууга болот, бирок мен сынаган жокмун.

4 -кадам: Flashing Hardware туташуу

Flashing Hardware туташуу
Flashing Hardware туташуу
Flashing Hardware туташуу
Flashing Hardware туташуу
Flashing Hardware туташуу
Flashing Hardware туташуу

Эми сиз SOIC8 клипин ATtiny13 чипи менен программистиңизге туташтыруу үчүн колдоносуз. Менин SOIC8 клибим менен, эгерде менде эки учунун сол жагында кызыл зым болсо, клиптин учунда мага жакыныраак болгон казыктар, туташтыргыч ылдый каратып турганда, туташтыргычтын учунда мага жакын болгон казыктардын катарына туура келет. (менин супер көркөм диаграммамды караңыз) Бул колдонмо сизге USB ASP V2.0 программистин колдонууну сунуштайт. Эгер кылсаңыз, аны төмөнкүдөй туташтырыңыз:

  • ATtiny13 боюнча 1 -пин USB ASP -ге 5 -пинге (баштапкы абалга келтирүү)
  • ATtiny13 боюнча 4 -пин USB ASP -ге 10 -пинге (жерге)
  • USB ASP (MOSI) боюнча ATTiny13ке 5 -пинти 1 -ге кадаңыз.
  • ATtiny13 боюнча 6 -пин USB ASP (MISO) боюнча 9 -пинге.
  • ATtiny13 боюнча 7 -пин USB ASP (SCK) боюнча 7 -пинге.
  • USB ASP (VCC) боюнча 2 -pin үчүн ATtiny13 боюнча 8 -пин.

Эгерде мен сыяктуу эле, сиз Arduino колдонуп жатсаңыз, бир аз көбүрөөк даярданууңуз керек. Бул колдонмонун нөл жана экинчи кадамдарын аткарыңыз:

Arduino IDE ачыңыз жана Arduino компьютериңизге туташканын текшериңиз. ISP эскизин Файлдан> Мисалдар> 11.. ArduinoISP> ArduinoISPтен таап, аны Arduinoго жүктөңүз. Андан кийин ATtiny13'ди ага төмөнкүдөй туташтырыңыз:

  • ATtiny13'ке 1 -пин Arduino -га 10 -пинге (баштапкы абалга келтирүү)
  • ATdiny13 боюнча 4 -пин Arduinoдогу GNDге (жерге)
  • ATtiny13 боюнча 5 -пин Ардуинодо 11 -пинге (MOSI)
  • ATtiny13 боюнча 6 -пин, Arduino (MISO) боюнча 12 -пинге.
  • ATtiny13 боюнча 7 -пин Arduino (SCK) боюнча 13 -пинге.
  • ATdiny13 боюнча 8 Pin Arduinoдогу VCC / 5V / 3.3Vга чейин (каалаган иштеши керек, бирок 5V ишенимдүү) (VCC)

Мен дагы аппараттык пакетти орноттум, бирок, балким, бул керек эмес болчу. Эгерде күмөн санасаңыз, аракет кылып көрүңүз. Бул эч кандай зыян алып келбейт. Бирок жүктөгүчтү күйгүзбөңүз, анткени ал фонаригиңизди кыштап кетиши мүмкүн.

5 -кадам: Flash

Камтылган программаны жаркыратуу үчүн, AVRDUDE орнотушуңуз керек. Менин Arduino менен иштээрин текшерүү үчүн, мен иштейм:

avrdude -v -p attiny13 -c stk500v1 -P /dev /ttyUSB0 -b 19200 -n

Эгер ал иштесе, мен бош папкага бир жерге жылып, чуркайм:

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 -Uffuse: r: hfuse -dump.hex: i

Учурдагы камтылган программанын камдык көчүрмөсүн жасоо үчүн. Жана аны күйгүзүү үчүн, мен иштеткен blf-a6.hex папкасынан:

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

Эмнегедир, мен stk500v1ди программист катары көрсөтүшүм керек, мен портту жана берүү ылдамдыгын көрсөтмөйүнчө иштебеди. Эгерде сиз Arduino колдонуп жатсаңыз жана шектенсеңиз, ATtiny13'ти Arduino менен ажыратып көрүңүз жана бул жердеги орнотууларды колдонуу менен Arduino IDEге эскиз жүктөп бериңиз. Бул ишке ашпай калат, бирок ал консол терезесинде кандай буйрукту колдонуп жатканын айтууга тийиш. Сиз атрибуттарды AVRDUDE буйругуңузга көчүрө аласыз.

Эгерде сиз USB ASP программистин колдонуп жатсаңыз, анын ордуна иштетиңиз:

avrdude -v -p attiny13 -c usbasp -n

Анын иштээрин көрүү үчүн жана:

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

Камдык көчүрүү үчүн жана:

avrdude -v -p attiny13 -c usbasp -u -Uflash: w: blf -a6.hex -Ulfuse: w: 0x75: m -Uhfuse: w: 0xFF: m

Жаркыроо үчүн.

-Uflash: w: blf-a6.hex ал жаркырап турган файлды билдирет. Башка болсо, blf-a6.hex файлыңыздын аты менен алмаштырыңыз.

-Ulfuse: w: 0x75: m жана -Uhfuse: w: 0xFF: m -бул сактандыргычтар. Сиздики башкача болушу мүмкүн, андыктан фонарь-firmware/bin/flash-tiny13-fuses.sh'теги баалуулуктарды эки жолу текшериңиз.

Эгерде ал ката кетирсе, бул сүрөт чипке батпай турганчалык чоң экенин билдирет жана сиз кээ бир коддорду алып салышыңыз керек. Эгер ал ийгиликтүү жаркыраса, анда ал кээ бир прогресс тилкелерин көрсөтүшү керек, андан кийин "avrdude аткарылды. Рахмат" деп айтыңыз.

Эгерде "жараксыз түзмөктүн кол тамгасы" деп жазылса жана программистиңиздеги секирүүчү 3.3v деп коюлса, аны 5v кылып коюңуз.

Жаркырагандан кийин, фонаригиңизди кайра чогултуп, анын иштээрин текшериңиз. Меники эмес, Бирок, убакыт да жок бир себеп жана узак басуулар керек болуп үч секунд ордуна ̶1̶.̶5̶.̶ Мен сүйбө, анда бийтс, бир нерсе кыла менен ар Ардуино же кыз колдонулат The туура орнотууларды ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶ Эгер сиз каалаган идея, ̶ мени таанып-жылы ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶

Түзөтүү: Мен оңдоп койдум. (1 -кадамды караңыз)

Сунушталууда: