Snapmaker U1 WLED Status Bridge – Real-Time Printer Status Without a Raspberry Pi

I wanted an easy way to see what my Snapmaker U1 was doing from across the room, so I built an open-source WLED status bridge that runs directly on the U1.

No Raspberry Pi, Home Assistant, external PC, or cloud service is required once installed.

The bridge reads the U1’s local Moonraker data and translates the printer state into WLED lighting.

Status Indicators

  • White breathing — Idle
  • Orange breathing — Bed heating
  • Red-orange breathing — Hotend heating
  • Orange-red breathing — Bed + hotend heating
  • Green breathing — Printing
  • Yellow/orange breathing — Paused
  • Solid green — Print complete
  • Solid red — Cancelled
  • Fast red — Error

During printing, the green breathing rate increases as the print progresses, giving you a rough visual indication of print progress from across the room.

Improved Warmup Detection in v1.0.1

One of the things I wanted to get right was the initial heating sequence.

The U1 can report that it is printing while the bed and hotend are still coming up to temperature. Simply using the printer state would therefore turn the LEDs green too early.

Version 1.0.1 tracks the initial warmup separately.

While the U1 is warming up, the LEDs continue showing the appropriate bed/hotend heating status. They switch to green only after the commanded heaters reach their target temperatures.

Once printing has started, normal temperature fluctuations do not cause the LEDs to jump back into the heating colors.

The bridge also monitors the bed and all four U1 extruders.

How It Works

Snapmaker U1 → Local Moonraker API → Python Bridge → WLED JSON API → LED Strip

The Python bridge runs directly on the Snapmaker U1.

It queries the local Moonraker API for printer state, heater information, and print progress. It then sends the appropriate commands to a WLED controller over the local network.

After installation, the U1 handles the bridge itself.

Why I Built It

I wanted something that would let me walk past the printer and immediately tell what it was doing without opening an app or checking the U1 screen.

I also didn’t want to dedicate another Raspberry Pi or computer just to control the status lighting.

Since the U1 already exposes useful printer information locally, it made more sense to let the printer drive the status lights itself.

Reliability

The bridge is designed to keep running without user intervention.

It includes:

  • Automatic startup with the U1
  • Duplicate-process prevention
  • WLED connection retries
  • Moonraker failure handling
  • Startup-state handling
  • Firmware-update repair script
  • Service start/stop/restart/status commands
  • Uninstall script
  • Automated tests for the printer-state logic

If Moonraker temporarily becomes unavailable, the bridge preserves the current LED state instead of displaying a false printer status.

Hardware, I Tested

My setup uses:

  • Snapmaker U1
  • BIQU PopStation Mini
  • WLED-compatible controller
  • Approximately 3 ft of addressable RGB LEDs
  • 20 LEDs configured in WLED

The LED strip is mounted underneath my PopStation Mini.

The software isn’t tied to the PopStation, though. The PopStation is simply where I chose to mount the LEDs.

Other WLED-compatible controllers and addressable LED installations should work as well.

Open Source

I’ve released the project on GitHub with the source code, installer, repair tools, documentation, and testing information:

GitHub:

The goal is to make it reproducible and easy for other U1 owners to modify.

I’d especially like to hear from anyone who tries it with a different WLED controller or LED setup.

I’ll also be adding photos and a demonstration video of the system running on my U1.


Important: This is an unofficial community modification and is not affiliated with or endorsed by Snapmaker. Installation requires root/SSH access to the U1 and modifies printer startup configuration. Make backups and understand the risks before modifying your printer.

1 Like

Hi, thank you very much for sharing this with us.:grinning_face:

By any chance, do you have a demo video that shows how it works properly?

I also saw a similar project in our Facebook group last week — it looked quite interesting!

Thanks for asking! Here’s a video of the WLED Status Bridge running on my U1.

The bridge runs directly on the U1 and reads the printer state through Moonraker. The LED colors change based on heating, printing, pause, completion, and error states. During printing, the green breathing rate also increases as the print progresses.

I’ll add more demonstration footage as I continue testing it.

WLED in the back of the PopStation Mini

The 3-foot self-adhesive led runs under the Popstation Mini.

Video of heating then turning green when done and starting print is on my GitHub since I can’t add attachments.

All parts purchased online.

Source and installation instructions are on GitHub:
https://github.com/Dr-Hack-N-Sniff/SnapMaker-U1-Status-light

1 Like

Update – v1.1.0: Power-State-Aware WLED Shutdown

I’ve finished testing the next update to the Snapmaker U1 WLED Status Bridge.

What’s new in v1.1.0

The bridge can now turn the WLED LEDs off during a normal U1 shutdown or reboot.

Previously, because the WLED controller has its own power supply, it could remain displaying its last status even after the U1 shut down.

With v1.1.0:

  • U1 reboot: LEDs turn off during shutdown and automatically return to the correct printer status after the U1 finishes booting.
  • U1 software shutdown: LEDs turn off and remain off.
  • U1 startup: the bridge automatically starts again and restores the current status.
  • Service restart: the bridge correctly restores the current printer status.

I physically tested the complete reboot and shutdown/startup sequences on my U1.

One limitation

There is still one situation that v1.1.0 cannot detect.

If you simply flip the U1’s physical power switch, Linux immediately loses power and never gets an opportunity to tell the separately powered WLED controller to turn its LEDs off.

That leads directly to what I’m working on next.

v1.2.0 – In Development

For v1.2, I’m investigating a software heartbeat/failsafe between the U1 and WLED.

The goal is:

U1 running → heartbeat present → status lights operate normally

U1 physically switched off → heartbeat disappears → WLED automatically turns the LEDs off

The important part is that I want to accomplish this using standard WLED and software only, without requiring users to buy a relay, smart plug, Raspberry Pi, or additional hardware.

That is still under development and testing, so it is not part of v1.1.0 yet.

Thanks to everyone following the project and providing feedback. Finding these real-world edge cases is exactly what is helping improve it.

GitHub:
https://github.com/Dr-Hack-N-Sniff/SnapMaker-U1-Status-light

Update: v1.2.0 – Power-Off Failsafe

I’ve released v1.2.0 of the Snapmaker U1 WLED Status Bridge.

The biggest improvement is something I wanted from the beginning: the WLED lights now know when the U1 has been physically powered off.

What changed in v1.2.0

The U1 now sends a lightweight heartbeat to the WLED controller every 3 seconds.

If the WLED controller stops receiving that heartbeat for about 10 seconds:

U1 powered off → heartbeat stops → WLED LEDs automatically turn off

When the U1 is powered back on:

U1 boots → heartbeat returns → normal printer status lighting returns automatically

I tested this using the physical power switch on the U1, and it works as intended.

The heartbeat runs separately from the normal status bridge, so the existing status lighting still controls the LEDs normally:

  • White breathing — Idle
  • Orange/red breathing — Heating
  • Green breathing — Printing
  • Yellow/orange — Paused
  • Green — Complete
  • Red — Cancelled/Error

No Extra Hardware

The failsafe does not require a Raspberry Pi, Home Assistant server, additional sensors, or an always-on PC.

v1.2.0 includes a small custom WLED firmware modification that provides the heartbeat watchdog.

For normal installation, there is no compiling or ESP32 programming required. The supplied firmware installs through the regular WLED web interface:

Config → Security & Updates → Update WLED

I recommend backing up your WLED configuration and presets before updating.

New Installations

v1.2.0 is now the recommended version for new installations.

You do not need to install v1.1 first.

Get your WLED controller working normally, then follow the v1.2 Quick Start instructions.

Existing v1.1 users can upgrade directly to v1.2.0. v1.1.0 remains available as a rollback option.

Download v1.2.0

GitHub v1.2.0 Release:

The release includes both the prebuilt WLED firmware and the complete v1.2.0 installation package.

If people test it on other WLED ESP32 controllers or different LED setups, I’d be interested in hearing what works.

What’s Next? Exploring v1.3 – Official U1 Top Cover Integration

With v1.2.0 now complete, released, and physically tested, I’ve started thinking about where to take the U1 WLED Status Bridge next.

One direction I’m interested in exploring for v1.3 is integration with the official Snapmaker U1 Top Cover.

Some of the ideas I’m considering are:

  • Integrated WLED chamber/status lighting
  • Normal white chamber/work lighting
  • Print-progress visualization using WLED segments
  • A printable, no-drill LED mounting system designed specifically for the production Top Cover
  • Keeping the v1.2 power-off failsafe so the lighting automatically shuts down when the U1 is switched off

Nothing here is finalized yet. I want to work with the actual production hardware before deciding exactly what v1.3 should include.

I ordered my official U1 Top Cover back in March 2026 and am waiting for the production unit to ship. Once mine arrives, I’ll take measurements, test LED placement, and start experimenting with the integration.

Until then, I’m interested in hearing from other U1 owners about what they’d like to see from a Top Cover lighting integration.

For now, v1.2.0 remains the current recommended release.

GitHub:

v1.2.1 Maintenance Update

I released v1.2.1 with some improvements to make installation, repair, and uninstall safer, especially after future Snapmaker firmware updates.

If you’re already running v1.2.0, you do not need to re-flash WLED. The watchdog firmware and status-light behavior are unchanged.

The repair process now validates the U1 boot configuration before modifying it and preserves unrelated startup hooks.

v1.2.1 is available on the GitHub Releases page:

Thanks to everyone who’s been testing and following the project.

1 Like

I made my own using ESP32 and LED I bought from AliE.

Do you use custom firmware?
In my setup WLED polls Moonraker’s status API. Extended firmware unlocked that API, don’t think they are unlocked by default.

I don’t have any python script running

  • Green status bar that matches the progress
  • Finish sequence
  • Orange candle like animation during pre-print stage or general heat up
  • Also additional error state.

Also during printing I keep one section as bright white as chamber light.

2 Likes