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

Непонятки с httpUpdate

Dron

New member
Делаю поглядывая на пример:
Код:
 ESPhttpUpdate.rebootOnUpdate(BOOT_AFTER_UPDATE);
  t_httpUpdate_return ret = ESPhttpUpdate.update("http://192.168.1.1:81/file.bin");
 
  switch(ret) {
    case HTTP_UPDATE_FAILED:
         Serial.printf("HTTP_UPDATE_FAILD Error (%d): %s", ESPhttpUpdate.getLastError(), ESPhttpUpdate.getLastErrorString().c_str());
         break;

    case HTTP_UPDATE_NO_UPDATES:
         Serial.println("HTTP_UPDATE_NO_UPDATES");
         break;

    case HTTP_UPDATE_OK:
         Serial.println("HTTP_UPDATE_OK");
         break;
   }
Получаю ошибку:
HTTP_UPDATE_FAILD Error (-100): To less space
Я так понимаю что не хватает места в флэши 512к, но файл прошивки file.bin имеет размер 265к, подскажите пожалуйста как сделать обновление прошивки правильно.... И как включить режим отладки httpUpdate ?
 

tretyakov_sa

Moderator
Команда форума
Я так понимаю что не хватает места в флэши 512к, но файл прошивки file.bin имеет размер 265к, подскажите пожалуйста как сделать обновление прошивки правильно.... И как включить режим отладки httpUpdate ?
С какими параметрами SPIFFS вы пробуете это сделать?
 

Dron

New member
С какими параметрами SPIFFS вы пробуете это сделать?
Может я неправ, но SPIFFS я не использую, пытаюсь записать только прошивку. Или вы имеете ввиду что уже есть по умолчанию созданная файловая система в флэши? Извините, я только начал заниматься с ESP, о многом могу не догадываться даже.
 

tretyakov_sa

Moderator
Команда форума
Может я неправ, но SPIFFS я не использую, пытаюсь записать только прошивку. Или вы имеете ввиду что уже есть по умолчанию созданная файловая система в флэши? Извините, я только начал заниматься с ESP, о многом могу не догадываться даже.
Просто посмотрите какая у вас настройка этого параметра. И какая у вас плата ESP.
 

Dron

New member
ооо. Сейчас на работе, вечером выберу 512К(noSPIFFS) и попробую снова.
 

Dron

New member
Перепаял родную 512 кбайт флэш на 4мегабайтную. Обновление по http работает. Вроде как можно в параметрах ESPhttpUpdate.update передать версию прошивки, чтобы не обновлять на туже самую версию. Прошу по возможности кусочек кода где это реализовано, может кто разобрался в отличии от меня.
 

mishgan

Member
То же возникла непонятка при обновлении по воздуху.

Код:
WiFi.disconnect();
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, pass);

while (WiFi.status() != WL_CONNECTED)  {delay(1000);}
beeper();

t_httpUpdate_return ret = ESPhttpUpdate.update("http://airbrew.ru/upd/airbrew_esp8266.bin");
if (ret==HTTP_UPDATE_FAILED) Serial.println("HTTP_UPDATE_FAILD Error: "+ESPhttpUpdate.getLastErrorString());
else if (ret==HTTP_UPDATE_NO_UPDATES)  Serial.println("HTTP_UPDATE_NO_UPDATES");
else {while(ret!=HTTP_UPDATE_OK){delay(1);}}
При выполнении выскакивает ошибка
Update error: ERROR[11]: Invalid bootstrapping state, reset ESP8266 before updating
Не пойму в какую сторону рыть. У кого была такая же проблема?
Самое интересное в другом скетче тот же код работает.
 
Сверху Снизу