টেক্সাস ইন্সট্রুমেন্টস সিম্পললিঙ্ক এফ৩ এবং ওপেনথ্রেড ব্যবহার করে একটি থ্রেড নেটওয়ার্ক তৈরি করুন, টেক্সাস ইন্সট্রুমেন্টস সিম্পললিঙ্ক এফ৩ এবং ওপেনথ্রেড ব্যবহার করে একটি থ্রেড নেটওয়ার্ক তৈরি করুন

১. ভূমিকা

ওপেনথ্রেড লোগো

গুগলের ওপেনথ্রেড (OT) হলো থ্রেড-এর একটি ওপেন-সোর্স বাস্তবায়ন। গুগল নেস্ট পণ্যগুলিতে ব্যবহৃত নেটওয়ার্কিং প্রযুক্তি ডেভেলপারদের কাছে ব্যাপকভাবে সহজলভ্য করার জন্য গুগল ওপেনথ্রেড প্রকাশ করেছে, যা কানেক্টেড হোম এবং বাণিজ্যিক ভবন অ্যাপ্লিকেশনগুলির জন্য পণ্য উন্নয়নকে ত্বরান্বিত করে। একটি সংকীর্ণ প্ল্যাটফর্ম অ্যাবস্ট্রাকশন লেয়ার এবং স্বল্প মেমরি ফুটপ্রিন্টের কারণে ওপেনথ্রেড অত্যন্ত পোর্টেবল। এটি সিস্টেম-অন-চিপ (SoC) এবং নেটওয়ার্ক কো-প্রসেসর (NCP) উভয় ডিজাইনই সমর্থন করে।

থ্রেড স্পেসিফিকেশনটি বাড়ি এবং বাণিজ্যিক ভবনের অ্যাপ্লিকেশনের জন্য একটি IPv6-ভিত্তিক নির্ভরযোগ্য, সুরক্ষিত এবং স্বল্প-শক্তিসম্পন্ন ওয়্যারলেস ডিভাইস-টু-ডিভাইস যোগাযোগ প্রোটোকল সংজ্ঞায়িত করে।

টেক্সাস ইন্সট্রুমেন্টস তাদের সিম্পললিঙ্ক™ CC27xx ডিভাইস ফ্যামিলির জন্য ওপেনথ্রেড বাস্তবায়ন করেছে। গিটহাবের ot-ti রিপোজিটরিতে টেক্সাস ইন্সট্রুমেন্টস সিম্পললিঙ্ক কানেক্টেড এমসিইউ-তে ওপেনথ্রেড চালানোর জন্য প্রয়োজনীয় প্ল্যাটফর্ম ড্রাইভার এবং উদাহরণ অ্যাপ্লিকেশন রয়েছে। CC2745R10-Q1 হলো টিআই-এর সিম্পললিঙ্ক CC27xx ফ্যামিলির একটি অটোমোটিভ-গ্রেড (AEC-Q100 কোয়ালিফাইড), থ্রেড-সার্টিফাইড IEEE 802.15.4 ওয়্যারলেস এমসিইউ।

এই কোডল্যাবে বর্ণনা করা হয়েছে কিভাবে LP-EM-CC2745R10-Q1 লঞ্চপ্যাড ইভ্যালুয়েশন বোর্ড এবং ot-ti রিপোজিটরি ব্যবহার করে ওপেনথ্রেড অ্যাপ্লিকেশন তৈরি করা শুরু করা যায়। নিচের ছবিতে এই কোডল্যাবে ব্যবহৃত হার্ডওয়্যার সেটআপ দেখানো হয়েছে, যেখানে একটি ওটি বর্ডার রাউটার (OTBR) এবং দুটি থ্রেড ফুল থ্রেড ডিভাইস (FTD) রয়েছে।

CC2745R10 হার্ডওয়্যার সেটআপ

আপনি যা শিখবেন

  • টেক্সাস ইন্সট্রুমেন্টস ot-ti বিল্ড এনভায়রনমেন্ট কীভাবে সেট আপ করবেন।
  • LP-EM-CC2745R10-Q1 বোর্ডগুলিতে কীভাবে OpenThread CLI বাইনারি তৈরি এবং ফ্ল্যাশ করতে হয়।
  • ot-br-posix ব্যবহার করে কীভাবে একটি রাস্পবেরি পাইকে ওপেনথ্রেড বর্ডার রাউটার (OTBR) হিসেবে সেট আপ করবেন।
  • OTBR-এ কীভাবে একটি থ্রেড নেটওয়ার্ক তৈরি করতে হয়।
  • থ্রেড নেটওয়ার্কে ডিভাইসসমূহের আউট-অফ-ব্যান্ড কমিশনিং।
  • পিং কমান্ড ব্যবহার করে নোডগুলোর মধ্যে থ্রেড কমিউনিকেশন কীভাবে যাচাই করা যায়।

২. পূর্বশর্তসমূহ

হার্ডওয়্যার

  1. ৩টি LP-EM-CC2745R10-Q1 লঞ্চপ্যাড বোর্ড : একটি বর্ডার রাউটারের সাথে সংযুক্ত RCP হিসাবে কনফিগার করা, এবং দুটি ফুল থ্রেড ডিভাইস (FTD) হিসাবে কনফিগার করা।LP-EM-CC2745R10-Q1 কৌণিক দৃশ্য CC2745R10-Q1 হলো TI-এর SimpleLink CC27xx ফ্যামিলির একটি অটোমোটিভ-গ্রেড (AEC-Q100 কোয়ালিফাইড) থ্রেড-সার্টিফাইড IEEE 802.15.4 ওয়্যারলেস MCU। LP-EM-CC2745R10-Q1 হলো এর সংশ্লিষ্ট লঞ্চপ্যাড ইভ্যালুয়েশন মডিউল এবং এটি RCP, FTD, MTD, ও NCP থ্রেড রোল সমর্থন করে। LP-EM-CC2340R5 লঞ্চপ্যাড সহ CC2340R5 হলো একটি কম মেমোরির বিকল্প যা শুধুমাত্র RCP হিসেবে কাজ করতে পারে। এটি FTD, MTD বা NCP রোল সমর্থন করে না। যদি আপনি বোর্ড ১ (RCP)-এর পরিবর্তে একটি LP-EM-CC2340R5 ব্যবহার করেন, তাহলেও দুটি FTD বোর্ড অবশ্যই LP-EM-CC2745R10-Q1 হতে হবে।
  2. ৩টি LP-XDS110ET ডিবাগ প্রোব : প্রতিটি লঞ্চপ্যাড বোর্ডের জন্য একটি করে, যা USB-এর মাধ্যমে প্রোগ্রামিং এবং ডিবাগ করার জন্য ব্যবহৃত হয়।LP-XDS110ET কৌণিক দৃশ্যLP-XDS110ET হলো একটি আলাদা USB ডিবাগ প্রোব যা LP-EM ফর্ম ফ্যাক্টরের লঞ্চপ্যাডগুলোর জন্য প্রয়োজন। এতে পাওয়ার প্রোফাইলিংয়ের জন্য এনার্জিট্রেস (EnergyTrace) সাপোর্ট রয়েছে। LP-XDS110 হলো একটি কম খরচের বিকল্প যা একই প্রোগ্রামিং এবং ডিবাগ করার সুবিধা দেয়, কিন্তু এতে এনার্জিট্রেস অন্তর্ভুক্ত নেই। আরও একটি বিকল্প হিসেবে, LP-EM বোর্ড এবং একটি আলাদা ডিবাগ প্রোবের পরিবর্তে সম্পূর্ণভাবে একটি অন-বোর্ড XDS110 ডিবাগ প্রোবসহ লঞ্চপ্যাড (যেমন LAUNCHXL-CC26X2R1) ব্যবহার করা যেতে পারে। বিস্তারিত জানতে লঞ্চপ্যাড ডিবাগ কানেক্টিভিটি গাইড দেখুন।
  3. লঞ্চপ্যাড বোর্ড এবং ডিবাগ প্রোব সংযোগ ও শক্তি সরবরাহের জন্য ৩টি মাইক্রো-ইউএসবি ক্যাবল
  4. ইথারনেটের মাধ্যমে ইন্টারনেটে সংযুক্ত, রাস্পবেরি পাই ওএস সহ একটি রাস্পবেরি পাই ৪বি বা তার চেয়ে উন্নত ডিভাইস। এটিকে ওটি বর্ডার রাউটার হোস্ট হিসেবে কনফিগার করা হবে।রাস্পবেরি পাই ৪
  5. কমপক্ষে ২টি ইউএসবি পোর্ট এবং ইন্টারনেট সংযোগসহ একটি লিনাক্স বা ম্যাকওএস হোস্ট সিস্টেম প্রয়োজন। বিল্ড এনভায়রনমেন্টের জন্য একটি ব্যাশ-উপযোগী শেল প্রয়োজন। উইন্ডোজ ব্যবহারকারীদের উবুন্টুর সাথে WSL2 (উইন্ডোজ সাবসিস্টেম ফর লিনাক্স ২) ব্যবহার করা উচিত।
  6. রাস্পবেরি পাইকে ইন্টারনেটের সাথে সংযোগ করার জন্য কমপক্ষে একটি ইথারনেট ক্যাবল প্রয়োজন । বিকল্পভাবে, আপনি রাস্পবেরি পাইকে ওয়াই-ফাই এর সাথে সংযুক্ত করতে পারেন এবং wlan0 ইনফ্রাস্ট্রাকচার ইন্টারফেস হিসেবে ব্যবহার করতে পারেন — বিস্তারিত জানার জন্য OTBR সেটআপ ধাপটি দেখুন।

সফটওয়্যার

  • TI ot-ti সংগ্রহস্থল : https://github.com/TexasInstruments/ot-ti
  • জিএনইউ এআরএম এমবেডেড টুলচেইন ১২.২ (বুটস্ট্র্যাপ স্ক্রিপ্ট দ্বারা স্বয়ংক্রিয়ভাবে ইনস্টল করা হয়)
  • SysConfig 1.27.0 (বুটস্ট্র্যাপ স্ক্রিপ্ট দ্বারা স্বয়ংক্রিয়ভাবে ইনস্টল করা হয়েছে)
  • টিআই ইউনিফ্ল্যাশ : লঞ্চপ্যাড বোর্ডগুলিতে ফার্মওয়্যার ফ্ল্যাশ করার জন্য।

  • ot-br-posix : https://github.com/openthread/ot-br-posix
  • PuTTY (উইন্ডোজ), minicom (লিনাক্স), বা screen (macOS/লিনাক্স)-এর মতো একটি সিরিয়াল টার্মিনাল

৩. হার্ডওয়্যার সেটআপ

এই কোডল্যাবে তিনটি LP-EM-CC2745R10-Q1 বোর্ড ব্যবহার করা হয়েছে:

  • বোর্ড ১ (আরসিপি): এতে ot-rcp ফার্মওয়্যার চলে। এটি বর্ডার রাউটারের রেডিও কো-প্রসেসর হিসেবে ইউএসবি-র মাধ্যমে রাস্পবেরি পাই-এর সাথে সংযুক্ত থাকে।
  • বোর্ড ২ (FTD 1): একটি ফুল থ্রেড ডিভাইস হিসেবে ot-cli-ftd ফার্মওয়্যার চালায়।
  • বোর্ড ৩ (FTD 2): একটি ফুল থ্রেড ডিভাইস হিসেবে ot-cli-ftd ফার্মওয়্যার চালায়।

LP-EM-CC2745R10-Q1 উপরের দৃশ্য

প্রতিটি লঞ্চপ্যাডকে মাইক্রো-ইউএসবি-র মাধ্যমে আপনার হোস্ট কম্পিউটারের সাথে সংযুক্ত করুন। ইউএসবি সংযোগটি অনবোর্ড XDS110 ডিবাগ প্রোবের মাধ্যমে বিদ্যুৎ সরবরাহ এবং ডিবাগ/প্রোগ্রামিং ক্ষমতা উভয়ই প্রদান করে।

ইউএসবি-র মাধ্যমে সংযুক্ত করলে প্রতিটি LP-EM-CC2745R10-Q1 দুটি ভার্চুয়াল সিরিয়াল পোর্ট হিসেবে প্রদর্শিত হয়: একটি XDS110 ডিবাগ ইন্টারফেসের জন্য এবং অন্যটি অ্যাপ্লিকেশন UART-এর জন্য। সিরিয়াল কনসোল খোলার সময়, অ্যাপ্লিকেশন/ইউজার UART পোর্টে সংযোগ করুন, অক্সিলিয়ারি ডেটা পোর্টে নয়।

হার্ডওয়্যার সংযোগ ডায়াগ্রাম

৪. রিপোজিটরি সেটআপ এবং বিল্ড

ot-ti বিল্ড সিস্টেম CMake ব্যবহার করে এবং এর জন্য একটি Bash শেল প্রয়োজন। এই বিভাগের সমস্ত কমান্ড Linux বা macOS হোস্টে (অথবা Windows-এ WSL2-তে) চালানো হয়।

১. রিপোজিটরি ক্লোন করুন

$ git clone https://github.com/TexasInstruments/ot-ti.git
$ cd ot-ti
$ git submodule update --init

২. বুটস্ট্র্যাপ স্ক্রিপ্টটি চালান

বুটস্ট্র্যাপ স্ক্রিপ্টটি GNU ARM টুলচেইন এবং SysConfig সহ প্রয়োজনীয় ডিপেন্ডেন্সিগুলো ইনস্টল করে:

$ ./script/bootstrap

বুটস্ট্র্যাপ স্ক্রিপ্টটির জন্য cmake , git , wget এবং স্ট্যান্ডার্ড বিল্ড টুলস প্রয়োজন। Ubuntu/Debian-এ, নিম্নলিখিত কমান্ডের মাধ্যমে পূর্বশর্তগুলো ইনস্টল করুন: sudo apt-get install -y cmake git make wget tar ninja-build

৩. LP_EM_CC2745R10_Q1 এর জন্য ফার্মওয়্যার তৈরি করুন

LP-EM-CC2745R10-Q1 বোর্ডের জন্য সমস্ত ফার্মওয়্যার ইমেজ তৈরি করুন:

$ ./script/build LP_EM_CC2745R10_Q1

LP_EM_CC2745R10_Q1 বিল্ড টার্গেটটি CC27xx SimpleLink ফ্যামিলির (Arm Cortex-M33F কোর) CC2745R10-Q1 ডিভাইসটির সাথে সঙ্গতিপূর্ণ। সমস্ত সমর্থিত বোর্ড দেখতে, কোনো আর্গুমেন্ট ছাড়াই ./script/build রান করুন।

সফলভাবে বিল্ড সম্পন্ন হলে, ELF বাইনারিগুলো build/bin/ ফোল্ডারে থাকে।

$ ls build/bin/
ot-cli-ftd.out  ot-cli-mtd.out  ot-ncp-ftd.out  ot-rcp.out

এই কোডল্যাবে ব্যবহৃত দুটি ছবি হলো:

  • ot-rcp.out : বর্ডার রাউটার বোর্ডের জন্য রেডিও কো-প্রসেসর ফার্মওয়্যার।
  • ot-cli-ftd.out : দুটি FTD বোর্ডের জন্য সম্পূর্ণ থ্রেড ডিভাইস CLI ফার্মওয়্যার।

ঐচ্ছিক মিনিমাল থ্রেড ডিভাইস: আপনি যদি একটি ফুল থ্রেড ডিভাইসের পরিবর্তে একটি স্লিপি এন্ড ডিভাইস ব্যবহার করতে চান, তাহলে বোর্ড ২ এবং ৩-এ ot-cli-ftd.out এর জায়গায় ot-cli-mtd.out ফ্ল্যাশ করতে পারেন। একটি MTD থ্রেড ট্র্যাফিক রাউট করে না এবং স্বল্প-শক্তির স্লিপ স্টেটে প্রবেশ করতে পারে, যা এটিকে ব্যাটারি-চালিত অ্যাপ্লিকেশনের জন্য বিশেষভাবে উপযুক্ত করে তোলে। এই কোডল্যাবে থ্রেড নেটওয়ার্ক গঠনের ধাপগুলো উভয় ধরনের ডিভাইসের জন্যই একই।

ঐচ্ছিক নেটওয়ার্ক কো-প্রসেসর (NCP): ot-ncp-ftd.out বাইনারিটি NCP আর্কিটেকচার বাস্তবায়ন করে, যেখানে OpenThread স্ট্যাক ডিভাইসে চলে এবং একটি হোস্ট প্রসেসর Spinel প্রোটোকলের মাধ্যমে এটিকে চালনা করে। NCP-এর ব্যবহার এই কোডল্যাবের আওতার বাইরে, বিস্তারিত জানতে NCP README দেখুন।

৫. ফার্মওয়্যার ফ্ল্যাশ করুন

লঞ্চপ্যাড বোর্ডগুলিতে ELF ইমেজগুলি ফ্ল্যাশ করতে TI UniFlash ব্যবহার করুন।

ইউনিফ্ল্যাশ ব্যবহার করে ফ্ল্যাশ করুন

  1. UniFlash খুলুন। স্বয়ংক্রিয় ডিভাইস সনাক্তকরণ বৈশিষ্ট্যের কারণে সংযুক্ত LaunchPad বোর্ডগুলি 'Detected Devices'-এর অধীনে প্রদর্শিত হয়। যদি আপনার বোর্ড স্বয়ংক্রিয়ভাবে সনাক্ত না হয়, তাহলে 'New Configuration'-এ ক্লিক করুন, LP-EM-CC2745R10-Q1 টার্গেটটি নির্বাচন করুন এবং XDS110 USB ডিবাগ প্রোবটি বেছে নিন। ইউনিফ্ল্যাশ দ্বারা সনাক্তকৃত ডিভাইস
  2. বোর্ড ১ (যেটি ot-rcp.out দিয়ে ফ্ল্যাশ করা হবে) নির্বাচন করুন এবং স্টার্ট-এ ক্লিক করুন।
  3. ব্রাউজ বোতামে ক্লিক করুন এবং ot-ti/build/bin/ot-rcp.out এ যান। ইউনিফ্ল্যাশ ফ্ল্যাশ পৃষ্ঠা
  4. ফার্মওয়্যার ফ্ল্যাশ করতে 'লোড ইমেজ'-এ ক্লিক করুন। লগ অংশে কাজের অগ্রগতি দেখানো হয় এবং কাজ সম্পন্ন হওয়ার বিষয়টি নিশ্চিত করা হয়।
  5. বোর্ড ২ এবং বোর্ড ৩ এর জন্য ধাপ ২-৪ পুনরাবৃত্তি করুন এবং প্রতিটির জন্য ot-ti/build/bin/ot-cli-ftd.out নির্বাচন করুন।

বিকল্প: কোড কম্পোজার স্টুডিও (CCS) ব্যবহার করে ফ্ল্যাশ

কোড কম্পোজার স্টুডিও ইউনিফ্ল্যাশের বিকল্প হিসেবে ব্যবহার করা যেতে পারে এবং এর পাশাপাশি এটি একটি সম্পূর্ণ ডিবাগ পরিবেশও প্রদান করে:

  1. কোড কম্পোজার স্টুডিও ডাউনলোড ও ইনস্টল করুন।
  2. XDS110 ডিবাগারের সাথে LP-EM-CC2745R10-Q1-এর জন্য একটি টার্গেট কানেকশন (CCXML) তৈরি করুন। CCS ইউজার্স গাইডের ম্যানুয়াল মেথড অংশটি দেখুন।
  3. CCS ব্যবহারকারী নির্দেশিকার 'ম্যানুয়াল লঞ্চ' অংশে বর্ণিত পদ্ধতি অনুসারে একটি প্রজেক্ট-বিহীন ডিবাগ সেশন শুরু করুন।
  4. Arm Cortex-M33 কোরের সাথে সংযোগ স্থাপন করুন এবং ELF ইমেজটি লোড করতে লোড -এ ক্লিক করুন।

ডিফল্ট CCXML কনফিগারেশনটি ডিফল্ট LP-EM-CC2745R10-Q1 জাম্পার কনফিগারেশনের সাথে মেলানোর জন্য ২-ওয়্যার cJTAG ব্যবহার করে। JTAG-এর মাধ্যমে প্রোগ্রামিং করার পর, halt-in-boot ফ্ল্যাগটি মুছে ফেলার জন্য বোর্ডটি পাওয়ার-সাইকেল করুন।

৬. এইচএসএম প্রোগ্রাম করুন

CC2745R10-Q1-এ একটি হার্ডওয়্যার সিকিউরিটি মডিউল (HSM) রয়েছে, যা থ্রেড বা অন্য কোনো সুরক্ষিত অ্যাপ্লিকেশন ফার্মওয়্যার চালানোর আগে অবশ্যই প্রোভিশন করতে হবে। যদি আপনার LP-EM-CC2745R10-Q1 বোর্ডের HSM এখনও প্রোগ্রাম করা না হয়ে থাকে, তবে এখনই এই ধাপটি সম্পন্ন করুন।

UniFlash ব্যবহার করে HSM প্রোগ্রাম করতে:

  1. UniFlash খুলুন এবং Detected Devices থেকে আপনার LP-EM-CC2745R10-Q1 বোর্ডটি নির্বাচন করুন।
  2. HSM প্রোগ্রামিং প্যানেলে যান এবং নিচে দেখানো অনুযায়ী HSM ফার্মওয়্যার ইমেজটি লোড করুন।

ইউনিফ্ল্যাশ এইচএসএম প্রোগ্রামিং

  1. HSM প্রোভিশনিং সম্পন্ন করতে স্ক্রিনে প্রদর্শিত নির্দেশাবলী অনুসরণ করুন। এই কার্যক্রমটি UniFlash আউটপুট কনসোলে লগ করা থাকে।

সম্পূর্ণ HSM প্রোগ্রামিং পদ্ধতির জন্য, যার মধ্যে SimpleLink Low Power F3 SDK-এর মধ্যে প্রয়োজনীয় ফার্মওয়্যার ইমেজ পাথও অন্তর্ভুক্ত রয়েছে, TI Resource Explorer-এ থাকা CC2745R10-Q1 কুইক স্টার্ট গাইডটি দেখুন।

৭. ফার্মওয়্যার সারাংশ

এই পর্যায়ে, তিনটি বোর্ডই ফ্ল্যাশ করা উচিত:

  • বোর্ড ১: ot-rcp.out : হোস্ট কম্পিউটার থেকে সংযোগ বিচ্ছিন্ন করুন এবং USB-এর মাধ্যমে রাস্পবেরি পাই-এর সাথে সংযোগ করুন।
  • বোর্ড ২: ot-cli-ftd.out : হোস্ট কম্পিউটারের সাথে সংযুক্ত রাখুন।
  • বোর্ড ৩: ot-cli-ftd.out : হোস্ট কম্পিউটারের সাথে সংযুক্ত রাখুন।

আপনার হার্ডওয়্যার সেটআপটি নিচের ডায়াগ্রামের মতো হবে। বোর্ড ১, OTBR-এর রেডিও কো-প্রসেসর হিসেবে রাস্পবেরি পাই-এর সাথে সংযুক্ত থাকে, আর বোর্ড ২ এবং ৩ সিরিয়াল কনসোল অ্যাক্সেসের জন্য হোস্ট কম্পিউটারের সাথে সংযুক্ত থাকে।

FTD সহ CC2745R10 হার্ডওয়্যার সেটআপ

৮. ot-cli-ftd ডিভাইসগুলির জন্য সিরিয়াল কনসোল সেট আপ করুন

LP-EM-CC2745R10-Q1 মডেলটি USB-এর মাধ্যমে 921600 বড গতিতে অ্যাপ্লিকেশন UART উন্মুক্ত করে।

এই সেটিংস ব্যবহার করে প্রতিটি FTD বোর্ডের জন্য অ্যাপ্লিকেশন UART COM পোর্ট (উইন্ডোজ) অথবা /dev/ttyACM* ডিভাইসে (লিনাক্স/ম্যাকওএস) একটি সিরিয়াল টার্মিনাল খুলুন:

প্যারামিটার

মূল্য

গতি (বড)

921600

ডেটা বিট

8

স্টপ বিট

1

সমতা

None

প্রবাহ নিয়ন্ত্রণ

None

টিপস (লিনাক্স/ম্যাকওএস): একটি বোর্ড প্লাগ ইন করার আগে এবং পরে ls /dev/ttyACM* কমান্ডটি চালিয়ে কোন এন্ট্রিটি দেখা যাচ্ছে তা লক্ষ্য করে সঠিক ডিভাইস নোডটি শনাক্ত করুন। প্রতিটি LP-EM-CC2745R10-Q1 দুটি এন্ট্রি তৈরি করে: কম সংখ্যার পোর্টটি হলো XDS110 ডিবাগ UART এবং বেশি সংখ্যার পোর্টটি হলো অ্যাপ্লিকেশন UART। উদাহরণস্বরূপ, যদি বোর্ডটি /dev/ttyACM0 এবং /dev/ttyACM1 তৈরি করে, তাহলে /dev/ttyACM1 ব্যবহার করুন।

টিপস (উইন্ডোজ): যখন একটি বোর্ড প্লাগ ইন করা হয়, তখন ডিভাইস ম্যানেজার খুলুন এবং পোর্টস (COM ও LPT)- এর অধীনে দুটি নতুন COM পোর্ট খুঁজুন। XDS110 ডিবাগ ডেটা পোর্টটি সাধারণত প্রথমে দেখা যায়, অ্যাপ্লিকেশন কনসোলের জন্য দ্বিতীয় (বেশি নম্বরের) COM পোর্টটি ব্যবহার করুন।

OpenThread CLI প্রম্পট ( > ) পেতে টার্মিনালে এন্টার চাপুন। উপলব্ধ কমান্ডের সম্পূর্ণ তালিকার জন্য, OpenThread CLI রেফারেন্স দেখুন। FTD চালু আছে কিনা তা যাচাই করুন:

> state
disabled
Done

সিরিয়াল টার্মিনাল এফটিডি

আপনি এখনও RCP বোর্ডের জন্য কোনো সিরিয়াল কনসোল সেট আপ করবেন না। রাস্পবেরি পাই-এর OTBR সরাসরি RCP-এর সাথে যোগাযোগ করে। পরবর্তী ধাপে, আপনি রাস্পবেরি পাই-কে ওপেনথ্রেড বর্ডার রাউটার হিসেবে কনফিগার করবেন।

৯. রাস্পবেরি পাইকে বর্ডার রাউটার হিসেবে সেট আপ করুন

OTBR-টি ot-br-posix নামক ওপেন-সোর্স ওপেনথ্রেড বর্ডার রাউটার প্রজেক্ট থেকে তৈরি করা হয়েছে। এই বর্ডার রাউটারটি রাস্পবেরি পাই-তে চলে এবং USB-এর মাধ্যমে এর 802.15.4 রেডিও হিসেবে বোর্ড ১ (RCP)-কে ব্যবহার করে।

রাস্পবেরি পাই সেটআপ

  1. Raspberry Pi Imager ব্যবহার করে আপনার SD কার্ডে Raspberry Pi OS (64-bit Lite বা Desktop) ফ্ল্যাশ করুন।
  2. রাস্পবেরি পাই বুট করুন এবং একটি টার্মিনাল খুলুন (SSH এর মাধ্যমে অথবা সরাসরি)।
  3. প্যাকেজ ম্যানেজার আপডেট করুন এবং ইনস্টল করা প্যাকেজগুলি আপগ্রেড করুন:
    $ sudo apt-get update
    $ sudo apt-get upgrade -y
    

পরবর্তী ধাপে যাওয়ার আগে আপডেট করার পর রাস্পবেরি পাই রিবুট করুন: sudo reboot

বোর্ড ১ (RCP) রাস্পবেরি পাই-এর সাথে সংযুক্ত করুন

( ot-rcp দিয়ে ফ্ল্যাশ করা) বোর্ড ১-কে মাইক্রো-ইউএসবি দিয়ে রাস্পবেরি পাই-এর সাথে সংযুক্ত করুন। সংযোগের পর, ডিভাইস নোডটি দেখা যাচ্ছে কিনা তা যাচাই করুন:

$ ls /dev/ttyACM*
/dev/ttyACM0
/dev/ttyACM1

RCP বোর্ডের অ্যাপ্লিকেশন UART সাধারণত /dev/ttyACM1 হয়ে থাকে (XDS110-এর ডিবাগ UART হলো /dev/ttyACM0 )। পরবর্তী ধাপে OTBR এজেন্ট চালু করার সময় পোর্টটি সাড়া দিচ্ছে কিনা তা পরীক্ষা করে অ্যাপ্লিকেশন UART পোর্টটি যাচাই করুন। যদি অন্য কোনো USB সিরিয়াল ডিভাইস সংযুক্ত থাকে, তাহলে ডিভাইস নোড নম্বর ভিন্ন হতে পারে। সেই অনুযায়ী OTBR কনফিগারেশনে পাথটি পরিবর্তন করুন।

ot-br-posix তৈরি এবং ইনস্টল করুন

রাস্পবেরি পাই-তে ot-br-posix ক্লোন ও বিল্ড করুন:

$ git clone https://github.com/openthread/ot-br-posix.git
$ cd ot-br-posix
$ ./script/bootstrap

আপনার ইথারনেট ইন্টারফেসকে ব্যাকবোন (ইনফ্রাস্ট্রাকচার) ইন্টারফেস হিসেবে নির্দিষ্ট করে সেটআপ স্ক্রিপ্টটি চালান:

$ INFRA_IF_NAME=eth0 ./script/setup

eth0 হলো তারযুক্ত ইথারনেট ইন্টারফেসের সাধারণ নাম। আপনি যদি ইথারনেটের পরিবর্তে ওয়াই-ফাই এর মাধ্যমে রাস্পবেরি পাই সংযোগ করেন, তাহলে eth0 এর পরিবর্তে wlan0 ব্যবহার করুন (এবং নিশ্চিত করুন যে পাইটি ইতিমধ্যেই আপনার ওয়াই-ফাই নেটওয়ার্কের সাথে সংযুক্ত আছে)। ip link show কমান্ডের মাধ্যমে সক্রিয় ইন্টারফেসের নামটি যাচাই করুন।

সেটআপ স্ক্রিপ্টটি সোর্স থেকে ot-br-posix বিল্ড করে, otbr-agentotbr-web সিস্টেম সার্ভিসগুলো ইনস্টল করে এবং নেটওয়ার্কিং স্ট্যাক কনফিগার করে। একটি Raspberry Pi 4B-তে এই প্রক্রিয়াটি সম্পন্ন হতে সাধারণত ১০-২০ মিনিট সময় লাগে।

OTBR এজেন্ট কনফিগার করুন

RCP ডিভাইস পাথ এবং বড রেট নির্দিষ্ট করতে OTBR এজেন্ট কনফিগারেশন ফাইলটি সম্পাদনা করুন:

$ sudo nano /etc/default/otbr-agent

OTBR_AGENT_OPTS লাইনটি খুঁজুন এবং RCP অ্যাপ্লিকেশন UART-কে নির্দেশ করার জন্য এটি আপডেট করুন:

OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyACM1?uart-baudrate=921600"

আপনার রাস্পবেরি পাই ওয়াই-ফাই এর মাধ্যমে সংযুক্ত থাকলে eth0 এর পরিবর্তে wlan0 ব্যবহার করুন।

OTBR_AGENT_OPTS="-I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyACM1?uart-baudrate=921600"

LP-EM-CC2745R10-Q1 RCP অ্যাপ্লিকেশন UART ৯২১৬০০ বড গতিতে কাজ করে। ডিভাইস পাথটি (এই উদাহরণে /dev/ttyACM1 ) আপনার RCP বোর্ডের অ্যাপ্লিকেশন UART-এর সাথে মেলে কিনা তা যাচাই করুন।

কনফিগারেশনটি প্রয়োগ করতে OTBR এজেন্টটি পুনরায় চালু করুন:

$ sudo systemctl restart otbr-agent
$ sudo systemctl enable otbr-agent

এজেন্টটি চালু আছে কিনা যাচাই করুন:

$ sudo systemctl status otbr-agent

আরসিপি নোডের সাথে যোগাযোগ করুন

ot-ctl টুল ব্যবহার করে RCP নোডের সাথে যোগাযোগ করুন:

$ sudo ot-ctl state
disabled
Done

আপনি সংযোগ এবং স্থিতির বার্তাগুলির জন্য OTBR এজেন্ট লগ নিরীক্ষণ করতে পারেন:

$ sudo journalctl -u otbr-agent -f

ঐচ্ছিকভাবে, OTBR ওয়েব ইন্টারফেসটি http:// :80 ঠিকানায় পাওয়া যায়। http:// :80 এবং থ্রেড নেটওয়ার্কের একটি গ্রাফিক্যাল চিত্র প্রদান করে।

OTBR এজেন্ট বন্ধ বা পুনরায় চালু করতে:

$ sudo systemctl stop otbr-agent
$ sudo systemctl start otbr-agent

এই পর্যায়ে আপনার তিনটি সক্রিয় কনসোল থাকা উচিত:

  1. হোস্ট কম্পিউটারে বোর্ড ২-এর জন্য সিরিয়াল টার্মিনাল ( ot-cli-ftd 1 )।
  2. হোস্ট কম্পিউটারে বোর্ড ৩ ( ot-cli-ftd 2 )-এর জন্য সিরিয়াল টার্মিনাল।
  3. ot-ctl (OTBR/RCP) এর জন্য রাস্পবেরি পাই-তে SSH বা টার্মিনাল সেশন।

আপনি এখন একটি থ্রেড নেটওয়ার্ক গঠন করার জন্য প্রস্তুত।

১০. একটি থ্রেড নেটওয়ার্ক তৈরি করুন

আরসিপি (ওটিবিআর) সেট আপ করুন

রাস্পবেরি পাই-এর ot-ctl শেল থেকে একটি নতুন থ্রেড নেটওয়ার্ক তৈরি করুন। ক্রমানুসারে নিম্নলিখিত কমান্ডগুলি প্রবেশ করান:

সূচী

আদেশ

বর্ণনা

প্রত্যাশিত প্রতিক্রিয়া

dataset init new

একটি নতুন নেটওয়ার্ক কনফিগারেশন তৈরি করুন।

সম্পন্ন হয়েছে

dataset commit active

নতুন ডেটাসেটটি সক্রিয় অপারেশনাল ডেটাসেটে যুক্ত করুন।

সম্পন্ন হয়েছে

ifconfig up

থ্রেড ইন্টারফেস সক্রিয় করুন।

সম্পন্ন হয়েছে

thread start

থ্রেড প্রোটোকল অপারেশন সক্রিয় ও সংযুক্ত করুন।

সম্পন্ন হয়েছে

থ্রেড ইন্টারফেসটি চালু হওয়ার জন্য ১০ সেকেন্ড অপেক্ষা করুন।

state

ডিভাইসের অবস্থা পরীক্ষা করুন। এটি লিডার (leader) হওয়া উচিত। অন্যান্য সম্ভাব্য অবস্থাগুলো হলো: অফলাইন (offline), ডিজেবলড (disabled), ডিটাচড (detached), চাইল্ড (child), রাউটার (router), বা লিডার (leader)।

নেতা
সম্পন্ন হয়েছে

dataset

নেটওয়ার্ক কনফিগারেশনটি দেখুন। আপনার মানগুলো ভিন্ন হবে। চ্যানেল, নেটওয়ার্ক কী, নেটওয়ার্কের নাম এবং প্যান আইডি (PAN ID) নোট করুন — এফটিডি (FTD)-গুলোকে নেটওয়ার্কে যুক্ত করার জন্য এগুলোর প্রয়োজন হবে।

সক্রিয় টাইমস্ট্যাম্প: ১
চ্যানেল: ২০
চ্যানেল মাস্ক: 0x07fff800
এক্সটেনশন প্যান আইডি: 39ba71f7fc367160
মেশ লোকাল প্রিফিক্স: fd5c:c6b:3a17:40b9::/64
নেটওয়ার্ক কী: 81ae2c2c17368d585dee71eaa8cf1e90
নেটওয়ার্কের নাম: ওপেনথ্রেড-০০৮সি
প্যান আইডি: 0x008c
PSKc: c98f0193d4236025d22dd0ee614e641f
নিরাপত্তা নীতি: 0, onrcb
সম্পন্ন হয়েছে

থ্রেড নেটওয়ার্কে FTD যোগ করুন (আউট-অফ-ব্যান্ড পদ্ধতি)

আউট-অফ-ব্যান্ড কমিশনিং পদ্ধতি ব্যবহার করে, আপনি সরাসরি নেটওয়ার্ক ক্রেডেনশিয়াল প্রদান করেন। প্রতিটি FTD বোর্ডের সিরিয়াল টার্মিনালে, উপরের OTBR ডেটাসেট আউটপুট থেকে প্রাপ্ত চ্যানেল এবং নেটওয়ার্ক কী ব্যবহার করে নিম্নলিখিত কমান্ডগুলি প্রবেশ করান:

সূচী

আদেশ

বর্ণনা

প্রত্যাশিত প্রতিক্রিয়া

dataset channel 20

OTBR-এর সাথে মিলিয়ে চ্যানেলটি সেট করুন। 20 জায়গায় আপনার OTBR-এর চ্যানেল ভ্যালুটি বসান।

সম্পন্ন হয়েছে

dataset networkkey 81ae2c2c17368d585dee71eaa8cf1e90

নেটওয়ার্ক কী সেট করুন। আপনার OTBR-এর নেটওয়ার্ক কী দিয়ে এটি প্রতিস্থাপন করুন। সংযুক্ত হওয়ার জন্য শুধুমাত্র এই কী-টিই প্রয়োজন।

সম্পন্ন হয়েছে

dataset commit active

নতুন ডেটাসেটটি সক্রিয় অপারেশনাল ডেটাসেটে যুক্ত করুন।

সম্পন্ন হয়েছে

ifconfig up

থ্রেড ইন্টারফেস সক্রিয় করুন।

সম্পন্ন হয়েছে

thread start

থ্রেড প্রোটোকল অপারেশন সক্রিয় ও সংযুক্ত করুন।

সম্পন্ন হয়েছে

ডিভাইসটি সংযুক্ত ও কনফিগার হওয়ার জন্য ২০ সেকেন্ড অপেক্ষা করুন।

state

ডিভাইসের অবস্থা যাচাই করুন।

শিশু
সম্পন্ন হয়েছে

থ্রেড নেটওয়ার্কের স্ব-কনফিগারযোগ্য বৈশিষ্ট্য এবং এগুলি ফুল থ্রেড ডিভাইস (FTD) হওয়ায়, একটি বা উভয় FTD-ই অবশেষে রাউটারে পরিণত হতে পারে। আপনি state কমান্ড ব্যবহার করে যেকোনো সময় এর বর্তমান ভূমিকা যাচাই করতে পারেন।

থ্রেড ডিভাইসগুলির মধ্যে যোগাযোগ

ডিভাইসগুলো একে অপরের সাথে যোগাযোগ করতে পারছে কিনা তা যাচাই করতে ping কমান্ড ব্যবহার করুন। ipaddr ব্যবহার করে প্রতিটি ডিভাইসের IPv6 অ্যাড্রেস সংগ্রহ করুন।

> ipaddr
fd5c:c6b:3a17:40b9:0:ff:fe00:fc00		# Leader Anycast Locator (ALOC)
fd5c:c6b:3a17:40b9:0:ff:fe00:1800		# Routing Locator (RLOC)
fd5c:c6b:3a17:40b9:84e2:bae8:bd5b:fa03		# Mesh-Local EID (ML-EID)
fe80:0:0:0:c449:ca4a:101f:5d16			# Link-Local Address (LLA)
Done

উভয় FTD থেকে, OTBR-এর RLOC অ্যাড্রেস ব্যবহার করে সেটিকে পিং করুন:

> ping fd5c:c6b:3a17:40b9:0:ff:fe00:1800
Done
>
> 16 bytes from fd5c:c6b:3a17:40b9:0:ff:fe00:1800: icmp_seq=3 hlim=64 time=30ms
16 bytes from fd5c:c6b:3a17:40b9:0:ff:fe00:1800: icmp_seq=3 hlim=64 time=52ms

একটি সফল প্রতিক্রিয়া নিশ্চিত করে যে থ্রেড নেটওয়ার্কটি চালু আছে এবং ডিভাইসগুলি একে অপরের সাথে যোগাযোগ করতে পারছে। OTBR থেকে প্রতিটি FTD-কে পিং করার জন্য প্রক্রিয়াটি পুনরাবৃত্তি করুন ( sudo ot-ctl ping )

১১. অভিনন্দন

আপনি TI CC2745R10-Q1 বোর্ডগুলো দিয়ে একটি থ্রেড নেটওয়ার্ক তৈরি করেছেন!

আপনি এখন জানেন:

  • টেক্সাস ইন্সট্রুমেন্টস ot-ti বিল্ড এনভায়রনমেন্ট কীভাবে সেট আপ করবেন।
  • LP-EM-CC2745R10-Q1 লঞ্চপ্যাডে কীভাবে OpenThread CLI বাইনারি তৈরি এবং ফ্ল্যাশ করতে হয়।
  • ot-br-posix ব্যবহার করে কীভাবে একটি রাস্পবেরি পাইকে ওপেনথ্রেড বর্ডার রাউটার (OTBR) হিসেবে সেট আপ করবেন।
  • OTBR-এ কীভাবে একটি থ্রেড নেটওয়ার্ক তৈরি করতে হয়।
  • থ্রেড নেটওয়ার্কে ডিভাইসসমূহের আউট-অফ-ব্যান্ড কমিশনিং।
  • পিং কমান্ড ব্যবহার করে নোডগুলোর মধ্যে থ্রেড কমিউনিকেশন কীভাবে যাচাই করা যায়।

আরও পড়ুন

বিভিন্ন ধরনের ওপেনথ্রেড রিসোর্সের জন্য openthread.io এবং GitHub দেখুন, যার মধ্যে রয়েছে:

,

১. ভূমিকা

ওপেনথ্রেড লোগো

গুগলের ওপেনথ্রেড (OT) হলো থ্রেড-এর একটি ওপেন-সোর্স বাস্তবায়ন। গুগল নেস্ট পণ্যগুলিতে ব্যবহৃত নেটওয়ার্কিং প্রযুক্তি ডেভেলপারদের কাছে ব্যাপকভাবে সহজলভ্য করার জন্য গুগল ওপেনথ্রেড প্রকাশ করেছে, যা কানেক্টেড হোম এবং বাণিজ্যিক ভবন অ্যাপ্লিকেশনগুলির জন্য পণ্য উন্নয়নকে ত্বরান্বিত করে। একটি সংকীর্ণ প্ল্যাটফর্ম অ্যাবস্ট্রাকশন লেয়ার এবং স্বল্প মেমরি ফুটপ্রিন্টের কারণে ওপেনথ্রেড অত্যন্ত পোর্টেবল। এটি সিস্টেম-অন-চিপ (SoC) এবং নেটওয়ার্ক কো-প্রসেসর (NCP) উভয় ডিজাইনই সমর্থন করে।

থ্রেড স্পেসিফিকেশনটি বাড়ি এবং বাণিজ্যিক ভবনের অ্যাপ্লিকেশনের জন্য একটি IPv6-ভিত্তিক নির্ভরযোগ্য, সুরক্ষিত এবং স্বল্প-শক্তিসম্পন্ন ওয়্যারলেস ডিভাইস-টু-ডিভাইস যোগাযোগ প্রোটোকল সংজ্ঞায়িত করে।

টেক্সাস ইন্সট্রুমেন্টস তাদের সিম্পললিঙ্ক™ CC27xx ডিভাইস ফ্যামিলির জন্য ওপেনথ্রেড বাস্তবায়ন করেছে। গিটহাবের ot-ti রিপোজিটরিতে টেক্সাস ইন্সট্রুমেন্টস সিম্পললিঙ্ক কানেক্টেড এমসিইউ-তে ওপেনথ্রেড চালানোর জন্য প্রয়োজনীয় প্ল্যাটফর্ম ড্রাইভার এবং উদাহরণ অ্যাপ্লিকেশন রয়েছে। CC2745R10-Q1 হলো টিআই-এর সিম্পললিঙ্ক CC27xx ফ্যামিলির একটি অটোমোটিভ-গ্রেড (AEC-Q100 কোয়ালিফাইড), থ্রেড-সার্টিফাইড IEEE 802.15.4 ওয়্যারলেস এমসিইউ।

এই কোডল্যাবে বর্ণনা করা হয়েছে কিভাবে LP-EM-CC2745R10-Q1 লঞ্চপ্যাড ইভ্যালুয়েশন বোর্ড এবং ot-ti রিপোজিটরি ব্যবহার করে ওপেনথ্রেড অ্যাপ্লিকেশন তৈরি করা শুরু করা যায়। নিচের ছবিতে এই কোডল্যাবে ব্যবহৃত হার্ডওয়্যার সেটআপ দেখানো হয়েছে, যেখানে একটি ওটি বর্ডার রাউটার (OTBR) এবং দুটি থ্রেড ফুল থ্রেড ডিভাইস (FTD) রয়েছে।

CC2745R10 হার্ডওয়্যার সেটআপ

আপনি যা শিখবেন

  • টেক্সাস ইন্সট্রুমেন্টস ot-ti বিল্ড এনভায়রনমেন্ট কীভাবে সেট আপ করবেন।
  • LP-EM-CC2745R10-Q1 বোর্ডগুলিতে কীভাবে OpenThread CLI বাইনারি তৈরি এবং ফ্ল্যাশ করতে হয়।
  • ot-br-posix ব্যবহার করে কীভাবে একটি রাস্পবেরি পাইকে ওপেনথ্রেড বর্ডার রাউটার (OTBR) হিসেবে সেট আপ করবেন।
  • OTBR-এ কীভাবে একটি থ্রেড নেটওয়ার্ক তৈরি করতে হয়।
  • থ্রেড নেটওয়ার্কে ডিভাইসসমূহের আউট-অফ-ব্যান্ড কমিশনিং।
  • পিং কমান্ড ব্যবহার করে নোডগুলোর মধ্যে থ্রেড কমিউনিকেশন কীভাবে যাচাই করা যায়।

২. পূর্বশর্তসমূহ

হার্ডওয়্যার

  1. ৩টি LP-EM-CC2745R10-Q1 লঞ্চপ্যাড বোর্ড : একটি বর্ডার রাউটারের সাথে সংযুক্ত RCP হিসাবে কনফিগার করা, এবং দুটি ফুল থ্রেড ডিভাইস (FTD) হিসাবে কনফিগার করা।LP-EM-CC2745R10-Q1 কৌণিক দৃশ্য CC2745R10-Q1 হলো TI-এর SimpleLink CC27xx ফ্যামিলির একটি অটোমোটিভ-গ্রেড (AEC-Q100 কোয়ালিফাইড) থ্রেড-সার্টিফাইড IEEE 802.15.4 ওয়্যারলেস MCU। LP-EM-CC2745R10-Q1 হলো এর সংশ্লিষ্ট লঞ্চপ্যাড ইভ্যালুয়েশন মডিউল এবং এটি RCP, FTD, MTD, ও NCP থ্রেড রোল সমর্থন করে। LP-EM-CC2340R5 লঞ্চপ্যাড সহ CC2340R5 হলো একটি কম মেমোরির বিকল্প যা শুধুমাত্র RCP হিসেবে কাজ করতে পারে। এটি FTD, MTD বা NCP রোল সমর্থন করে না। যদি আপনি বোর্ড ১ (RCP)-এর পরিবর্তে একটি LP-EM-CC2340R5 ব্যবহার করেন, তাহলেও দুটি FTD বোর্ড অবশ্যই LP-EM-CC2745R10-Q1 হতে হবে।
  2. ৩টি LP-XDS110ET ডিবাগ প্রোব : প্রতিটি লঞ্চপ্যাড বোর্ডের জন্য একটি করে, যা USB-এর মাধ্যমে প্রোগ্রামিং এবং ডিবাগ করার জন্য ব্যবহৃত হয়।LP-XDS110ET কৌণিক দৃশ্যLP-XDS110ET হলো একটি আলাদা USB ডিবাগ প্রোব যা LP-EM ফর্ম ফ্যাক্টরের লঞ্চপ্যাডগুলোর জন্য প্রয়োজন। এতে পাওয়ার প্রোফাইলিংয়ের জন্য এনার্জিট্রেস (EnergyTrace) সাপোর্ট রয়েছে। LP-XDS110 হলো একটি কম খরচের বিকল্প যা একই প্রোগ্রামিং এবং ডিবাগ করার সুবিধা দেয়, কিন্তু এতে এনার্জিট্রেস অন্তর্ভুক্ত নেই। আরও একটি বিকল্প হিসেবে, LP-EM বোর্ড এবং একটি আলাদা ডিবাগ প্রোবের পরিবর্তে সম্পূর্ণভাবে একটি অন-বোর্ড XDS110 ডিবাগ প্রোবসহ লঞ্চপ্যাড (যেমন LAUNCHXL-CC26X2R1) ব্যবহার করা যেতে পারে। বিস্তারিত জানতে লঞ্চপ্যাড ডিবাগ কানেক্টিভিটি গাইড দেখুন।
  3. লঞ্চপ্যাড বোর্ড এবং ডিবাগ প্রোব সংযোগ ও শক্তি সরবরাহের জন্য ৩টি মাইক্রো-ইউএসবি ক্যাবল
  4. ইথারনেটের মাধ্যমে ইন্টারনেটে সংযুক্ত, রাস্পবেরি পাই ওএস সহ একটি রাস্পবেরি পাই ৪বি বা তার চেয়ে উন্নত ডিভাইস। এটিকে ওটি বর্ডার রাউটার হোস্ট হিসেবে কনফিগার করা হবে।রাস্পবেরি পাই ৪
  5. কমপক্ষে ২টি ইউএসবি পোর্ট এবং ইন্টারনেট সংযোগসহ একটি লিনাক্স বা ম্যাকওএস হোস্ট সিস্টেম প্রয়োজন। বিল্ড এনভায়রনমেন্টের জন্য একটি ব্যাশ-উপযোগী শেল প্রয়োজন। উইন্ডোজ ব্যবহারকারীদের উবুন্টুর সাথে WSL2 (উইন্ডোজ সাবসিস্টেম ফর লিনাক্স ২) ব্যবহার করা উচিত।
  6. রাস্পবেরি পাইকে ইন্টারনেটের সাথে সংযোগ করার জন্য কমপক্ষে একটি ইথারনেট ক্যাবল প্রয়োজন । বিকল্পভাবে, আপনি রাস্পবেরি পাইকে ওয়াই-ফাই এর সাথে সংযুক্ত করতে পারেন এবং wlan0 ইনফ্রাস্ট্রাকচার ইন্টারফেস হিসেবে ব্যবহার করতে পারেন — বিস্তারিত জানার জন্য OTBR সেটআপ ধাপটি দেখুন।

সফটওয়্যার

  • TI ot-ti সংগ্রহস্থল : https://github.com/TexasInstruments/ot-ti
  • জিএনইউ এআরএম এমবেডেড টুলচেইন ১২.২ (বুটস্ট্র্যাপ স্ক্রিপ্ট দ্বারা স্বয়ংক্রিয়ভাবে ইনস্টল করা হয়)
  • SysConfig 1.27.0 (বুটস্ট্র্যাপ স্ক্রিপ্ট দ্বারা স্বয়ংক্রিয়ভাবে ইনস্টল করা হয়েছে)
  • টিআই ইউনিফ্ল্যাশ : লঞ্চপ্যাড বোর্ডগুলিতে ফার্মওয়্যার ফ্ল্যাশ করার জন্য।

  • ot-br-posix : https://github.com/openthread/ot-br-posix
  • PuTTY (উইন্ডোজ), minicom (লিনাক্স), বা screen (macOS/লিনাক্স)-এর মতো একটি সিরিয়াল টার্মিনাল

৩. হার্ডওয়্যার সেটআপ

এই কোডল্যাবে তিনটি LP-EM-CC2745R10-Q1 বোর্ড ব্যবহার করা হয়েছে:

  • বোর্ড ১ (আরসিপি): এতে ot-rcp ফার্মওয়্যার চলে। এটি বর্ডার রাউটারের রেডিও কো-প্রসেসর হিসেবে ইউএসবি-র মাধ্যমে রাস্পবেরি পাই-এর সাথে সংযুক্ত থাকে।
  • বোর্ড ২ (FTD 1): একটি ফুল থ্রেড ডিভাইস হিসেবে ot-cli-ftd ফার্মওয়্যার চালায়।
  • বোর্ড ৩ (FTD 2): একটি ফুল থ্রেড ডিভাইস হিসেবে ot-cli-ftd ফার্মওয়্যার চালায়।

LP-EM-CC2745R10-Q1 উপরের দৃশ্য

প্রতিটি লঞ্চপ্যাডকে মাইক্রো-ইউএসবি-র মাধ্যমে আপনার হোস্ট কম্পিউটারের সাথে সংযুক্ত করুন। ইউএসবি সংযোগটি অনবোর্ড XDS110 ডিবাগ প্রোবের মাধ্যমে বিদ্যুৎ সরবরাহ এবং ডিবাগ/প্রোগ্রামিং ক্ষমতা উভয়ই প্রদান করে।

ইউএসবি-র মাধ্যমে সংযুক্ত করলে প্রতিটি LP-EM-CC2745R10-Q1 দুটি ভার্চুয়াল সিরিয়াল পোর্ট হিসেবে প্রদর্শিত হয়: একটি XDS110 ডিবাগ ইন্টারফেসের জন্য এবং অন্যটি অ্যাপ্লিকেশন UART-এর জন্য। সিরিয়াল কনসোল খোলার সময়, অ্যাপ্লিকেশন/ইউজার UART পোর্টে সংযোগ করুন, অক্সিলিয়ারি ডেটা পোর্টে নয়।

হার্ডওয়্যার সংযোগ ডায়াগ্রাম

৪. রিপোজিটরি সেটআপ এবং বিল্ড

ot-ti বিল্ড সিস্টেম CMake ব্যবহার করে এবং এর জন্য একটি Bash শেল প্রয়োজন। এই বিভাগের সমস্ত কমান্ড Linux বা macOS হোস্টে (অথবা Windows-এ WSL2-তে) চালানো হয়।

১. রিপোজিটরি ক্লোন করুন

$ git clone https://github.com/TexasInstruments/ot-ti.git
$ cd ot-ti
$ git submodule update --init

২. বুটস্ট্র্যাপ স্ক্রিপ্টটি চালান

বুটস্ট্র্যাপ স্ক্রিপ্টটি GNU ARM টুলচেইন এবং SysConfig সহ প্রয়োজনীয় ডিপেন্ডেন্সিগুলো ইনস্টল করে:

$ ./script/bootstrap

বুটস্ট্র্যাপ স্ক্রিপ্টটির জন্য cmake , git , wget এবং স্ট্যান্ডার্ড বিল্ড টুলস প্রয়োজন। Ubuntu/Debian-এ, নিম্নলিখিত কমান্ডের মাধ্যমে পূর্বশর্তগুলো ইনস্টল করুন: sudo apt-get install -y cmake git make wget tar ninja-build

৩. LP_EM_CC2745R10_Q1 এর জন্য ফার্মওয়্যার তৈরি করুন

LP-EM-CC2745R10-Q1 বোর্ডের জন্য সমস্ত ফার্মওয়্যার ইমেজ তৈরি করুন:

$ ./script/build LP_EM_CC2745R10_Q1

LP_EM_CC2745R10_Q1 বিল্ড টার্গেটটি CC27xx SimpleLink ফ্যামিলির (Arm Cortex-M33F কোর) CC2745R10-Q1 ডিভাইসটির সাথে সঙ্গতিপূর্ণ। সমস্ত সমর্থিত বোর্ড দেখতে, কোনো আর্গুমেন্ট ছাড়াই ./script/build রান করুন।

সফলভাবে বিল্ড সম্পন্ন হলে, ELF বাইনারিগুলো build/bin/ ফোল্ডারে থাকে।

$ ls build/bin/
ot-cli-ftd.out  ot-cli-mtd.out  ot-ncp-ftd.out  ot-rcp.out

এই কোডল্যাবে ব্যবহৃত দুটি ছবি হলো:

  • ot-rcp.out : বর্ডার রাউটার বোর্ডের জন্য রেডিও কো-প্রসেসর ফার্মওয়্যার।
  • ot-cli-ftd.out : দুটি FTD বোর্ডের জন্য সম্পূর্ণ থ্রেড ডিভাইস CLI ফার্মওয়্যার।

ঐচ্ছিক মিনিমাল থ্রেড ডিভাইস: আপনি যদি একটি ফুল থ্রেড ডিভাইসের পরিবর্তে একটি স্লিপি এন্ড ডিভাইস ব্যবহার করতে চান, তাহলে বোর্ড ২ এবং ৩-এ ot-cli-ftd.out এর জায়গায় ot-cli-mtd.out ফ্ল্যাশ করতে পারেন। একটি MTD থ্রেড ট্র্যাফিক রাউট করে না এবং স্বল্প-শক্তির স্লিপ স্টেটে প্রবেশ করতে পারে, যা এটিকে ব্যাটারি-চালিত অ্যাপ্লিকেশনের জন্য বিশেষভাবে উপযুক্ত করে তোলে। এই কোডল্যাবে থ্রেড নেটওয়ার্ক গঠনের ধাপগুলো উভয় ধরনের ডিভাইসের জন্যই একই।

ঐচ্ছিক নেটওয়ার্ক কো-প্রসেসর (NCP): ot-ncp-ftd.out বাইনারিটি NCP আর্কিটেকচার বাস্তবায়ন করে, যেখানে OpenThread স্ট্যাক ডিভাইসে চলে এবং একটি হোস্ট প্রসেসর Spinel প্রোটোকলের মাধ্যমে এটিকে চালনা করে। NCP-এর ব্যবহার এই কোডল্যাবের আওতার বাইরে, বিস্তারিত জানতে NCP README দেখুন।

৫. ফার্মওয়্যার ফ্ল্যাশ করুন

লঞ্চপ্যাড বোর্ডগুলিতে ELF ইমেজগুলি ফ্ল্যাশ করতে TI UniFlash ব্যবহার করুন।

ইউনিফ্ল্যাশ ব্যবহার করে ফ্ল্যাশ করুন

  1. UniFlash খুলুন। স্বয়ংক্রিয় ডিভাইস সনাক্তকরণ বৈশিষ্ট্যের কারণে সংযুক্ত LaunchPad বোর্ডগুলি 'Detected Devices'-এর অধীনে প্রদর্শিত হয়। যদি আপনার বোর্ড স্বয়ংক্রিয়ভাবে সনাক্ত না হয়, তাহলে 'New Configuration'-এ ক্লিক করুন, LP-EM-CC2745R10-Q1 টার্গেটটি নির্বাচন করুন এবং XDS110 USB ডিবাগ প্রোবটি বেছে নিন। ইউনিফ্ল্যাশ দ্বারা সনাক্তকৃত ডিভাইস
  2. বোর্ড ১ (যেটি ot-rcp.out দিয়ে ফ্ল্যাশ করা হবে) নির্বাচন করুন এবং স্টার্ট-এ ক্লিক করুন।
  3. ব্রাউজ বোতামে ক্লিক করুন এবং ot-ti/build/bin/ot-rcp.out এ যান। ইউনিফ্ল্যাশ ফ্ল্যাশ পৃষ্ঠা
  4. ফার্মওয়্যার ফ্ল্যাশ করতে 'লোড ইমেজ'-এ ক্লিক করুন। লগ অংশে কাজের অগ্রগতি দেখানো হয় এবং কাজ সম্পন্ন হওয়ার বিষয়টি নিশ্চিত করা হয়।
  5. বোর্ড ২ এবং বোর্ড ৩ এর জন্য ধাপ ২-৪ পুনরাবৃত্তি করুন এবং প্রতিটির জন্য ot-ti/build/bin/ot-cli-ftd.out নির্বাচন করুন।

বিকল্প: কোড কম্পোজার স্টুডিও (CCS) ব্যবহার করে ফ্ল্যাশ

কোড কম্পোজার স্টুডিও ইউনিফ্ল্যাশের বিকল্প হিসেবে ব্যবহার করা যেতে পারে এবং এর পাশাপাশি এটি একটি সম্পূর্ণ ডিবাগ পরিবেশও প্রদান করে:

  1. কোড কম্পোজার স্টুডিও ডাউনলোড ও ইনস্টল করুন।
  2. XDS110 ডিবাগারের সাথে LP-EM-CC2745R10-Q1-এর জন্য একটি টার্গেট কানেকশন (CCXML) তৈরি করুন। CCS ইউজার্স গাইডের ম্যানুয়াল মেথড অংশটি দেখুন।
  3. CCS ব্যবহারকারী নির্দেশিকার 'ম্যানুয়াল লঞ্চ' অংশে বর্ণিত পদ্ধতি অনুসারে একটি প্রজেক্ট-বিহীন ডিবাগ সেশন শুরু করুন।
  4. Arm Cortex-M33 কোরের সাথে সংযোগ স্থাপন করুন এবং ELF ইমেজটি লোড করতে লোড -এ ক্লিক করুন।

ডিফল্ট CCXML কনফিগারেশনটি ডিফল্ট LP-EM-CC2745R10-Q1 জাম্পার কনফিগারেশনের সাথে মেলানোর জন্য ২-ওয়্যার cJTAG ব্যবহার করে। JTAG-এর মাধ্যমে প্রোগ্রামিং করার পর, halt-in-boot ফ্ল্যাগটি মুছে ফেলার জন্য বোর্ডটি পাওয়ার-সাইকেল করুন।

৬. এইচএসএম প্রোগ্রাম করুন

CC2745R10-Q1-এ একটি হার্ডওয়্যার সিকিউরিটি মডিউল (HSM) রয়েছে, যা থ্রেড বা অন্য কোনো সুরক্ষিত অ্যাপ্লিকেশন ফার্মওয়্যার চালানোর আগে অবশ্যই প্রোভিশন করতে হবে। যদি আপনার LP-EM-CC2745R10-Q1 বোর্ডের HSM এখনও প্রোগ্রাম করা না হয়ে থাকে, তবে এখনই এই ধাপটি সম্পন্ন করুন।

UniFlash ব্যবহার করে HSM প্রোগ্রাম করতে:

  1. UniFlash খুলুন এবং Detected Devices থেকে আপনার LP-EM-CC2745R10-Q1 বোর্ডটি নির্বাচন করুন।
  2. HSM প্রোগ্রামিং প্যানেলে যান এবং নিচে দেখানো অনুযায়ী HSM ফার্মওয়্যার ইমেজটি লোড করুন।

ইউনিফ্ল্যাশ এইচএসএম প্রোগ্রামিং

  1. HSM প্রোভিশনিং সম্পন্ন করতে স্ক্রিনে প্রদর্শিত নির্দেশাবলী অনুসরণ করুন। এই কার্যক্রমটি UniFlash আউটপুট কনসোলে লগ করা থাকে।

সম্পূর্ণ HSM প্রোগ্রামিং পদ্ধতির জন্য, যার মধ্যে SimpleLink Low Power F3 SDK-এর মধ্যে প্রয়োজনীয় ফার্মওয়্যার ইমেজ পাথও অন্তর্ভুক্ত রয়েছে, TI Resource Explorer-এ থাকা CC2745R10-Q1 কুইক স্টার্ট গাইডটি দেখুন।

৭. ফার্মওয়্যার সারাংশ

এই পর্যায়ে, তিনটি বোর্ডই ফ্ল্যাশ করা উচিত:

  • বোর্ড ১: ot-rcp.out : হোস্ট কম্পিউটার থেকে সংযোগ বিচ্ছিন্ন করুন এবং USB-এর মাধ্যমে রাস্পবেরি পাই-এর সাথে সংযোগ করুন।
  • বোর্ড ২: ot-cli-ftd.out : হোস্ট কম্পিউটারের সাথে সংযুক্ত রাখুন।
  • বোর্ড ৩: ot-cli-ftd.out : হোস্ট কম্পিউটারের সাথে সংযুক্ত রাখুন।

আপনার হার্ডওয়্যার সেটআপটি নিচের ডায়াগ্রামের মতো হবে। বোর্ড ১, OTBR-এর রেডিও কো-প্রসেসর হিসেবে রাস্পবেরি পাই-এর সাথে সংযুক্ত থাকে, আর বোর্ড ২ এবং ৩ সিরিয়াল কনসোল অ্যাক্সেসের জন্য হোস্ট কম্পিউটারের সাথে সংযুক্ত থাকে।

FTD সহ CC2745R10 হার্ডওয়্যার সেটআপ

৮. ot-cli-ftd ডিভাইসগুলির জন্য সিরিয়াল কনসোল সেট আপ করুন

LP-EM-CC2745R10-Q1 মডেলটি USB-এর মাধ্যমে 921600 বড গতিতে অ্যাপ্লিকেশন UART উন্মুক্ত করে।

এই সেটিংস ব্যবহার করে প্রতিটি FTD বোর্ডের জন্য অ্যাপ্লিকেশন UART COM পোর্ট (উইন্ডোজ) অথবা /dev/ttyACM* ডিভাইসে (লিনাক্স/ম্যাকওএস) একটি সিরিয়াল টার্মিনাল খুলুন:

প্যারামিটার

মূল্য

গতি (বড)

921600

ডেটা বিট

8

স্টপ বিট

1

সমতা

None

প্রবাহ নিয়ন্ত্রণ

None

টিপস (লিনাক্স/ম্যাকওএস): একটি বোর্ড প্লাগ ইন করার আগে এবং পরে ls /dev/ttyACM* কমান্ডটি চালিয়ে কোন এন্ট্রিটি দেখা যাচ্ছে তা লক্ষ্য করে সঠিক ডিভাইস নোডটি শনাক্ত করুন। প্রতিটি LP-EM-CC2745R10-Q1 দুটি এন্ট্রি তৈরি করে: কম সংখ্যার পোর্টটি হলো XDS110 ডিবাগ UART এবং বেশি সংখ্যার পোর্টটি হলো অ্যাপ্লিকেশন UART। উদাহরণস্বরূপ, যদি বোর্ডটি /dev/ttyACM0 এবং /dev/ttyACM1 তৈরি করে, তাহলে /dev/ttyACM1 ব্যবহার করুন।

টিপস (উইন্ডোজ): যখন একটি বোর্ড প্লাগ ইন করা হয়, তখন ডিভাইস ম্যানেজার খুলুন এবং পোর্টস (COM ও LPT)- এর অধীনে দুটি নতুন COM পোর্ট খুঁজুন। XDS110 ডিবাগ ডেটা পোর্টটি সাধারণত প্রথমে দেখা যায়, অ্যাপ্লিকেশন কনসোলের জন্য দ্বিতীয় (বেশি নম্বরের) COM পোর্টটি ব্যবহার করুন।

OpenThread CLI প্রম্পট ( > ) পেতে টার্মিনালে এন্টার চাপুন। উপলব্ধ কমান্ডের সম্পূর্ণ তালিকার জন্য, OpenThread CLI রেফারেন্স দেখুন। FTD চালু আছে কিনা তা যাচাই করুন:

> state
disabled
Done

সিরিয়াল টার্মিনাল এফটিডি

আপনি এখনও RCP বোর্ডের জন্য কোনো সিরিয়াল কনসোল সেট আপ করবেন না। রাস্পবেরি পাই-এর OTBR সরাসরি RCP-এর সাথে যোগাযোগ করে। পরবর্তী ধাপে, আপনি রাস্পবেরি পাই-কে ওপেনথ্রেড বর্ডার রাউটার হিসেবে কনফিগার করবেন।

৯. রাস্পবেরি পাইকে বর্ডার রাউটার হিসেবে সেট আপ করুন

OTBR-টি ot-br-posix নামক ওপেন-সোর্স ওপেনথ্রেড বর্ডার রাউটার প্রজেক্ট থেকে তৈরি করা হয়েছে। এই বর্ডার রাউটারটি রাস্পবেরি পাই-তে চলে এবং USB-এর মাধ্যমে এর 802.15.4 রেডিও হিসেবে বোর্ড ১ (RCP)-কে ব্যবহার করে।

রাস্পবেরি পাই সেটআপ

  1. Raspberry Pi Imager ব্যবহার করে আপনার SD কার্ডে Raspberry Pi OS (64-bit Lite বা Desktop) ফ্ল্যাশ করুন।
  2. রাস্পবেরি পাই বুট করুন এবং একটি টার্মিনাল খুলুন (SSH এর মাধ্যমে অথবা সরাসরি)।
  3. প্যাকেজ ম্যানেজার আপডেট করুন এবং ইনস্টল করা প্যাকেজগুলি আপগ্রেড করুন:
    $ sudo apt-get update
    $ sudo apt-get upgrade -y
    

পরবর্তী ধাপে যাওয়ার আগে আপডেট করার পর রাস্পবেরি পাই রিবুট করুন: sudo reboot

বোর্ড ১ (RCP) রাস্পবেরি পাই-এর সাথে সংযুক্ত করুন

( ot-rcp দিয়ে ফ্ল্যাশ করা) বোর্ড ১-কে মাইক্রো-ইউএসবি দিয়ে রাস্পবেরি পাই-এর সাথে সংযুক্ত করুন। সংযোগের পর, ডিভাইস নোডটি দেখা যাচ্ছে কিনা তা যাচাই করুন:

$ ls /dev/ttyACM*
/dev/ttyACM0
/dev/ttyACM1

RCP বোর্ডের অ্যাপ্লিকেশন UART সাধারণত /dev/ttyACM1 হয়ে থাকে (XDS110-এর ডিবাগ UART হলো /dev/ttyACM0 )। পরবর্তী ধাপে OTBR এজেন্ট চালু করার সময় পোর্টটি সাড়া দিচ্ছে কিনা তা পরীক্ষা করে অ্যাপ্লিকেশন UART পোর্টটি যাচাই করুন। যদি অন্য কোনো USB সিরিয়াল ডিভাইস সংযুক্ত থাকে, তাহলে ডিভাইস নোড নম্বর ভিন্ন হতে পারে। সেই অনুযায়ী OTBR কনফিগারেশনে পাথটি পরিবর্তন করুন।

ot-br-posix তৈরি এবং ইনস্টল করুন

রাস্পবেরি পাই-তে ot-br-posix ক্লোন ও বিল্ড করুন:

$ git clone https://github.com/openthread/ot-br-posix.git
$ cd ot-br-posix
$ ./script/bootstrap

Run the setup script, specifying your Ethernet interface as the backbone (infrastructure) interface:

$ INFRA_IF_NAME=eth0 ./script/setup

eth0 is the typical name for the wired Ethernet interface. If you are connecting the Raspberry Pi via Wi-Fi instead of Ethernet, replace eth0 with wlan0 (and ensure the Pi is already connected to your Wi-Fi network). Verify the active interface name with ip link show .

The setup script builds ot-br-posix from source, installs the otbr-agent and otbr-web system services, and configures the networking stack. This process typically takes 10–20 minutes on a Raspberry Pi 4B.

Configure the OTBR Agent

Edit the OTBR agent configuration file to specify the RCP device path and baud rate:

$ sudo nano /etc/default/otbr-agent

Locate the OTBR_AGENT_OPTS line and update it to reference the RCP Application UART:

OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyACM1?uart-baudrate=921600"

Replace eth0 with wlan0 if your Raspberry Pi is connected via Wi-Fi.

OTBR_AGENT_OPTS="-I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyACM1?uart-baudrate=921600"

The LP-EM-CC2745R10-Q1 RCP Application UART operates at 921600 baud . Verify the device path ( /dev/ttyACM1 in this example) matches the Application UART of your RCP board.

Restart the OTBR agent to apply the configuration:

$ sudo systemctl restart otbr-agent
$ sudo systemctl enable otbr-agent

Verify the agent is running:

$ sudo systemctl status otbr-agent

Interact with the RCP Node

Communicate with the RCP node using the ot-ctl tool:

$ sudo ot-ctl state
disabled
Done

You can monitor the OTBR agent log for connection and status messages:

$ sudo journalctl -u otbr-agent -f

Optionally, the OTBR web interface is available at http:// :80 and provides a graphical view of the Thread network.

To stop or restart the OTBR agent:

$ sudo systemctl stop otbr-agent
$ sudo systemctl start otbr-agent

At this point you should have three active consoles:

  1. Serial terminal for Board 2 ( ot-cli-ftd 1 ) on the host computer.
  2. Serial terminal for Board 3 ( ot-cli-ftd 2 ) on the host computer.
  3. SSH or terminal session on the Raspberry Pi for ot-ctl (OTBR/RCP).

You are now ready to form a Thread network.

10. Create a Thread Network

Set Up RCP (OTBR)

Create a new Thread network from the ot-ctl shell on the Raspberry Pi. Enter the following commands in order:

সূচী

Command

বর্ণনা

প্রত্যাশিত প্রতিক্রিয়া

dataset init new

Create a new network configuration.

সম্পন্ন হয়েছে

dataset commit active

Commit new dataset to the Active Operational Dataset.

সম্পন্ন হয়েছে

ifconfig up

Enable Thread interface.

সম্পন্ন হয়েছে

thread start

Enable and attach Thread protocol operation.

সম্পন্ন হয়েছে

Wait 10 seconds for the Thread interface to come up.

state

Check the device state. It should be leader . Other possible states: offline, disabled, detached, child, router, or leader.

নেতা
সম্পন্ন হয়েছে

dataset

View the network configuration. Your values will differ. Note the channel, network key, network name, and PAN ID — these are needed to join FTDs to the network.

Active Timestamp: 1
Channel: 20
Channel Mask: 0x07fff800
Ext PAN ID: 39ba71f7fc367160
Mesh Local Prefix: fd5c:c6b:3a17:40b9::/64
Network Key: 81ae2c2c17368d585dee71eaa8cf1e90
Network Name: OpenThread-008c
PAN ID: 0x008c
PSKc: c98f0193d4236025d22dd0ee614e641f
Security Policy: 0, onrcb
সম্পন্ন হয়েছে

Add FTDs to the Thread Network (Out-of-Band Method)

Using the out-of-band commissioning method, you provide the network credentials directly. In the serial terminal for each FTD board , enter the following commands using the channel and network key from the OTBR dataset output above:

সূচী

Command

বর্ণনা

প্রত্যাশিত প্রতিক্রিয়া

dataset channel 20

Set the channel to match the OTBR. Replace 20 with your OTBR's channel value.

সম্পন্ন হয়েছে

dataset networkkey 81ae2c2c17368d585dee71eaa8cf1e90

Set the network key. Replace with your OTBR's network key. Only this key is required to attach.

সম্পন্ন হয়েছে

dataset commit active

Commit new dataset to the Active Operational Dataset.

সম্পন্ন হয়েছে

ifconfig up

Enable Thread interface.

সম্পন্ন হয়েছে

thread start

Enable and attach Thread protocol operation.

সম্পন্ন হয়েছে

Wait 20 seconds while the device joins and configures itself.

state

Check device state.

শিশু
সম্পন্ন হয়েছে

Because of the self-configuring nature of Thread networks and these being Full Thread Devices, either or both FTDs may eventually become routers. You can verify the current role at any time with the state command.

Communication Between Thread Devices

Use the ping command to verify that devices can communicate. Get the IPv6 addresses of each device with ipaddr :

> ipaddr
fd5c:c6b:3a17:40b9:0:ff:fe00:fc00		# Leader Anycast Locator (ALOC)
fd5c:c6b:3a17:40b9:0:ff:fe00:1800		# Routing Locator (RLOC)
fd5c:c6b:3a17:40b9:84e2:bae8:bd5b:fa03		# Mesh-Local EID (ML-EID)
fe80:0:0:0:c449:ca4a:101f:5d16			# Link-Local Address (LLA)
Done

From both FTDs, ping the OTBR using its RLOC address:

> ping fd5c:c6b:3a17:40b9:0:ff:fe00:1800
Done
>
> 16 bytes from fd5c:c6b:3a17:40b9:0:ff:fe00:1800: icmp_seq=3 hlim=64 time=30ms
16 bytes from fd5c:c6b:3a17:40b9:0:ff:fe00:1800: icmp_seq=3 hlim=64 time=52ms

A successful response confirms the Thread network is operating and devices can communicate. Repeat the process to ping each FTD from the OTBR ( sudo ot-ctl ping )

11. Congratulations

You've created a Thread network with TI CC2745R10-Q1 boards!

You now know:

  • How to set up the Texas Instruments ot-ti build environment.
  • How to build and flash OpenThread CLI binaries to the LP-EM-CC2745R10-Q1 LaunchPad.
  • How to set up a Raspberry Pi as an OpenThread Border Router (OTBR) using ot-br-posix.
  • How to create a Thread network on the OTBR.
  • Out-of-band commissioning of devices onto a Thread network.
  • How to verify Thread communication between nodes using the ping command.

আরও পড়ুন

Check out openthread.io and GitHub for a variety of OpenThread resources, including: