QuinLED-Dig-Uno ESPhome / Home Assistant sample configurations
People have requested sample ESPhome configurations for the QuinLED modules. A basic explanation of how to use ESPhome can be found by clicking here (The example listed there is for an Analog model, not a Digital module like the QuinLED-Dig-Uno). Below are sample configurations that can be used to start your own configuration! Next to using the QuinLED-Dig-Uno with ESPhome and Home Assistant the board can be used with loads of other software, also make sure to check that out.
A quick tip, to easily hook up your LED strips I suggest getting some 3 and/or 4 pin JST connector leads, check them out on the additional hardware page.
*2020-10-30 – Small update to pin numbers for ESP32 based boards
Configuration scenario’s
There is no difference in configuration if you are using 5v or 12v strip only the onboard jumper needs to be in the right position! The different microcontrollers do need their own configuration. I will try and provide a complete list of configurations but if you still have questions after reading the lower part you can always join the discord server and ask in the #quinled-dig channel!
Using a ESP32
- QuinLED-Dig-Uno with a ESP32 using fastLED with a ws2812b LED strip
- QuinLED-Dig-Uno with a ESP32 using Neopixelbus light with a ws2812b LED strip
- QuinLED-Dig-Uno with a ESP32 using fastLED with a APA102 LED strip
Using a ESP8266
- QuinLED-Dig-Uno with a ESP8266 using fastLED with a ws2812b LED strip
- QuinLED-Dig-Uno with a ESP8266 using Neopixelbus light with a ws2812b LED strip
- QuinLED-Dig-Uno with a ESP8266 using fastLED with a APA102 LED strip
QuinLED-Dig-Uno with a ESP32 using fastLED with a ws2812b LED strip
This configuration uses the QuinLED-Dig-Uno board with an ESP32 plugged into it and runs the fastLED library configured with a ws2812b LED strip with 60 LEDs. For this configuration the GPIO jumper can be set to the left or right position but change the selected GPIO pin accordingly, the example configuration uses the left GPIO2 position!
Because this configuration uses the ESP32 pin assignment isn’t that critical and you could potentially run two clockless LED strips from the available terminals.
esphome: name: quinled_dig_uno platform: ESP32 board: mhetesp32minikit wifi: ssid: 'XXXXXXXXXX' password: 'XXXXXXXXXX' # Set logger to NOT default pins because we are using RX and TX for driving LEDs logger: hardware_uart: uart1 # Enable Home Assistant API with password api: password: 'XXXXXXXXXX' # Allow OTA Flashing and setup password ota: password: 'XXXXXXXXXX' # Enables Web Server web_server: port: 80 # Defines onboard temperature sensor dallas: - pin: 18 # Define LED strip connected and amount of LEDS light: - platform: fastled_clockless chipset: ws2812b pin: GPIO16 num_leds: 60 rgb_order: BRG name: "quinled_dig_uno-DigitalLEDStrip" effects: - addressable_rainbow: - addressable_rainbow: name: Rainbow Effect With Custom Values speed: 10 width: 512 - addressable_rainbow: name: Rainbow mega fast speed: 20 width: 150 - addressable_color_wipe: - addressable_scan: - addressable_twinkle: - addressable_fireworks: sensor: - platform: dallas index: 0 name: "Dig-Uno_ESP8266"
QuinLED-Dig-Uno with a ESP32 using Neopixelbus light with a ws2812b LED strip
This configuration uses the QuinLED-Dig-Uno board with an ESP32 plugged into and running the Neopixelbus library instead of fastLED. The Neopixelbus is configured for a ws2812b LED strip with 144 LEDs. For this configuration the GPIO jumper can be set to the left or right position but change the selected GPIO pin accordingly, the example configuration uses the left GPIO2 position!
Because this configuration uses the ESP32 pin assignment isn’t that critical and you could potentially run two clockless LED strips from the available terminals.
esphome: name: quinled_dig_uno platform: ESP32 board: mhetesp32minikit wifi: ssid: 'XXXXXXXXXX' password: 'XXXXXXXXXX' # Set logger to NOT default pins because we are using RX and TX for driving LEDs logger: hardware_uart: uart1 # Enable Home Assistant API with password api: password: 'XXXXXXXXXX' # Allow OTA Flashing and setup password ota: password: 'XXXXXXXXXX' # Enables Web Server web_server: port: 80 # Defines onboard temperature sensor dallas: - pin: 18 # Define LED strip connected and amount of LEDS light: - platform: neopixelbus type: RGB pin: GPIO16 num_leds: 144 name: "quinled_dig_uno-DigitalLEDStrip" effects: - addressable_rainbow: - addressable_rainbow: name: Rainbow Effect With Custom Values speed: 10 width: 512 - addressable_rainbow: name: Rainbow mega fast speed: 20 width: 150 - addressable_color_wipe: - addressable_scan: - addressable_twinkle: - addressable_fireworks: sensor: - platform: dallas index: 0 name: "Dig-Uno_ESP8266"
QuinLED-Dig-Uno with a ESP32 using fastLED with a APA102 LED strip
This configuration uses the QuinLED-Dig-Uno board with an ESP32 plugged into it and running the FastLED Library. Instead of using a Clockless LED strip this time we’re configuring an APA102 LED strip which uses a clock pin and data pin separately. For this configuration the GPIO jumper should be set to the left position.
esphome: name: quinled_dig_uno platform: ESP32 board: mhetesp32minikit wifi: ssid: 'XXXXXXXXXX' password: 'XXXXXXXXXX' # Set logger to NOT default pins because we are using RX and TX for driving LEDs logger: hardware_uart: uart1 # Enable Home Assistant API with password api: password: 'XXXXXXXXXX' # Allow OTA Flashing and setup password ota: password: 'XXXXXXXXXX' # Enables Web Server web_server: port: 80 # Defines onboard temperature sensor dallas: - pin: 18 # Define LED strip connected and amount of LEDS light: - platform: fastled_spi chipset: APA102 data_pin: GPIO16 clock_pin: GPIO1 num_leds: 160 rgb_order: BGR name: "quinled_dig_uno-DigitalLEDStrip" effects: - addressable_rainbow: - addressable_rainbow: name: Rainbow Effect With Custom Values speed: 10 width: 512 - addressable_rainbow: name: Rainbow mega fast speed: 20 width: 150 - addressable_color_wipe: - addressable_scan: - addressable_twinkle: - addressable_fireworks: sensor: - platform: dallas index: 0 name: "Dig-Uno_ESP8266"
QuinLED-Dig-Uno with a ESP8266 using FastLED and a ws2812b LED strip
This configuration uses the QuinLED-Dig-Uno board with an ESP8266 plugged into it and running the FastLED Library. Using the ESP8266 the pins used are a bit more important because it’s a lot less powerful. In the case of FastLED you only want to use GPIO3 which means the GPIO jumper should be in the right position, that way FastLED uses DMA to drive the ws2812b LED strip and no flickering will appear when other interrupts use the CPU such as WiFi.
esphome: name: quinled_dig_uno platform: ESP8266 board: d1_mini wifi: ssid: 'XXXXXXXXXX' password: 'XXXXXXXXXX' # Set logger to NOT default pins because we are using RX and TX for driving LEDs logger: hardware_uart: uart1 # Enable Home Assistant API with password api: password: 'XXXXXXXXXX' # Allow OTA Flashing and setup password ota: password: 'XXXXXXXXXX' # Enables Web Server web_server: port: 80 # Defines onboard temperature sensor dallas: - pin: 14 # Define LED strip connected and amount of LEDS light: - platform: fastled_clockless chipset: ws2812b pin: GPIO3 num_leds: 256 rgb_order: BRG name: "quinled_dig_uno-DigitalLEDStrip" effects: - addressable_rainbow: - addressable_rainbow: name: Rainbow Effect With Custom Values speed: 10 width: 512 - addressable_rainbow: name: Rainbow mega fast speed: 20 width: 150 - addressable_color_wipe: - addressable_scan: - addressable_twinkle: - addressable_fireworks: sensor: - platform: dallas index: 0 name: "Dig-Uno_ESP8266"
QuinLED-Dig-Uno with a ESP8266 using Neopixelbus light with a ws2812b LED strip
This configuration uses the QuinLED-Dig-Uno board with an ESP8266 plugged into it and running the NeoPixelBus library from Adafruit. Using the ESP8266 the pins used are a bit more important because it’s a lot less powerful. In the case of the NeoPixelBus you only want to use GPIO3 which means the GPIO jumper should be in the right position, that way it uses DMA to drive the ws2812b LED strip and no flickering will appear when other interrupts use the CPU such as WiFi. Alternatively you can also use the jumper in the left position which sets it to GPIO2 and it will use UART mode to drive the strip but DMA should be the best method in most cases.
*I had issues running effects using the DMA mode (they would stand still), the UART mode showed flickering
esphome: name: quinled_dig_uno platform: ESP8266 board: d1_mini wifi: ssid: 'XXXXXXXXXX' password: 'XXXXXXXXXX' # Set logger to NOT default pins because we are using RX and TX for driving LEDs logger: baud_rate: 0 hardware_uart: uart1 # Enable Home Assistant API with password api: password: 'XXXXXXXXXX' # Allow OTA Flashing and setup password ota: password: 'XXXXXXXXXX' # Enables Web Server web_server: port: 80 # Defines onboard temperature sensor dallas: - pin: 14 # Define LED strip connected and amount of LEDS light: - platform: neopixelbus type: BRG pin: GPIO3 num_leds: 144 method: ESP8266_DMA name: "quinled_dig_uno-DigitalLEDStrip" effects: - addressable_rainbow: - addressable_rainbow: name: Rainbow Effect With Custom Values speed: 10 width: 512 - addressable_rainbow: name: Rainbow mega fast speed: 20 width: 150 - addressable_color_wipe: - addressable_scan: - addressable_twinkle: - addressable_fireworks: sensor: - platform: dallas index: 0 name: "Dig-Uno_ESP8266"
QuinLED-Dig-Uno with a ESP8266 using fastLED with a APA102 LED strip
APA102 LED strip isn’t a “clockless” strip like the ws2812b. Although it uses 2 wires the advantage is that it’s a lot less timing critical so can be more easily driven by an ESP8266 and be driven at a much faster rate. It also has the advantage of using a very high PWM frequency making it suitable for video work. For this configuration the GPIO jumper needs to be set to GPIO2, the left position.
esphome: name: quinled_dig_uno platform: ESP8266 board: d1_mini wifi: ssid: 'XXXXXXXXXX' password: 'XXXXXXXXXX' # Set logger to NOT default pins because we are using RX and TX for driving LEDs logger: baud_rate: 0 hardware_uart: uart1 # Enable Home Assistant API with password api: password: 'XXXXXXXXXX' # Allow OTA Flashing and setup password ota: password: 'XXXXXXXXXX' # Enables Web Server web_server: port: 80 # Defines onboard temperature sensor dallas: - pin: 14 # Define LED strip connected and amount of LEDS light: - platform: fastled_spi chipset: APA102 data_pin: GPIO3 clock_pin: GPIO1 num_leds: 144 rgb_order: BGR name: "quinled_dig_uno-DigitalLEDStrip" effects: - addressable_rainbow: - addressable_rainbow: name: Rainbow Effect With Custom Values speed: 10 width: 512 - addressable_rainbow: name: Rainbow mega fast speed: 20 width: 150 - addressable_color_wipe: - addressable_scan: - addressable_twinkle: - addressable_fireworks: sensor: - platform: dallas index: 0 name: "Dig-Uno_ESP8266"
Conclusion
Using ESPhome is a very easy way of using your Digitally Addressable LED strip from within Home Assistant. You can even set some effects to change the mood but currently in the above examples those effects are a bit limited. There is work being done where you can pass your own custom effects to the board using ESPhome. Once that is complete I will post a separate configuration link on how to configure this. Until that time you can use the default effects and it also do everything an analog LED strip can do!