প্রকল্প সম্পর্কে

ESP-IDF (Espressif IoT Development Framework) হল Espressif SoC-গুলির জন্য অফিসিয়াল ডেভেলপমেন্ট ফ্রেমওয়ার্ক, যা Windows, Linux এবং macOS-এ সমর্থিত। এটি Espressif চিপগুলিকে টার্গেট করে; ২০১৬-এর আগে প্রকাশিত SoC-গুলি (ESP8266 এবং ESP8285) আলাদা RTOS SDK দ্বারা সমর্থিত। রিপোজিটরিতে রিলিজ সাপোর্ট সময়সূচী, এন্ড-অফ-লাইফ বিজ্ঞপ্তি এবং ESP-IDF রিলিজ ও চিপ রিভিশনের মধ্যে সামঞ্জস্য নথিভুক্ত রয়েছে। প্রতিটি SoC সিরিজ এবং প্রতিটি ESP-IDF রিলিজের নিজস্ব ডকুমেন্টেশন আছে, এবং README অনলাইন ডক্সের Versions বিভাগে নির্দেশ করে যেখানে ডকুমেন্টেশন খুঁজে পাওয়া এবং নির্দিষ্ট রিলিজ চেকআউট করা যায়। শুরু করার জন্য হোস্ট বিল্ড ডিপেন্ডেন্সি ইনস্টল করা, একটি ইনস্টল স্ক্রিপ্ট চালানো (Windows-এ install.bat বা install.ps1; Unix শেলে install.sh বা install.fish) এবং তারপর ESP-IDF ব্যবহারের আগে প্রতিটি শেলে পরিবেশ এক্সপোর্ট করা (Windows-এ export.bat, Unix-এ source export.sh) প্রয়োজন। একটি টেমপ্লেট প্রজেক্ট (esp-idf-template) এবং examples ডিরেক্টরিতে উদাহরণ প্রজেক্টের একটি সেট দেওয়া আছে; একটি উদাহরণ থেকে নতুন প্রজেক্ট শুরু করতে, উদাহরণ ডিরেক্টরিটি ESP-IDF ট্রির বাইরে কপি করা হয়। প্রাথমিক ওয়ার্কফ্লো idf.py কমান্ড-লাইন টুল ব্যবহার করে। `idf.py set-target <chip_name>` টার্গেট চিপ নির্বাচন করে, এবং `idf.py menuconfig` একটি টেক্সট-ভিত্তিক কনফিগারেশন মেনু খোলে। `idf.py build` অ্যাপ্লিকেশন এবং বুটলোডার কম্পাইল করে এবং কনফিগারেশন থেকে একটি পার্টিশন টেবিল তৈরি করে। ফ্ল্যাশিং করা হয় `idf.py -p PORT flash` দিয়ে, যা একটি নতুন চিপে অ্যাপ, বুটলোডার এবং পার্টিশন টেবিল লেখে এবং প্রয়োজনে যেকোনো কিছু স্বয়ংক্রিয়ভাবে পুনর্নির্মাণ করে; পোর্ট অপশন বাদ দিলে এটি প্রথম উপলব্ধ সিরিয়াল পোর্ট ব্যবহার করে। সিরিয়াল আউটপুট দেখা হয় `idf.py monitor` দিয়ে, যা esp-idf-monitor টুল ব্যবহার করে এবং ক্র্যাশ আউটপুট ডিকোড করতে এবং ডিভাইসের সাথে ইন্টারঅ্যাক্ট করতে পারে; এটি Ctrl-] দিয়ে প্রস্থান করা হয়। `idf.py flash monitor` বিল্ড, ফ্ল্যাশ এবং মনিটর একত্রিত করে। পুনরাবৃত্তিমূলক কাজের জন্য, `idf.py app` শুধুমাত্র অ্যাপ বিল্ড করে এবং `idf.py app-flash` শুধুমাত্র অ্যাপ ফ্ল্যাশ করে, সোর্স পরিবর্তিত হলে স্বয়ংক্রিয়ভাবে পুনর্নির্মাণ করে। `idf.py erase-flash` সম্পূর্ণ ফ্ল্যাশ মুছে দেয়, যা পার্টিশন টেবিল পরিবর্তন বা OTA আপডেটের জন্য দরকারী, এবং অন্যান্য টার্গেটের সাথে মিলিত হতে পারে। GitHub নয় এমন ফর্কগুলির জন্য, README উল্লেখ করে যে সাবমডিউল URL-গুলি আপেক্ষিক এবং GitHub-এর সাথে লিঙ্কযুক্ত; স্ক্রিপ্ট tools/set-submodules-to-github.sh পরম URL সেট করে যাতে `git submodule update --init --recursive` সম্পন্ন হতে পারে। GitHub থেকে ক্লোন করার সময় এই ধাপটি প্রয়োজনীয় নয়। রিসোর্সগুলির মধ্যে রয়েছে docs ডিরেক্টরি থেকে তৈরি অনলাইন ডকুমেন্টেশন, একটি শিক্ষানবিস গাইড ভিডিও, প্রশ্ন ও কমিউনিটি রিসোর্সের জন্য esp32.com ফোরাম, বাগ এবং ফিচার অনুরোধের জন্য GitHub Issues বিভাগ এবং একটি অবদান নির্দেশিকা।