Closed elbowz closed 5 years ago
Same here :|
epc1=0x4000bf64 epc2=0x00000000 epc3=0x00000000 excvaddr=0x4024a879 depc=0x00000000
Edit:
triggered the ota update a second time, this time it seems to have worked. BUT: it has rebooted to config mode again. seems the ota-update erased my config file on the spiffs-partition. :(
Edit 2:
First try seems to fail always. Second try worked and also the config is not deleted after upgrade.
Edit 3:
after some more tests it seems always to work on second try. first try the esp reboots with old firmware, after the second try it flashs the new firmware and also the config wasn't erased anymore. maybe i have flashed the config from inside the arduino ide, now it was uploaded via curl and it seems to keep the config.
Weird. This is a blocker before releasing v2.0.0. I'll take a look!
Sorry for the long response time, studies are my priority!
i just flashed some homie-devices via ota in the last days. it never works on the first try, mostly i need 5 or 6 tries.
edit: funny side-effect: i have to reconfigure all devices that were configured on december via curl or via spiffs-upload. after configuring via webapp/android-app, the config stays over the ota-updates.
I cannot reproduce. Everything is working on my side, b64 or not...
What is your board? I only have NodeMCU v2s.
I use 11 NodeMCU v2 boards at the moment. Sorry, i havn't had time to test with 5 or 6 Nodes. Maybe this weekend.
edit: i'm using https://github.com/jpmens/homie-ota for update-triggering.
Hi,
My WeMos D1 mini is rebooting to old firmware after OTA as well. (checked out develop branch at commit d7739b5d9ca741c7f64fb1cfbe615eb2aac2eab1, my complete sketch is here: https://github.com/pezinek/ir_blaster triggering OTA via this shell script: https://github.com/pezinek/ir_blaster/blob/master/scripts/update_fw_ota.sh )
Edit: I'm not able to reproduce this issue anymore with latest homie-esp8266 (commit 1d5f228c3876f1e45ad0c96633c0ba1fb49c178a)
I use ESP8266 12E/F ("raw" version) with 4Mb of flash memory...thanks!
Actually I hit this issue again, and this time I was able to capture and decode the stack trace, and even though it doesn't make much sense to me, but maybe it would to someone else ;-)
Exception 3: LoadStoreError: Processor internal physical address or data error during load or store
Decoding 50 results
0x4024d8e2: chip_v6_unset_chanfreq at ?? line ?
0x4020182d: String::copy(char const*, unsigned int) at ?? line ?
0x402019a9: String::operator=(char const*) at ?? line ?
0x4024d8e2: chip_v6_unset_chanfreq at ?? line ?
0x4021b618: HomieInternals::Logger::write(unsigned char const*, unsigned int) at ?? line ?
0x402072f9: HomieInternals::BootNormal::_endOtaUpdate(bool, unsigned char) at ?? line ?
0x4024d526: chip_v6_unset_chanfreq at ?? line ?
0x402076e8: HomieInternals::BootNormal::_onMqttMessage(char*, char*, AsyncMqttClientMessageProperties, unsigned int, unsigned int, unsigned int) at ?? line ?
0x40105142: pp_post at ?? line ?
0x401049af: lmacRxDone at ?? line ?
0x40105e39: trc_NeedRTS at ?? line ?
0x401063f6: wDev_ProcessFiq at ?? line ?
0x40244593: pp_attach at ?? line ?
0x4021b504: std::_Function_handler (HomieInternals::BootNormal*, std::_Placeholder1>, std::_Placeholder2>, std::_Placeholder3>, std::_Placeholder4>, std::_Placeholder5>, std::_Placeholder6>)> >::_M_invoke(std::_Any_data const&, char*, char*, AsyncMqttClientMessageProperties, unsigned int, unsigned int, unsigned int) at ?? line ?
0x40231d6c: ieee80211_output_pbuf at ?? line ?
0x40206c5b: std::_Function_base::_Base_manager (HomieInternals::BootNormal*, std::_Placeholder1>, std::_Placeholder2>, std::_Placeholder3>, std::_Placeholder4>, std::_Placeholder5>, std::_Placeholder6>)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) at ?? line ?
0x4021bf6a: std::function ::function(std::function const&) at ?? line ?
0x4022a4ac: etharp_send_ip at /Users/igrokhotkov/espressif/arduino/tools/sdk/lwip/src/netif/etharp.c line 434
0x402148c0: AsyncMqttClient::_onMessage(char*, char*, unsigned char, bool, bool, unsigned int, unsigned int, unsigned int, unsigned short) at ?? line ?
0x4010020c: _umm_free at umm_malloc.c line ?
0x40206c38: std::_Function_base::_Base_manager (HomieInternals::BootNormal*, std::_Placeholder1>, std::_Placeholder2>, std::_Placeholder3>, std::_Placeholder4>, std::_Placeholder5>, std::_Placeholder6>)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) at ?? line ?
0x4021b4dc: std::_Function_handler (HomieInternals::BootNormal*, std::_Placeholder1>, std::_Placeholder2>, std::_Placeholder3>, std::_Placeholder4>, std::_Placeholder5>, std::_Placeholder6>)> >::_M_invoke(std::_Any_data const&, char*, char*, AsyncMqttClientMessageProperties, unsigned int, unsigned int, unsigned int) at ?? line ?
0x4022a791: etharp_output_to_arp_index at /Users/igrokhotkov/espressif/arduino/tools/sdk/lwip/src/netif/etharp.c line 888
0x40206cba: std::_Function_base::_Base_manager (HomieInternals::BootNormal*, std::_Placeholder1>)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) at ?? line ?
0x4021be0d: std::_Function_handler (AsyncMqttClient*, std::_Placeholder1>, std::_Placeholder2>, std::_Placeholder3>, std::_Placeholder4>, std::_Placeholder5>, std::_Placeholder6>, std::_Placeholder7>, std::_Placeholder8>, std::_Placeholder9>)> >::_M_invoke(std::_Any_data const&, char*, char*, unsigned char, bool, bool, unsigned int, unsigned int, unsigned int, unsigned short) at ?? line ?
0x40215866: AsyncMqttClientInternals::PublishPacket::parsePayload(char*, unsigned int, unsigned int*) at ?? line ?
0x402146b5: AsyncMqttClient::_onData(AsyncClient*, char*, unsigned int) at ?? line ?
0x402138cc: std::_Function_base::_Base_manager (AsyncMqttClient*, std::_Placeholder1>, std::_Placeholder2>)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) at ?? line ?
0x4021bd7c: std::_Function_handler (AsyncMqttClient*, std::_Placeholder1>, std::_Placeholder2>)> >::_M_invoke(std::_Any_data const&, unsigned short, unsigned char) at ?? line ?
0x40213884: std::_Function_base::_Base_manager (AsyncMqttClient*, std::_Placeholder1>, std::_Placeholder2>, std::_Placeholder3>, std::_Placeholder4>, std::_Placeholder5>, std::_Placeholder6>, std::_Placeholder7>, std::_Placeholder8>, std::_Placeholder9>)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) at ?? line ?
0x4021bdd4: std::_Function_handler (AsyncMqttClient*, std::_Placeholder1>, std::_Placeholder2>, std::_Placeholder3>, std::_Placeholder4>, std::_Placeholder5>, std::_Placeholder6>, std::_Placeholder7>, std::_Placeholder8>, std::_Placeholder9>)> >::_M_invoke(std::_Any_data const&, char*, char*, unsigned char, bool, bool, unsigned int, unsigned int, unsigned int, unsigned short) at ?? line ?
0x40103915: lmacProcessTXStartData at ?? line ?
0x4022b97c: ip_output_if at /Users/igrokhotkov/espressif/arduino/tools/sdk/lwip/src/core/ipv4/ip.c line 628
0x40231039: ieee80211_parse_beacon at ?? line ?
0x402146e8: std::_Function_handler ::_M_invoke(std::_Any_data const&, void*, AsyncClient*, void*, unsigned int) at AsyncMqttClient.cpp line ?
0x4021ab3c: AsyncClient::_recv(tcp_pcb*, pbuf*, signed char) at ?? line ?
0x402356e7: ieee80211_parse_wmeparams at ?? line ?
0x4021ab8f: AsyncClient::_s_recv(void*, tcp_pcb*, pbuf*, signed char) at ?? line ?
0x4022e2e0: tcp_input at /Users/igrokhotkov/espressif/arduino/tools/sdk/lwip/src/core/tcp_in.c line 394 (discriminator 1)
0x40107648: pvPortMalloc at ?? line ?
0x40100000: _stext at ?? line ?
0x4022b6d1: ip_input at /Users/igrokhotkov/espressif/arduino/tools/sdk/lwip/src/core/ipv4/ip.c line 558
0x4022aac9: ethernet_input at /Users/igrokhotkov/espressif/arduino/tools/sdk/lwip/src/netif/etharp.c line 1377
0x40243f23: pp_tx_idle_timeout at ?? line ?
0x40243e96: pp_tx_idle_timeout at ?? line ?
0x40223857: user_uart_wait_tx_fifo_empty at ?? line ?
I'm having the same issue on a Itead Sonoff devices and Wion devices. With both base64 and binary uploads via MQTT.
I can confirm the same issue for me (ESP-12F).
Unfortunately I had no time for further investigations yet.
Same here, ESP -12E As far s i can see, with all libs up-to-date, OTA is received, crashes right afterwards:
Receiving OTA firmware (355840/357600)...
Receiving OTA firmware (356935/357600)...
Receiving OTA firmware (357600/357600)...
Exception (3):
epc1=0x4000bf64 epc2=0x00000000 epc3=0x00000000 excvaddr=0x4024bc65 depc=0x00000000
ctx: sys
sp: 3ffffad0 end: 3fffffb0 offset: 01a0
I am no coder, though i am happy to help with logs / debugging. Just let me know what to do :)
I've got this long time ago from the esp8266.com forum:
ESP8266 Arduino core uses two stacks: one for the SDK, and one for the sketch. ctx: sys means that exception happened while running on the SDK (system) stack, and ctx: cont is for the sketch stack.
So I understand the crash is coming from the SDK itself and not from the Arduino (hence also Homie) code.
As you say your libs are up-to-date, does this also count for the Arduino framework itself?
[EDIT: I don't want my first comment to be a bug report. My first comment should be to thank you for a great library!]
Same here. ESP-01 this time. Have not had a single successful OTA update on any of 3 firmwares.
Exception (3): epc1=0x4000bf64 epc2=0x00000000 epc3=0x00000000 excvaddr=0x4024cb29 depc=0x00000000
ctx: sys sp: 3ffffad0 end: 3fffffb0 offset: 01a0
Library Dependency Graph
|-- <Homie> v2.0.0
| |-- <ArduinoJson> v5.6.7
| |-- <AsyncMqttClient> v0.8.1
| | |-- <ESPAsyncTCP> v1.0.1
| | | |-- <ESP8266WiFi> v1.0
| |-- <Bounce2> v2.1
| |-- <ESP8266mDNS>
| | |-- <ESP8266WiFi> v1.0
| |-- <Ticker> v1.0
| |-- <ESP8266WiFi> v1.0
| |-- <ESP8266HTTPClient> v1.1
| | |-- <ESP8266WiFi> v1.0
| |-- <DNSServer> v1.1.0
| | |-- <ESP8266WiFi> v1.0
| |-- <ESP8266WebServer> v1.0
| | |-- <ESP8266WiFi> v1.0
fuego:Dimmer jrs$ pio platform show espressif8266
Version: 1.3.1
Home: http://platformio.org/platforms/espressif8266
Repository: https://github.com/platformio/platform-espressif8266.git
Vendor: https://espressif.com/
License: Apache-2.0
Frameworks: arduino, esp8266-rtos-sdk, simba
Packages
--------
Package toolchain-xtensa
------------------------
Type: toolchain
Requirements: ~1.40802.0
Installed: Yes
Version: 1.40802.0
Original version: 4.8.2
Description: xtensa-gcc
Package tool-esptool
--------------------
Type: uploader
Requirements: ~1.409.0
Installed: Yes
Version: 1.409.0
Original version: 4.9
Description: esptool-ck
Package tool-mkspiffs
---------------------
Type: uploader
Requirements: ~1.102.0
Installed: Yes
Version: 1.102.0
Original version: 1.2
Description: Tool to build and unpack SPIFFS images
Package tool-espotapy
---------------------
Type: uploader
Requirements: ~1.0.0
Installed: Yes
Version: 1.0.0
Original version: None
Description: This script will push an OTA update to the ESP
Package framework-arduinoespressif8266
--------------------------------------
Type: framework
Requirements: ~1.20300.1
Installed: Yes
Version: 1.20300.1
Original version: 2.3.0
Description: Arduino Wiring-based Framework (ESP8266 Core)
Seems to be stale issue. Will be closed. Feel free to reopen if there are more information.
I'm using latest commit (26dafb8251cd575b0cb87e641d8ed33945c40757) of v2.0.0 of homie and latest of homie-ota (e04712109fbd1f5a877e22fe1ab644dbda5ac03e).
When I try to make the OTA update by homie-ota ui, all seems works but after the firmware is uploaded I get an exception and the esp8266 reboot in normal mode with the old firmware.
This is the homie log captured by serial:
Thanks for all your help!
Before submitting your issue, make sure:
docs/
folder of the.zip
of the release you're using, especially the Getting started and Troubleshooting pages, which contain respectively the minimum required version of the dependencies, and some answsers to the most common problemsexamples/
folder of the.zip
of the release you're using. Examples in the latest git revision might not be backward-compatible with your release