תוכן עניינים:

הקושחה מותאמת אישית מהבהבת לפנס BLF A6: 5 שלבים
הקושחה מותאמת אישית מהבהבת לפנס BLF A6: 5 שלבים

וִידֵאוֹ: הקושחה מותאמת אישית מהבהבת לפנס BLF A6: 5 שלבים

וִידֵאוֹ: הקושחה מותאמת אישית מהבהבת לפנס BLF A6: 5 שלבים
וִידֵאוֹ: הורדת גירסאות קושחה למכשירי אפל 2024, יולי
Anonim
מהבהבת קושחה מותאמת אישית לפנס BLF A6
מהבהבת קושחה מותאמת אישית לפנס BLF A6

לאחרונה קיבלתי BLF A6. זה נחמד מאוד, אבל אני לא אוהב את אחת מקבוצות מצב ברירת המחדל, אז שיניתי את הקושחה כדי להשתמש בהירות המועדפות עלי. המידע היה קשה למצוא, אז אני שם את כל מה שלמדתי כאן לעצמי ולאחרים.

אספקה

BLF A6 (זה כנראה יעבוד עם פנסים אחרים המבוססים על ATtiny)

פינצטה / צבת דקה / מספריים קטנים / משהו לביטול טבעת השמירה על לוח הנהג

מחשב להבהב איתו, רצוי להריץ הפצת לינוקס

מתכנת ASP USB / Arduino / משהו שיכול לתכנת AVR (כנראה שמתכנת USB ASP מומלץ, אבל השתמשתי בארדואינו)

קליפ SOIC8 (אפשר להסתדר בלי, אבל זה מאוד מסורבל ובכלל לא מומלץ)

(אופציונלי) חוטי לוח ו/או מגשר כדי להקל על החיבור

שלב 1: הורד את הקושחה

הקושחה של BLF A6 (ופנסים רבים אחרים) זמינה כאן. המחבר מדבר על זה כאן. אתה יכול להוריד אותו על ידי הפעלה:

bzr branch lp: ~ toykeeper/flashlight-firmware/blf-a6-final

במסוף. (ייתכן שיהיה עליך להתקין bzr)

הערה: בעריכה קודמת של הוראה זו השתמשתי במקום "bzr branch lp: flashlight-firmware". למדתי מאז שזה מוריד גרסה מיושנת עם ערכים שגויים עבור הקבל מחוץ לזמן, מה שהופך את הלחיצה על הלחצן לארוכה לא נוחה. (תודה לשרשור הזה ב- Reddit)

התיקייה שאתה רוצה היא blf-a6-final/ToyKeeper/blf-a6. הוא מכיל קובץ.hex מורכב המוכן להבזק (blf-a6.hex) ואת קוד C אותו ניתן לשנות. (blf-a6.c) אם אתה רוצה להבהב את קושחת המניות אתה יכול לדלג על השלב הבא ופשוט להשתמש ב- blf-a6.hex. סביר להניח שחלק מהקושחה האחרת במאגר זה תעבוד.

שלב 2: שנה את הקושחה

פתח את blf-a6.c בעורך הטקסט המועדף עליך או ב- IDE. השורות המעניינות ביותר הן קבוצות המצב בין השורות 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) // דגימת קרונו: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78) // Manker2: 2 = 21, 3 = 39, 4 = 47,… 6? = 68 // מהירות PWM לכל מצב #הגדר MODES_PWM1 PHASE, 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 FAST, FAST, FAST, PHASE

עבור כל קבוצה, MODESN הוא ערך ה- PWM המשמש ל- FET, ו- MODES1 הוא ערך ה- PWM המשמש עבור 7135 בכל מצב. המספר הוא בין 0 ל -255, ותואם את בהירות האור. מידע נוסף כאן. (גלול מטה אל "ויסות מצב:") אני לא בטוח מה מהירות PWM בדיוק. אם מישהו יודע, ספר לי בתגובות. ה- FET יכול להפיק יותר אור מה- 7135, אך ה- 7135 שומר על רמת האור פחות או יותר זהה לאורך חיי הסוללה, בעוד שה- FET נהיה כהה יותר כאשר נגמרת הסוללה.

כאן אתה יכול להתאים את ערכי PWM לייצור מצבים לטעמך. אתה כנראה יכול לשנות גם את מספר המצבים, אבל לא ניסיתי את זה כיוון שרציתי ארבעה מצבים, וזה במקרה המספר בקבוצה השנייה. רציתי מצב אור ירח כהה יותר, אז הגדרתי את הראשון ל- 0/1, ומצאתי שמצב הטורבו קצת חסר טעם, אז החלפתי אותו ב- 137/255, המקביל למצב שש בקבוצת שבעת המצבים. אתה יכול כנראה לשנות את שאר הקוד במידת הצורך, אך לא ניסיתי אותו.

לאחר שקיבלת את הקוד הרצוי, עליך לאסוף אותו לקובץ.hex. לכל הפחות, אתה צריך gcc-avr ו- avr-libc. אם יש לך בעיות, בדוק את התלות האחרות במכשיר הקריאה הקושחה. המאגר כולל סקריפט build, אך לא הצלחתי לגרום לו לעבוד. במקום זאת הורדתי את הגרסה הישנה עם

bzr branch lp: פנס-קושחה

והעתק את סקריפט הבניה הישן (שאוכל להתחיל לעבוד) על התוכנית החדשה. ואז רצתי:

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

בתיקייה blf-a6. (צריכה להיות דרך טובה יותר לעשות זאת)../../bin/build.sh קורא לתסריט, ה -13 מציין שהוא בונה עבור ATtiny13 וה- blf-a6 מציין שזה עבור ה- BLF A6. (duh) זה אמור להגיד לך אילו פקודות הוא מפעיל ולתת לך את הפלט. שלי נראה כך:

avr -gcc -Wall -g -Os -mmcu = attiny13 -c -std = gnu99 -fgnu89 -inline -DATTINY = 13 -I.. -I../.. -I../../.. -fshort -סיכומים -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 תוכנית: 1022 בתים (99.8% מלא) נתונים: 13 בתים (20.3% מלאים)

הפקודות כבר מותאמות לגודל, כך שאם כתוב שהוא מלא במאה אחוז, נסה להגיב

#הגדר FULL_BIKING_STROBE

בקו 147 כדי להשתמש במכונית אופניים מינימלית קטנה יותר. אם זה עדיין לא מתאים, כנראה שתצטרך להסיר עוד קוד איפשהו. בסיום החיבור, צריך להיות קובץ בשם blf-a6.hex בתיקייה. זהו הקוד המורכב שלך, מוכן להבהב.

שלב 3: לפרק את הפנס

לפרק את הפנס
לפרק את הפנס
לפרק את הפנס
לפרק את הפנס
לפרק את הפנס
לפרק את הפנס

הברג את קצה הנורה נגד כיוון השעון. יש כאן שני מפרקי בורג. זה שקרוב יותר לקצה הנורה של הפנס פותח את המשקף ואת הנורית, וזה שקרוב יותר לאמצע פותח את לוח הנהג. אתה רוצה את זה שקרוב יותר לאמצע.

בפנים אתה אמור לראות את קפיץ הסוללה ואת טבעת ההחזקה עם שני חורים בתוכו. הכנס את הפינצטה / צבת / מספריים דקים לתוך החורים וסובב אותם נגד כיוון השעון. זה די נוקשה, ושימוש בשני אובייקטים נפרדים כנראה לא ייתן לך מספיק מינוף. השתמשתי במספריים על סכין של הצבא השוויצרי.

לאחר שתוציא את הטבעת, שחרר את לוח הנהגים. זה עדיין מחובר עם שני חוטים, אז היזהר. הם מעוותים זה לזה, לכן סובב את הלוח כך או כך עד שהחוטים משתחררים. כאשר יש לך מספיק מרחב מרווח, הפוך את הלוח. אתה רוצה את זה כך שהשבב עם "TINY13A" עליו יהיה גבוה יותר ונגיש יותר. אם זה בצד הלא נכון, הפוך אותו לכיוון השני. תחב את הקפיץ מתחת לצד. פעולה זו תשאיר אותו במקום זמנית ותקל על ההגעה לשבב. אם יש לך בעיה עם זה אתה כנראה יכול לנתק את המפרק השני ולהוריד את שני החוטים מהצד השני, כך שתוכל להסיר את הלוח לחלוטין, אך לא ניסיתי אותו.

שלב 4: חבר חומרה מהבהבת

חבר חומרה מהבהבת
חבר חומרה מהבהבת
חבר חומרה מהבהבת
חבר חומרה מהבהבת
חבר חומרה מהבהבת
חבר חומרה מהבהבת

כעת אתה משתמש בקליפ SOIC8 לחיבור שבב ATtiny13 לבין המתכנת שלך. עם קליפ SOIC8 שלי, אם יש לי את החוט האדום משמאל משני הקצוות, שורת הסיכות הקרובה יותר אליי בקצה הקליפ תואמת את שורת הסיכות הקרובה יותר אליי בקצה המחבר, כאשר המחבר פונה כלפי מטה. (ראה התרשים הסופר אמנותי שלי) מדריך זה ממליץ לך להשתמש במתכנת USB ASP V2.0. אם כן, חבר אותו כך:

  • פין 1 ב- ATtiny13 לסיכה 5 ב- USB ASP (איפוס)
  • הצמד 4 על ה- ATtiny13 לסיכה 10 ב- USB ASP (קרקע)
  • הצמד 5 על ה- ATtiny13 לסיכה 1 ב- USB ASP (MOSI)
  • הצמד 6 על ה- ATtiny13 לסיכה 9 ב- USB ASP (MISO)
  • פין 7 ב- ATtiny13 לסיכה 7 ב- USB ASP (SCK)
  • הצמד 8 על ה- ATtiny13 לסיכה 2 ב- USB ASP (VCC)

אם, כמוני, אתה משתמש בארדואינו, עליך לעשות קצת יותר הכנה. בצע את שלבי אפס ושניים במדריך זה:

פתח את ה- Arduino IDE וודא שה- Arduino שלך מחובר למחשב שלך. מצא את סקיצת ספק האינטרנט בקובץ> דוגמאות> 11. ArduinoISP> ArduinoISP והעלה אותו ל- Arduino שלך. לאחר מכן חבר את ה- ATtiny13 אליו כך:

  • פין 1 ב- ATtiny13 לסיכה 10 בארדואינו (אפס)
  • פין 4 על ה- ATtiny13 ל- GND על הארדואינו (קרקע)
  • פין 5 על ה- ATtiny13 לסיכה 11 על הארדואינו (MOSI)
  • הצמד 6 על ה- ATtiny13 לסיכה 12 על הארדואינו (MISO)
  • פין 7 על ה- ATtiny13 לסיכה 13 על הארדואינו (SCK)
  • פין 8 ב- ATtiny13 ל- VCC / 5V / 3.3V ב- Arduino (כל אמור לעבוד, אבל 5V אמין יותר) (VCC)

התקנתי גם את חבילת החומרה, אבל כנראה שזה לא היה הכרחי. אם יש לך ספק, נסה זאת. זה לא יזיק. אבל אל תשרף את מטען האתחול מכיוון שהוא כנראה יפריע לך בפנס.

שלב 5: הבזק

כדי להבהב את הקושחה, עליך להתקין את 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 -Uhfuse: 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 -Unfuse: w: 0x75: m -Uhfuse: w: 0xFF: m

מסיבה כלשהי, עלי לציין את stk500v1 כמתכנת, וזה לא עבד אלא אם ציינתי את הנמל ואת קצב השידור. אם אתה משתמש בארדואינו ויש לך ספק, נסה לנתק את ה- ATtiny13 שלך מהארדואינו ולהעלות סקיצה ב- 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 בשם הקובץ שלך אם הוא שונה.

נתיך: w: 0x75: מ 'ו- -Uhfuse: w: 0xFF: מ' הם הנתיכים. שלך עשוי להיות שונה, לכן בדוק שוב את הערכים בפנס-קושחה/bin/flash-tiny13-fuses.sh.

אם הוא נותן שגיאה מחוץ לטווח, זה אומר שהתמונה גדולה מדי מכדי להתאים אותה לשבב ועליך להסיר חלק מהקוד. אם הוא מהבהב בהצלחה, הוא אמור להציג כמה פסי התקדמות, ואז תגיד "אנדרודה נעשה. תודה".

אם כתוב "חתימת מכשיר לא חוקית" והמגשר במתכנת שלך מוגדר ל -3.3 וולט, נסה להגדיר אותו ל -5 וולט.

לאחר שהבזקת אותו, הרכיב מחדש את הפנס שלך ובדוק אם הוא פועל. שלי עשה, אבל העיתוי הוא יוצא לאיזו ̶r̶e̶a̶s̶o̶n̶.̶ הארוך לוחץ צריך להיות בערך שלוש שניות במקום ̶1̶.̶5̶.̶ אני לא יודע אם ̶i̶t̶'̶s̶ משהו לעשות עם Arduino או בגלל השתמשתי את טועה הגדרות ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶ אם יש לך מושג, ̶ תודיעי לי בבית ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶

עריכה: תיקנתי. (ראה שלב 1)

מוּמלָץ: