Skip to main content

Elegoo 3D printers smart home integration, free and open source

Elegoo 3D printers integration for Gladys Assistant

Elegoo SDCP 3D printers (Saturn, Mars, Centauri Carbon): print state and temperatures, locally.

Follow your Elegoo 3D printers in Gladys, on your local network, without the Elegoo cloud: print state, progress, layers, time elapsed and remaining, file name, temperatures and fans, scene triggers when a print finishes, fails or is paused, and, if you allow it, pause / resume / stop from a scene.

Unofficial integration, not affiliated with Elegoo.

Never tested on a real printer. This first version has never been tested on a real printer: it follows Elegoo's public SDCP protocol and the Home Assistant integration elegoo-homeassistant, and was checked against simulated printers only. Feedback is welcome on the Gladys forum.

Compatible printers​

The Elegoo printers that speak SDCP V3 over a local WebSocket (port 3030):

  • resin: Saturn 4 Ultra, Saturn 4 Ultra 16K, Mars 5 Ultra (and the other SDCP V3 Saturn / Mars models);
  • FDM: Centauri Carbon.

Not supported: the Saturn 3 Ultra and the other printers that speak SDCP V1 over MQTT (the integration recognises them and says so in its status), the Centauri Carbon 2 (another protocol), and the printers without network.

Setup​

  1. Give each printer a fixed IP address in your router (DHCP reservation). The address is shown on the printer screen, in the network settings.
  2. In Gladys, open the Elegoo integration, type the addresses in IP addresses of the printers (separated by commas), and save. This is the reliable way: the integration runs in a container that does not hear the network broadcasts.
  3. Or click Find the printers: Gladys sends the SDCP discovery message (UDP port 3000) on your network and lists the printers that answer. If it finds nothing, type the addresses.
  4. The printers appear in the Discovery tab once they sent their state: add them.

A printer accepts only a few connections at once (Elegoo app, slicer, Home Assistant...): if it does not answer, close one of them.

What Gladys shows​

FeatureNotes
Print stateIdle, Preparing, Printing, Pausing, Paused, Stopping, Stopped, Completed, Error, Busy
Machine stateWhat the printer does (printing, file transfer, self-test, leveling...)
Progress (%)Reported by the printer, or computed from the layers
Current layer, total layers
Time elapsed, time remainingIn minutes
FileThe file being printed (the last one when idle)
Error, error code0 and "None" when all is well
TemperaturesFDM: nozzle, bed, enclosure; resin: UV LEDs, and the vat if the printer has a sensor
FansFDM: model, auxiliary and enclosure fans (%)

Each printer only gets the temperatures and fans it reports. Temperatures and fans are sent at most once a minute; the other values as soon as they change. The printers send their changes by themselves, and Gladys also asks for their state every Refresh interval (30 s by default).

The Language of the names and states applies to the feature names of the printers added afterwards and to the texts (print state, error).

Scenes​

Triggers, each with the printer to watch:

  • Elegoo print finished: a print seen in progress ends completed (once per print). Variable: file.
  • Elegoo print error: an error status, a print error, or an error message of the printer. Variables: file, error, error_code.
  • Elegoo print paused: the print goes into pause, whoever paused it. Variable: file.

Only changes seen while Gladys is connected count: a print that finished while the printer or Gladys was off fires nothing.

The Control an Elegoo print scene action pauses, resumes or stops the current print. It is refused until you tick Allow pause, resume and stop from Gladys: anyone who can edit the scenes of your Gladys could then stop a print.

Safety rules:

  • Gladys never starts a print and never moves the axes: those commands do not exist in the integration.
  • Before each command, the printer is asked for its state. Without a fresh answer, nothing is sent. The command is also refused if it does not fit: pause only while printing, resume only while paused, stop only during a print.
  • One command at a time per printer. A command the printer does not confirm within 5 seconds is reported as such: check the printer, it may have been applied.

Troubleshooting​

  • "No answer yet from ...": the printer is off, the address is wrong, or all its connections are taken. Check that you can reach it from the Gladys machine. The integration tries again by itself, waiting a little longer each time (up to 5 minutes).
  • The search finds nothing: type the addresses; the discovery depends on the network between Gladys and the printers.
  • A printer changed address: replace the old address with the new one in the configuration; the printer is recognised by its board id, its device and history are kept.
  • To forget a printer, remove its address and delete its device.

Privacy​

Everything stays on your local network: Gladys talks to the printers directly (WebSocket on port 3030, UDP on port 3000). Nothing is sent to Elegoo or to anyone else.

Configuration settings​

These are the settings Elegoo 3D printers asks for in its configuration screen in Gladys.

SettingTypeRequiredDescription
Your Elegoo printers, on your local networksectionNoFor the Elegoo printers that speak SDCP V3 on the local network: resin (Saturn 4 Ultra and 16K, Mars 5 Ultra; not the Saturn 3 Ultra, SDCP V1) and FDM (Centauri Carbon). Gladys reads the print state, progress, layers, times, file name, temperatures and fans through the WebSocket of each printer (port 3030), without the Elegoo cloud. Give each printer a fixed IP address in your router and type it below: it is the reliable way. "Find the printers" may also find them. A printer accepts only a few connections at once (Elegoo app, slicer...). Never tested on a real printer yet. Unofficial, not affiliated with Elegoo.
IP addresses of the printersstringNoSeparated by commas, for example 192.168.1.50, 192.168.1.51. Shown on the printer screen (network settings).
Refresh interval (s)numberNoThe printers send their changes by themselves; Gladys also asks for their state this often, in seconds.
Language of the names and statesselectNoUsed for the feature names of the printers added from now on, and for the texts (print state, error).
Print controlsectionNoThe "Control an Elegoo print" scene action can pause, resume or stop the current print. It is off by default: anyone who can edit the scenes of your Gladys could then stop a print. Gladys never starts a print and never moves the axes. Before each command the printer is asked for its state, and the command is refused if that state is unknown or does not fit (no pause unless it prints, no resume unless paused).
Allow pause, resume and stop from GladysbooleanNo

How to install Elegoo 3D printers in Gladys​

  1. In Gladys, open Integrations: Elegoo 3D printers appears in the catalog, next to the native integrations, with a community badge.
  2. Click Install. Gladys pulls the Docker image (ghcr.io/lm1lc3n7/gladys-elegoo:0.1.1), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration).
  3. Open the Configuration screen of the integration, fill in the settings, and save.
  4. You can also install it directly from its repository URL: https://github.com/LM1LC3N7/gladys-elegoo.

Elegoo 3D printers requires Gladys >=5.1.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.

Not running Gladys yet? It is free and open source: follow the installation guide to get started.

About external integrations​

Elegoo 3D printers is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by LM1LC3N7, not by the Gladys core team.

Subscribe to the Gladys Assistant newsletter

A few emails per month about new releases and project news. Sent by Pierre-Gilles Leymarie, founder of the project. Unsubscribe anytime 🙂