(I know I am supposed to post source, but my project is too large, and this is an IDE issue I believe.)
Ok, bonehead move this evening. I went to open my project and selected the wrong IDE. I have been using 1.8.16 but it opened in 2.2.1. And the 2.2,1 IDE decided to start updating things. I tried to build the project anyway, but there were a very large number of C++ warnings I never saw before (not a warning setting, I checked that.) But it uploaded to the board. But it does not work well. (The project is too large to post here, but it is driving LEDS using FastLED, and now they flicker light crazy.)
So I closed the 2.2.1 IDE, used Dropbox to rewind the libraries folder and project folder to yesterday before tonights changes (hopefully undoing any library changes), and relaunched the project in 1.8.16. But now, that IDE shows all the same compiler warnings (C++ issues) that never showed up before. Also, the output of the 1.8.16 IDE when compiling looks very different than it used to, looking just like the output of the 2.2.1 IDE. For example, the end of the compile used to display a bunch of white text with stats about the build (ram and program space use, etc.). Now there is a bunch of red text with very different info. It's like the complier from 2.2.1 is now running on 1.8.16.
The same target board is elected as before.
Any idea what else might have been updated that is not in Libraries or project folder? I am trying to get back to the build that work perfectly (the source code has not changed) but the compiler changes are preventing that from happening.
Any ideas what I have not backed out? Maybe the board files? (Where are those kept?)
I can post warning messages or anything else that might identify what changed.
Oh, sorry. Im on a MacBook Pro M2, running Sonoma 14.3 (23D56). I am targeting an ESP-8266 and using FastLED to talk to a string of LEDs. This is SOME of the compiler warnings that I never saw before, I can post more if you want to see them. Most look like C++ warnings on some of the libraries that worked just fine before. I have warnings turned on and saw only 2 before about pins not being defined, which was OK.
/Users/orubin/Dropbox/Mac/Documents/Arduino/libraries/LTR303-master/LTR303.cpp: In member function 'boolean LTR303::readByte(byte, byte&)':
/Users/orubin/Dropbox/Mac/Documents/Arduino/libraries/LTR303-master/LTR303.cpp:514:34: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
514 | Wire.requestFrom(_i2c_address,1);
| ^
In file included from /Users/orubin/Dropbox/Mac/Documents/Arduino/libraries/LTR303-master/LTR303.cpp:31:
/Users/orubin/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/libraries/Wire/Wire.h:73:13: note: candidate 1: 'uint8_t TwoWire::requestFrom(int, int)'
73 | uint8_t requestFrom(int, int);
| ^~~~~~~~~~~
/Users/orubin/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/libraries/Wire/Wire.h:71:13: note: candidate 2: 'uint8_t TwoWire::requestFrom(uint8_t, uint8_t)'
71 | uint8_t requestFrom(uint8_t, uint8_t);
| ^~~~~~~~~~~
/Users/orubin/Dropbox/Mac/Documents/Arduino/libraries/LTR303-master/LTR303.cpp: In member function 'boolean LTR303::readUInt(byte, unsigned int&)':
/Users/orubin/Dropbox/Mac/Documents/Arduino/libraries/LTR303-master/LTR303.cpp:559:34: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
559 | Wire.requestFrom(_i2c_address,2);
| ^
In file included from /Users/orubin/Dropbox/Mac/Documents/Arduino/libraries/LTR303-master/LTR303.cpp:31:
/Users/orubin/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/libraries/Wire/Wire.h:73:13: note: candidate 1: 'uint8_t TwoWire::requestFrom(int, int)'
73 | uint8_t requestFrom(int, int);
| ^~~~~~~~~~~
/Users/orubin/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/libraries/Wire/Wire.h:71:13: note: candidate 2: 'uint8_t TwoWire::requestFrom(uint8_t, uint8_t)'
71 | uint8_t requestFrom(uint8_t, uint8_t);
| ^~~~~~~~~~~
This is the end of the compile output, which looks really different than before:
. Variables and constants in RAM (global, static), used 42616 / 80192 bytes (53%)
║ SEGMENT BYTES DESCRIPTION
╠══ DATA 1820 initialized variables
╠══ RODATA 11204 constants
╚══ BSS 29592 zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 61523 / 65536 bytes (93%)
║ SEGMENT BYTES DESCRIPTION
╠══ ICACHE 32768 reserved space for flash instruction cache
╚══ IRAM 28755 code in IRAM
. Code in flash (default, ICACHE_FLASH_ATTR), used 401940 / 1048576 bytes (38%)
║ SEGMENT BYTES DESCRIPTION
╚══ IROM 401940 code in flash
I am running Arduino IDE 1.8.16 and include the following libraries:
> ESP32httpsUpdate 2.1.145
> EPSAsyncTCP 1.2.4
> FastLed 3.4.0
> WifiManager 2.0.16-rc.2 (https://github.com/tzapu/WiFiManager)
> WS2812FX 1.3.4
> SFE_TSL2561 1.0
> LTR303-master 0.1 (2015)
> FastLED 3.004.000
> ArduinoJson ???? (https://github.com/bblanchon/ArduinoJson)
> ESP8266WebServer ????
> ESP8266WiFi ????
> ESP8266HTTPClient Created on: 02.11.2015
> ESP8266httpUpdate ????
> DNSServer ????
> Wire ????
Hope this helps. Thank you.
This does indicate that you updated the "esp8266" boards platform, which is what prints this memory usage report. I believe the format of the report was changed in the recent versions of the platform.
They are under this path:
The Library folder is hidden by default. You can make it visible by pressing the Command+Shift+. keyboard shortcut.
Well, that was the problem. The esp8266 board package got upgraded to the latest, and this board will not work with those. I went back to 2.7.4 and everything started working again.