sechevoy, У тебя с чтением текста проблемы? Если ПАРОЛЬ к роутеру не верен, не будет и точки доступа поднято, просто железка будет в ауте...
Трахайтесь в общем то дальше тогда сами.
Автоматика с веб управлением на основе esp32 и pzem
serjrv
Кандидат наук
Камышин
382 205
Отв.760 16 Дек. 21, 23:27
sechevoy
Специалист
Запорожье
148 26

Отв.761 16 Дек. 21, 23:39 (через 12 мин)
Новая железка после первой прошивки знает какую-то сеть wi-fi?
serjrv
Кандидат наук
Камышин
382 205
Отв.762 17 Дек. 21, 00:11 (через 33 мин)
Новая железка после первой прошивки знает какую-то сеть wi-fi?sechevoy, 16 Дек. 21, 23:39Для тех кто в танке...
При первом подключении, ESP`шка не знает название домашней сетки (SSID), соответственно и подключиться к ней не пытается, а просто поднимает точку доступа (AP). А вот если название/имя (SSID) (я хер его знает как доступно объяснять народу, кому ОКЕЙ ГУГЛ недоступен...) ПРИСУТСТВУЕТ уже в памяти контроллера, а ее вы нихрена не стираете при пере прошивке, контроллер и пытается подрубиться к домашней сетке, и совершенно насрать что парольик не тот или пуст. Контроллер думает, если уж пользователь задал что то, и тем более SSID сошлось, значит и паролик к сетке берем не задумываясь (который кстати разработчик бездумно и бесконтрольно сразу во внутреннюю структуру класса прописывает). Вот именно от этого у вас проблемы... Ну и если не только последние сообщения читаешь, мог бы и увидеть/прочитать, почему прошивка посредством самой среды в большинстве случае работает, а прошивая ВСЕГО 4 выложенных файлика - ни черта.
Надеюсь сейчас доступно?
p.s. Однозначно последняя подсказка, задолбало такое общение с гордыми, но не компетентными орлами...
sechevoy
Специалист
Запорожье
148 26

Отв.763 17 Дек. 21, 00:57 (через 47 мин)
Но по логике библиотеки после нескольких неудачных попыток подключения к "старой" сети еспэшка должна подымать точку доступа. Судя по логам она не пытается подключиться к wi-fi сети.
Очень жаль, что топикстартер давно не появляется в ветке.
Коллеги, попробуйте скомпилировать бинарники по совету serjrv. Поможет, поблагодарим от души, не поможет, будем копать дальше.
Очень жаль, что топикстартер давно не появляется в ветке.
Коллеги, попробуйте скомпилировать бинарники по совету serjrv. Поможет, поблагодарим от души, не поможет, будем копать дальше.
gol_avto
Доцент
Москва-Серпухов-Анапа
1.5K 524

Отв.764 17 Дек. 21, 06:08
p.s. Попробуй все же файлик "hd_wifi.c" из 71 версии заменить в 74.serjrv, 15 Дек. 21, 20:53Где ж его взять то? Архива на Гитхабе старой версии нет, у меня тоже. Так что менять нечем.
========
Ещё раз попробовал и 071 и 074 версии прошить бинарниками с последующим выкл/вкл Wi-Fi на ноуте - увы фокус не удался. Ноут ESP не увидел. Через среду всё восстановилось.
Так что у всех фломастеры разные, у кого то 071 работает, а 074 - нет. У меня обе мертвые через бинарники.
Браузер Chrome - версия 96.0.4664.110 (Официальная сборка), (64 бит)
P.S. бедная ESP-шка, уже изнасиловал её перепрошивками.
сообщение удалено
Volume
Доктор наук
Уфа
610 342
Отв.765 17 Дек. 21, 10:40
Если выбрать свою сеть, но ввести "левый" пароль (или не ввести), модуль вечно будет по WiFi недоступенserjrv, 16 Дек. 21, 22:12если добавлять проверки везде где пользователь может накосячить, код как минимум удвоится.
В коммерческих проектах это маст хэв, но в некоммерческих , как в этом, резоны совершенно иные - минимизировать свои трудозатраты. Автор и так массу времени на проект потратил, просто чтоб запускался и работал, поэтому к нему никаких вопросов.
Развитие проекта - дело коллективное. У меня как будет свободное время - попробую разобраться. Пока занят другим проектом
сообщение удалено
serjrv
Кандидат наук
Камышин
382 205
Отв.766 17 Дек. 21, 12:59
Volume, Там делов на 5 минут, у меня просто среда не установлена НУЖНЫМ для проверки способом (уже писал об этом).
Но чтобы тебе долго не ковырять:
В файле hd_wifi.c в последней функции wifiSetup(), надо полностью переписать код инициализации WiFi
Основные косяки вот:
if (!WIFI_knowApCount) {
// Нет заданных точек доступа - переходим в режим AP
... }
Т.е. точку доступа ESP`шка поднимет ТОЛЬКО если наш роутер ни разу не прописан, или его не увидели.
Далее:
else {
...
strlcpy((char*) wifi_config.sta.ssid, w->ssid, sizeof(wifi_config.sta.ssid));
if (strlen(w->password)) strncpy((char*) wifi_config.sta.password, w->password, sizeof(wifi_config.sta.password));
...
}
Вот именно здесь надо проверять не только на пустой пароль, но и на его максимальную длину и допустимость символов (т.е. любой символ в пароле > 0x20 && < 0x80). SSID кстати тоже не повредит проверить аналогичным образом, вдруг это первая прошивка с "кашей" в памяти. Именно из за бардака в этом месте кода, у народа и вечные перезагрузки, и прочие глюки.
Далее надо завести таймер секунд на 20 - 30, и если за это время не смогли подключиться к домашней WiFi, идем поднимать свою точку доступа (AP).
p.s. Вот кстати у кого точка доступа не появляется, могли бы у себя так проверить: выключить из розетки свой роутер, а затем уже подать питание на ESP`шку. Поднимется точка доступа в этом случае? Если да, то я прав на 100%, если не поднимется AP, значит есть и еще косяки в коде. Просто глянув чутка внимательнее, видно что у автора просто куски кода из разных проектов надерганы и адаптированы к данной прошивке (уж слишком сильно различается стиль написания в разных кусках кода).
Но чтобы тебе долго не ковырять:
В файле hd_wifi.c в последней функции wifiSetup(), надо полностью переписать код инициализации WiFi
Основные косяки вот:
if (!WIFI_knowApCount) {
// Нет заданных точек доступа - переходим в режим AP
... }
Т.е. точку доступа ESP`шка поднимет ТОЛЬКО если наш роутер ни разу не прописан, или его не увидели.
Далее:
else {
...
strlcpy((char*) wifi_config.sta.ssid, w->ssid, sizeof(wifi_config.sta.ssid));
if (strlen(w->password)) strncpy((char*) wifi_config.sta.password, w->password, sizeof(wifi_config.sta.password));
...
}
Вот именно здесь надо проверять не только на пустой пароль, но и на его максимальную длину и допустимость символов (т.е. любой символ в пароле > 0x20 && < 0x80). SSID кстати тоже не повредит проверить аналогичным образом, вдруг это первая прошивка с "кашей" в памяти. Именно из за бардака в этом месте кода, у народа и вечные перезагрузки, и прочие глюки.
Далее надо завести таймер секунд на 20 - 30, и если за это время не смогли подключиться к домашней WiFi, идем поднимать свою точку доступа (AP).
p.s. Вот кстати у кого точка доступа не появляется, могли бы у себя так проверить: выключить из розетки свой роутер, а затем уже подать питание на ESP`шку. Поднимется точка доступа в этом случае? Если да, то я прав на 100%, если не поднимется AP, значит есть и еще косяки в коде. Просто глянув чутка внимательнее, видно что у автора просто куски кода из разных проектов надерганы и адаптированы к данной прошивке (уж слишком сильно различается стиль написания в разных кусках кода).
sechevoy
Специалист
Запорожье
148 26

Отв.767 17 Дек. 21, 16:08
Переименовал свой SSID на роутере и включил еспэшку, ребуты повторились.
serjrv
Кандидат наук
Камышин
382 205
Отв.768 17 Дек. 21, 16:49 (через 41 мин)
sechevoy, Ну так выложи сюда свой лог загрузки, чтобы было видно в какой момент (на каком шаге загрузки) у тебя сбой происходит. Посмотреть лог загрузки можно к примеру монитором порта среды Arduino, скорость 115200.
К примеру если не выводит как минимум это:
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:4
load:0x3fff0034,len:5736
load:0x40078000,len:14452
load:0x40080400,len:3864
entry 0x4008065c
[0;32mI (415) cpu_start: Pro cpu up.[0m
[0;32mI (415) cpu_start: Application information:[0m
[0;32mI (415) cpu_start: Project name: esp32_hd[0m
[0;32mI (417) cpu_start: App version: c725aad-dirty[0m
[0;32mI (423) cpu_start: Compile time: Apr 12 2020 16:43:47[0m
[0;32mI (429) cpu_start: ELF file SHA256: 0afc069ca9a60c29...[0m
[0;32mI (435) cpu_start: ESP-IDF: v4.2-dev-414-g132cc67c0[0m
[0;32mI (441) cpu_start: Single core mode[0m
[0;32mI (445) heap_init: Initializing. RAM available for dynamic allocation:[0m
[0;32mI (452) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM[0m
[0;32mI (458) heap_init: At 3FFBA308 len 00025CF8 (151 KiB): DRAM[0m
[0;32mI (465) heap_init: At 3FFE0440 len 0001FBC0 (126 KiB): D/IRAM[0m
[0;32mI (471) heap_init: At 40078000 len 00008000 (32 KiB): IRAM[0m
[0;32mI (477) heap_init: At 40097CB4 len 0000834C (32 KiB): IRAM[0m
[0;32mI (483) cpu_start: Pro cpu start user code[0m
[0;32mI (501) spi_flash: detected chip: gd[0m
[0;32mI (502) spi_flash: flash io: dio[0m
[0;32mI (502) cpu_start: Starting scheduler on PRO CPU.[0m
[0;32mI (517) hd_esp32: RAM left 267032[0m
I2C installed
>> i2cScanner 0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
[0;32mI (556) hd_esp32: Initializing SPIFFS[0m
[0;32mI (578) hd_esp32: Reset reason: Vbat power on reset
[0mто виноват даже не wifi, а просто видимо криво прошиваешь.
К примеру если не выводит как минимум это:
Скрытый текст
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:4
load:0x3fff0034,len:5736
load:0x40078000,len:14452
load:0x40080400,len:3864
entry 0x4008065c
[0;32mI (415) cpu_start: Pro cpu up.[0m
[0;32mI (415) cpu_start: Application information:[0m
[0;32mI (415) cpu_start: Project name: esp32_hd[0m
[0;32mI (417) cpu_start: App version: c725aad-dirty[0m
[0;32mI (423) cpu_start: Compile time: Apr 12 2020 16:43:47[0m
[0;32mI (429) cpu_start: ELF file SHA256: 0afc069ca9a60c29...[0m
[0;32mI (435) cpu_start: ESP-IDF: v4.2-dev-414-g132cc67c0[0m
[0;32mI (441) cpu_start: Single core mode[0m
[0;32mI (445) heap_init: Initializing. RAM available for dynamic allocation:[0m
[0;32mI (452) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM[0m
[0;32mI (458) heap_init: At 3FFBA308 len 00025CF8 (151 KiB): DRAM[0m
[0;32mI (465) heap_init: At 3FFE0440 len 0001FBC0 (126 KiB): D/IRAM[0m
[0;32mI (471) heap_init: At 40078000 len 00008000 (32 KiB): IRAM[0m
[0;32mI (477) heap_init: At 40097CB4 len 0000834C (32 KiB): IRAM[0m
[0;32mI (483) cpu_start: Pro cpu start user code[0m
[0;32mI (501) spi_flash: detected chip: gd[0m
[0;32mI (502) spi_flash: flash io: dio[0m
[0;32mI (502) cpu_start: Starting scheduler on PRO CPU.[0m
[0;32mI (517) hd_esp32: RAM left 267032[0m
I2C installed
>> i2cScanner 0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
[0;32mI (556) hd_esp32: Initializing SPIFFS[0m
[0;32mI (578) hd_esp32: Reset reason: Vbat power on reset
[0m
Volume
Доктор наук
Уфа
610 342
Отв.769 17 Дек. 21, 17:38 (через 50 мин)
Основные косяки вот:serjrv, 17 Дек. 21, 12:59думаю дело не в коде, а в технологии прошивки. Как тут уже сообщали - при прошивке пайтоновской утилитой esp-шной среды проблем не возникает. При ровно том же коде исходника.
Просто лично я всегда из среды программирования шью, поэтому граблю с прошивкой бинарниками ни разу не видел. Чтоб разобраться, надо разницу искать между прошивкой бинарника утилиткой и прошивкой из idf-ной среды
serjrv
Кандидат наук
Камышин
382 205
Отв.770 17 Дек. 21, 18:33 (через 56 мин)
думаю дело не в коде, а в технологии прошивки.Volume, 17 Дек. 21, 17:38Код тоже надо править, иначе при правильном SSID, НО неверном пароле, AP не поднимется.
В принципе я могу скомпоновать прошивку и выложить архив с "выдернутой" прошивалкой из Platform IO с насадкой ESP-IDF. Правда у меня конкретно под винду, на яблоке или линухе не заведется. Ну было бы неплохо если бы файлик boot_app0.bin (или как он у вас обзывается я не знаю) тоже кто то выдернул и выложил (выше что и как я писал). В итоге просто надо будет распаковать архив и просто запустить programm.cmd, далее выбрать COM порт из доступных и все (без выеживания с утилитой flash_download_tool).
Добавил утилитку для прошивки 74-й версии, пробуйте.
- распаковываем архив
- подключаем модуль ESP по USB к компу
- запускаем файлик programm.cmd
- выбираем 2-й пункт для полного предварительного стирания памяти ESP`шки
- выбираем свой номер COM порта
- ждем пока не напишет: "Для продолжения нажмите любую клавишу..."
- перегружаем модуль и проверяем
sechevoy
Специалист
Запорожье
148 26

Отв.771 17 Дек. 21, 22:00
К сожалению результат тот же. Ниже прилагаю лог из сериал порта.
Volume
Доктор наук
Уфа
610 342
Отв.772 18 Дек. 21, 11:13
попробовал прошить утилиткой - все прошилось, все работает. Что делал:
1. скачал последнюю версию прошивальщика с https://www.espressif.com/en/support/download/other-tools
2. скачал архив 074 из [сообщение #13879601]
3. указал в прошивальщике 3 первых файла в соответствии с инструкцией ТС (образ spiff не шил - приложение при старте само отформатирует файловую систему)
4. ткнул "Start", дождался "Finish". Нажал "Stop", после чего закрыл приложение прошивальщика
5. выдернул шнурок USB, воткнул обратно (типа - рестарт espшки).
Запустил putty на COM-порт esp32, вижу лог нормального старта. Посмотрел в ноуте доступные WiFi точки - вижу точку hd_esp32
Сравниваю свой лог старта с логом sechevoy, вижу различия:
1я строчка, у меня
ets Jun 8 2016 00:22:57 (ets Jul 29 2019 12:21:46)
6я строчка
mode:DIO, clock div:2 (mode:DIO, clock div:1)
Вот этих строк у меня нет:
[0;31mE (29) esp_image: image at 0x110000 has invalid magic byte[0m
[0;31mE (29) boot: OTA app partition slot 0 is not bootable[0m
1. скачал последнюю версию прошивальщика с https://www.espressif.com/en/support/download/other-tools
2. скачал архив 074 из [сообщение #13879601]
3. указал в прошивальщике 3 первых файла в соответствии с инструкцией ТС (образ spiff не шил - приложение при старте само отформатирует файловую систему)
4. ткнул "Start", дождался "Finish". Нажал "Stop", после чего закрыл приложение прошивальщика
5. выдернул шнурок USB, воткнул обратно (типа - рестарт espшки).
Запустил putty на COM-порт esp32, вижу лог нормального старта. Посмотрел в ноуте доступные WiFi точки - вижу точку hd_esp32
Сравниваю свой лог старта с логом sechevoy, вижу различия:
1я строчка, у меня
ets Jun 8 2016 00:22:57 (ets Jul 29 2019 12:21:46)
6я строчка
mode:DIO, clock div:2 (mode:DIO, clock div:1)
Вот этих строк у меня нет:
[0;31mE (29) esp_image: image at 0x110000 has invalid magic byte[0m
[0;31mE (29) boot: OTA app partition slot 0 is not bootable[0m
serjrv
Кандидат наук
Камышин
382 205
Отв.773 18 Дек. 21, 12:03 (через 50 мин)
mode:DIO, clock div:2 (mode:DIO, clock div:1)Volume, 18 Дек. 21, 11:13Это только от установленной микросхемки флеша зависит, div:1 это просто максимальная скорость по шине SPI. У меня кстати тоже данный делитель равен единичке.
Вот этих строк у меня нет:А это уже ругань идет...
[0;31mE (29) esp_image: image at 0x110000 has invalid magic byte[0m
[0;31mE (29) boot: OTA app partition slot 0 is not bootable[0mVolume, 18 Дек. 21, 11:13
Кстати у sechevoy, такое впечатление что на инициализации I2C все стопориться и перегружается.
Немного переделал прошивальщик, убрал заливку spiffs, все равно образ бардачный...
_bin_074_2.zip
Ну и ложка дегтя, когда рухнет сервак обновлений, откуда первоначально нужные файлики подтягиваются, у народа опять проблемы нарисуются.
gol_avto
Доцент
Москва-Серпухов-Анапа
1.5K 524

Отв.774 18 Дек. 21, 12:40 (через 38 мин)
1. скачал последнюю версию прошивальщика с https://www.espressif.com/en/support/download/other-toolsПроделал тоже самое, смотрю в ноуте доступные WiFi точки - НЕ вижу точку hd_esp32
2. скачал архив 074 из [сообщение #13879601]
3. указал в прошивальщике 3 первых файла в соответствии с инструкцией ТС (образ spiff не шил - приложение при старте само отформатирует файловую систему)
4. ткнул "Start", дождался "Finish". Нажал "Stop", после чего закрыл приложение прошивальщика
5. выдернул шнурок USB, воткнул обратно (типа - рестарт espшки).Volume, 18 Дек. 21, 11:13
=============
Перепрошил ещё 3 раза, точки нет, подождал дольше (больше минуты) - точка появилась. Прошивал также 3 файла
serjrv
Кандидат наук
Камышин
382 205
Отв.775 18 Дек. 21, 13:07 (через 28 мин)
gol_avto, попробуй прошиться просто последний выложенный мной архив "_bin_074_2.zip", именно запустив programm.cmd после распаковки архива.
sechevoy
Специалист
Запорожье
148 26

Отв.776 18 Дек. 21, 13:24 (через 18 мин)
Ничего не помогло.
Откатился на 0.7.1
Подскажите, что было исправлено в 0.7.4 в сравнении с 0.7.1? Интересно знать, что я теряю.
Остаётся ждать автора прошивки (((.
Откатился на 0.7.1
Подскажите, что было исправлено в 0.7.4 в сравнении с 0.7.1? Интересно знать, что я теряю.
Остаётся ждать автора прошивки (((.
serjrv
Кандидат наук
Камышин
382 205
Отв.777 18 Дек. 21, 13:59 (через 35 мин)
sechevoy, К самому модулю что то подключено из внешних устройств (датчик давления, датчики температуры, дисплей)?
sechevoy
Специалист
Запорожье
148 26

Отв.778 18 Дек. 21, 14:03 (через 4 мин)
sechevoy, К самому модулю что то подключено из внешних устройств (датчик давления, датчики температуры, дисплей)?serjrv, 18 Дек. 21, 13:59Голая ESP32
gol_avto
Доцент
Москва-Серпухов-Анапа
1.5K 524

Отв.779 18 Дек. 21, 14:03 (через 1 мин)
gol_avto, попробуй прошиться просто последний выложенный мной архив "_bin_074_2.zip", именно запустив programm.cmd после распаковки архива.serjrv, 18 Дек. 21, 13:07Прошил. Всё ОК. Wi-Fi работает.
Вот лог прошивки
Скрытый текст
Select item to program:1 - Update program and WEB interface.
2 - Erase entire memory of the module. Update program and WEB interface.
Q - Exit.
2
Enter COM port number:
8 - COM8
6 - COM6
3 - COM3
Q - Exit.
3
esptool.py v2.6
Serial port COM3
Connecting......
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 24:0a:c4:c5:64:fc
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Erasing flash (this may take a while)...
Chip erase completed successfully in 8.5s
Hard resetting via RTS pin...
esptool.py v2.6
Serial port COM3
Connecting....
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 24:0a:c4:c5:64:fc
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 8192 bytes to 47...
Wrote 8192 bytes (47 compressed) at 0x0000d000 in 0.0 seconds (effective 4681.2 kbit/s)...
Hash of data verified.
Flash params set to 0x022f
Compressed 24160 bytes to 14600...
Wrote 24160 bytes (14600 compressed) at 0x00001000 in 0.2 seconds (effective 1033.6 kbit/s)...
Hash of data verified.
Compressed 1019232 bytes to 645249...
Wrote 1019232 bytes (645249 compressed) at 0x00010000 in 9.0 seconds (effective 908.7 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 153...
Wrote 3072 bytes (153 compressed) at 0x00008000 in 0.0 seconds (effective 1890.5 kbit/s)...
Hash of data verified.
Compressed 983040 bytes to 59454...
Wrote 983040 bytes (59454 compressed) at 0x00110000 in 2.0 seconds (effective 3879.8 kbit/s)...
Hash of data verified.