By doing #define ARDUINO_H before #include <Arduino.h> you are preventing Arduino.h to include any function or definition, because ARDUINO_H is its include guard and you’ve already defined it. Just #include <Arduino.h>?

Hey Max… Out of curiosity, do you happen to know why the #ifdef doesn’t pick up that the Arduino.h has already been included. Would have through that if you included Arduino.h in main.ccp, and then included your own h/cpp, that since Arduino.h, the preprocessor definition ARDUINO_H used for the guard would have existed and been detectable with a #ifdef/#ifndef test… but it isn’t, so just wondering what I am missing… is there a gcc setting perhaps that influences this?