Resurrecting an old Huzzah project, but now will not compile in IDE...

Hello all...

maybe 9 months ago I had nice momentum with a Feather Huzzah project that shows games and demonstrations on a TFT screen, etc.

I let it sit for 9 months, and now I tried to compile it with the new IDE (previously i had 1.8.10, now I have 1.8.12) ... and lots of library and board updates... and now my Huzzah project will not load.

I am hoping that someone here may be able to recognize the error message and guide me towards what is probably a commonsense step to make it work again...

I will paste below (1) the compiler error messages and (2) the full project code.

Apologies if this is either annoying or incomplete, or both -- HUGE THANKS -- Eric

===== LAST LINES OF THE COMPILE ERRORS ... *** BUT FOR FULL ERRORS SET SEE THIS URL: HUZ COMPILE ERRORS - Pastebin.com

Arduino: 1.8.12 (Mac OS X), Board: "Adafruit Feather HUZZAH ESP8266, 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), 4MB (FS:2MB OTA:~1019KB), v2 Lower Memory, Disabled, None, Only Sketch, 115200"

  ... CHOPPED OUT A LOT DUE TO CHAR LIMIT, FOR FULL ERR SET SEE PASTEBIN LINK ABOVE ...
 
/Users/ericstephan/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -I/Users/ericstephan/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.1/tools/sdk/include -I/Users/ericstephan/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.1/tools/sdk/lwip2/include -I/Users/ericstephan/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.1/tools/sdk/libc/xtensa-lx106-elf/include -I/var/folders/fs/qn6sgg0j5xs8vyp7bv60wg7w0000gn/T/arduino_build_929488/core -c -w -Os -g -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++11 -ffunction-sections -fdata-sections -fno-exceptions -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10812 -DARDUINO_ESP8266_ESP12 -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"ESP8266_ESP12\"" -DFLASHMODE_QIO -DESP8266 -I/Users/ericstephan/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.1/cores/esp8266 -I/Users/ericstephan/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.1/variants/adafruit "-I/Users/ericstephan/Dropbox/L- PROGRAMMING/Arduino/libraries/Adafruit_GFX_Library" "-I/Users/ericstephan/Dropbox/L- PROGRAMMING/Arduino/libraries/Adafruit_ILI9341" -I/Users/ericstephan/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.1/libraries/SPI "/Users/ericstephan/Dropbox/L- PROGRAMMING/Arduino/libraries/Adafruit_GFX_Library/Adafruit_MonoOLED.cpp" -o /dev/null
Alternatives for Adafruit_I2CDevice.h: []
ResolveLibrary(Adafruit_I2CDevice.h)
  -> candidates: []
In file included from /Users/ericstephan/Dropbox/L- PROGRAMMING/Arduino/libraries/Adafruit_GFX_Library/Adafruit_MonoOLED.cpp:18:0:
/Users/ericstephan/Dropbox/L- PROGRAMMING/Arduino/libraries/Adafruit_GFX_Library/Adafruit_MonoOLED.h:28:32: fatal error: Adafruit_I2CDevice.h: No such file or directory
 #include <Adafruit_I2CDevice.h>
                                ^
compilation terminated.
Using library Adafruit_GFX_Library at version 1.8.0 in folder: /Users/ericstephan/Dropbox/L- PROGRAMMING/Arduino/libraries/Adafruit_GFX_Library 
Using library Adafruit_ILI9341 at version 1.5.5 in folder: /Users/ericstephan/Dropbox/L- PROGRAMMING/Arduino/libraries/Adafruit_ILI9341 
Using library SPI at version 1.0 in folder: /Users/ericstephan/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.1/libraries/SPI 
exit status 1
Error compiling for board Adafruit Feather HUZZAH ESP8266.

==== FIRST LINES OF THE PROJECT CODE, CHOPPED DUE TO CHAR LIMIT

go/* huzzah and 240 x 320 ili9341... a match made in heaven */

#include <Adafruit_GFX.h>    // Include core graphics library
#include <Adafruit_ILI9341.h> // Include Adafruit_ILI9341 library to drive the display
// Declare pins for the display:
#define TFT_DC 16 // WAS ORIG 9
#define TFT_RST 12  // WAS ORIG 8~ // You can also connect this to the Arduino reset in which case, set this #define pin to -1!
#define TFT_CS 15  // WAS ORIG 10~
// The rest of the pins are pre-selected as the default hardware SPI for Arduino Uno (SCK = 13 and SDA = 11)
// Create display:
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
//#include <Fonts/FreeSerif24pt7b.h>  // Add a custom font

const int screenwidth = 240;
const int screenheight = 320;
//const int numdotrows = 20, numdotcols = 15;
//const int numdotrows = 4*5, numdotcols = 3*5;
//const int numdotrows = 4, numdotcols = 3;
const int numdotrows = 320/6, numdotcols = 240/6; //8 good 7 good 6 good... 40x53
const int dotwidth = screenwidth / numdotcols;
const int dotheight = screenheight / numdotrows;
const int maxmenu = 9;
int menuitem=0;
bool firstrun = true;
String menunames[] = {"a poem          ","pong                 ","life is goody           ", "rocket circuit          ", "dot circuit          ", "linear division          ","sparkle          ","sparkleVi        ","ballbot       ","terrain    "};
float ballx,bally,xvel,yvel; // global ball variables... embarrassing



uint16_t colorof(uint8_t r, uint8_t g, uint8_t b) { 
  return ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | ((b & 0xF8) >> 3); 
}

// CLASS DOT

class Dot {
  ........................TRUNCATED DUE TO CHAR LIMITS

Hi @estephan500 --

It looks like Adafruit recently introduced a new dependency (Adafruit BusIO) that could impact certain builds.

  • Within your IDE, try updating "Adafruit GFX Library" to the latest (eg. 1.8.3)
  • Also, make sure that "Adafruit BusIO" has been installed

For those who are releasing their own libraries with continuous integration (eg. Arduino CLI with travis-ci):

  • Update the "arduino --install-library" line in travis.yml to append "Adafruit BusIO"

Does that improve your build result?

YES! It absolutely solved the problem. I am totally grateful for your help! huge appreciation!

It's been so long, I had also forgotten which port the thing wanted me to use to upload to the Huzzah... but it seems like it works with USBtoUART. That was totally nowhere in my brain's memory. From now on I better start putting this stuff in the comment lines at the start of my code.

Huge thanks again!

Eric

Great — glad to hear it! I suspect quite a few people might run into this error message :slight_smile:

With regard to remembering your details: I found that OneNote has been very handy for organizing the various tidbits for each MCU and any debug data collected. Evernote might also be another option worth looking at too.

Have fun!