Skip to content

Instantly share code, notes, and snippets.

@funkfinger
Last active July 30, 2025 06:56
Show Gist options
  • Save funkfinger/dff3834011c1ebe66feb3514e12315ac to your computer and use it in GitHub Desktop.
Save funkfinger/dff3834011c1ebe66feb3514e12315ac to your computer and use it in GitHub Desktop.
Scrolling ESPHome LED MAX7219 Display
substitutions:
name: "song-display-workroom"
friendly_name: Song Display Workroom
board: seeed_xiao_esp32c3
devicename: matrix7219
template_helper: sensor.workroom_scroll_display
api_encryption_key: !secret song_display_workroom_encryption_key
# Display pins
clpin: GPIO8 # D5 is connected to CLK of MAX7219
cspin: GPIO20 # D6 is connected to CS of MAX7219
mopin: GPIO10 # D7 is connected to MOSI of MAX7219
esphome:
name: ${name}
friendly_name: ${friendly_name}
esp32:
board: ${board}
framework:
type: esp-idf
api:
encryption:
key: ${api_encryption_key}
logger:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ota:
- platform: esphome
id: my_ota
password: !secret ota_password
spi:
clk_pin: ${clpin}
mosi_pin: ${mopin}
text_sensor:
- platform: homeassistant
id: scroll_text
entity_id: ${template_helper}
font:
- file: "fonts/pixelmix_bold.ttf"
id: digit_font
size: 8
display:
- platform: max7219digit
cs_pin: ${cspin}
num_chips: 4
intensity: 5
scroll_enable: True
scroll_speed: 40ms
scroll_delay: 0ms
scroll_dwell: 0ms
lambda: |-
it.printf(0, 0, id(digit_font), id(scroll_text).state.c_str());
{% if is_state("media_player.workroom", "playing") %}
| {{states.media_player.workroom.attributes.media_title}} - {{states.media_player.workroom.attributes.media_artist}}
{% else %}
{{now().strftime("- %x - %I:%M %p")}} - {{states.sensor.my_weather_station_temperature.state}}{{states.sensor.my_weather_station_temperature.attributes.unit_of_measurement ~ " -"}}
{% endif %}
@funkfinger
Copy link
Author

IMG_1439
IMG_1438

IMG_1436.mov

IMG_1435

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment