firebase-arduino: Firebase throws exceptions 9 and 28 on ESP8266?
Hi the following code keeps throwing exceptions and I do not know why? It connects perfectly to the WiFi and I am able to access my firebase data but every minute or so it crashes with an exception 9.
#include <FirebaseArduino.h>
#include <NTPClient.h>
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#define WIFI_SSID "SSID"
#define WIFI_PASSWORD "pass"
#define WIFI_LED LED_BUILTIN
#define HEADBOARD_LED D5
#define UNDER_BED_LED D7
#define FIREBASE_HOST "xxxxxxxxx.firebaseio.com" //link of api
#define FIREBASE_AUTH "xxxxxxxxxxxxxxxxxxxxxxxxxx" //database secret
#define HEADBOARD_LED_STATUS "/url/more/url"
#define UNDERBED_LED_STATUS "/url/more/url"
#define HEADBOARD_NIGHT_MODE_STATUS "/url/more/url"
#define UNDERBED_NIGHT_MODE_STATUS "/url/more/url"
const long utcOffsetInSeconds = 7200;
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", utcOffsetInSeconds);
void connectToWiFi(){
//set up the wifi connection
Serial.print("Connecting: ");
WiFi.disconnect();
WiFi.setSleepMode(WIFI_NONE_SLEEP);
WiFi.mode(WIFI_STA);
WiFi.begin(WIFI_SSID,WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}
Serial.println("Ready to rumble!");
Serial.print("Wifi connected with IP address: ");
Serial.println(WiFi.localIP());
digitalWrite(WIFI_LED,LOW);
}
void connectToFireBase(){
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); //connect to Database
}
void setup(){
Serial.begin(9600);
Serial.println("Booting");
//Setup the pinmodes for the various in and outputs
pinMode(WIFI_LED, OUTPUT);
pinMode(HEADBOARD_LED, OUTPUT);
pinMode(UNDER_BED_LED, OUTPUT);
connectToWiFi();
timeClient.begin();
connectToFireBase();
}
void loop(){
if( WiFi.status() != WL_CONNECTED ){
connectToWiFi();
return;
}
timeClient.update();
handleNightModeUnderBed();
handleNightModeHeadBoard();
}
String firebaseGet(String s){
String x =Firebase.getString(s);
yield();
delay(100);
return x;
delay(100);
}
void manageHeadBoardLEDStatus(){
String LEDStatus = firebaseGet(HEADBOARD_LED_STATUS);
if (Firebase.failed()) {
return;
}
if (LEDStatus == "ON"){
digitalWrite(HEADBOARD_LED,HIGH);
}else{
digitalWrite(HEADBOARD_LED,LOW);
}
}
void manageUnderBedLEDStatus(){
String LEDStatus = firebaseGet(UNDERBED_LED_STATUS);
if (Firebase.failed()) {
return;
}
if (LEDStatus == "ON"){
digitalWrite(UNDER_BED_LED,HIGH);
}else{
digitalWrite(UNDER_BED_LED,LOW);
}
}
void handleNightModeHeadBoard(){
String NightMode = firebaseGet(HEADBOARD_NIGHT_MODE_STATUS);
if (Firebase.failed()) {
return;
}
if (NightMode == "ON" && timeClient.getHours() >= 22){
digitalWrite(HEADBOARD_LED,LOW);
}else{
manageHeadBoardLEDStatus();
}
}
void handleNightModeUnderBed(){
String NightMode = firebaseGet(UNDERBED_NIGHT_MODE_STATUS);
if (Firebase.failed()) {
return;
}
if (NightMode == "ON" && timeClient.getHours() >= 22){
digitalWrite(UNDER_BED_LED,LOW);
}else{
manageUnderBedLEDStatus();
}
}
Exception (9):
epc1=0x40206b4a epc2=0x00000000 epc3=0x00000000 excvaddr=0x65646f4d depc=0x00000000
>>>stack>>>
PC: 0x4020b4a4: HTTPClient::connected() at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\libraries\ESP8266HTTPClient\src\ESP8266HTTPClient.cpp line 472
EXCVADDR: 0x00000038
Decoding stack results
0x4020591c: HTTPClient::disconnect(bool) at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\libraries\ESP8266HTTPClient\src\ESP8266HTTPClient.cpp line 435
0x402067f4: HTTPClient::end() at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\libraries\ESP8266HTTPClient\src\ESP8266HTTPClient.cpp line 425
0x40206c20: HTTPClient::begin(String, unsigned short, String, String) at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\libraries\ESP8266HTTPClient\src\ESP8266HTTPClient.cpp line 379
0x40201f38: std::string::_Rep::_M_destroy(std::allocator const&) at c:\users\arlo\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2\bits/basic_string.tcc line 452
0x402075b8: String::copy(char const*, unsigned int) at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\WString.cpp line 214
0x402037c3: FirebaseHttpClientEsp8266::begin(std::string const&, std::string const&) at C:\Users\Arlo\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseHttpClient_Esp8266.cpp line 51
0x4020157c: FirebaseRequest::sendRequest(std::string const&, std::string const&, char*, std::string const&, std::string const&) at C:\Users\Arlo\Documents\Arduino\libraries\firebase-arduino-master\src\Firebase.cpp line 73
0x40201efc: std::basic_string , std::allocator >::basic_string(char const*, std::allocator const&) at c:\users\arlo\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2\bits/basic_string.tcc line 218
0x402027ed: FirebaseArduino::getRequest(String const&) at C:\Users\Arlo\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseArduino.cpp line 101
0x40201d45: FirebaseObject::~FirebaseObject() at C:\Users\Arlo\Documents\Arduino\libraries\firebase-arduino-master\src/FirebaseObject.h line 37
0x4020282e: FirebaseArduino::getString(String const&) at C:\Users\Arlo\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseArduino.cpp line 132
0x4020756f: String::reserve(unsigned int) at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\WString.cpp line 146
0x40208393: esp_yield() at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\core_esp8266_main.cpp line 107
0x402089ae: __delay(unsigned long) at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\core_esp8266_wiring.cpp line 57
0x402075b8: String::copy(char const*, unsigned int) at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\WString.cpp line 214
0x40201157: firebaseGet(String) at D:\Jarvis\Bed_Control/Bed_Control.ino line 99
0x4020118b: manageHeadBoardLEDStatus() at D:\Jarvis\Bed_Control/Bed_Control.ino line 106
0x402047c8: ESP8266WiFiSTAClass::status() at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\libraries\ESP8266WiFi\src\ESP8266WiFiSTA.cpp line 634
0x4010017c: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\core_esp8266_main.cpp line 159
0x40201227: loop() at D:\Jarvis\Bed_Control/Bed_Control.ino line 94
0x402084c0: loop_wrapper() at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\core_esp8266_main.cpp line 179```
Exception (28): epc1=0x4020b7ac epc2=0x00000000 epc3=0x00000000 excvaddr=0x00004684 depc=0x00000000
stack>>>
PC: 0x4020b4a4: HTTPClient::connected() at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\libraries\ESP8266HTTPClient\src\ESP8266HTTPClient.cpp line 472 EXCVADDR: 0x00000038
Decoding stack results 0x4020591c: HTTPClient::disconnect(bool) at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\libraries\ESP8266HTTPClient\src\ESP8266HTTPClient.cpp line 435 0x402067f4: HTTPClient::end() at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\libraries\ESP8266HTTPClient\src\ESP8266HTTPClient.cpp line 425 0x40206c20: HTTPClient::begin(String, unsigned short, String, String) at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\libraries\ESP8266HTTPClient\src\ESP8266HTTPClient.cpp line 379 0x40201f38: std::string::_Rep::_M_destroy(std::allocator const&) at c:\users\arlo\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2\bits/basic_string.tcc line 452 0x402075b8: String::copy(char const*, unsigned int) at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\WString.cpp line 214 0x402037c3: FirebaseHttpClientEsp8266::begin(std::string const&, std::string const&) at C:\Users\Arlo\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseHttpClient_Esp8266.cpp line 51 0x4020157c: FirebaseRequest::sendRequest(std::string const&, std::string const&, char*, std::string const&, std::string const&) at C:\Users\Arlo\Documents\Arduino\libraries\firebase-arduino-master\src\Firebase.cpp line 73 0x40201efc: std::basic_string , std::allocator >::basic_string(char const*, std::allocator const&) at c:\users\arlo\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2\bits/basic_string.tcc line 218 0x402027ed: FirebaseArduino::getRequest(String const&) at C:\Users\Arlo\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseArduino.cpp line 101 0x40201d45: FirebaseObject::~FirebaseObject() at C:\Users\Arlo\Documents\Arduino\libraries\firebase-arduino-master\src/FirebaseObject.h line 37 0x4020282e: FirebaseArduino::getString(String const&) at C:\Users\Arlo\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseArduino.cpp line 132 0x4020756f: String::reserve(unsigned int) at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\WString.cpp line 146 0x40208393: esp_yield() at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\core_esp8266_main.cpp line 107 0x402089ae: __delay(unsigned long) at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\core_esp8266_wiring.cpp line 57 0x402075b8: String::copy(char const*, unsigned int) at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\WString.cpp line 214 0x40201157: firebaseGet(String) at D:\Jarvis\Bed_Control/Bed_Control.ino line 99 0x4020118b: manageHeadBoardLEDStatus() at D:\Jarvis\Bed_Control/Bed_Control.ino line 106 0x402047c8: ESP8266WiFiSTAClass::status() at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\libraries\ESP8266WiFi\src\ESP8266WiFiSTA.cpp line 634 0x4010017c: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\core_esp8266_main.cpp line 159 0x40201227: loop() at D:\Jarvis\Bed_Control/Bed_Control.ino line 94 0x402084c0: loop_wrapper() at C:\Users\Arlo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\cores\esp8266\core_esp8266_main.cpp line 179```
It keeps happening and it is only when I use the arduino Firebase library. If I don’t touch firebase the code works just fine.
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 17
@proyectosAndroid12 i Found that if you’re using old Node Mcu You Should have to downgrade the Esp Board Driver , i tried to downgrade to 2.3.0 and it worked perfectly fine no more exception
I thought that it is because of old driver in old Mcu
Thank you very much !, i try to downgrade ESP Board Driver from 2.6.1 to 2.3.0 worked for me, no error exception 9 again, nice !
Thanks you very much!
Thank you very much!..since my code has several libraries, I was going around trough so many topics trying to figure out what was the problem…you should listen all theories about to solve this problem…delays, power supply, capacitors, etc, etc, etc.