সুচিপত্র:

একটি BLF A6 টর্চলাইটে কাস্টম ফার্মওয়্যার ফ্ল্যাশ করা: 5 টি ধাপ
একটি BLF A6 টর্চলাইটে কাস্টম ফার্মওয়্যার ফ্ল্যাশ করা: 5 টি ধাপ

ভিডিও: একটি BLF A6 টর্চলাইটে কাস্টম ফার্মওয়্যার ফ্ল্যাশ করা: 5 টি ধাপ

ভিডিও: একটি BLF A6 টর্চলাইটে কাস্টম ফার্মওয়্যার ফ্ল্যাশ করা: 5 টি ধাপ
ভিডিও: Flashlight Review: BLF A6 Astrolux S1 (1200+ Lumens) Budget $30 LED Torch (Brightest EDC size 2016) 2024, নভেম্বর
Anonim
একটি BLF A6 টর্চলাইটে কাস্টম ফার্মওয়্যার ফ্ল্যাশ করা
একটি BLF A6 টর্চলাইটে কাস্টম ফার্মওয়্যার ফ্ল্যাশ করা

আমি সম্প্রতি একটি BLF A6 পেয়েছি। এটি খুব সুন্দর, কিন্তু আমি ডিফল্ট মোড গ্রুপগুলির কোনটিই পছন্দ করি না, তাই আমি আমার পছন্দের উজ্জ্বলতাগুলি ব্যবহার করার জন্য ফার্মওয়্যারটি পরিবর্তন করেছি। তথ্য খুঁজে পাওয়া কঠিন ছিল, তাই আমি নিজের এবং অন্যদের জন্য যা শিখেছি তা এখানে রাখছি।

সরবরাহ

BLF A6 (এটি সম্ভবত অন্যান্য ATtiny ভিত্তিক ফ্ল্যাশলাইটের সাথে কাজ করবে)

টুইজার / পাতলা প্লেয়ার / ছোট কাঁচি / ড্রাইভার বোর্ড রেন্টিং রিং পূর্বাবস্থায় ফেরানোর জন্য কিছু

কম্পিউটারটি ফ্ল্যাশ করার জন্য, বিশেষত একটি লিনাক্স ডিস্ট্রিবিউশন চালাচ্ছে

ইউএসবি এএসপি প্রোগ্রামার / আরডুইনো / এমন কিছু যা এভিআর প্রোগ্রামিং করতে পারে (দৃশ্যত ইউএসবি এএসপি প্রোগ্রামার সুপারিশ করা হয়, কিন্তু আমি একটি আরডুইনো ব্যবহার করেছি)

SOIC8 ক্লিপ (এটা ছাড়া করা সম্ভব, কিন্তু এটা খুব fiddly এবং মোটেও সুপারিশ করা হয় না)

(alচ্ছিক) সংযোগ সহজ করা ব্রেডবোর্ড এবং/অথবা জাম্পার তারের

ধাপ 1: ফার্মওয়্যার ডাউনলোড করুন

BLF A6 (এবং অন্যান্য অনেক ফ্ল্যাশলাইট) এর ফার্মওয়্যার এখানে পাওয়া যায়। লেখক এখানে এটি সম্পর্কে কথা বলেছেন। আপনি এটি চালানোর মাধ্যমে ডাউনলোড করতে পারেন:

bzr শাখা lp: ~ toykeeper/flashlight-firmware/blf-a6-final

একটি টার্মিনালে। (আপনাকে bzr ইনস্টল করতে হতে পারে)

দ্রষ্টব্য: এই নির্দেশনার আগের সম্পাদনায় আমি পরিবর্তে "bzr branch lp: flashlight-firmware" ব্যবহার করেছি। আমি তখন থেকে শিখেছি যে এটি অফ-টাইম ক্যাপাসিটরের ভুল মান সহ একটি পুরানো সংস্করণ ডাউনলোড করে, যা বোতামটি অস্বস্তিকরভাবে দীর্ঘ চাপ দেয়। (Reddit এ এই থ্রেড ধন্যবাদ)

আপনি যে ফোল্ডারটি চান তা হল blf-a6-final/ToyKeeper/blf-a6। এটি একটি সংকলিত (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) // ক্রোনো নমুনা: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78) // Manker2: 2 = 21, 3 = 39, 4 = 47,… 6? = 68 // প্রতিটি মোডের জন্য PWM গতি #MODES_PWM1 ফেজ, ফাস্ট, ফাস্ট, ফাস্ট, ফাস্ট, ফাস্ট, ফেইস // মোড গ্রুপ 2 #ডিফাইন NUM_MODES2 4 #ডিফাইন MODESNx2 0, 0, 90, 255 #ডিফাইন MODES1x2 20, 230, 255, 0 #MODES_PWM2 ফাস্ট, ফাস্ট, ফাস্ট, ফেজ নির্ধারণ করুন

প্রতিটি গোষ্ঠীর জন্য, MODESN হল FW- এর জন্য ব্যবহৃত PWM মান এবং MODES1 হল প্রতিটি মোডে 7135 এর জন্য ব্যবহৃত PWM মান। সংখ্যাটি 0 থেকে 255 এর মধ্যে, এবং আলোর উজ্জ্বলতার সাথে মিলে যায়। আরো তথ্য এখানে। ("মোড রেগুলেশন:" এ নিচে স্ক্রোল করুন) আমি নিশ্চিত নই যে PWM গতি ঠিক কি। কেউ জানলে কমেন্টে জানাবেন। FET 7135 এর চেয়ে বেশি আলো তৈরি করতে পারে, কিন্তু 7135 ব্যাটারির লাইফের মাধ্যমে আলোর মাত্রা কমবেশি একই রাখে, যখন ব্যাটারি ফুরিয়ে যায় তখন FET গাer় হয়ে যায়।

এখানে আপনি আপনার পছন্দ অনুযায়ী মোড তৈরি করতে PWM মান সমন্বয় করতে পারেন। আপনি সম্ভবত মোডের সংখ্যাও পরিবর্তন করতে পারেন, কিন্তু আমি এটি চেষ্টা করিনি কারণ আমি চারটি মোড চেয়েছিলাম, যা দ্বিতীয় গ্রুপের সংখ্যা হতে পারে। আমি একটি গা moon় চাঁদের আলো মোড চেয়েছিলাম, তাই আমি প্রথমটি 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 এর জন্য। (duh) এটি আপনাকে বলা উচিত এটি কোন কমান্ড চলছে এবং আপনাকে আউটপুট দেবে। আমার এই মত দেখাচ্ছে:

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 -সেকশন-পতাকা =। জিপ্রোম = বরাদ্দ, লোড-চেঞ্জ-সেকশন-এলএমএ। জিপ্রোম = 0-না-পরিবর্তন-সতর্কতা -O ihex blf-a6.elf blf-a6.hex প্রোগ্রাম: 1022 বাইট (99.8% পূর্ণ) ডেটা: 13 বাইট (20.3% পূর্ণ)

কমান্ডগুলি ইতিমধ্যে আকারের জন্য অপ্টিমাইজ করা হয়েছে, তাই যদি এটি বলে যে এটি 100% এর বেশি পূর্ণ, মন্তব্য করার চেষ্টা করুন

#FULL_BIKING_STROBE সংজ্ঞায়িত করুন

147 লাইনে ছোট ন্যূনতম বাইকিং স্ট্রোব ব্যবহার করতে। যদি এটি এখনও মানানসই না হয়, তাহলে আপনাকে সম্ভবত কোথাও আরও কোড অপসারণ করতে হবে। যখন এটি কম্পাইল করা শেষ হয়, তখন ফোল্ডারে blf-a6.hex নামে একটি ফাইল থাকা উচিত। এটি আপনার সংকলিত কোড, ফ্ল্যাশ করার জন্য প্রস্তুত।

ধাপ 3: টর্চলাইটটি আলাদা করুন

টর্চলাইট বিচ্ছিন্ন করুন
টর্চলাইট বিচ্ছিন্ন করুন
টর্চলাইট বিচ্ছিন্ন করুন
টর্চলাইট বিচ্ছিন্ন করুন
টর্চলাইট বিচ্ছিন্ন করুন
টর্চলাইট বিচ্ছিন্ন করুন

ঘড়ির কাঁটার বিপরীতে বাল্বের প্রান্তটি খুলুন। এখানে দুটি স্ক্রু জয়েন্ট আছে। ফ্ল্যাশলাইটের বাল্ব প্রান্তের কাছাকাছি একটি প্রতিফলক এবং LED খুলে দেয়, এবং মাঝের কাছাকাছিটি ড্রাইভার বোর্ডটি খুলে দেয়। আপনি মাঝের কাছাকাছি একজনকে চান।

ভিতরে, আপনি ব্যাটারি স্প্রিং এবং এটিতে দুটি ছিদ্র সহ একটি রেন্টিং রিং দেখতে পাবেন। গর্তের মধ্যে আপনার টুইজার / পাতলা প্লেয়ার / কাঁচি andুকান এবং ঘড়ির কাঁটার বিপরীতে ঘোরান। এটি বেশ শক্ত, এবং দুটি পৃথক বস্তু ব্যবহার করা সম্ভবত আপনাকে পর্যাপ্ত লিভারেজ দেবে না। আমি সুইস আর্মি নাইফে কাঁচি ব্যবহার করেছি।

একবার আপনি রিং বের করে নিলে, ড্রাইভার বোর্ড মুক্ত করুন। এটি এখনও দুটি তারের সাথে সংযুক্ত, তাই সাবধান। তারা একসঙ্গে পাকানো হয়, তাই তারগুলি আলগা না হওয়া পর্যন্ত বোর্ডটি এক বা অন্যভাবে ঘোরান। যখন আপনার পর্যাপ্ত অবকাশ থাকে, তখন বোর্ডটি উল্টে দিন। আপনি এটি চান যাতে "TINY13A" এর সাথে চিপটি উচ্চতর এবং আরও অ্যাক্সেসযোগ্য হয়। যদি এটি ভুল দিকে থাকে তবে এটি অন্যভাবে উল্টে দিন। পাশের নিচে বসন্ত টুকরা। এটি সাময়িকভাবে এটিকে জায়গায় রাখবে এবং চিপে যাওয়া সহজ করবে। আপনার যদি এটি নিয়ে সমস্যা হয় তবে আপনি সম্ভবত অন্য জয়েন্টটি আনস্ক্রু করতে পারেন এবং দুটি তারকে অন্য দিক থেকে সরিয়ে দিতে পারেন যাতে আপনি বোর্ডটি পুরোপুরি সরিয়ে ফেলতে পারেন, তবে আমি এটি চেষ্টা করি নি।

ধাপ 4: ফ্ল্যাশিং হার্ডওয়্যার সংযুক্ত করুন

ফ্ল্যাশিং হার্ডওয়্যার সংযুক্ত করুন
ফ্ল্যাশিং হার্ডওয়্যার সংযুক্ত করুন
ফ্ল্যাশিং হার্ডওয়্যার সংযুক্ত করুন
ফ্ল্যাশিং হার্ডওয়্যার সংযুক্ত করুন
ফ্ল্যাশিং হার্ডওয়্যার সংযুক্ত করুন
ফ্ল্যাশিং হার্ডওয়্যার সংযুক্ত করুন

এখন আপনি ATTiny13 চিপ এবং আপনার প্রোগ্রামারকে সংযুক্ত করতে SOIC8 ক্লিপ ব্যবহার করেন। আমার SOIC8 ক্লিপের সাথে, যদি আমার দুই প্রান্তের বাম দিকে লাল তার থাকে, ক্লিপের শেষের দিকে আমার কাছাকাছি পিনের সারি সংযোগকারী প্রান্তে আমার কাছাকাছি পিনের সারির সাথে মিলে যায়, যখন সংযোগকারীটি মুখোমুখি হয়। (আমার সুপার শৈল্পিক চিত্র দেখুন) এই নির্দেশিকা আপনাকে একটি ইউএসবি এএসপি ভি ২.০ প্রোগ্রামার ব্যবহার করার পরামর্শ দেয়। যদি আপনি করেন তবে এটিকে এভাবে সংযুক্ত করুন:

  • USB ASP (রিসেট) এ 5 পিন করার জন্য ATtiny13 এ 1 পিন করুন
  • ইউএসবি এএসপি (গ্রাউন্ড) এ 10 পিন করতে ATtiny13 এ 4 পিন করুন
  • USB ASP (MOSI) এ 1 পিন করার জন্য ATtiny13 এ 5 পিন করুন
  • USB ASP (MISO) এ 9 পিন করার জন্য ATtiny13 এ 6 পিন করুন
  • USB ASP (SCK) এ 7 পিন করার জন্য ATtiny13 এ 7 পিন করুন
  • ATTiny13 এ 8 পিন করুন USB ASP (VCC) এ 2 পিন করুন

যদি, আমার মত, আপনি একটি Arduino ব্যবহার করছেন, তাহলে আপনাকে একটু বেশি প্রস্তুতি নিতে হবে। এই গাইডের শূন্য এবং দুটি ধাপ অনুসরণ করুন:

Arduino IDE খুলুন এবং নিশ্চিত করুন যে আপনার Arduino আপনার কম্পিউটারের সাথে সংযুক্ত। ফাইল> উদাহরণ> 11. ArduinoISP> ArduinoISP এ ISP স্কেচ খুঁজুন এবং আপনার Arduino এ আপলোড করুন। তারপর ATtiny13 এর সাথে এর সাথে সংযুক্ত করুন:

  • আরডুইনোতে 10 পিন করার জন্য ATtiny13 এ 1 পিন করুন (রিসেট করুন)
  • ATTiny13 এ পিন 4 Arduino (Ground) এ GND
  • Arduino (MOSI) এ 11 টি পিন করার জন্য ATtiny13 এ 5 পিন করুন
  • Arduino (MISO) এ 12 টি পিন করার জন্য ATtiny13 এ 6 পিন করুন
  • ATTiny13 এ 7 পিন করুন Arduino (SCK) এ 13 পিন করুন
  • ATTiny13 এ 8 পিন করুন Arduino তে VCC / 5V / 3.3V (যে কোন কাজ করা উচিত, কিন্তু 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 -Ulfuse: w: 0x75: m -Uhfuse: w: 0xFF: m

কিছু কারণে, আমাকে প্রোগ্রামার হিসাবে stk500v1 নির্দিষ্ট করতে হবে, এবং এটি কাজ করে নি যতক্ষণ না আমি পোর্ট এবং বড রেট নির্দিষ্ট করি। যদি আপনি একটি Arduino ব্যবহার করেন এবং সন্দেহ হয়, Arduino থেকে আপনার ATtiny13 সংযোগ বিচ্ছিন্ন করার চেষ্টা করুন এবং এখানে সেটিংস ব্যবহার করে Arduino IDE তে একটি স্কেচ আপলোড করুন। এটি ব্যর্থ হবে, কিন্তু এটি কনসোল উইন্ডোতে কোন কমান্ড ব্যবহার করছে তা বলা উচিত। আপনি আপনার AVRDUDE কমান্ডে বৈশিষ্ট্যগুলি অনুলিপি করতে পারেন।

আপনি যদি একটি ইউএসবি এএসপি প্রোগ্রামার ব্যবহার করেন, তাহলে পরিবর্তে চালান:

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 হল ফিউজ। আপনার ভিন্ন হতে পারে, তাই ফ্ল্যাশলাইট-ফার্মওয়্যার/বিন/ফ্ল্যাশ-টিনি 13-fuses.sh- এ মান দুবার পরীক্ষা করুন।

যদি এটি একটি সীমার বাইরে ত্রুটি দেয়, তাহলে এর অর্থ হল ছবিটি চিপে ফিট করার জন্য খুব বড় এবং আপনাকে কিছু কোড সরিয়ে ফেলতে হবে। যদি এটি সফলভাবে জ্বলজ্বল করে, এটি কিছু অগ্রগতি বার প্রদর্শন করা উচিত, তারপর বলুন "avrdude সম্পন্ন হয়েছে। ধন্যবাদ।"

যদি এটি "অবৈধ ডিভাইস স্বাক্ষর" বলে এবং আপনার প্রোগ্রামারের জাম্পার 3.3v এ সেট করা থাকে, তাহলে এটি 5v এ সেট করার চেষ্টা করুন।

আপনি এটি ফ্ল্যাশ করার পরে, আপনার ফ্ল্যাশলাইটটি আবার একত্রিত করুন এবং দেখুন এটি কাজ করে কিনা। খনি পারিনি তবে The সময়জ্ঞান হয় বন্ধ জন্য কিছু বৈধ কারণ The Long presses প্রয়োজন হতে তিন সেকেন্ডের পরিবর্তে ̶1̶.̶5̶.̶ আমি চি জানেন তাহলে ̶i̶t̶'̶s̶ না কিছু সঙ্গে The Arduino অথবা কারণ গর্ভে ব্যবহৃত The ভুল সেটিংস ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶ যদি আপনার যেকোনো ধারণা, ̶ Let Me Know মধ্যে The ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶

সম্পাদনা করুন: আমি এটি ঠিক করেছি। (ধাপ 1 দেখুন)

প্রস্তাবিত: