Want to track your 3D printer's progress at a glance—no app opening, no screen tapping? I rigged up a 16x16 LED grid and an ESP32 I had lying around. Now, whenever a print starts, it shows real-time progress directly on the panel via WLED and Home Assistant.
Here’s exactly how to set this up.
🛠️ Requirements
Must-Have:
- ESP32 with WLED installed
- WLED added to Home Assistant
- A 16x16 (or any size) LED grid panel wired to ESP32
- Bambu Lab Integration installed in Home Assistant
Optional but helpful:
- ChatGPT (to help out with coding if you get stuck)
✅ Step-by-Step Setup Guide
Step 1: Add REST Command to Configuration
We’ll create a REST command in configuration.yaml that sends custom text updates to your WLED device.
Open your configuration.yaml and add:
# WLED TEXT CHANGER
rest_command:
wled_text:
url: "http://WLED_IP/json/state"
method: POST
content_type: "application/json"
payload: ‘{"seg": [{"n": "{{ text }}"}]}’
⚠️ Replace WLED_IP with your actual WLED device IP address and fully restart Home Assistant afterwards.
Step 2: Create a Text Helper
We’ll need a text input field in Home Assistant to dynamically hold and send text to WLED.
- Go to Settings → Devices & Services → Helpers
- Click “+ Create Helper”
- Select “Text”
- Name it: Text_WLED_TextBox
- Set Display mode to Text
- Pick an icon if you want
Step 3: Create an Automation to Update WLED
This automation grabs the printer’s progress and sends it to your WLED grid.
- Go to Settings → Automations & Scenes
- Click “+ Create Automation”
- Choose “Start with an empty automation”
- Set a name like: WLED_PrintProgressUpdate
- Trigger ("When"):
- Choose your Bambu printer progress sensor.
- Example: sensor.a1_000000000000000_print_progress
- Action ("Then do"):
- Choose: Call Service
- Service: rest_command.wled_text
- YAML mode:
service: rest_command.wled_text
data:
text: “{{ states('sensor.a1_000000000000000_print_progress') }}%”
⚠️ Adjust sensor.a1_000000000000000_print_progress to match your exact printer entity.
Step 3a: Test the WLED Text Manually
Let’s verify WLED accepts text commands.
- Go to Developer Tools → Actions
- Click “Go to YAML mode”
- Paste this and hit “Call Service”:
service: rest_command.wled_text
data:
text: “Hello WLED!”
If you see “Hello WLED!” scroll across your LED panel, everything’s working.
Final Notes / Checklist
- ESP32 is flashed with WLED and connected to the LED panel
- WLED is configured in Home Assistant
- Bambu printer entity is available and updating
- REST command is in configuration.yaml (restart required after adding)
- Automation is correctly wired to the printer progress sensor
- You can test and confirm text displays on WLED
For an awesome 16x16 LED grid print, check out this one. Been using it myself and the diffusion is good!
This is my first guide and I did most of this from memory. If something is not working or missing, feel free to let me know and will try to help you out.