esp32
- The UPS said 2 minutes at 95 %
A UPS monitor took the minimum of three runtime estimates and raised low battery at 95 %. One of them was the station's time to full charge.
- The DJI went silent for four hours
A DJI Power 2000 stopped advertising over Bluetooth while the monitor served its last reading as live. Then the observer revived its own four-hour-old state.
- Pulling plugs on purpose
The first power-bank test passed because a second supply was hiding the failure. What each test in the UPS project could prove, and what it couldn't.
- The guard rails that said no
A deploy script that aborted, a permission check that refused firmware, a password with one copy, and a grep that said yes when it should have failed.
- The DJI's grid flag is labeled charge type
A DJI Power 2000 over plaintext BLE: the documented grid byte never changed, input watts read 0 on grid, and the link drops were a 420 ms timeout.
- Secure session ready. Battery: ?
Porting an encrypted BLE handshake from Python to an ESP32-S3: every step reported success, and the reads came back empty. The station sends its key twice.