Round ESP32-S3 printer companion for Bambu Lab with a circular display, touch setup, hybrid cloud/local routing, and the current code paths for cover preview, camera snapshots, and battery-aware operation.
- MakerWorld model:
https://makerworld.com/de/models/2517189-printsphere-bambu-status-display-standalone-1-75 - End-user setup guide:
MAKERWORLD.md
- ESP-IDF
v5.5.x - LVGL
v9.4.0 - Waveshare ESP32-S3 AMOLED 1.75
- AXP2101 PMU integration via
XPowersLib - no Home Assistant required
- official Waveshare BSP for display, touch, and LVGL
- NVS-based configuration storage
AP+STAWi-Fi manager- local setup portal on
esp_http_server - Web Config PIN unlock flow from the display
- Bambu Cloud login flow with email/password plus email-code or 2FA handling
- hybrid routing logic between Bambu Cloud and the local printer path
- cloud MQTT status plus metadata / cover preview handling
- local MQTT status path with live reconnect logic from the web portal
- embedded Bambu CA bundle for local MQTT TLS verification
- merged status, metrics, temperatures, errors, and HMS data depending on model and source availability
- cloud cover image/title page in the UI where available
- local camera snapshot page with tap refresh and periodic refresh while open
- arc color tuning from Web Config with live preview behavior
- chamber light toggle path on supported models
- battery and USB status with power-aware behavior
- on-device error text lookup when storage-backed lookup is available
- Flash
release/firmware.bin. - On first boot, the device starts a setup AP:
- SSID:
PrintSphere-Setup - password:
printsphere
- SSID:
- Open
http://192.168.4.1and save your home Wi-Fi. - After the reboot, reopen Web Config on the device IP in your home network.
- Hold anywhere on the display for about one second to request a Web Config PIN.
- Enter the six-digit PIN in the browser.
- PIN lifetime: about 2 minutes
- unlocked browser session: about 10 minutes
- Connect Bambu Cloud.
- This is currently the expected real-world setup path.
- Bambu email/password plus optional email code or 2FA code are supported.
- Optionally connect the local printer path:
- printer IP or hostname
- printer serial number
- access code
Cloud and local credentials can usually be applied live from Web Config without another reboot. Changing the connection mode itself still restarts the device.
Hybrid: Current default recommendation. PrintSphere tries to combine cloud and local data, picks the better active path at runtime, and still uses the local camera when available.Cloud only: Cloud monitoring and cover preview only. Local MQTT and the local camera page are disabled.Local only: Mainly a technical or experimental mode at the moment. The current end-user setup still assumes a working Bambu Cloud login, and the cloud cover page is not used in this mode.
- Cloud can now also carry progress, remaining time, layers, and temperatures on many models.
- In
Hybrid, the current code prefers cloud status forP2Sand theH2family. - The current code has local status paths for:
A1,A1 Mini,P1P,P1S,X1,X1C,X1E P2Slocal status is not supported.- The
H2family requires Developer Mode for local status. - The local JPEG camera path is currently written for:
A1,A1 Mini,P1P,P1S - RTSP-style camera handling is recognized for:
P2S,H2C,H2D,H2D Pro,H2S,X1,X1C,X1Ebut that path will not be implemented as the hardware is not capable of displaying video live feeds with more that 0.5fps. - The code currently exposes chamber light control on supported
P1S,P2,H2, andX1models.
- Page 1: can show progress ring, lifecycle state, job name, temperatures, layers, remaining time, Wi-Fi, battery, and USB state
- Page 2: can show cloud cover preview and title
- Page 3: can show local camera snapshots when that path is working
- Long-press on the display: requests a Web Config PIN
- Tap on the camera page: requests a refresh of the current image
- Tap the center logo on page 1 on supported printers: requests a chamber light toggle
Web Config currently exposes sections for:
Step 1 - Wi-FiConnection ModeStep 2 - Bambu CloudStep 3 - Local Printer PathArc Colors
Arc colors are intended to preview live immediately and can be saved without restarting the device.
- current end-user setup still assumes a working Bambu Cloud login
- local camera and MJPEG/RTSP work are not fully finished yet
- cloud/local behavior on newer families still needs broader real-world validation
P2Slocal status is not supported in the current codeH2local status requires Developer Mode- local MQTT TLS now uses an embedded Bambu CA bundle
- most hands-on testing so far has been on
P1SandP1P
release/firmware.bin is the merged initial-flash image for empty devices.
The newest merged image stays in /release/; older versioned builds can be moved to /release/archive/.
web.esphome.io
https://web.esphome.io/
- connect USB
- choose the COM port
- do not use "Prepare for first use"
- install
firmware.bindirectly
espboards.dev
https://www.espboards.dev/tools/program/
- write
firmware.binto address0x0
esptool-js
https://espressif.github.io/esptool-js/
- write
firmware.binto address0x0
The bootloader is already included in the merged image.
If you clone the repo and build it yourself:
idf.py -p PORT flashAlternatively, write the merged image directly with esptool:
esptool.exe --chip esp32s3 --port PORT write_flash 0x0 release/firmware.bin
