• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP8266-03 подключается только к определенному роутеру (+кое что еще..).

Engineer_Keen

New member
Здравствуйте!
Предыстория такова. Делал часики на ATMEGA88 с экраном на адресных светодиодах. Все работает, часы, будильник, обратный отсчет (отображается как водяные часы). Настраивались они кнопкой и энкодером. При отключении света, естественно сброс (хотя конечно можно какой-нибудь DS1307 с батарейкой прицепить), захотел синхронизацию по NTP сделать. Вспомнил что давно купил на эксперименты платку esp8266-03 и вот настало время... Понятно что она сама по себе потянет и матрицу и еще кучу всего, но изучать новую среду и переделывать все как-то не очень хочется, да и времени свободного нет столько. В общем достал esp, обновил ее прошивку (AT ver. 1.7.5.0, SDK ver. 3.0.5), воткнул ее в часы и UARTом подцепил к меге. Написал кое-какую инициализацию, работу с NTP и выдачу HTML странички с настройками часов.На работе есть древний роутер TP-LINK, настроил на нем сеть, шифрование, DHCP, сам роутер одним портом воткнут в комп. В общем все работает, при старте Мега AT-командами коннектит esp к роутеру, я из браузера захожу на страничку и могу там менять настройки, в процессе мега еще и считывает время по NTP (на компе запущен NTP-сервер). А вот дальше застрял. При попытке подключиться к телефону (там настроена точка доступа) возвращается ошибка либо +CWJAP:1, либо +CWJAP:4, сеть телефона в списке по CWLAP есть, пробовал и сеть с защитой и без, и с DHCP и с IP вручную, никак... Тоже и дома с роутером Keenetic, там чаще всего именно +CWJAP:4, что не так не могу понять, ssid и пароли точно верные, если умышленно ошибиться то либо +CWJAP:2 либо +CWJAP:3, что логично. И еще проблема. Если Мега видит что не может подключиться к сети, то она переводит esp в режим точки доступа, но телефона я к ней подключиться опять же, никак не могу, пишет STA_CONNECTED с маком телефона и сразу STA_DISCONNECTED, иногда между ними вклинивается DIST_STA_IP, но все равно потом сразу дисконнект, прям беда. Ноут эту сеть почему-то вообще не видит... Может я что-то не учел? На всякий случай особенность обмена по UART - эхо отключено, 115200,8,1, включен CTS (пока экран обновляется, прием данных по UART запрещен, примерно 5мс 4 раза в секунду).
 

pvvx

Активный участник сообщества
ESP давно не поддерживают новые фичи в новых стандартах WiFi.
Отключите в роутере все новые фичи, такие как короткая преамбула и т.д.
Т.е. сделайте из нового роутера устаревший и тормозной вариант... Потом включайте по очереди новые функции в роутере и проверяйте, что не нравится ESP.
 

Engineer_Keen

New member
Прошивка esp на 3 года новее прошивки кинетика, телефон 22го года, неужели esp настолько отсталое фуфло? Вроде же много народу ей пользуется, нет, тут что-то другое должно быть.
 

Engineer_Keen

New member
Прошивка esp на 3 года новее прошивки кинетика, телефон 22го года, неужели esp настолько отсталое фуфло? Вроде же много народу ей пользуется, нет, тут что-то другое должно быть.
Так, кинетик вроде победил, поменял канал с авто на 1 (текущий был 9) и режим с 802.11bgn на 802.11b, пока что именно повлияло не понял, домашние и так злятся что в процессе проверок вайфай отваливался несколько раз)
 

pvvx

Активный участник сообщества
Прошивка esp на 3 года новее прошивки кинетика, телефон 22го года, неужели esp настолько отсталое фуфло? Вроде же много народу ей пользуется, нет, тут что-то другое должно быть.
А причем тут "много народу"? С момента выхода чипа и его внутренних дров RF прошло много лет и WiFi обзавелся новыми стандартами. В основном ускоряющими работу и для малопотребляющих устройств - к примеру передача в одном фрейме данных сразу нескольким устройствам (и что будет делать с таким ESP?).
В расширенных роутерах все опции есть и многие из них с припиской - может не работать со старыми вариантами устройств.
 

pvvx

Активный участник сообщества
Так, кинетик вроде победил, поменял канал с авто на 1 (текущий был 9) и режим с 802.11bgn на 802.11b, пока что именно повлияло не понял, домашние и так злятся что в процессе проверок вайфай отваливался несколько раз)
Дык если оставить короткую преамбулу и ещё что-то (счас не помню), то роутер не найдет ESP. Но может найти, если другой включит активное сканирование с параметрами по старинке.... И ещё много других чудес...
И "много народу" тут ничем не поможет, т.к. исходники RF закрыты.
 

Engineer_Keen

New member
Ладно как станция оно вроде как работает... Но вот как точка доступа че-то вообще печально, ноут не видит ее совсем, телефон:
+STA_CONNECTED:"08:1c:6e:9e:95:80"
+STA_DISCONNECTED:"08:1c:6e:9e:95:80"
+STA_CONNECTED:"08:1c:6e:9e:95:80"
+DIST_STA_IP:"08:1c:6e:9e:95:80","192.168.1.2"
+DIST_STA_IP:"08:1c:6e:9e:95:80","192.168.1.2"
+DIST_STA_IP:"08:1c:6e:9e:95:80","192.168.1.2"
+STA_DISCONNECTED:"08:1c:6e:9e:95:80"
+STA_CONNECTED:"08:1c:6e:9e:95:80"
+DIST_STA_IP:"08:1c:6e:9e:95:80","192.168.1.2"
+STA_DISCONNECTED:"08:1c:6e:9e:95:80"
+STA_CONNECTED:"08:1c:6e:9e:95:80"
+STA_DISCONNECTED:"08:1c:6e:9e:95:80"
+STA_CONNECTED:"08:1c:6e:9e:95:80"
+STA_DISCONNECTED:"08:1c:6e:9e:95:80"
+STA_CONNECTED:"08:1c:6e:9e:95:80"
+DIST_STA_IP:"08:1c:6e:9e:95:80","192.168.1.2" - в этот момент телефон пишет что получение IP адреса...
+DIST_STA_IP:"08:1c:6e:9e:95:80","192.168.1.2"
+DIST_STA_IP:"08:1c:6e:9e:95:80","192.168.1.2"
+DIST_STA_IP:"08:1c:6e:9e:95:80","192.168.1.2"
+STA_DISCONNECTED:"08:1c:6e:9e:95:80"
+STA_CONNECTED:"08:1c:6e:9e:95:80"
+STA_DISCONNECTED:"08:1c:6e:9e:95:80"
Иногда телефон пишет что точка доступа переполнена, но обычно просто "сохранено", несколько раз даже удавалось подключиться и даже выскакивало что сеть без доступа в интернет, но через секунду сразу отвал. Канал самый свободный, сканером WIFI на телефоне смотрел, сеть ESP там видно, изредка она на пару секунд пропадает, но в основном есть и с хорошим уровнем. Видимо придется отказаться от этой фигни и воткнуть проводной w5500...
 

pvvx

Активный участник сообщества
Питания ESP8266 точно хватает?
У ESP8266 неиcправный BOR и при просадках питания можно получить любые глюки. А в режиме AP кушает он значительно больше.
Если модуль подключен от USB компа длинным дурным USB шнурком -> гарантированно будут глюки.
 

Engineer_Keen

New member
На вход платы приходит 5В от двухамперного БП (он питает матрицу с адресными диодами), далее lm1117-3.3, тантал на 4.5мкф и кучка блокировочной керамики по 0.1 на выводах питания меги и esp. На осциллографе четкая прямая на уровне 3.32В ни в каких режимах ничего не проседает, только шум в пределах пары пикселей. Стабилизатора должно на 3 esp в режиме передачи хватить теоретически.
 

Engineer_Keen

New member
А всего-то надо было сконфигурировать RFPOWER...
Какой он по умолчанию неизвестно, я вручную делал только 80-82, ничего кроме TP-LINKа не работало. На осциллографе были мелкие провалы на 40мВ, но они и при работе с TP-LINKом такие же, пробовал припаять прямо на контакты питания ESP электролит на 220мкФ, без разницы. А вот когда поставил RFPOWER=10, телефон подключился, сделал 70, тоже работает! И телефон подключается к точке ESP и сама ESP, если точку телефона видит - подключается, осталось дома с кинетиком проверить.
 

CodeNameHawk

Moderator
Команда форума
А всего-то надо было сконфигурировать RFPOWER...
Версия выглядит сомнительно.
Было, что к точке доступа, не получалось подключится, если пароль был короче восьми символов.
п.с. установите обратно 80-82 и проверьте.
 

Engineer_Keen

New member
Возвращал 80, проверял, подключается только к TP-LINKу, к точке доступа на телефоне не подключается - то ошибка 1, то 4 (если наврать SSID или пароль - то ошибка 2 или 3), телефон, если на ESP включить точку доступа, к ней не подключатся, выше лог приводил: connect и сразу disconnect. На 70 все нормально. Пароль пробовал или не задавать, или "12345678", шифрование тоже разное перебирал, каналы перебирал, ничего не влияло.
 

pvvx

Активный участник сообщества
Ответ DeepSeek на правильно заданный вопрос по вашу проблему:

Файл esp_init_data_default.bin — это бинарный файл, содержащий стандартные параметры инициализации системы, предоставляемый в составе ESP8266/ESP32 SDK от Espressif.
📌 Назначение файла:
Этот файл хранит базовые настройки для работы Wi-Fi/BT-стека микроконтроллера, включая:
  • Параметры RF (радиочастотного модуля)
  • Настройки PHY (физического уровня Wi-Fi)
  • Калибровочные данные
  • Значения по умолчанию для энергопотребления и других системных параметров
🔧 Когда он нужен?
  1. Первая прошивка чипа (например, после покупки нового модуля).
  2. Сброс к заводским настройкам (если пользовательские параметры повреждены).
  3. Проблемы с Wi-Fi/BT (если соединение нестабильно или не работает).
📂 Где находится?
Обычно этот файл можно найти:
  • В папке SDK (ESP8266_NONOS_SDK/bin/esp_init_data_default.bin)
  • В репозиториях с примерами прошивок (например, в Arduino ESP8266/ESP32 core)
  • На GitHub в виде готовых бинарников
⚠ Важно!
  • Для ESP8266 и ESP32 используются разные версии файла (из-за различий в радиочасти).
  • Иногда требуется кастомизация (например, для определенного региона или мощности сигнала).
  • Если файл отсутствует или поврежден, Wi-Fi/BT может не работать корректно.
🔄 Как прошить?
  1. Через esptool.py (для ESP8266):
    bash
    Copy
    esptool.py --port COMx write_flash 0x3FC000 esp_init_data_default.bin
  2. Для ESP32 адрес может отличаться (например, 0x4000).
Если у вас есть проблемы с Wi-Fi на ESP-устройстве, попробуйте прошить этот файл — иногда это решает неочевидные глюки. 🚀
 

Engineer_Keen

New member
Ну я его естественно прошивал, изначально когда терминалом первый раз проверил AT+GMR, там AT и SDK было какое-то чудовищно древнее, версии десятилетней давности. Несколько прошивок проверял. Сейчас обновил до 1.7.5(AT) и 3.0.5(SDK), при этом зашил и ini-файл тоже (v08 последний что нашел).
В общем оно заработало и дома с кинетиком, на RFPOWER=70. Если поставить 75, то возвращает "неверный пароль".
Еще бы разобраться с командой запроса времени. Она как-то странно работает, я то думал что она заставляет esp сразу отправлять ntp запрос на один из 3х заданных серверов, но судя по wireshark оно так не работает, да и из терминала видно, что даже если все прекрасно подключено к роутеру, то в ответ на первые запросы приходит 1970 год и лишь через какое-то (разное) время в ответе нормальная дата (у меня раз в 30 сек запрос отправляется, пока не придет дата отличная от 1970, если приходит нормальная, то повтор через 4 часа). Я конечно могу вручную отправлять пакет через UDP и расковырывать потом timestamp на часы-минуты-секунды но боюсь у меня программной памяти в меге не хватит еще и на это...
 

pvvx

Активный участник сообщества
Ну я его естественно прошивал, изначально когда терминалом первый раз проверил AT+GMR, там AT и SDK было какое-то чудовищно древнее, версии десятилетней давности. Несколько прошивок проверял. Сейчас обновил до 1.7.5(AT) и 3.0.5(SDK), при этом зашил и ini-файл тоже (v08 последний что нашел).
Это были прошивки, а esp_init_data_default.bin - это другое.
Перед записью прошивки надо было стереть всю flash...
 

Engineer_Keen

New member
Нее, я понимаю что это, то что я назвал прошивкой, на самом деле отдельные бинарники: загрузчик, две пользовательские прошивки (как раз AT), настройки по умолчанию (этот самый esp_init) и пара пустых кусков. Все эти вещи имеют строго определенные начальные адреса и размер. Я сомневаюсь что перед записью страницы не стираются, иначе вообще бы ничего не работало, а так как я переписывал все сразу, то и стирать flash целиком, по-моему смысла нет. Понятное дело, что все сразу переписывать не обязательно, но т.к. все части были новее чем те что у меня, я их все и шил, даже blank.bin, хоть они и просто пустые, на всякий случай.
 
Сверху Снизу