BambuHelper v2.6 Release Notes
New features
Configurable gauge layout (per-printer)
- Choose which widget goes in each of the 6 gauge slots on the printing screen - any combination of Progress, Nozzle Temp, Bed Temp, Part Fan, Aux Fan, Chamber Fan, Chamber Temp, Heatbreak Fan, Clock, or Empty
- Layout is configured per printer, useful when running different models (e.g. A1 without chamber fan vs P1S with all fans)
- New gauge types: Chamber Temp, Heatbreak Fan, and Clock (HH:MM widget)
- Dedicated color settings for the new gauge types in the Display section
Inspired by @i-snake-z BambuHelper Fork.
Idle clock improvements
- Flicker-free updates - only changed digits are redrawn
- Blinking colon - 500ms on/off between hours and minutes
- Customizable clock colors - new "Time color" and "Date color" pickers, with per-theme defaults
Inspired by @i-snake-z BambuHelper Fork.
Button click sound (buzzer feedback)
- New optional "Click sound when button pressed" checkbox in buzzer settings - audible feedback for capacitive touch buttons (TTP223) that have no physical click
- Only appears when both button and buzzer are enabled
- Short 4kHz tick (8ms), ignores quiet hours since it's user-initiated
CYD / ESP32-C3: single printer limit
- CYD and ESP32-C3 boards are now limited to 1 printer - not enough RAM for two simultaneous TLS+MQTT connections
- Web UI hides "Printer 2" tab on these boards with an info banner
- ESP32-S3 is unaffected and continues to support 2 printers
Bug fixes
Cloud mode: stale "Ready" status for powered-off printers
- Display previously kept showing "Ready" with cached temperatures when a cloud printer was powered off
- After 5 minutes without updates, cached telemetry is cleared and display shows "Waiting..." instead
- Button press on "Waiting..." triggers a manual cloud refresh; "Press to refresh" hint appears after 60 seconds
Stale FINISH recovery for silent printers
- Fixed printers getting stuck on "Print Complete" with frozen data if MQTT updates stopped after finishing
- Recovery pushall is attempted first, then state is cleared to "Waiting..." if the printer stays silent
Slow screen wake-up on button press
- Waking the display from sleep/clock took 3-4 seconds because MQTT reconnect (TLS handshake / TCP test) blocked the main loop
- Reordered main loop: button handling and display update now run before MQTT
- Disconnected MQTT sessions skip reconnect on the wake iteration so the screen lights up instantly
- Reduced LAN TCP reachability timeout from 3s to 1s (on-network printers respond in <50ms)
Finish screen timeout reliability
- Fixed "display off / show clock after print complete" timeout failing on the FINISH screen
- Timeout now works at the screen-state level regardless of WiFi/MQTT connection status
Breakout clock (Pong) fixes
- Customizable time/date colors from Display Settings
- Respects selected date format (all 6 options)
- Fixed ball getting stuck in an infinite bounce loop between bricks
- 12h/24h toggle now properly resets the Breakout clock state
Print Complete: Tasmota power display
- Finish screen now shows live power draw in watts alongside the per-print kWh total
- Fixed Tasmota data not returning after temporary network interruption
Stability & internals
Security: credentials removed from HTML and API
contributed by @theNailz in #39
- WiFi password and access code no longer exposed in page source or DevTools
- Access code removed from
/configJSON API response
WiFi reconnection with exponential backoff
contributed by @theNailz in #40
- 3-phase backoff: 10s (5x) -> 30s (5x) -> 60s (indefinite), replaces "5 attempts then permanent AP mode"
- AP+STA coexistence - config portal stays accessible while STA probing continues
- Automatic STA recovery every 2 minutes from AP mode
Stuck connecting screen recovery
contributed by @theNailz in #41
- Display recovers to clock/idle after 60 seconds stuck on "Connecting" instead of hanging indefinitely
OTA firmware size validation
contributed by @theNailz in #42
- Validates firmware size against OTA partition boundary before writing
- Optional MD5 checksum verification via
X-MD5header
Web interface: streamed template rendering
contributed by @theNailz in #38
- Settings page streamed from flash instead of copied into a ~64KB heap buffer
- Peak heap usage drops from ~130KB to ~2KB, fixing silent failures on ESP32-C3
- Fixed empty timezone dropdown on low-RAM boards
Other
contributed by @theNailz in #38, #43
- Non-blocking web server restarts (no more watchdog resets during save/OTA)
- Buzzer quiet hour input validation
- NVS timezone migration consolidated into a single transaction with
tz_migratedflag