Skip to content

v3.0.0-preview.1

Pre-release
Pre-release

Choose a tag to compare

@swingstate swingstate released this 16 Jun 06:16

TopBand BMS Gateway 3.0 Preview

Preview release — please test before relying on it in production. This is a public preview of the V3.0 firmware ahead of the final 3.0.0 release. It is feature-complete and has run stably on a 3-pack production system, but it is shared for wider testing and feedback first. Flash it on a system you can monitor, keep a backup of your config, and verify your safety limits.

What this is
V3.0 is a complete, ground-up rewrite of the TopBand BMS Gateway — from the original single-file Arduino sketch to a modular ESP-IDF native firmware for the ESP32-S3 (See requirements). It monitors TopBand LiFePO4 packs over RS485 and bridges them to inverters (Victron / Pylontech / SMA) over CAN, to DTU (such as OpenDTU) via MQTT, with a full web interface, Home Assistant integration, and external notifications.

Bildschirmfoto 2026-06-16 um 08 12 43

Highlights

  • Multi-pack monitoring over RS485 with per-pack and per-cell data
  • Three inverter CAN protocols: Victron, Pylontech, SMA
  • Battery config modes: Auto (follows the pack's live limits, including temperature-dependent discharge current), Auto + Safety Margin, and Manual — with hard LiFePO4 sanity caps (cell max never exceeds 3.65 V in any mode)
  • Web dashboard with live charts (voltage, SOC, power, temperature, and persistent cell-drift history), energy tracking, and NTP time
  • MQTT with per-pack/per-cell topics and Home Assistant auto-discovery (gateway + packs as sub-devices)
  • External notifications (Telegram) with selectable alerts, begin/end events, debounce, and rate limiting
  • OTA updates with self-test rollback
  • Config backup export/import (portable across devices)
  • Board selector: Waveshare ESP32-S3-RS485-CAN preset + Manual mode for other qualifying ESP32-S3 boards
  • Diagnostics: coredump capture, task stack monitoring, readable alerts, About page
  • Username / Passwort authentication (optional)

Hardware requirements

ESP32-S3 with 16 MB flash and 8 MB PSRAM. Other chips (classic ESP32, C3) and S3 boards without sufficient PSRAM are not supported.
Reference board: Waveshare ESP32-S3-RS485-CAN. Other qualifying S3 boards work via Manual pin configuration.
(The classic-ESP32 LilyGo T-CAN485 that worked for the 2.x line is not compatible.)

Flashing

First-time install
If flashing fails to connect, hold BOOT while plugging in / pressing RESET, then retry.

macOS (via esptool, merged image)

Install esptool first: pip install esptool

esptool --chip esp32s3 --port /dev/cu.usbmodem* --baud 921600 \
  write_flash --flash_mode dio --flash_freq 80m --flash_size 16MB \
  0x0 Topband-bms-gateway-factory-v3.0.0-preview.1.bin

Windows - (replace COM3 with your port from Device Manager)

esptool --chip esp32s3 --port COM3 --baud 921600 write_flash --flash_mode dio --flash_freq 80m --flash_size 16MB 0x0 Topband-bms-gateway-factory-v3.0.0-preview.1.bin

Linux - Port is usually /dev/ttyACM0 or /dev/ttyUSB0

esptool --chip esp32s3 --port /dev/ttyACM0 --baud 921600 \
  write_flash --flash_mode dio --flash_freq 80m --flash_size 16MB \
  0x0 Topband-bms-gateway-factory-v3.0.0-preview.1.bin

Updating

Use the OTA updater in the web UI (Settings → Firmware Update) with
Topband-bms-gateway-v3.0.0-preview.1.bin — no esptool needed.

Included in this Release

Topband-bms-gateway-v3.0.0-preview.1.bin c33b79f13a7a69d14f4a1fe6c377e31206cc14f93ddb97be4bf4d75d91745a27
Topband-bms-gateway-factory-v3.0.0-preview.1.bin deb6b48e59aca3a0108527312ef7798c6fb3010b4d3f9460965d33a3641cf17e

Known limitations (preview)

Ntfy notification provider is planned for 3.1 (Telegram is supported now)
No TLS for the web UI or MQTT — intended for trusted LAN use, not direct internet exposure
The LED pin is configurable but has no driver yet (inert)
Board selector is in Settings only (not in the initial captive portal)
UI not yet fully mobile optimized

⚠️ Safety

This is DIY firmware for high-current battery systems. LiFePO4 packs store dangerous energy. You are responsible for verifying that the configured limits are correct for your hardware, and for confirming your inverter responds correctly to the broadcast limits. Test with your specific setup before relying on it. The authors accept no liability — see the license.

Credits
V3.0 is a ground-up rewrite that builds on the work of others, with thanks:

linedot/topband-bms — protocol reverse-engineering
atomi23/Topband-BMS-to-CAN — original BMS-to-CAN groundwork
tzapu/WiFiManager — captive portal (earlier lineage)

Feedback
This is a preview — bug reports and testing notes are very welcome. Please include your board, pack count, inverter, and the firmware version (shown on the About page).