I'm trying to compile FastLED library for my STM32F103C using Arduino 1.8.5 IDE, but getting this error:

In file included from C:\Program Files 

                 from C:\Program Files 


C:\Program Files 
(x86)\Arduino\libraries\FastLED/platforms/avr/led_sysdefs_avr.h:12:20: fatal 
error: avr/io.h: No such file or directory

 #include <avr/io.h>


compilation terminated.

exit status 1
Error compiling for board Generic STM32F103C series.

I just have no idea why it's trying to include this file which isn't existed for this platform. Any idea?

  • Did you select the correct board in the IDE? – Mikael Patel Nov 30 '17 at 6:36

More specifically, for a variety of historical reasons, if FastLED can't determine the hardware platform/board being built for, it falls back to avr - and this particular STM chipset isn't directly supported in FastLED at the moment - there's a fork running around that has added support for it, but I haven't had a chance to pull it back into the main library.


<avr/io.h> is a header file used to interface the IO registers of the AVR micro-controllers. Most Arduinos are AVR-based, and some Arduino libraries assume an AVR core. This seems to bee the case with the FastLED library you are trying to use.

Your microcontroller, however, is an STM32, with an ARM core. It is not an AVR, and it will not work with code that assumes you have an AVR core.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.