u/Literally_A_Brain

pycentauri v0.6.0: the open source Centauri Carbon toolkit now supports the CC2 and Canvas (still 100% local, no cloud)
▲ 41 r/ElegooCentauriCarbon+1 crossposts

pycentauri v0.6.0: the open source Centauri Carbon toolkit now supports the CC2 and Canvas (still 100% local, no cloud)

A couple months back I posted pycentauri, a local network toolkit for the original Centauri Carbon. I recently got a CC2 with the Canvas, spent a week reverse engineering its protocol, and v0.6.0 now supports both printers from the same package.

UI Screenshot

The CC2 turned out to be a completely different animal: MQTT instead of WebSockets, a different command set, token auth, camera on a different port. pycentauri auto-detects which model you're pointing at, so everything works the same way on either printer.

What you get (both printers):

  • Web dashboard: live camera, temps, progress/ETA, pause/resume/stop, speed mode (silent/balanced/sport/ludicrous), fan and heater control, all from any browser on your LAN
  • CLI: centauri status, centauri watch, centauri snapshot, full print control
  • Python library (async) if you want to build your own stuff
  • RTSP bridge: re-streams the webcam as H.264 for Home Assistant, Frigate, VLC, or your NVR
  • MCP server: lets AI agents (Claude, Cursor, etc.) monitor your printer and literally see the camera feed
  • REST API with OpenAPI docs for anything else

New and CC2 only:

  • Canvas multi-filament panel: every tray's filament, color, temp range, loaded status, plus an auto-refill toggle
  • Live head speed readout (matches the printer screen)
  • Filament runout sensor state
  • Canvas support coming for CC1 soon

For the protocol nerds:

Everything learned the hard way is documented in the repo's PROTOCOL.md with dates and firmware versions. Highlights: the CC2 silently expires your MQTT session after about 6 minutes unless you send an app-level ping, its camera is an unauthenticated MJPEG stream on port 8080, both printers only accept exactly four print speed values, and the CC1's status push scheduler can go dormant at idle in a way that survives reboots. If you're building your own integration, this doc may help.

No cloud account, no Elegoo servers, nothing leaves your LAN. Apache 2.0.

Install: pip install "pycentauri[server]" then centauri server --host <printer-ip> (add --access-code <code> for a CC2, it's on the printer screen).

GitHub: https://github.com/bjan/pycentauri PyPI: https://pypi.org/project/pycentauri/

u/Literally_A_Brain — 7 hours ago