Hello,
FastLED not work on Arduino 101:
In file included from /home/artek/sketchbook/libraries/FastLED/led_sysdefs.h:25:0,
from /home/artek/sketchbook/libraries/FastLED/FastLED.h:34,
from /home/artek/sketchbook/libraries/FastLED/examples/FirstLight/FirstLight.ino:6:
/home/artek/sketchbook/libraries/FastLED/platforms/avr/led_sysdefs_avr.h:10:20: fatal error: avr/io.h: Nie ma takiego pliku ani katalogu
#include <avr/io.h>
^
compilation terminated.
exit status 1
Do you plan to support that board ?
The board just came out a month ago - and uses two CPU architectures that there are currently no FastLED ports for (x86 and ARC). In addition, it is running under a RTOS environment vs. the OS-less environments that FastLED is most often built for.
So, there is a plan to eventually support the board - but I don't have a guess as to when it would happen.
BUMP -- What's the status on porting for Intel Curie support?
No status yet - there's a backlog of other stuff I need to finish first.
@focalintent do you any plan to port FastLED on FPGA cpu
I'd need something more specific than that to give an answer. There is the cyprus chips, which are an ARM core w/an FPGA-style ability to extend (though I don't believe it's a full FPGA) - which is on the long term list of platforms to look at.
The immediate work for FastLED includes finishing up the RGBW port/work (and I'm not doing any new platform ports until that is finished because of the amount of low level re-writing that i'm having to do for it). Then next on the porting list will be the LPC810/812 (already finished for a contract job, needs clean up to pull into the main tree), the K64 (the chip used in the next revision of the teensy 3.x), and then the NRF52 and most likely the ESP32, and then probably the Curie based platforms. So, short of someone taking out a contract and paying me for it, it will be quite some time before other platforms pop up on the list/schedule.
good luck Danial , I eagerly look for it ,and hope you put ESP32 in front line because it will coming soon (August) with two separated core architecture and can forward all FastLED transaction on one core and left all problem with ESP8266 behind,
I just try to port the FastLED to ESP32 - but there are mass of errors...
The most are depends on the Arduino IDE 1.8 I think - because of changed compiler...
I did already a lot of changes yet - but stuck on this (try to compile simple blink example):
In file included from /Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/examples/Blink/Blink.ino:1:0:
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.005
# pragma message "FastLED version 3.001.005"
^
In file included from /Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastled_esp32.h:5:0,
from /Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms.h:26,
from /Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/FastLED.h:52,
from /Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/examples/Blink/Blink.ino:1:
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h: In static member function 'static void _ESPPIN<PIN, MASK>::hi()':
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h:23:104: error: 'GP16O' was not declared in this scope
inline static void hi() __attribute__ ((always_inline)) { if(PIN < 16) { _GPB._GPOS = MASK; } else { GP16O |= MASK; } }
^
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h: In static member function 'static void _ESPPIN<PIN, MASK>::lo()':
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h:24:104: error: 'GP16O' was not declared in this scope
inline static void lo() __attribute__ ((always_inline)) { if(PIN < 16) { _GPB._GPOC = MASK; } else { GP16O &= ~MASK; } }
^
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h: In static member function 'static void _ESPPIN<PIN, MASK>::set(_ESPPIN<PIN, MASK>::port_t)':
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h:25:122: error: 'GP16O' was not declared in this scope
inline static void set(register port_t val) __attribute__ ((always_inline)) { if(PIN < 16) { _GPB._GPO = val; } else { GP16O = val; }}
^
In file included from /Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastled_esp32.h:5:0,
from /Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms.h:26,
from /Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/FastLED.h:52,
from /Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/examples/Blink/Blink.ino:1:
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h: In static member function 'static void _ESPPIN<PIN, MASK>::toggle()':
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h:29:108: error: 'GP16O' was not declared in this scope
inline static void toggle() __attribute__ ((always_inline)) { if(PIN < 16) { _GPB._GPO ^= MASK; } else { GP16O ^= MASK; } }
^
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h: In static member function 'static _ESPPIN<PIN, MASK>::port_t _ESPPIN<PIN, MASK>::hival()':
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h:35:87: error: 'GPO' was not declared in this scope
inline static port_t hival() __attribute__ ((always_inline)) { if (PIN<16) { return GPO | MASK; } else { return GP16O | MASK; } }
^
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h:35:116: error: 'GP16O' was not declared in this scope
inline static port_t hival() __attribute__ ((always_inline)) { if (PIN<16) { return GPO | MASK; } else { return GP16O | MASK; } }
^
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h: In static member function 'static _ESPPIN<PIN, MASK>::port_t _ESPPIN<PIN, MASK>::loval()':
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h:36:87: error: 'GPO' was not declared in this scope
inline static port_t loval() __attribute__ ((always_inline)) { if (PIN<16) { return GPO & ~MASK; } else { return GP16O & ~MASK; } }
^
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h:36:116: error: 'GP16O' was not declared in this scope
inline static port_t loval() __attribute__ ((always_inline)) { if (PIN<16) { return GPO & ~MASK; } else { return GP16O & ~MASK; } }
^
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h: In static member function 'static volatile uint32_t* _ESPPIN<PIN, MASK>::port()':
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h:37:118: error: 'GP16O' was not declared in this scope
inline static port_ptr_t port() __attribute__ ((always_inline)) { if(PIN<16) { return &_GPB._GPO; } else { return &GP16O; } }
^
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h: In static member function 'static bool _ESPPIN<PIN, MASK>::isset()':
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h:42:85: error: 'GPO' was not declared in this scope
inline static bool isset() __attribute__ ((always_inline)) { return (PIN < 16) ? (GPO & MASK) : (GP16O & MASK); }
^
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/platforms/esp/32/fastpin_esp32.h:42:100: error: 'GP16O' was not declared in this scope
inline static bool isset() __attribute__ ((always_inline)) { return (PIN < 16) ? (GPO & MASK) : (GP16O & MASK); }
^
In file included from /Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/FastLED.h:65:0,
from /Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/examples/Blink/Blink.ino:1:
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/fastspi.h: At global scope:
/Applications/Arduino-1.8.0.app/Contents/Java/libraries/FastLED/fastspi.h:110:23: note: #pragma message: No hardware SPI pins defined. All SPI access will default to bitbanged output
# pragma message "No hardware SPI pins defined. All SPI access will default to bitbanged output"
^
exit status 1
Error compiling for board ESP32 Dev Module.
These errors are all because you are still using ESP8266 GPIO register names/descriptions/layouts. You need to re-write fastpin_esp32.h to use the ESP32 GPIO registers.
Thx for the hint. I will start doing this today evening after my day job.
Hello, did anyone have any luck with running Fastled on the esp32 ?
this is the error I get, I know I should be more patient but this board is awesome :)
rom /Users/*******/Documents/Arduino/libraries/FastLED/led_sysdefs.h:27:0,
from /Users/*******/Documents/Arduino/libraries/FastLED/FastLED.h:44,
from /Users/*******/Documents/Arduino/libraries/FastLED/examples/DemoReel100/DemoReel100.ino:1:
/Users/*******/Documents/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.
Multiple libraries were found for "FastLED.h"
Used: /Users/*******/Documents/Arduino/libraries/FastLED
Not used: /Users/*******/Documents/Arduino/libraries/arduino_760590
exit status 1
Error compiling for board ESP32 Dev Module.
@Theamazingarnaud I'm on the last mile to get it working...
Hopefully I have time today to work on it; cause I'm really busy (work and family)
@Jorgen-VikingGod , No worry, family always first :)
Sorry guys - I tried to look again on this part of code; but this is too heavy to figure out by me. I'm not that low-level guy :/
As I can see, the ESP32 stuff has a completely changed code style compared to the ESP8266...
So it is not just, change GPIO names - the complete register of the pins was changed...
Hope someone with more knowledge can do this port. I currently do not have the time to do this - sorry for that.
Hello!
Is anyone else attempting esp32 ports? I started but I also don't know enough low-level programming to be very effective. Here's a link to my repo if anyone wants, currently stuck at trying to figure out the correct way of writing to registers for esp32:
https://github.com/eshkrab/FastLED-esp32
Update: it works, but not well because I haven't figured out interrupts yet
@eshkrab maybe you can peek into the PullRequest of Adafruit_NeoPixel which brings support for ESP32.
I would also be very interested in a port for the ESP32. @eshkrab what's the current status of your attempt? Thanks.
+1 Would be sweet being able to use the ESP32. Now that all Intel Arduino boards including Curie are dead there's no use porting FastLED to those anyway, freeing up time for ESP32... ;)
Closing this issue since we aren't going to support the Curie - and someone did a preliminary port to the esp32 which is now in 3.1.6.