Skip to content

Divoom Pixoo Display

The pixoo display platform allows you to use the Divoom Pixoo 64 — a 64×64 RGB LED matrix — with ESPHome. ESPHome runs directly on the panel's on-board ESP32, which drives the LED board over an internal SPI bus. Frames are rendered with ESPHome's standard display engine (lambdas, images, LVGL) and sent to the panel as RGB888 data.

The panel brightness is exposed separately through the pixoo light platform.

The Pixoo communicates over the SPI bus, which must be set up separately. The panel is write-only, so the bus needs a mosi_pin but no miso_pin.

# Example configuration entry
display:
- platform: pixoo
id: pixoo_display
cs_pin: GPIOXX
lambda: |-
it.line(0, 0, it.get_width() - 1, it.get_height() - 1, Color(0, 255, 0));

NOTE

The Pixoo 64 wires its ESP32 to the LED-driver board on fixed internal pins. See the full configuration example below for the actual pin numbers.

  • model (Optional, enum): The Pixoo panel model. Currently only 64x64 is supported. Defaults to 64x64.
  • cs_pin (Required, Pin Schema): The SPI chip-select pin connected to the LED-driver board.
  • data_rate (Optional, frequency): The SPI data rate. Defaults to 8MHz.
  • lambda (Optional, lambda): The lambda to use for rendering the content on the display. See Display Rendering Engine for more information.
  • update_interval (Optional, Time): The interval to re-draw the screen. Defaults to 1s.
  • pages (Optional, list): Show pages instead of a single lambda. See Display Pages.
  • id (Optional, ID): Manually specify the ID used for code generation.
  • All other options from Display Component.

The following configuration uses the Pixoo 64's fixed internal pins and adds the pixoo light platform for brightness control:

spi:
clk_pin: GPIO25
mosi_pin: GPIO33
display:
- platform: pixoo
id: pixoo_display
model: 64x64
cs_pin: GPIO26
lambda: |-
it.line(0, 0, it.get_width() - 1, it.get_height() - 1, Color(0, 255, 0));
light:
- platform: pixoo
pixoo_id: pixoo_display
name: "Pixoo Brightness"