Build .13 vs .15

When I upgraded to build 15, when trying to use header files that were within the same directory as the ino file, and did the #include "file_name.h", it would always come back as file not found. A colleague, who had the same build, had no issues with the same structure, so what might be different with my computer, which is pretty much identical, is a mystery to me. When I go back to build 8.13, it does work as normal. This is more confusing since it is something that is just supposed to work. As proof, I could take a video. Where would this go in the forum?

Hi @lushgardens I'm going to ask you to provide some additional information that might provide us with information to determine the cause of the problem

Please do this:

  1. Select File > Preferences from the Arduino IDE's menus.
  2. Check the box next to "Show verbose output during: compilation".
  3. Click the OK button.
  4. Select Sketch > Verify/Compile from the Arduino IDE's menus.
  5. After the compilation fails you'll see a button on the right side of the orange bar in the Arduino IDE: Copy error messages. Click that button. This copies the full output to the clipboard.
  6. Open a forum reply here by clicking the Reply button.
  7. Click the </> icon on the post composer toolbar. This will add the forum's code block markup (```) to your reply to make sure the error messages are correctly formatted.
    Code block
  8. Press Ctrl+V. This will paste the compilation output into the code block.
  9. Move the cursor outside of the code tags before you add any additional text to your reply.
  10. Click the Reply button to post the output.
Arduino: 1.8.15 (Windows 10), Board: "M-Duino family, M-Duino 58+"





















C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\avall\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\avall\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\avall\Documents\Arduino\libraries -fqbn=industrialshields:avr:mduino:cpu=mduino58plus -ide-version=10815 -build-path C:\Users\avall\AppData\Local\Temp\arduino_build_267575 -warnings=none -build-cache C:\Users\avall\AppData\Local\Temp\arduino_cache_299367 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Users\avall\AppData\Local\Arduino15\packages\industrialshields\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5 -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino5.path=C:\Users\avall\AppData\Local\Arduino15\packages\industrialshields\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5 -prefs=runtime.tools.avrdude.path=C:\Users\avall\AppData\Local\Arduino15\packages\industrialshields\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Users\avall\AppData\Local\Arduino15\packages\industrialshields\tools\avrdude\6.3.0-arduino17 -verbose C:\Users\avall\Desktop\ICU\200100ICU_20210611\200100ICU_20210611.ino

C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\avall\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\avall\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\avall\Documents\Arduino\libraries -fqbn=industrialshields:avr:mduino:cpu=mduino58plus -ide-version=10815 -build-path C:\Users\avall\AppData\Local\Temp\arduino_build_267575 -warnings=none -build-cache C:\Users\avall\AppData\Local\Temp\arduino_cache_299367 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Users\avall\AppData\Local\Arduino15\packages\industrialshields\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5 -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino5.path=C:\Users\avall\AppData\Local\Arduino15\packages\industrialshields\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5 -prefs=runtime.tools.avrdude.path=C:\Users\avall\AppData\Local\Arduino15\packages\industrialshields\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Users\avall\AppData\Local\Arduino15\packages\industrialshields\tools\avrdude\6.3.0-arduino17 -verbose C:\Users\avall\Desktop\ICU\200100ICU_20210611\200100ICU_20210611.ino

Using board 'mduino' from platform in folder: C:\Users\avall\AppData\Local\Arduino15\packages\industrialshields\hardware\avr\1.1.35

Using core 'industrialshields' from platform in folder: C:\Users\avall\AppData\Local\Arduino15\packages\industrialshields\hardware\avr\1.1.35

Detecting libraries used...

"C:\\Users\\avall\\AppData\\Local\\Arduino15\\packages\\industrialshields\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -DMDUINO_PLUS -DMDUINO_58_PLUS "-IC:\\Users\\avall\\AppData\\Local\\Arduino15\\packages\\industrialshields\\hardware\\avr\\1.1.35\\cores\\industrialshields" "-IC:\\Users\\avall\\AppData\\Local\\Arduino15\\packages\\industrialshields\\hardware\\avr\\1.1.35\\variants\\mduinoplus" "C:\\Users\\avall\\AppData\\Local\\Temp\\arduino_build_267575\\sketch\\200100ICU_20210611.ino.cpp" -o nul

Alternatives for AccelStepper.h: [AccelStepper@1.61]

ResolveLibrary(AccelStepper.h)

  -> candidates: [AccelStepper@1.61]

"C:\\Users\\avall\\AppData\\Local\\Arduino15\\packages\\industrialshields\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -DMDUINO_PLUS -DMDUINO_58_PLUS "-IC:\\Users\\avall\\AppData\\Local\\Arduino15\\packages\\industrialshields\\hardware\\avr\\1.1.35\\cores\\industrialshields" "-IC:\\Users\\avall\\AppData\\Local\\Arduino15\\packages\\industrialshields\\hardware\\avr\\1.1.35\\variants\\mduinoplus" "-IC:\\Users\\avall\\Documents\\Arduino\\libraries\\AccelStepper\\src" "C:\\Users\\avall\\AppData\\Local\\Temp\\arduino_build_267575\\sketch\\200100ICU_20210611.ino.cpp" -o nul

Alternatives for IO_MAP.H: []

ResolveLibrary(IO_MAP.H)200100ICU_20210611:3:10: fatal error: IO_MAP.H: No such file or directory



  -> candidates: [] #include "IO_MAP.H"



          ^~~~~~~~~~

compilation terminated.

Using library AccelStepper at version 1.61 in folder: C:\Users\avall\Documents\Arduino\libraries\AccelStepper 

exit status 1

IO_MAP.H: No such file or directory


I see the problem. It is the .H file extension you used. This is not supported. It must be lowercase .h. The situation with filename case is pretty confusing on Windows. To the case-insensitive Windows file system, IO_MAP.H and IO_MAP.h (and for that matter, iO_MaP.h) are the equivalent filename. But the filenames are different and this difference may or may not be recognized by the various applications you use.

So apparently the Arduino IDE became more strict in enforcing the filename specification since Arduino IDE 1.8.13, likely introduced as Arduino CLI has been integrated further.

So the solution is simple: just rename the file to IO_MAP.h and then change your #include directive accordingly:

#include "IO_MAP.h"

I thought it would be something simple. The weird thing is, I tried compiling another project that is in production currently, it looks like it was the same issue.