SmartMatrix firmware for the internet connected display using ESPHome.
- Requires the SmartMatrix server to function.
- Applets are written in Starlark using the Pixlet runtime.
- The matrix display is powered by ESP32-HUB75-MatrixPanel-DMA.
- The ESP32 Trinity by Brian Lough is a great board to use with SmartMatrix.
- This 64x32 panel from Waveshare works great with the library and is reasonably priced.
- Based on work by acvique.
Default Pin | Tidbyt | Adafruit Feather Wing | |
---|---|---|---|
R1 | GPIO25 | GPIO21 | GPIO06 |
G1 | GPIO26 | GPIO02 | GPIO05 |
B1 | GPIO27 | GPIO22 | GPIO09 |
R2 | GPIO14 | GPIO23 | GPIO11 |
G2 | GPIO12 | GPIO04 | GPIO10 |
B2 | GPIO13 | GPIO27 | GPIO12 |
A | GPIO23 | GPIO26 | GPIO08 |
B | GPIO19 | GPIO05 | GPIO14 |
C | GPIO05 | GPIO25 | GPIO15 |
D | GPIO17 | GPIO18 | GPIO16 |
E | -1 | -1 | -1 |
LAT | GPIO04 | GPIO19 | GPIO38 |
OE | GPIO15 | GPIO32 | GPIO39 |
CLK | GPIO16 | GPIO33 | GPIO13 |
This firmware can support both Tidbyt hardware or the Adafruit RGB Feather Wing in addition to the default pinouts.
To switch, uncomment the #define TIDBYT
or #define ADAFRUIT_FEATHER_WING
accordingly.
Tha Matrix Display will appear as a light in Home Assistant. You can turn the display on or off and adjust the brightness. Brightness levels are saved and will restore on device boot.
The ESP32 Trinity board has two useful touchpads that we can tap into. Here is an example that uses them to control the brightness of the display:
esp32_touch:
setup_mode: false
binary_sensor:
- platform: esp32_touch
id: t8_touchpad
name: "T8 Touchpad"
icon: "mdi:fingerprint"
pin: GPIO33
threshold: 600
on_press:
then:
- lambda: changeBrightness(6);
- platform: esp32_touch
id: t9_touchpad
name: "T9 Touchpad"
icon: "mdi:fingerprint"
pin: GPIO32
threshold: 600
on_press:
then:
- lambda: changeBrightness(-6);
Note: setBrightness
and changeBrightness
are helpers, but you can access the dma_display
variable to use the HUB75-MatrixPanel-DMA display object directly in your lambdas.