FAQ
TL;DR: 49% flash and 41% RAM used; "there is no problem with the OpenWeather library itself." Fix ESP8266 OpenWeather compile errors by updating TFT_eSPI, removing SD duplicates, and uploading SPIFFS assets. This FAQ is for makers on Arduino 1.8.13 asking how to fix TFT_eSPI/Timezone/SD issues. [Elektroda, khoam, post #18905340]
Why it matters: It helps ESP8266 developers resolve compile-time errors and missing display assets fast, with known-good versions and steps.
Quick Facts
- Known-good build: Arduino 1.8.13 + ESP8266 core 2.7.4; example compiles using 518,652 bytes flash (49%) and 34,336 bytes RAM (41%). [Elektroda, khoam, post #18905340]
- TFT_eSPI 2.2.19 or later fixes pgmspace-related compile errors seen with 2.2.14; update via GitHub ZIP. [Elektroda, khoam, post #18905512]
- Timezone 1.2.4 works on ESP8266 despite the 'avr' label; OpenWeather uses MCU‑independent code paths. [Elektroda, khoam, post #18905356]
- Keep the SD library from ESP8266 Core; duplicates under sketchbook/libraries trigger SD.h warnings. [Elektroda, khoam, post #18905481]
- Set SPIFFS ≥1.5 MB and upload /data (fonts/icons) via the “ESP8266 Sketch Data Upload” plugin. [Elektroda, khoam, post #18907018]
How do I fix “invalid conversion from uint32_t to const void*” when compiling OpenWeather on ESP8266?
Update the TFT_eSPI library to version 2.2.19. Uninstall 2.2.14 from the Library Manager. Then install the latest ZIP from GitHub and rebuild. This resolves the pgmspace pointer conversion errors in drawChar. Ensure only one TFT_eSPI copy remains in your libraries path before compiling. [Elektroda, khoam, post #18905512]
Does the "Timezone-master runs on avr" warning break ESP8266 builds?
No. OpenWeather uses parts of Timezone that are MCU‑independent. Timezone 1.2.4 works fine with ESP8266 in this project. You can ignore the architecture warning for this sketch. Keep Timezone at 1.2.4 alongside Time 1.6 for compatibility. [Elektroda, khoam, post #18905356]
I see "Found multiple libraries in SD.h". Which one should I use?
Use the SD library bundled with the ESP8266 Core. Remove any extra SD library from your sketchbook/libraries folder. The Arduino IDE prioritizes the Core’s SD first, but duplicates still create noise. Keeping only the Core SD avoids confusion during builds. [Elektroda, khoam, post #18905481]
What library versions are known to compile the TFT_eSPI_OpenWeather example?
Working set: TFT_eSPI 2.2.19, JPEGDecoder 1.8.0, SD 2.0.0, SDFS 0.1.0, ESP8266SdFat 1.1.0, ESP8266WiFi 1.0, JSON_Decoder 0.0.7, OpenWeather 0.1.5, Time 1.6, and Timezone 1.2.4. This set successfully built on ESP8266 core 2.7.4 with Arduino 1.8.13. [Elektroda, khoam, post #18905340]
How do I upload fonts and icons so the display shows correctly?
Assets live in the sketch’s /data folder and must go to SPIFFS. 1) Set SPIFFS size to ≥1.5 MB in Tools. 2) Install the ESP8266FS plugin. 3) Use Tools → ESP8266 Sketch Data Upload to push /data to SPIFFS. Reboot and run the sketch. [Elektroda, khoam, post #18907018]
Is reinstalling Arduino IDE and libraries a valid fix for persistent compile errors?
Yes. A clean reinstall and fresh library downloads from GitHub master resolved the build and upload. "It certainly won't do any harm." This approach clears conflicting duplicates and stale caches. After reinstall, compile and upload completed successfully. [Elektroda, khoam, post #18906428]
Which ESP8266 Core version should I target for this project?
Use ESP8266 core 2.7.4. The successful build environment referenced this core version throughout the compilation log. Align your Board Manager version to 2.7.4 for consistent results. [Elektroda, khoam, post #18905340]
Why does my serial log say fonts or icons were not found?
The sketch loads these assets from SPIFFS, not from the SD card or sketch folder. If you did not upload /data to SPIFFS, the files won't be found. Upload them using the ESP8266 Sketch Data Upload tool after setting SPIFFS size. [Elektroda, khoam, post #18907018]
What SPIFFS size should I choose to avoid crashes?
Set SPIFFS to at least 1.5 MB. The example’s settings call this out as important to prevent crashes. Select the larger SPIFFS option under Tools before uploading your data partition. [Elektroda, khoam, post #18907018]
How can I verify TFT_eSPI actually updated to the right version?
Open TFT_eSPI/library.properties and confirm version=2.2.19. Note that ZIP-installed libraries are not auto‑updated by the IDE. You must update them manually when new releases drop. This prevents being stuck on outdated code. [Elektroda, khoam, post #18905541]
Do I need to install the SD library separately on ESP8266?
No. The SD library ships with the ESP8266 Core and does not require separate installation. Extra SD copies create duplicate warnings and may cause confusion. Remove any additional SD library from your user libraries folder. [Elektroda, khoam, post #18905356]
How much memory does TFT_eSPI_OpenWeather use on a NodeMCU 1.0?
The successful build used 518,652 bytes of flash (49% of 1,044,464) and 34,336 bytes of RAM (41%). That left about 47,584 bytes for local variables. These figures help judge headroom for customizations. [Elektroda, khoam, post #18905340]
I updated TFT_eSPI but still get errors. What should I try next?
Purge duplicate libraries from your sketchbook/libraries folder. Reinstall libraries directly from their GitHub master branches. If issues persist, reinstall the Arduino IDE and ESP8266 Core cleanly. This approach resolved the thread’s compilation issues. [Elektroda, khoam, post #18906428]
Where can I get compatible helper libraries (JPEGDecoder, JSON_Decoder, OpenWeather)?
Use Bodmer’s GitHub repositories for current masters. Confirm versions that built successfully: JSON_Decoder 0.0.7 and OpenWeather 0.1.5, plus JPEGDecoder 1.8.0. Install via ZIP and keep them updated manually. [Elektroda, khoam, post #18905340]
I don’t see “ESP8266 Sketch Data Upload” in Tools. How do I enable it?
Install the ESP8266FS (Arduino-ESP8266FS-Plugin). Restart the IDE to reveal the Tools menu item. Then use it to upload the /data folder to SPIFFS with your chosen partition size. [Elektroda, khoam, post #18907018]