Докладна інструкція з програмування ESP8266 з прошивкою NodeMCU / Lua під Windows: 4. Процедура прошивки модуля

Вступ

  1. Необхідні інструменти
  2. Перше підключення та перевірка справності нового модуля ESP8266, або плати NodeMCU
  3. Процедура створеня двійкового файлу прошивки
  4. Процедура прошивки нового модуля ESP8266 / NodeMCU
  5. Завантаження і запуск тестового програмного Lua-коду в контролер 

4. Процедура прошивки нового модуля ESP8266 / NodeMCU

Що нам знадобиться на цьому етапі:

  • Двійковий файл прошивки ( створений засобами сайту nodemcu-build.com );
  • Програма NodeMCU PyFlasher.

Дії, що потрібно виконати:

Дія 1. Після звільнення порта в Lua Loader, запускаємо програму NodeMCU PyFlasher – для прошивки контролера нашим двійковим файлом *.bin

Дія 2. У програмі PyFlasher обираємо порт, файл прошивки. Налаштування не змінюємо – як правильно, вказано на скріншоті:

Рис. PyFlasher. Налаштування для прошивки ESP8266-12 / плати NodeMCU

Дія 3. Переводимо контролер у режим прошивки:

  • спочатку натискаємо на контролері кнопку Flash;
  • потім не відпускаючи flash натискаємо кнопку Reset;
  • Reset відпускаємо утримуючи Flash;
  • лише потім відпускаємо Flash теж.

Таким чином ми перевели ESP8266 у режим прошивки.

Без переведення контролера у режим прошивки, він не буде відповідати на спроби PyFlasher записати нову прошивку.

З досвідом ви зможете помітити, що інколи контролер автоматично підхоплює запит на прошивку, але в більшості спроб, необхідно буде вручну перевести контролер у режим прошивки.

Дія 4. Після переводу ESP8266 у режим прошивки, натискаємо у програмі PyFlasher клавішу Flash NodeMCU і спостерігаємо процес прошивки.

Якщо контролер не перейшов у режим прошивки, або не відповідає з інших причин, то в консолі PyFlasher буде наступна, або подібна картина:

Рис. PyFlasher. Порт контролера зайнятий іншою програмою

Дія 5. З процесу прошивки може бути два результати: або все прошиється, або програма не знайде контролер.

Контролер може бути не знайдено через:

  • Помилкове підключення інтерфейсів UART. Має бути TX – RX, RX – TX, GND – GND.
  • Відсутність живлення на контролері, адже через зовнішній UART-адаптер живлення може навмисно НЕ подаватися. У випадку плати NodeMCU цієї проблеми бути не може, адже там вбудований UART конвертер.
  • Контролер не перевівся у режим прошивання ( Flash + Reset було натиснуто не у тій послідовності ).
  • Com-порт зайнятий іншою програмою в Windows.
  • Драйвер com-порту працює не вірно, або не встановлений в ОС Windows.

Процес успішної прошивки виглядає так, як показано на скріншоті:

Рис. PyFlasher. Вивід у консоль під час успішної прошивки

Дія 6. У випадку, коли прошивку успішно завантажено у контролер, потрібно:

  • закрити програму PyFlasher;
  • повернутися у програму Lua Loader;
  • натиснути в Lua Loader кнопку Connect;
  • натиснути кнопку Reset на контролері.

Дія 7. Контролер почне видавати у термінал крапки “……” – так відбувається форматування Flash-пам’яті. Потрібно дочекатися завершення форматування.

Рис. Lua Loader. Автоматичне форматування Flash-пам’яті новою прошивкою

Якщо форматування не почалося, або контролер взагалі не показує зрозумілих символів, потрібно зачекати до 5 хвилин і натиснути кнопку Reset ще раз. Також можна спробувати відключити живлення контролера і знову підключити.

Зауважте, що система вводу-виводу в консоль працює на швидкості 115200 бод/с, відповідно, щоб бачити зрозумілий текст в консолі, Lua Loader теж має бути налаштована на швидкість 115200.

Дія 8. Щоб перевірити, чи працює контролер вже під керуванням нової прошивки NodeMCU, можна написати у командний рядок:

і натиснути Enter (або Send у інтерфейсі програми Lua Loader).

40456 — це відповідь контролера про кількість вільної пам’яті ОЗУ.

Такий же результат буде, якщо натиснути кнопку Heap програми Lua Loader праворуч у наборі інструментів.