mprowe
(Martin)
April 2, 2025, 11:12am
1
The “tiny” is the one with the USB connector on an umbilical cable.
According to the pinout , the WS2812 is controlled via GPIO38.
However, this .yaml:
# Example configuration entry
light:
- platform: fastled_clockless
chipset: WS2812
pin: GPIO38
num_leds: 1
rgb_order: RGB
name: "FastLED WS2811 Light"
effects:
- strobe:
name: "Strobe Red"
colors:
- state: True
brightness: 50%
red: 100%
green: 0%
blue: 0%
duration: 200ms
- state: False
duration: 200ms
… gives a compilation error of:
Compiling .pioenvs/esp32-s3-tiny/lib64d/WiFi/WiFiMulti.cpp.o
In file included from .piolibdeps/esp32-s3-tiny/FastLED/FastLED.h:48,
from src/esphome/components/fastled_base/fastled_light.h:16,
from src/esphome.h:20,
from src/main.cpp:3:
.piolibdeps/esp32-s3-tiny/FastLED/fastpin.h: In instantiation of 'class FastPin<38>':
.piolibdeps/esp32-s3-tiny/FastLED/platforms/esp/32/clockless_rmt_esp32.h:178:23: required from 'class ClocklessController<38, 60, 150, 90, (EOrder)10, 0, false, 5>'
.piolibdeps/esp32-s3-tiny/FastLED/chipsets.h:582:7: required from 'class WS2812Controller800Khz<38, (EOrder)10>'
.piolibdeps/esp32-s3-tiny/FastLED/FastLED.h:103:52: required from 'class WS2812<38, (EOrder)10>'
src/esphome/components/fastled_base/fastled_light.h:150:41: required from 'CLEDController& esphome::fastled_base::FastLEDLightOutput::add_leds(int) [with CHIPSET = WS2812; unsigned char DATA_PIN = 38; EOrder RGB_ORDER = (EOrder)10]'
src/main.cpp:276:66: required from here
.piolibdeps/esp32-s3-tiny/FastLED/fastpin.h:207:24: error: static assertion failed: Invalid pin specified
static_assert(validpin(), "Invalid pin specified");
Any thoughts?
Regards, Martin
neel-m
(Neel Malik)
April 4, 2025, 5:33am
2
mprowe:
Any thoughts?
That looks like you don’t have all the libraries you need.
You need to provide a complete YAML (that is the minimal that shows the issue). I would also do a full clean first.
This issue looks relevant, use the workaround
opened 11:56AM - 08 May 23 UTC
closed 01:36AM - 15 Oct 23 UTC
stale
### The problem
# [FastLED] ESP32-S3 M5 AtomS3 lite / error: static assertion… failed: Invalid pin specified
### Summary
Steps to reproduce
RGB LED is connected to GPIO35 but I can't build the file with that config:
### Config snippet
```
light:
- platform: fastled_clockless
chipset: WS2812B
pin: 35
num_leds: 1
rgb_order: GRB
id: status_led
name: AtomS3 lite Light
effects:
- random:
- flicker:
- addressable_rainbow:
```
### Pinout
Doc : [Schematic](https://docs.m5stack.com/en/core/AtomS3%20Lite)
### Error
```
/data/m5-atoms3-c846d4/.piolibdeps/m5-atoms3-c846d4/FastLED/fastpin.h: In instantiation of 'class FastPin<35>':
/data/m5-atoms3-c846d4/.piolibdeps/m5-atoms3-c846d4/FastLED/platforms/esp/32/clockless_rmt_esp32.h:178:23: required from 'class ClocklessController<35, 60, 150, 90, (EOrder)66, 0, false, 5>'
/data/m5-atoms3-c846d4/.piolibdeps/m5-atoms3-c846d4/FastLED/chipsets.h:582:7: required from 'class WS2812Controller800Khz<35, (EOrder)66>'
/data/m5-atoms3-c846d4/.piolibdeps/m5-atoms3-c846d4/FastLED/FastLED.h:105:52: required from 'class WS2812B<35, (EOrder)66>'
src/esphome/components/fastled_base/fastled_light.h:150:41: required from 'CLEDController& esphome::fastled_base::FastLEDLightOutput::add_leds(int) [with CHIPSET = WS2812B; unsigned char DATA_PIN = 35; EOrder RGB_ORDER = (EOrder)66]'
src/main.cpp:217:64: required from here
/data/m5-atoms3-c846d4/.piolibdeps/m5-atoms3-c846d4/FastLED/fastpin.h:207:24: error: static assertion failed: Invalid pin specified
static_assert(validpin(), "Invalid pin specified");
~~~~~~~~^~
In file included from /data/m5-atoms3-c846d4/.piolibdeps/m5-atoms3-c846d4/FastLED/platforms/esp/32/fastled_esp32.h:8,
from /data/m5-atoms3-c846d4/.piolibdeps/m5-atoms3-c846d4/FastLED/platforms.h:36,
from /data/m5-atoms3-c846d4/.piolibdeps/m5-atoms3-c846d4/FastLED/FastLED.h:52,
from src/esphome/components/fastled_base/fastled_light.h:16,
from src/esphome.h:22,
from src/main.cpp:3:
/data/m5-atoms3-c846d4/.piolibdeps/m5-atoms3-c846d4/FastLED/platforms/esp/32/clockless_rmt_esp32.h: In instantiation of 'void ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::startOnChannel(int) [with int DATA_PIN = 35; int T1 = 60; int T2 = 150; int T3 = 90; EOrder RGB_ORDER = (EOrder)66; int XTRA0 = 0; bool FLIP = false; int WAIT_TIME = 5]':
/data/m5-atoms3-c846d4/.piolibdeps/m5-atoms3-c846d4/FastLED/platforms/esp/32/clockless_rmt_esp32.h:381:26: required from 'static void ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::startNext(int) [with int DATA_PIN = 35; int T1 = 60; int T2 = 150; int T3 = 90; EOrder RGB_ORDER = (EOrder)66; int XTRA0 = 0; bool FLIP = false; int WAIT_TIME = 5]'
/data/m5-atoms3-c846d4/.piolibdeps/m5-atoms3-c846d4/FastLED/platforms/esp/32/clockless_rmt_esp32.h:312:26: required from 'void ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showPixels(PixelController<RGB_ORDER>&) [with int DATA_PIN = 35; int T1 = 60; int T2 = 150; int T3 = 90; EOrder RGB_ORDER = (EOrder)66; int XTRA0 = 0; bool FLIP = false; int WAIT_TIME = 5]'
```
### Which version of ESPHome has the issue?
2023.4.4
### What type of installation are you using?
Home Assistant Add-on
### Which version of Home Assistant has the issue?
2023.5.2
### What platform are you using?
ESP32
### Board
esp32-s3-devkitc-1
### Component causing the issue
fastled_clockless
### Example YAML snippet
```yaml
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
version: dev
light:
- platform: fastled_clockless
chipset: WS2812B
pin: 35 # LED35
num_leds: 1
rgb_order: GRB
id: status_led
name: AtomS3 lite Light
```
### Anything in the logs that might be useful for us?
Using dev version doesn't fix this issue.
```
Library Manager: [email protected] has been installed!
INFO [email protected] has been installed!
HARDWARE: ESP32S3 240MHz, 320KB RAM, 8MB Flash
- framework-arduinoespressif32 @ 2.0.6+sha.237a3fe
- toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
- toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5
Dependency Graph
|-- AsyncTCP-esphome @ 1.2.2
|-- WiFi @ 2.0.0
|-- FS @ 2.0.0
|-- Update @ 2.0.0
|-- ESPAsyncWebServer-esphome @ 2.1.0
| |-- AsyncTCP-esphome @ 1.2.2
|-- DNSServer @ 2.0.0
|-- ESPmDNS @ 2.0.0
|-- noise-c @ 0.1.4
| |-- libsodium @ 1.10018.1
|-- FastLED @ 3.3.2
```
### Additional information

Logfile:
[logs_m5-atoms3-c846d4_run.txt](https://github.com/esphome/issues/files/11420822/logs_m5-atoms3-c846d4_run.txt)
mprowe
(Martin)
April 4, 2025, 8:57am
3
Thank you Neel,
This is my complete .yaml (with the external component you suggested):
esphome:
name: esp32-s3-tiny
esp32:
board: esp32-s3-devkitc-1 #https://www.waveshare.com/esp32-s3-tiny.htm
framework:
type: arduino
external_components:
- source: github://pr#4257
components: [fastled]
refresh: always
# Enable logging
logger:
level: DEBUG
# Enable Home Assistant API
api:
ota:
- platform: esphome
password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
domain: .peritonlane
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
captive_portal:
web_server:
port: 80
# Example configuration entry
light:
- platform: fastled
chipset: WS2812
data_pin: GPIO38
num_leds: 1
rgb_order: RGB
name: "FastLED WS2811 Light"
effects:
- strobe:
name: "Strobe Red"
colors:
- state: True
brightness: 50%
red: 100%
green: 0%
blue: 0%
duration: 200ms
- state: False
duration: 200ms
Now this compiles without errors. However, it does not work.
I know the WS2811 is working. If I jumper the Test Pad 38 to GPIO05 (nearest to GPIO38) and change the data_pin: to GPIO05, it works.
So I guess there is still a problem with pins.h (or whatever its called?).
Regards, M.
neel-m
(Neel Malik)
April 4, 2025, 3:31pm
4
The issue showed the PR did not work in some cases and to use
neopixelbus
or
esp32_rmt_led_strip
instead.