Using Arduino 1.0. Various boards. Windows 7. I like to keep my main sketch file limited to just #includes, setup(), and loop() for readability. That means I put macros and declarations in a separate header file usually called config.h and used #include "config.h". Recently I came across this pagehttp://arduino.cc/en/Hacking/BuildProcess. In particular this line, "When your sketch is compiled, all tabs with no extension are concatenated together to form the "main sketch file"." That seemed convenient because I would occasionally have trouble with the separately compiled .h file if I forgot to explicitly include Arduino.h or some other library file. Or there would be issues with double includes. So to try it out; I stripped out the extra #includes; put the contents of config.h into config; deleted config.h; compiled. Now, nothing defined or declared in config is available in the main sketch. It generated errors like 'ARDUINO_LED_PIN' was not declared in this scope. Checking the sketch folder, I see that config has been automatically renamed to config.ino. Adding #include "config" or #include "config.ino" to the main sketch file have no effect. So whats the deal? Obviously, this behavior is not as described on the webpage. I cannot see any obvious reason for the current behavior. It appears to make any extensionless tab completely useless except for comments. Is this a bug introduced by Arduino 1.0? In the concatenation process described on the webpage, what criteria is supposed to determine the order in which files are concatenated?
since that article also mentions including WProgram.h I suspect it may be out of date!
there is nothing to stop you having your own config.h file
I often have project.ino that includes “project.h”, and a whole bunch of other xxx.ino depending on what I am building
What do you use the other .ino files for?