Add BullTron BLE desktop GUI

This commit is contained in:
2026-07-10 20:34:15 +02:00
parent 0a1d7cff6e
commit 2f3f5bb8c6
6 changed files with 700 additions and 0 deletions
+37
View File
@@ -52,6 +52,43 @@ Send that frame to characteristic `0000fff2-0000-1000-8000-00805f9b34fb`
after subscribing to notifications on
`0000fff1-0000-1000-8000-00805f9b34fb`.
## Local Desktop App
This repo includes a small Python GUI client that can scan for BullTron-style
BLE devices, connect, poll telemetry, and display the decoded values locally on
a PC.
Install:
```sh
python3 -m venv .venv
. .venv/bin/activate
python3 -m pip install -r requirements.txt
```
Run:
```sh
python3 bulltron_gui.py
```
The GUI shows:
- live pack voltage, current, discharge watts, SOC, remaining Ah, cell max/min,
imbalance, cell count, cycle count, charge MOS, discharge MOS, and computed
time-to-empty/time-to-full
- alarm/status words decoded into readable alarm names where known
- system/settings values such as the control PIN, firmware/version text,
product info, battery code/SN, production-date raw value, and inferred battery
Ah when the settings block contains a plausible capacity
- raw TX/RX frames for debugging and protocol confirmation
The settings tab has MOS on/off controls, but writes are deliberately guarded:
you must enter the BMS PIN, tick `Enable MOS writes`, and confirm each write.
The default write registers are the observed live MOS status registers
`0x0035` and `0x0036`; keep them editable until those write registers are
verified on your exact hardware/firmware.
## App Workflow
The app's normal telemetry flow is: