Converting my many ino tabs to cpp/h files

Too steep a learning curve.

Um, where?

Whoops, different bug.

strcpy(hostName, nodeName);

was giving me other issues. It compiled and ran OK, but 'nodeName' was undefined. I've since changed it to:

strcpy(hostName, SKETCH);

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.