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.

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: GPIO2
    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: GPIO2
    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: GPIO2
    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: GPIO2
    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!