ESP8266 BUSY — баг в прошивке

ESP8266 BUSY

ESP8266 BUSY

ESP8266 BUSY — печальный глюк, который проявляется на всех официальных AT прошивках, включая последнюю AT v.019 SDK v0.9.2.

Если в момент обмена данными между ESP8266 с другим WiFi устройством происходит разрыв соединения (например, при перезагрузке роутера или при покидании зоны уверенного приема сигнала), то ESP8266 соединение с удаленным устройством даже не пытается восстановить даже тогда, когда WiFi связь снова доступна. Кроме того ESP8266 перестает реагировать на любые AT команды, включая «AT+RST».

Выводит модуль ESP8266 из состояния BUSY только аппаратный RESET.

Китайские инженеры из Espressif Systems обещают исправить это в следующих версиях AT прошивки для модуля ESP8266.

ESP8266 BUSY — Решение проблемы

Обойти ESP8266 BUSY в настоящее время возможно, подключив дополнительную линию управляющего контроллера (Arduino, например) на аппаратный RESET ESP8266. Используя, например, Arduino библиотеку FlexiTimer2 (или любой другой watchdog таймер) вы в своей программе сможете опрашивать ESP8266 через определенные промежутки времени.

Допустим, каждые 5 минут проверяем получаем ли мы ОК на команду АТ. Если нет — перезапускаем ESP8266.

Другой способ решения проблемы — использовать кастомную неоригинальную прошивку ESP8266 Cloud Update With XRST XIPR NetIO. Данная прошивка поддерживает команду «AT+XRST», которая перезагружает модуль ESP8266, даже если на все остальные команды он отвечает «BUSY».

Также, для решения проблемы ESP8266 BUSY, можно использовать прошивку от electrogragon ESP8266 Прошивка electrodragon v0.922 в ней есть встроенный сторожевой таймер (WatchDogTimer), он включается AT командой AT+CSYSWDTENABLE.

Все ESP8266 AT команды на русском