понеділок, 5 жовтня 2020 р.

Прошивка ESP32 власною firmware за допомоги Flash Download Tools

Передмова

Коли ви створили власну прошивку для ESP32, наприклад в Platformio, чи Arduino IDE. І вам потрібно передати бінарний код для прошивки пристроїв ESP32 іншим людям, не розголошуючи сирцевий код, або прошивати серію власних пристроїв. То IDE не підходить для цих цілей. Краще і правильно користуватись фірмовою утилітою "Flash Download Tools". Як це зробити, читаємо далі в статті.

Завантаження і встановлення

Щоб завантажити утиліту, перейдіть за цією ланкою

Завантажити FLASH DOWNLOAD TOOL

Теку з утилітою потрібно витягнути з архіву і розмістити в зручне для вас місце на диску ПК. Але зауважу, шлях до утиліти не має містити кириличних літер. Лише латиницею.

Запуск утиліти:

Запуск утиліти

Обирайте "Developer Mode":

Оберіть "Developer Mode"

Оберіть тип чипу, в мене ESP32:

Вибір чипу

Тепер з'явиться головне вікно прошивальщика:

Додаємо файли і налаштування

Треба додати 4 файли і призначити адреси розташування в пам'яті модуля:

  • 0x1000 bootloader_dio_40m.bin
  • 0x8000 partitions.bin
  • 0xe000 boot_app0.bin
  • 0x10000 firmware.bin
Крім власного бінарного файла прошивки, що ми зкомпілювали firmware.bin нам протрібні ще три файли:
  • bootloader file
  • partition table file
  • firmware/app file
І де їх взяти?

Arduino IDE

Підготовка файлів для прошивання в Arduino IDE:
Підготовка файлів
Після компіляції створіть окрему папку для всіх чотирьох файлів де вам зручно. Перший файл "firmware.bin" буде розташований в теці скетча. Можна перейти з меню Arduino IDE "Скетч -> Показати теку скетчів". Або перейти за шляхом: "C:\Users\{user}\Documents\Arduino\{назва_вашого_скетчу}. Щоб добути інші файли, в файловому провідникові, потрібно дозволити перегляд прихованих тек. І так, розташування всіх файлів:
C:\Users\"Користувач"\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools\partitions\boot_app0.bin
C:\Users\"Користувач"\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools\sdk\bin\bootloader_dio_40m.bin
C:\Users\"Користувач"\AppData\Local\Temp\arduino_build_491506м'я_вашого_скетчу.ino.bin
C:\Users\"Користувач"\AppData\Local\Temp\arduino_build_491506м'я_вашого_скетчу.ino.partitions.bin
Кладемо всі ці чотири файли до теки, яку вже заздалегідь приготували і вказуємо їх для "FLASH DOWNLOAD TOOL". Або архівуємо теку і відправляємо третій стороні для прошивання.

Адреси для цих файлів для "FLASH DOWNLOAD TOOL", як вже було зазначено вище, мають бути такі:
  • 0x1000 bootloader_dio_40m.bin
  • 0x8000 Ім'я_вашого_скетчу.ino.partitions.bin
  • 0xe000 boot_app0.bin
  • 0x10000 Ім'я_вашого_скетчу.ino.bin

Platformio

Спершу підготуємо потрібні файли. В терміналі вашого проекту виконайте цей рядок:
pio run -v -t upload

Підготовка файлів


Після роботи компілятора і прошивача створяться всі потрібні файли за таким шляхом:
0x1000 C:\Users\"Ім'я_користувача"\.platformio\packages\framework-arduinoespressif32\tools\sdk\bin\bootloader_dio_40m.bin
0xe000 C:\Users\"Ім'я_користувача"\.platformio\packages\framework-arduinoespressif32\tools\partitions\boot_app0.bin
0x8000 .pio\build\esp32dev\partitions.bin
0x10000 .pio\build\esp32dev\firmware.bin 
В файловому провідникові, потрібно дозволити перегляд прихованих тек. Файл partitions.bin та firmware.bin знаходяться в прихованій теці .pio вашого поточного проекту.

Кладемо всі ці чотири файли до теки, яку вже заздалегідь приготували і вказуємо їх для "FLASH DOWNLOAD TOOL". Або архівуємо теку і відправляємо третій стороні для прошивання.

Адреси для цих файлів для "FLASH DOWNLOAD TOOL", як вже було зазначено вище, мають бути такі:
  • 0x1000 bootloader_dio_40m.bin
  • 0x8000 partitions.bin
  • 0xe000 boot_app0.bin
  • 0x10000 firmware.bin

VisualMicro for MS Visual Studio

Хто використовує розширення ARDUINO IDE FOR VISUAL STUDIO, то добути потрібні файли можна за такими шляхами, як шлях до вашого проекту і тека "Debug" або "Release", де будуть два файли "назва_проекту.bin" та "назва_проекту.partitions.bin", а ще два файли беруться там де і для Arduino IDE файли bootloader_dio_40m.bin та boot_app0.bin. Наприклад для проекту "blink1":
C:\Users\"Ім'я_користувача"\source\repos\Blink1\Blink1\Release\Blink1.ino.bin
C:\Users\"Ім'я_користувача"\source\repos\Blink1\Blink1\Release\Blink1.partitions.bin
C:\Users\"Ім'я_користувача"\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools\partitions\boot_app0.bin
C:\Users\"Ім'я_користувача"\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools\sdk\bin\bootloader_dio_40m.bin
Кладемо всі ці чотири файли до теки, яку вже заздалегідь приготували і вказуємо їх для "FLASH DOWNLOAD TOOL". Або архівуємо теку і відправляємо третій стороні для прошивання.

Адреси для цих файлів для "FLASH DOWNLOAD TOOL", як вже було зазначено вище, мають бути такі:
  • 0x1000 bootloader_dio_40m.bin
  • 0x8000 Ім'я_вашого_проекту.ino.partitions.bin
  • 0xe000 boot_app0.bin
  • 0x10000 Ім'я_вашого_проекту.ino.bin