dennis-guse.de
Built Build project

Snapmaker status bar

There is now a light bar under the print bed of my Snapmaker U1 that shows me with light how far the print has got. The parts come from drc85, and HyperLED controls it.

What it is

A print often takes hours. The bar shows the progress as a bar that grows from left to right. You can see it from a few meters away, and I find that really handy.

The idea and the printed parts come from drc85. A HyperLED board running my Klipper Status plugin controls the bar.

Key facts
PrinterSnapmaker U1
FirmwareExtended Firmware by paxx12
DisplayProgress bar under the print bed
ControllerHyperLED on ESP32-C6 Super Mini
SoftwareKlipper Status plugin
Printed partsby drc85 (MakerWorld)
Mounting3M VHB 5952, double-sided
CableUSB, 1 m, routed so it cannot jam
01 — Result

What it looks like in use

The bar sticks well under the print bed. This needs a double-sided tape that can withstand high temperatures. I chose one made with the material 3M VHB 5952.

When sticking it on, make sure the cable cannot jam anywhere, so that the print bed can always move freely. I simply looked at how the print bed's heater cable is routed.

The video shows a whole print as a time-lapse (10x) and what the bar shows at each point. The colors for each state can be chosen freely in the plugin. See the description of my plugin for that.

A whole print as a time-lapse: 1:23 minutes instead of 13:52 minutes, so ten times faster.
What the bar shows (the plugin's default settings)
Idlea dim dark blue
Preheatingan orange bar that breathes slowly and gets longer as the heaters get closer to their targets
Printinga green bar that grows with the progress
Pausedthe whole bar breathes yellow
Finishedthe whole bar glows cyan until the printer goes idle
Errorthe whole bar flashes red
No connectionbar off, for example when the printer is switched off
02 — Build

Built in five steps

1. Print the parts

I downloaded the STL files by drc85 from makerworld.com and printed them. I deliberately chose the version that mounts under the bed, because all the other spots on my printer are already taken. I printed them with the standard print profile of the Snapmaker U1, in PLA. I will report back if PLA does not handle the temperatures so well.

Three black 3D-printed parts on a blue workshop mat: a housing with a white strip and two holder parts.
The finished printed set.

2. Solder the LED strip

I soldered the resistor directly to the LED strip, because I only had small SMD resistors at hand. I then had to bend everything backwards so the wires fit through the opening in the housing.

The wires I chose are quite thick, you can easily use thinner ones. The Snapmaker's USB port only supplies 0.5 A at 5 V.

As the brain I used an ESP32-C6 Super Mini from Waveshare. It fits into the housing nicely, so I do not have to find a place for it somewhere else.

An LED strip in a helping hand with three soldered wires in red, black and white.
The LED strip with soldered wires.

Wiring without a power supply

The ESP32 is powered through the Snapmaker's USB port, I do not use an external power supply. The LED strip gets its power from the 5V and GND pins of the ESP32-C6. The data signal goes from the ESP32 through a level shifter (74AHCT125), which lifts it from 3.3 V to 5 V, and through the 330 Ω resistor to the strip's data input. At the start of the strip a 1000 µF capacitor sits between 5 V and GND.

Wiring diagram: the Snapmaker's USB port powers the ESP32-C6. Its 5 V and GND pins power the LED strip. A capacitor sits between 5 V and GND. The data pin goes through a level shifter and a resistor to the data input.
My wiring: powered by USB. The general wiring diagram with a power supply is in the HyperLED wiki.

3. Fit the strip

There is not much room, especially if you chose such a large cross-section for the wires as I did. With some careful pressing it works quite well, though.

The whole controller sits in the rear chamber, and I carefully pressed the LED strip into place with tweezers.

A black holder part with an LED strip in it, with red, black and white wires running next to it.
The LED strip in the holder.

4. Attach with tape

The parts get double-sided 3M VHB 5952 tape. Since the build chamber gets hot, the tape should be suitable for that if you choose a different one.

Two black holder parts with red 3M VHB tape and a USB cable next to them.
The parts with tape.

5. Route the cable

The USB cable (1 m) runs along the back. The green line in the photo shows its path. I fastened the cable at the bottom to the other cables with a cable tie. Make sure there is enough slack in the cable and that it cannot get caught anywhere. I then ran it along under the power supply and out through the opening for the feeders' ribbon cable.

The cable is then long enough to plug it into the USB port.

A look into the back of the printer with circuit board and cables. A green line marks the path of a 1 meter USB cable.
Cable routing inside the printer.
03 — Printed parts

Where the printed parts come from

The printed parts come from drc85, not from me. You find them on MakerWorld: Snapmaker U1 SnapStatus LED Status Bar. The source code is on GitHub.

His model is made for WLED. In my build, HyperLED controls the bar.

04 — Control

HyperLED and the plugin

A HyperLED board sits behind the bar. My Klipper Status plugin asks the printer for its state every five seconds and turns it into the picture on the bar. More on the plugin's own page.

Warning

On the Snapmaker U1 the plugin only works with the Extended Firmware by paxx12. It comes from the community and not from Snapmaker. Read its notes before you install it.

05 — Ingredients

What you need

  • A Snapmaker U1 with the Extended Firmware by paxx12.
  • The 3D-printed parts by drc85. I chose the version that mounts under the print bed.
  • An LED strip of type WS2812B.
  • A HyperLED board with firmware 0.3.000 or newer (mine is an ESP32-C6 Super Mini from Waveshare) and the Klipper Status plugin.
  • Printer and board on the same network. The plugin asks the printer over the network.
  • A 74AHCT125 level shifter, a 330 Ω resistor for the data line and a 1000 µF capacitor.
  • Soldering gear, wires, a USB cable (1 m) and heat-resistant tape such as 3M VHB 5952.
Tip

If the LED strip hangs on USB without a strong supply of its own, LEDs behind the end of the bar can flash briefly. The resistor in the data line, the capacitor and the level shifter help against that.

Related

More projects

DG-001Active

HyperLED

LED controller for ESP32-S3 boards. Inspired by the WLED project, but with different features.

  • ESP32-S3
  • WS2812B