Too steep a learning curve.
Whoops, different bug.
was giving me other issues. It compiled and ran OK, but 'nodeName' was undefined. I've since changed it to:
Your guide has been a lot of help, but I am confused by: "but not the interface." in this line:
#includes of any .h files required by the implementations but not the interface.
What is "the interface"?
The "interface" tells how the functions / classes / variables in the .cpp file(s) are used by OTHER .cpp files (or the .ino file). It's defined by the .h file. That's why the OTHER .cpp files #include the .h file.
Imagine you're creating a library. Then, 'library.h' defines the interface (how it's used) and 'library.cpp' contains the implementation. Further, let's say 'library.cpp' needs ANOTHER library to do it's job .... 'another_library.h' and 'another_library.cpp". Further suppose that the user of 'library.h' doesn't need to know that. So, you add #include "another_library.h" to 'library.cpp', NOT to 'library.h'.
This is actually starting to make sense....
My goal is to make my boilerplate ino files more portable between projects.
Your statement here was encouraging:
"Break the program's functionality into logical modules that ideally can be developed and tested stand-alone / individually -- even by different people."
See, I do read what you posted.
It's not the multiple files I am trying to reduce as much as the portability. Eventually the functions I use most often, into a library.