Aurora compilation errors on Arduino 1.6.6 and later

It’s been a while since I hacked on Aurora and I’m trying to get it building again. I reinstalled Windows since the last time, so I’m trying to get up and running again on a fresh install of the Arduino software and I’m getting ALL KINDS of build errors.

I’m using the following versions:

Arduino 1.6.7
Teensyduino 1.27
FastLED-3.1.0
SmartMatrix3-3.0.0
aJson master
Aurora master

Here are the errors I’m getting… any thoughts?

Hey, JB! Yeah, it’s been a while for me as well. I haven’t tried Arduino 1.6.7 yet, but I’ll try to soon. Looks like you might be missing the Time library. Did you choose it when installing Teensyduino? Here’s the full list of dependencies: Compiling · pixelmatix/aurora Wiki · GitHub

Can you enable verbose compilation output in the Arduino Preferences? If you do, it’ll list off the locations of all the libraries it’s including in your sketch.

I tried reinstalling Teensyduino just to make sure I had selected the Time library and it still fails. I have selected all 3 listed in the wiki.

Can you let me know what version of Arduino and Teensyduino you were using the last time you successfully compiled Aurora?

Here’s the output you requested. I noticed it’s not listing the Time library but I went and double checked that the directory exists in C:\Users\jblang\arduino-1.6.7\hardware\teensy\avr\libraries\Time.

I’m able to build it without error in 1.6.4. I can try in newer versions, but it’ll likely be a few days. It’s odd that Time isn’t listed in the libraries.

What version of Teensyduino? I’m thinking that might be just as important or maybe more important than the verison of Arduino.

Just now compiled it without error using Arduino 1.6.5 and Teensyduino 1.25-beta2. Not sure why I’m still using a beta, but I’m sure it’d still work with the release version.

Got sidetracked from this a bit and I just now got back to it. I got it to compile using Arduino 1.6.5 and Teensyduino 1.25 (not the beta). There was also an issue with the latest aJson due to this commit:

They conditionalize the location of the pgmspace.h include:

#ifdef __AVR__
#include <avr/pgmspace.h>
#else
#include <pgmspace.h>
#endif

But apparently the Teensy still puts it in avr/pgmspace.h even though it’s not really an AVR. I changed

#ifdef __AVR__

to

#if defined(__AVR__) || defined(TEENSYDUINO)

And it works now. I’ve submitted a pull request for aJson: Fix pgmspace include for Teensyduino by jblang · Pull Request #79 · interactive-matter/aJson · GitHub

UPDATE: I’ve done a bit more testing and determined the problem seems to be Arduino 1.6.6 or later. I got it to successfully compile using Arduino 1.6.5-r5 and Teensyduino 1.27. I’ve updated the wiki compilation instructions to include the caveats I’ve discovered.

I’m not sure where to start debugging the compilation issues with 1.6.6 and later… I will leave that to the professionals. If you think it would be helpful I can ask for help on the PJRC forums.

Cool, thanks! I’ve been out of town the last few days, and will be out again all weekend, but hope to get a chance to try on the latest Arduino and Teensyduino some time next week.