github Keralots/BambuHelper v2.6

latest releases: v3.3, v3.2, v3.1...
one month ago

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 /config JSON 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-MD5 header

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_migrated flag

Don't miss a new BambuHelper release

NewReleases is sending notifications on new releases.