github Keralots/BambuHelper v2.5

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

BambuHelper v2.5 Release Notes

First time flashing a new device? Use the firmware file ending with -Full (e.g. BambuHelper-esp32s3-v2.5-Full.bin). The regular (non-Full) firmware is for OTA updates on devices that already have BambuHelper installed.

Power Monitoring via Tasmota (BETA)

  • Live watt display in the bottom status bar, alongside the layer counter
  • Two display modes: alternate between layer count and watts every 4s, or always show watts
  • Configurable poll interval - 10, 15, 20, or 30 seconds (Tasmota HTTP, no MQTT broker required)
  • Print energy summary - total kWh shown on the "Print Complete" screen (e.g. ⚡ 0.234 kWh)
  • Graceful fallback when plug is offline; disabled by default, zero impact when not configured
  • This feature is in beta - functionality may change in future releases

Screensaver brightness (NEW)

contributed by @theNailz in #16

  • Separate brightness for clock/screensaver screen - auto-dim when idle without affecting printing brightness
  • Respects night mode (lower value wins); included in settings export/import

ESP32-C3 Super Mini support (NEW)

contributed by @noliran in #13

  • New build target for ESP32-C3 Super Mini with ST7789 1.69" 240x240 display (pio run -e esp32c3)
  • Does not affect existing S3 or CYD builds
  • Includes automatic patch for a TFT_eSPI SPI host bug on C3

Web UI improvements

contributed by @theNailz in #18, #19, #20

  • XSS hardening - dynamic content is now HTML-escaped; status messages use textContent where possible
  • Meaningful error messages - descriptive toasts ("Save failed", "Network error", etc.) replace generic "Error"
  • Polling optimization - live stats and diagnostics timers stop when their sections are collapsed

Display settings redesign (NEW)

contributed by @theNailz in #24

  • Logical sub-sections: Brightness, After Print Completes, Screen, Clock Settings, Gauge Colors
  • Single "When print finishes" dropdown replaces the old timeout + checkbox combo - impossible to create broken combinations, fully backwards-compatible

Timezone and date format improvements (NEW)

contributed by @theNailz in #22

  • Timezone dropdown in Windows-style format, sorted by UTC offset
  • Timezone migrates safely across database reorders by matching POSIX TZ string
  • Date format selection - 6 options (DD.MM.YYYY, MM/DD/YYYY, YYYY-MM-DD, etc.)

Brightness slider UX fix

contributed by @theNailz in #25

  • Night mode and screensaver sliders no longer change live brightness while dragging
  • All brightness sliders snap in increments of 5

Security hardening

contributed by @theNailz in #26

  • Credentials cleared from RAM before factory reset; cloud token zeroed after MQTT connect
  • TLS certificate verification enabled for cloud API calls (falls back to unverified if CA handshake fails)

A huge thank you to @theNailz for yet another round of quality contributions to this release. From security hardening to UX improvements to real bug fixes - the kind of thoughtful, well-tested work that makes this project better for everyone. It means a lot.


Stability and safety fixes

contributed by @theNailz in #32, #33

  • HTTP client leak fixed in cloud API calls
  • Unsigned underflow in AMS search loop guarded against out-of-bounds read
  • Array bounds enforced in Pong screensaver with static_assert
  • Null-pointer crash in gauge cache fixed (FIFO eviction instead of nullptr)
  • DNS server leak fixed when transitioning from AP to STA mode
  • millis() == 0 sentinel replaced with explicit flags (would misfire after ~49 days)
  • Bounds check added to displayedPrinter() and stale fetch guard for printer tab switching

WiFi RSSI in /debug endpoint

contributed by @theNailz in #31

  • WiFi signal strength (dBm) now included in GET /debug JSON response

Fix: clock screen not appearing when finish timeout is 0

contributed by @theNailz in #23

  • finishDisplayMins == 0 with clock enabled now correctly transitions to clock instead of staying on the finish screen

Fix: display going blank when applying settings in clock/screensaver mode

contributed by @theNailz in #29

  • Applying display settings while clock/screensaver was active caused a black screen for up to 60s
  • Fixed: timezone only reconfigured when changed; RTC fallback added; display throttle reset on apply

Fix: H2 series printers not working in LAN mode

  • H2S/H2C/H2D in LAN mode showed "connected" but never received data
  • MQTT buffer increased from 16KB to 40KB to handle H2's larger payloads (~33KB)
  • H2 LAN mode requires both LAN-only mode and Developer Mode on the printer

Fix: false "Ready" screen during cloud printing

  • Cloud printers could briefly show "Ready" mid-print when the broker stopped pushing updates for >5 minutes
  • Recovery pushall is now sent when the stale timer fires during an active print; all MQTT messages (not just print objects) now reset the stale timer

Don't miss a new BambuHelper release

NewReleases is sending notifications on new releases.