ESP32 ConnectPlus Firebase Arduino Client compatibility error

Customer:

I’m using the ESP32 ConnectPlus board for a project and want to upload data to a Firebase database. I’m getting a compatibility error between the board and the Firebase library. I’ve tried multiple code examples but always get the same error.

Error message:

In file included from C:\Users\[user] removed]\AppData\Local\Arduino15\libraries\SD\src/utility/Sd2Card.h:26:0,
from C:\Users\[user] removed]\AppData\Local\Arduino15\libraries\SD\src/utility/SdFat.h:29,
from C:\Users\[user] removed]\AppData\Local\Arduino15\libraries\SD\src/SD.h:20,
from c:\Users\[user] removed]\Documents\Arduino\libraries\Firebase_Arduino_Client_Library_for_ESP8266_and_ESP32\src/FirebaseFS.h:61,
from c:\Users\[user] removed]\Documents\Arduino\libraries\Firebase_Arduino_Client_Library_for_ESP8266_and_ESP32\src/Firebase.h:32,
from c:\Users\[user] removed]\Documents\Arduino\libraries\Firebase_Arduino_Client_Library_for_ESP8266_and_ESP32\src/Firebase_ESP_Client.h:42,
from C:\Users\[user] removed]\Documents\Arduino\kodzauplodanjenovi\kodzauplodanjenovi.ino:2:
C:\Users\[user] removed]\AppData\Local\Arduino15\libraries\SD\src/utility/Sd2PinMap.h:527:2: error: #error Architecture or board not supported.
#error Architecture or board not supported.
^
exit status 1
Compilation error: exit status 1

Code:

#include <WiFi.h>
#include <Firebase_ESP_Client.h>
#include "addons/TokenHelper.h"
#include "addons/RTDBHelper.h"

#define WIFI_SSID "Djukina koliba"
#define WIFI_PASSWORD "HalaMadrid7"
#define API_KEY "AIzaSyD5_536kEOpNV5UDxbfkpco8yi0hbGfprI"
#define DATABASE_URL "https://zavrsnirad-847c6-default-rtdb.europe-west1.firebasedatabase.app/"

FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;

unsigned long sendDataPrevMillis = 0;
bool signupOK = false;

int data = 0;

void setup() {
  Serial.begin(115200);
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Serial.print("Connecting to wifi");
  while(WiFi.status() != WL_CONNNECTED){
    Serial.print("."); delay(300);
  }
  Serial.println();
  Serial.print("Connected with IP: ");
  Serial.println(WiFi.localIP());
  Serial.println();

  config.api_key = API_KEY;
  config.database_url = DATABASE_URL;
  if(Firebase.signUp(&config, &auth, "", "")){
    Serial.println("signUp OK");
    signupOK = true;
  }

  config.token_status_callback = tokenStatusCallBack;
  Firebase.begin(&config, &auth);
  Firebase.reconnectWiFi(true);
}

void loop() {
  if(Firebase.ready() && signupOK && (millis() - sendDataPrevMillis > 5000 || sendDataPrevMillis == 0)){
    sendDataPrevMillis = millis();

    if(Firebase.RTDB.setInt(&fbdo, "data", data)){
      Serial.println();Serial.print(data);
      Serial.print(" succ saved to " + fbdo.dataPath());
      Serial.println(" (" + fbdo.dataType() + ")");
    }
  }
}
Original message (Croatian)

Koristim vašu pločicu Esp32 connectplus za projekt. Želim da uploadam podatke na moju bazu podataka na Firebase. Problem koji imam je koji imam je što dobijam error s kompatibilnošću plocice i biblioteke za to. Probao sam više kodova, ali uvijek bude isto. Priložit ću jedan korišteni kod i error.

Error:

In file included from C:\Users[user] removed]\AppData\Local\Arduino15\libraries\SD\src/utility/Sd2Card.h:26:0,

from C:\Users[user] removed]\AppData\Local\Arduino15\libraries\SD\src/utility/SdFat.h:29,

from C:\Users[user] removed]\AppData\Local\Arduino15\libraries\SD\src/SD.h:20,

from c:\Users[user] removed]\Documents\Arduino\libraries\Firebase_Arduino_Client_Library_for_ESP8266_and_ESP32\src/FirebaseFS.h:61,

from c:\Users[user] removed]\Documents\Arduino\libraries\Firebase_Arduino_Client_Library_for_ESP8266_and_ESP32\src/Firebase.h:32,

from c:\Users[user] removed]\Documents\Arduino\libraries\Firebase_Arduino_Client_Library_for_ESP8266_and_ESP32\src/Firebase_ESP_Client.h:42,

from C:\Users[user] removed]\Documents\Arduino\kodzauplodanjenovi\kodzauplodanjenovi.ino:2:

C:\Users[user] removed]\AppData\Local\Arduino15\libraries\SD\src/utility/Sd2PinMap.h:527:2: error: #error Architecture or board not supported.

#error Architecture or board not supported.

^

exit status 1

Compilation error: exit status 1

Kod:

#include

#include

#include “addons/TokenHelper.h”

#include “addons/RTDBHelper.h”

#define WIFI_SSID “Djukina koliba”

#define WIFI_PASSWORD “HalaMadrid7”

#define API_KEY “AIzaSyD5_536kEOpNV5UDxbfkpco8yi0hbGfprI”

#define DATABASE_URL “https://zavrsnirad-847c6-default-rtdb.europe-west1.firebasedatabase.app/”

FirebaseData fbdo;

FirebaseAuth auth;

FirebaseConfig config;

unsigned long sendDataPrevMillis = 0;

bool signupOK = false;

int data = 0;

void setup() {

// put your setup code here, to run once:

Serial.begin(115200);

WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

Serial.print(“Connecting to wifi”);

while(WiFi.status() != WL_CONNNECTED){

Serial.print(“.”); delay(300);

}

Serial.println();

Serial.print("Connected with IP: ");

Serial.println(WiFi.localIP());

Serial.println()

config.api_key = API_KEY

config.database_url = DATABASE_URL;

if(Firebase.signUp(&config, &auth, “”, “”)){

Serial.println(“signUp OK”);

signupOK = true;

}

config.token_status_callback = tokenStatusCallBack;

Firebase.begin(&config, &auth);

Firebase.ronnectWiFi(true);

}

void loop() {

// put your main code here, to run repeatedly:

if(Firebase.ready() && signupOK && (millis() – sendDataPrevMillis > 5000 || sendDataPrevMillis == 0)){

sendDataPrevMillis = millis()

if(Firebase.RTDB.setInt(&fbdo, “data”, data)){

Serial.println();Serial.print(data);

Serial.print(" succ saved to " + fbdo.dataPath());

Serial.println(" (" + fbdo.dataType() + “)”);

}

}

}

Originally submitted via email support on 11 August 2024. Migrated to the forum for community visibility.

Soldered Support:

The issue may be a compatibility problem between the ESP32 client and board definitions. Try using the official ESP32 board definition instead:

  1. Install ESP32 Board Definition: Open Arduino IDE. Go to File > Preferences. In the “Additional Board Manager URLs” field, add this URL: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json. Click OK. Go to Tools > Board > Boards Manager. Search for “ESP32” and install the ESP32 board definition.

  2. Select ESP32 Board: Go to Tools > Board and select your ESP32 model. ESP32 Dev Board should work, but you can also try WROVER-E, which is the more specific model for the ESP32 ConnectPlus.

  3. Upload the sketch: Connect your ESP32 to your computer. Click Tools > Port and select the appropriate port. Open your sketch and click Upload.

If that doesn’t work, consider creating an API endpoint on Firebase that serves the data you need in JSON format, then use the ArduinoJSON library to parse it: https://arduinojson.org/

Let me know if you need further help.

Original message (Croatian)

Ako je problem s kompatibilnošću ESP32 klijenta i board definitiona, možda će službeni ESP32 board definition raditi bolje.

Evo tutoriala kako to namjestiti:

  1. Instalacija ESP32 Board Definition-a: Otvori Arduino IDE. Idi na File > Preferences. U polje “Additional Board Manager URLs” dodaj ovu URL adresu: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json. Klikni OK. Idi na Tools > Board > Boards Manager. U tražilicu upiši “ESP32” i instaliraj ESP32 board definition. 2. Odabir ESP32 ploče: Idi na Tools > Board i odaberi svoj ESP32 model - mislim da bi samo ESP32 Dev Board trebao biti točan board definition, ali možeš koristiti i WROVER-E, što je specifičniji model ESP32 na CONNECTPLUSu 3. Uploadanje sketcha: Spoji ESP32 na računalo. Klikni na Tools > Port i odaberi odgovarajući port. Otvori svoj sketch i klikni na Upload (strelica prema desno).
    Ako ni to ne radi, ja bi osobno na Firebaseu napravio API endpoint koji će ti servirati podatke koje trebaš u JSON obliku i onda ArduinoJSON biblioteku kako bi ih raspakirao: https://arduinojson.org/

Ako to nije mogućnost, javi pa ćemo vidjeti što dalje.