Klipper LED State is a simple project for creating a beautiful and customizable LED status bar for a Klipper-controlled 3D printer, inspired by H2D. It displays the printer status, print progress, bed temperature, and lighting effects such as breath and wave.
The project works out-of-the-box, with no changes required to the printer configuration. All effects and LED control are processed on a low-cost ESP32 board, ensuring minimal implementation cost. Firmware receives printer status over Wi-Fi via WebSocket (supports Klipper/Moonraker).
- Preview
- Supported Boards
- Features
- Assembly
- Firmware and Setup
- Release Structure
- Contribution
- License
- Русский перевод
(All colors are configurable, its for example)
- ESP32 (classic)
- ESP32-C3
- ESP32-S3
Firmware can be compiled in Arduino IDE for all supported boards.
- Low-cost solution: all effects processing is done on ESP32, no additional controllers needed.
- Supports any 5V addressable LED strips (WS2812/NeoPixel and compatible).
- Automatic printer status detection over the local network.
- Configurable Data Pin, LED type, and number of LEDs.
- Configurable colors and effects with live preview (selected color shown on LEDs for 2 seconds in Web interface):
- Breath — global effect
- Wave — for specific statuses, e.g., pause
- Displays:
- Current print status in two configurable colors with smooth gradient
- Bed temperature for standby and complete as a temperature scale on LED edges
- Printer state with separate colors for standby, pause, complete, error and offline
- Supports OTA updates
- No printer configuration editing required
- Printer LED brightness tracking
- Syncs the status bar brightness with the printer's own LED lighting
- If the printer backlight is turned off, the status bar will also turn off
3D Model for Infimech TX / Flyingbear S1: https://www.printables.com/model/1671783-progress-led-status-bar-for-infimech-tx-flyingbear
Minimum required components:
- ESP32, ESP32-C3, or ESP32-S3 board (esp32 c3 - https://ali.click/q0zu41d)
- Any 5V addressable LED strip (WS2812/NeoPixel compatible) (200led/m led strip - https://ali.click/wsyu41x)
- Power supply for board and LED strip (5V, current depends on strip length, e.g., DC-DC 24V → 5V) (dc dc 24 -> 5v https://ali.click/y4zu41s)
- Connecting wires
- 1000µF 6.3V+ capacitor between +5V and GND of the strip
- 220–470Ω resistor on DATA line
Capacitor optional for short strips; recommended for longer LED strips.
ESP32 → WS2812 LED Strip
GND → GND
5V → +5V
GPIOXX → Data In (GPIO04, GPIO05, GPIO01, GPIO02 supported, configurable in firmware)
- Always connect ESP32 GND to LED strip GND
- Open the project in Arduino IDE
- Select your board:
- ESP32 Dev Module
- ESP32C3 Dev Module
- ESP32S3 Dev Module
- Set upload speed: 115200
- Compile project (
Ctrl+Ror Verify/Compile button)
-
Precompiled binaries:
Download_full.binfrom Releases and flash via browser using:
https://esptool.spacehuhn.com/- Address: 0x00
-
Via USB:
- Connect ESP32 to PC
- Click “Upload” in Arduino IDE
-
Via OTA (Wi-Fi updates):
- Use
_OTA.binfrom Releases for your board - Connect via Web interface → choose firmware → Update Firmware
- Use
After flashing, ESP32 creates a Wi-Fi hotspot:
Klipper_State_LED_Config
Password: 12345678
- Connect from your phone or computer
- Go to 192.168.4.1
- In Wi-Fi section:
- Set your Wi-Fi network and password
- Or leave as is and connect printer directly
- In Printer Settings, set printer IP and refresh page
- Once connected, ESP32 receives printer status via WebSocket
- LED Config:
- Data Pin
- Number of LEDs
- Status direction (left→right or right→left)
- Color Config:
- Global brightness
- Colors for printer states
- Breath and Wave effects
- Max bed temperature scale length
| Board | Full binary | OTA binary |
|---|---|---|
| ESP32 | ESP32_full.bin |
ESP32_ota.bin |
| ESP32-C3 | ESP32C3_full.bin |
ESP32C3_ota.bin |
| ESP32-S3 | ESP32S3_full.bin |
ESP32S3_ota.bin |
All contributions welcome:
- New effects and animations
- Support for additional boards and LEDs
- Web interface enhancements
- Code optimization
Create Pull Request or Issue on GitHub.
MIT License — free use, modification, and redistribution
Klipper LED State — это простой проект для создания красивой настраиваемой LED-статусной строки для 3D-принтера, управляемого Klipper, вдохновлённой H2D. Она отображает статус принтера, процесс печати, температуру стола и эффекты свечения: breath и wave.
Проект работает «из коробки», без изменения конфигурации принтера. Вся обработка эффектов выполняется на дешёвой плате ESP32, что делает реализацию недорогой. Прошивка получает статус принтера по Wi-Fi через WebSocket.
- ESP32 (классический)
- ESP32-C3
- ESP32-S3
Прошивка компилируется в Arduino IDE.
- Низкая себестоимость — эффекты выполняются на ESP32
- Поддержка любых адресных лент 5В (WS2812/NeoPixel)
- Автоматическое получение статуса принтера
- Настраиваемые Data Pin, тип ленты и количество светодиодов
- Настраиваемые цвета и эффекты с предпросмотром
- Отображение: статус печати, температура стола, состояние принтера
- Поддержка OTA
- Не требует редактирования конфигурации принтера
Компоненты: ESP32/ESP32-C3/ESP32-S3, лента 5В, питание, провода
Рекомендуется: конденсатор 1000µF 6.3V+, резистор 220–470Ω на DATA
Схема подключения: GND → GND, 5V → +5V, GPIOXX → DATA
Открыть проект в Arduino IDE, выбрать плату, скорость 115200, компилировать.
- Готовые бинарники: скачать
_full.binиз релизов и прошить через esptool.spacehuhn.com (адрес 0x00) - Через USB: «Upload» в Arduino IDE
- Через OTA:
_OTA.bin, Web-интерфейс → Update Firmware
Точка доступа: Klipper_State_LED_Config, пароль 12345678
Подключиться, перейти на 192.168.4.1, указать Wi-Fi или оставить точку доступа, IP принтера в Printer Settings.
LED Config: пин, количество, направление
Color Config: яркость, цвета, эффекты, длина температурной шкалы
| Плата | Полный бинарник | OTA бинарник |
|---|---|---|
| ESP32 | ESP32_full.bin |
ESP32_ota.bin |
| ESP32-C3 | ESP32C3_full.bin |
ESP32C3_ota.bin |
| ESP32-S3 | ESP32S3_full.bin |
ESP32S3_ota.bin |
Любые дополнения приветствуются: эффекты, платы, Web-интерфейс, оптимизация. Pull Request или Issue на GitHub.
MIT — свободное использование, модификация и распространение.






