نصب فریمور روی ESP32 وقتی درست پیش برود دو دقیقه طول میکشد. این صفحه مسیر عادی، جاهایی که معمولاً مردم گیر میکنند، و کاری که باید در صورت خطا کرد را پوشش میدهد.
- یک برد توسعهی ESP32 — کدام را بخریم
- یک کابل USB که داده هم منتقل کند. این شایعترین دلیل «برد پیدا نمیشود» است. خیلی از کابلهایی که با گوشی و پاوربانک میآیند فقط دو سیم برق دارند. اگر با اتصال برد هیچ چیزی ظاهر نشد، اول کابل را عوض کنید.
- پایتون ۳.۸ یا بالاتر روی کامپیوتر. نصبکننده خودش بررسی میکند و اگر نبود میگوید چطور نصبش کنید.
به ESP-IDF، کامپایلر، آردوینو یا هیچ محیط توسعهای نیاز ندارید. فریمور از قبل ساخته شده است.
برد را وصل کنید و یک خط دستور اجرا کنید.
curl -fsSL https://raw.githubusercontent.com/AliAkrami1375/DRouter-Firmware/main/install.sh | bashirm https://raw.githubusercontent.com/AliAkrami1375/DRouter-Firmware/main/install.ps1 | iexاگر ویندوز اجازهی اجرا نداد، مربوط به سیاست اجرای اسکریپت است. فقط برای همین پنجره اجازه بدهید:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
irm https://raw.githubusercontent.com/AliAkrami1375/DRouter-Firmware/main/install.ps1 | iexاین تنظیم با بستن پنجره برمیگردد و چیزی را برای همیشه تغییر نمیدهد.
چون دارید یک اسکریپت را از اینترنت به شل میدهید، خوب است بدانید:
۱. پایتون ۳.۸ به بالا را بررسی میکند و اگر نبود با راهنما متوقف میشود.
۲. یک محیط پایتون ایزوله در ~/.drouter (در ویندوز %USERPROFILE%\.drouter) میسازد و esptool — ابزار رسمی فلش اسپرسیف — را داخل آن نصب میکند. هیچ چیزی روی سیستم نصب نمیشود، به sudo یا دسترسی مدیر نیاز ندارد، و به نصب پایتون موجود شما دست نمیزند.
۳. پورتهای سریال را فهرست میکند و آنکه شبیه ESP32 است را انتخاب میکند؛ تراشههای رایج USB (مثل CP210x و CH340 و FTDI) و USB داخلی اسپرسیف را میشناسد. اگر بیش از یکی محتمل بود، میپرسد.
۴. از خود برد میپرسد چه تراشهای است بهجای حدس زدن.
۵. فریمور مناسب را دانلود میکند و با SHA-256 منتشرشده تطبیق میدهد. اگر نخواند، قبل از نوشتن هر چیزی متوقف میشود. اول در ریلیز گیتهاب میگردد و اگر نبود، از نسخهای که در همین مخزن زیر پوشهی firmware/ نگهداری میشود استفاده میکند — در هر دو حالت چکسام بررسی میشود.
۶. ایمیجها را مینویسد در همان آدرسهایی که بیلد سازنده ثبت کرده، و بعد انتخابگر بوت OTA را پاک میکند تا برد همان چیزی را بالا بیاورد که تازه نصب شده.
برای پاککردن هر چیزی که نصبکننده روی کامپیوتر گذاشته، پوشهی ~/.drouter را حذف کنید. فریمور روی برد دستنخورده میماند.
./install.sh --dry-run --chip esp32s3دانلود و بررسی میکند و آدرسهای دقیقی را که مینوشت چاپ میکند — بدون دستزدن به برد.
هر دو نصبکننده همان گزینهها را میپذیرند، به سبک سیستمعامل خودشان:
| چه میخواهید | لینوکس و مک | ویندوز |
|---|---|---|
| پورت را خودتان بدهید | ./install.sh --port /dev/ttyUSB0 |
.\install.ps1 -Port COM5 |
| تنظیمات و کاربران هم پاک شود | ./install.sh --erase |
.\install.ps1 -Erase |
| نسخهی مشخصی نصب شود | ./install.sh --version v0.2.0 |
.\install.ps1 -FirmwareVersion v0.2.0 |
| فایلی که دانلود کردهاید نصب شود | ./install.sh --file drouter-esp32s3-v0.1.0.zip |
.\install.ps1 -File drouter-esp32s3-v0.1.0.zip |
| کندتر بنویسد (کابل ضعیف) | ./install.sh --baud 115200 |
.\install.ps1 -Baud 115200 |
| فقط پورتها را نشان بده | ./install.sh --list-ports |
.\install.ps1 -ListPorts |
اغلب بردها برای تراشهی USB خود درایور میخواهند. به تراشهی کوچک کنار سوکت USB نگاه کنید، یا ببینید سیستمعامل چه میگوید.
| تراشهی روی برد | ویندوز | مک | لینوکس |
|---|---|---|---|
| CP2102 / CP2104 | دانلود درایور | دانلود درایور | داخلی |
| CH340 / CH9102 | دانلود درایور | دانلود درایور | داخلی |
| FTDI FT232 | معمولاً خودکار | داخلی | داخلی |
| USB داخلی (S3، C3، C6) | خودکار | خودکار | داخلی |
بعد از نصب درایور در ویندوز سیستم را ریاستارت کنید، یا دستکم برد را جدا و دوباره وصل کنید.
لینوکس دستگاههای سریال را به گروه dialout میدهد. یکبار خودتان را اضافه کنید:
sudo usermod -aG dialout $USERبعد خارج شوید و دوباره وارد شوید — عضویت گروه فقط روی نشستهای جدید اعمال میشود. ریاستارت هم کار میکند.
برای بررسی:
groups | grep dialoutاگر نمیخواهید گروه را تغییر دهید، فقط برای همین نشست:
sudo chmod a+rw /dev/ttyUSB0با جداکردن برد برمیگردد.
بیشتر بردهای توسعه خودشان وارد حالت بوتلودر میشوند و اصلاً به این فکر نمیکنید. بعضیها — ماژولهای خام، بعضی کلونها، بردهایی با مدار ریست غیرمعمول — باید دستی گفته شوند.
اگر نصبکننده گفت «برد جواب نداد»:
۱. دکمهی BOOT (گاهی IO0 یا FLASH) را نگه دارید. ۲. در همان حال، RESET (گاهی EN) را یکبار بزنید. ۳. BOOT را رها کنید. ۴. نصبکننده را دوباره اجرا کنید.
حالا برد در بوتلودر منتظر فریمور نشسته و تا ریست بعدی همانجا میماند.
اگر ترجیح میدهید اسکریپتی از اینترنت اجرا نکنید، یا روی سیستمی هستید که نمیتواند:
# ۱. esptool را هرطور که میخواهید نصب کنید
python3 -m pip install --user esptool
# ۲. فایل zip تراشهتان را از صفحهی ریلیزها دانلود کنید
# https://github.com/AliAkrami1375/DRouter-Firmware/releases
unzip drouter-esp32s3-v0.1.0.zip -d drouter
# ۳. ببینید بسته چه انتظاری دارد — آدرسها از خود بیلد میآیند
cat drouter/manifest.json
# ۴. هر ایمیج را در آدرسی که آن فایل میگوید بنویسید، مثلاً:
python3 -m esptool --chip esp32s3 --port /dev/ttyUSB0 --baud 460800 \
write_flash --flash_mode dio --flash_freq 40m --flash_size detect \
0x0 drouter/bootloader.bin \
0x8000 drouter/partition-table.bin \
0x19000 drouter/ota_data_initial.bin \
0x20000 drouter/drouter.binفایل ota_data_initial.bin همان انتخابگر بوت است و نوشتنش همان چیزی است که
برد را به نسخهای که تازه نصب کردهاید اشاره میدهد. از قلم نیندازیدش.
آدرسها را همیشه از manifest.json داخل zip بردارید نه از اینجا — آنها را بیلدی ثبت کرده که همان ایمیجها را ساخته و بین تراشهها فرق دارند.
اول چیزی که دانلود کردهاید را بررسی کنید:
sha256sum -c SHA256SUMS.txt --ignore-missing۱. دنبال شبکهی وایفای DRouter بگردید و وصل شوید. تا وقتی رمز نگذاشتهاید باز است. ۲. آدرس http://192.168.4.1/ (یا http://drouter.local/) را باز کنید. ۳. اولین رمزی که وارد کنید، رمز مدیریت میشود.
ادامه در شروع کار.
همان دستور را دوباره اجرا کنید. آخرین نسخه را میگیرد و مینویسد.
تنظیمات، حسابها و شمارندههای حجم در بخش جداگانهای از حافظه (NVS) هستند که بهروزرسانی به آن نمینویسد، پس همه چیز حفظ میشود. --erase را وقتی بزنید که واقعاً برد تمیز میخواهید.
عیبیابی را ببینید — بردی که پیدا نمیشود، پورتی که باز نمیشود، نوشتنی که وسط کار میشکند، و بردی که با نسخهی اشتباه بالا میآید.