Arduino ide 2.3.2 fails to verify and upload

As suggested here is my verbose log output for codebase.

FQBN: arduino:avr:nano
Using board 'nano' from platform in folder: /home/nathan/.arduino15/packages/arduino/hardware/avr/1.8.6
Using core 'arduino' from platform in folder: /home/nathan/.arduino15/packages/arduino/hardware/avr/1.8.6

Detecting libraries used...
/home/nathan/.arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/home/nathan/.arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/home/nathan/.arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs /tmp/arduino/sketches/E77BE22A19D79FE346DA77D64CA6748B/sketch/under-vehicle-scanner-hades-5-atmega328p.ino.cpp -o /dev/null
Alternatives for AccelStepper.h: [AccelStepper@1.64]
ResolveLibrary(AccelStepper.h)
  -> candidates: [AccelStepper@1.64]
/home/nathan/.arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/home/nathan/.arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/home/nathan/.arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs -I/home/nathan/Arduino/libraries/AccelStepper/src /tmp/arduino/sketches/E77BE22A19D79FE346DA77D64CA6748B/sketch/under-vehicle-scanner-hades-5-atmega328p.ino.cpp -o /dev/null
Alternatives for Wire.h: [Wire@1.0]
ResolveLibrary(Wire.h)
  -> candidates: [Wire@1.0]
In file included from /home/nathan/repositories/under-vehicle-scanner-hades-5-atmega328p/under-vehicle-scanner-hades-5-atmega328p.ino:5:0:
/home/nathan/Arduino/libraries/MeanFilterLib/src/MeanFilterLib.h:14:11: fatal error: arduino.h: No such file or directory
  #include "arduino.h"
           ^~~~~~~~~~~
compilation terminated.
/home/nathan/.arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/home/nathan/.arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/home/nathan/.arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs -I/home/nathan/Arduino/libraries/AccelStepper/src -I/home/nathan/.arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire/src /tmp/arduino/sketches/E77BE22A19D79FE346DA77D64CA6748B/sketch/under-vehicle-scanner-hades-5-atmega328p.ino.cpp -o /dev/null
Alternatives for MeanFilterLib.h: [MeanFilterLib@1.0.0]
ResolveLibrary(MeanFilterLib.h)
  -> candidates: [MeanFilterLib@1.0.0]
/home/nathan/.arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/home/nathan/.arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/home/nathan/.arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs -I/home/nathan/Arduino/libraries/AccelStepper/src -I/home/nathan/.arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire/src -I/home/nathan/Arduino/libraries/MeanFilterLib/src /tmp/arduino/sketches/E77BE22A19D79FE346DA77D64CA6748B/sketch/under-vehicle-scanner-hades-5-atmega328p.ino.cpp -o /dev/null
Alternatives for arduino.h: []
ResolveLibrary(arduino.h)
  -> candidates: []
exit status 1

Compilation error: exit status 1

And the culprit line in our code

 //********************************* Include Files
#include <Arduino.h>
#include <AccelStepper.h>
#include <Wire.h>
#include <MeanFilterLib.h>

Haven't been able to find the issue on the internet. Can you point me in right direction as to where this problem is occuring and what I can do about it?

Operating systems in Question: Linux Mint 22, Ubuntu 22.04

Hi @1nathan_sinclair ,

Welcome to the forum..

it's not complaining about the includes you posted..

looks like it wrong inside of this lib..
should be upper case A in the Arduino.h..
good luck.. ~q

Internet? I just searched the Arduino IDE environment for Arduino.h here is what I found


It looks like there are a few, many hardware platforms use that include BUT they are potentially different contents.
You will need to get the library author to fix his/her code.

thank you. Just out of interest, the project compiles on other computers, was there a reason arduino.h was renamed to Arduino.h?

thinking maybe just need to update the MeanFilterLib??
what I found on Github already had the upper case A..

~q

yeah its very strange. found this

had the uppercase, somehow our version is not the one with the update? but that was the only thing that changed for the library.

Thanks everyone, learnt something today and can now happily code our microcontrollers again!

1 Like

The file has always been named Arduino.h. On a case-insensitive filesystem, such as Windows and macOS has, the filenames arduino.h and Arduino.h are equivalent in some contexts, including compiling library code. This means that sloppy developers who are using one of those operating systems can write the wrong filename and never notice it. But then when someone who is using Linux (which has a case-sensitive filesystem) tries to use their bugged library, it won't compile.

It is because the library developer never made a new release after they fixed the bug. So the fix is only available when using the beta tester development version of the library.

When you install a library via the Arduino IDE Library Manager, the latest stable release version of the library is installed. So if the library author doesn't bother to make a new release after they fix a bug in the library, then the users will still be affected by the bug.

Thanks, what I've learnt, probably should have learnt it earlier is go back to the original repo owner when I get an issue like this. I've also learnt to learn what your file system files are so that you can find what's on your computer. I now see that i glazed over the code. This is really humbling.
You've been very helpful.

2 Likes