Updates are offered to you — a LevelLink never installs one behind your back. See how to update when you are ready.
2.3 — the device talks back
- Every scheduled battery wake now reports. Previously a wake that failed to get a good reading went silent, which downstream looked identical to a unit that had dropped off WiFi — so the advice you got was "check your router" when the real problem was something else entirely. A failed wake now reports what actually went wrong, with its own named cause.
- Named causes for a failed reading: probe power never came up, probe power collapsed mid-reading, loop current could not be measured, too few samples completed, or the battery is below its configured cutoff. Each points at a different thing to check.
- Remote service. Support can now send a single instruction to a device on its next check-in — restart it, change its reporting interval, switch it between mains and battery operation, or start a firmware update. Commands are per-device, delivered at most once, and limited to a short fixed list. Nothing that touches your data, your calibration zero or your settings can be sent this way.
- Bluetooth setting now survives a restart. A long-standing bug: turning Bluetooth off was quietly undone by the next power cycle or update. It now stays off until you turn it back on.
- Tank type and temperature coefficient can be set remotely, so a unit configured for the wrong tank type can be corrected without anyone driving out to it.
- Watchdog handling around network requests reworked, fixing an occasional unexplained restart during firmware updates.
2.2 — measuring the same water the same way, all year
- Probe temperature compensation. The probe's own zero point moves with water temperature — an instrument effect, not the tank. Characterising that drift and correcting for it removed a seasonal error of up to half a millimetre, which matters because it was being read as slow water movement.
- Warm-up correction. A probe reads slightly cold for the first twenty minutes after power is applied, as its own electronics come up to temperature. The firmware now works out how far through that curve the probe is and corrects for the remainder, so the first reading after a restart is as good as the hundredth.
- A single, consistent temperature now feeds the display, the reported value and the internal compensation. They could previously differ slightly.
- Connected battery mode. Battery-powered units can now stay on WiFi between readings instead of sleeping, so the device page, the app and updates remain reachable. Deep sleep became an option rather than the only behaviour.
- Per-probe zero from the bench. Units calibrated during assembly carry their own measured zero instead of a family constant, and the device reports which one it is using.
- Over-range is no longer a fault. A 2 m probe in a deeper tank reports honestly that the water is above its range, rather than alarming.
- The device now reports how it is powered and how often it intends to report, so the alerting knows the difference between a quiet battery unit and a dead one.
2.1 — the new hardware generation
- First firmware for the integrated board: a single precision measurement chain with no separate daughterboard.
- Live usage rate — water leaving the tank in litres per minute, derived on the device.
- Self-monitoring of the sensor loop, with distinct named fault states rather than a flat line on the graph.
- Enclosure health monitoring: temperature, humidity and pressure inside the sealed box, to catch a failing seal months before it does damage.
- Per-device credentials, so the server accepts readings for your device only from your device.
1.9.98
- Diagnostics gated behind an "Enable Metrics Logging" switch for production use.
- Supply-voltage correction on by default; user-tunable exponent k exposed as "ESP3V correction k".
- 9 s orchestrator aligns ESP32 3V3 and pressure reads with safe ADS1115 conversion margins.
- Correction factor clamp (±5%) mirrored in logs to match the applied level correction.
- Startup hardening: pressure error suppressed during warm-up; uses raw fallback until the filter is ready.
- BLE advertisement continues; siren repeats while an error persists (intentional).
1.9.85
- Added an "instant" 9 s diagnostic post of
adsraw_raw,esp3vand correction metadata, when metrics logging is enabled. - 2-minute telemetry expanded: ADSPower (mid rail), ESP32 3V3, clamp flags and uncorrected level.
- Ratiometric correction uses a fixed 3.300 V baseline (no stored device baseline).
1.9.80
- Introduced optional ratiometric supply correction:
corr = (3.300 / V3V3)^k. - Manual update scheduling to avoid ADS clashes and reduce outliers and NaNs.
- Moved level computation to on-demand, after aligned sensor updates.
1.7.0
- Baseline release for level calculation and BLE advertising.
- ADS1115 periodic sampling with basic median and moving-average filtering.
- Firmware update action via OTA HTTP request.