Repository navigation
Releases: hobbygen/battery-intelligence
Release list
Battery Intelligence 1.2.1
Battery Intelligence 1.2.1
A small reliability fix. Recommended for everyone — the bug has been present since 1.0.0.
Fixed
Battery readings could stop updating for a moment around plugging the charger in or out.
At those moments Windows briefly reports the charge rate as "unknown" (the value 0x80000000). One of the app's battery sources passed that through as if it were a real number, and the plausibility check then crashed trying to take its absolute value. That failed the whole reading — not just the power figure — so the percentage and charging state froze and Diagnostics showed the battery monitor as Retrying until Windows reported a real rate again.
- An unknown rate is now shown as Unavailable, the same as any other value Windows doesn't know.
- The plausibility check can no longer crash on any value: an extreme reading is marked Suspect and the rest of the reading carries on.
Everything from 1.2.0, including voice alerts, is unchanged.
Install
Download BatteryIntelligence-Setup-1.2.1.exe and run it. Self-contained and machine-wide: no .NET or Windows App Runtime needed, one UAC prompt at install, the app runs unelevated. Installing over any earlier version upgrades in place and keeps your data and settings.
The installer is not code-signed, so SmartScreen will warn on first run — choose More info → Run anyway. Verify the download against SHA256SUMS.txt if you prefer.
Requires 64-bit Windows 10 (1809 / build 17763) or Windows 11.
BatteryIntelligence-1.2.1-win-x64-self-contained.zip is the same build as a portable folder, for anyone who would rather not run an installer.
Battery Intelligence 1.2.0
Battery Intelligence 1.2.0
Voice alerts
Battery Intelligence can now speak when it matters most:
- Battery full — a voice tells you the battery has reached your fully-charged threshold, so you can unplug.
- Needs charger — a voice tells you to plug in when the low or critical battery alert fires.
Open Alerts → Voice alerts to:
- turn voices on or off (on by default),
- pick the clip for each alert from the bundled voices, with a ▶ button to preview,
- set the voice volume.
Voices follow the same thresholds, hysteresis and cooldown as the existing alerts, so a level hovering at the line can't repeat. They work even when Windows notifications are turned off. When a voice plays, the notification's own chime is muted so the two never overlap, and only one clip plays at a time — if low and critical fire together, you hear critical.
Portable-zip users can add their own clips: drop a Full_Batt_N or Low_Batt_N .wav / .mp3 file into the Sounds folder next to the app and it appears in the picker.
Install
Download BatteryIntelligence-Setup-1.2.0.exe and run it. Self-contained and machine-wide: no .NET or Windows App Runtime needed, one UAC prompt at install, the app runs unelevated. Installing over 1.0.0 or 1.1.0 upgrades in place and keeps your data and settings.
The installer is not code-signed, so SmartScreen will warn on first run — choose More info → Run anyway. Verify the download against SHA256SUMS.txt if you prefer.
Requires 64-bit Windows 10 (1809 / build 17763) or Windows 11.
BatteryIntelligence-1.2.0-win-x64-self-contained.zip is the same build as a portable folder, for anyone who would rather not run an installer.
Battery Intelligence 1.1.0
Battery Intelligence 1.1.0
A correctness release for the Battery Health Score. If you run 1.0.0, the score it showed you may have been wrong in either direction — a nearly new battery rated Poor, a nearly dead one rated Excellent. This release fixes the causes and discards the stored snapshots that cannot be trusted.
What was wrong
Three independent faults, any of which could invert the verdict.
1. The capacity unit flag was applied across sources. Windows exposes battery capacity through several APIs that disagree about units: WinRT always reports milliwatt-hours, while WMI and IOCTL report milliamp-hours whenever the pack sets CapacityRelative. Each source states which it uses — but the app took one source's flag and applied it to values it had selected from a different source. Capacity retention is full-charge capacity divided by design capacity, so when the two halves came from sources with different conventions, the answer was out by roughly the pack voltage: a healthy battery could read in the single digits, a worn one well over 100%.
Each source's values are now converted using that source's own flag, and both halves of retention are taken from a single source wherever one reports both. A pair that genuinely has to be assembled from two sources is graded Estimated rather than Calculated.
2. An impossible retention figure was clamped instead of rejected. Clamped low, that reads as "Poor" on a new battery; clamped high, "Excellent" on a dead one. Retention outside 15–125% is now graded Suspect, shown with that badge for diagnosis, and excluded from both the health score and the degradation trend — so the score reads Unavailable rather than confidently wrong.
3. The scoring model let usage habits outvote the measurement (now HealthScoreV2). Charge behaviour and charge-rate stability describe how you use the machine, not the condition of the cell, yet they were averaged in at full weight. A dead battery kept permanently on AC scored perfectly on both; a new battery actually being used scored near zero. And the degradation factor had no tolerance band, so the faster capacity settling that is normal in a battery's first months was scored as a fault, while an already-collapsed battery's flat trend looked ideal.
- Habit factors can now only deduct, never add, and are capped at 5 points total.
- The score is capped at measured retention — nothing can claim the pack holds more charge than it measurably does.
- Degradation and both habit factors gained dead bands, so ordinary ageing and the noise in a short history cost nothing.
- Weights are now retention 0.65 / degradation 0.20 / cycles 0.10 / thermal 0.05.
Your stored history
Migration V003 deletes every battery-health snapshot written by 1.0.0. An affected row's retention could land anywhere — including on a perfectly believable number — nothing stored in the row says which rows were affected, and the raw per-source values were never saved, so those figures can be neither trusted nor recomputed. They feed a trend fitted over 180 days, so leaving them would bend the health score for six months.
- Your database is copied to
battery.db.bak-v003before the migration runs, so the discarded rows remain recoverable from that file. - The degradation trend and retention sparkline will be empty for about 30 days while fresh snapshots accumulate. The app says "collecting it now" rather than showing a blank chart.
- The health score itself works from the first analytics pass after upgrading — it only needs a live reading.
- Raw samples, sessions, power history, temperature history, app usage, settings and alerts are untouched.
Also in this release
- The title-bar theme button showed a pen glyph. It now shows the theme in effect — a sun for Light, a moon for Dark, a monitor for System — and cycles all three, so "System" is reachable without opening Settings. It also follows a change made from the Settings page.
Install
Download BatteryIntelligence-Setup-1.1.0.exe and run it. Self-contained and machine-wide: no .NET or Windows App Runtime needed, one UAC prompt at install, the app runs unelevated. Installing over 1.0.0 upgrades in place and keeps your data.
The installer is not code-signed, so SmartScreen will warn on first run — choose More info → Run anyway. Verify the download against SHA256SUMS.txt if you prefer.
Requires 64-bit Windows 10 (1809 / build 17763) or Windows 11.
BatteryIntelligence-1.1.0-win-x64-self-contained.zip is the same build as a portable folder, for anyone who would rather not run an installer.
Battery Intelligence 1.0.0
Battery Intelligence 1.0.0 — first public release, by Naeem Ahmad.
Understand your laptop battery, power draw, what's draining it and how long it
will last — computed locally, with no account, no cloud and no fabricated
numbers. Every value is labelled Measured, Calculated, Estimated or Unavailable.
Website: https://battery-intelligence.netlify.app
Download
| File | What it is |
|---|---|
| BatteryIntelligence-Setup-1.0.0.exe | The installer. Self-contained — no .NET or Windows App Runtime needed. Machine-wide install (one admin prompt); the app itself runs without elevation. Start here. |
| BatteryIntelligence-1.0.0-win-x64-self-contained.zip | Same payload, no installer — unzip and run BatteryIntelligence.exe. |
| SHA256SUMS.txt | Checksums for the two files above. |
Requirements: 64-bit Windows 10 (build 1809 / 17763) or Windows 11.
SmartScreen: the installer is not code-signed yet, so Windows shows a
"Windows protected your PC" dialog on first run — choose More info → Run
anyway. Verify the download against SHA256SUMS.txt if in doubt.
Notes
- Your data lives in
%LocalAppData%\BatteryIntelligence(one SQLite database +
settings + logs). It is kept outside the install folder, so it survives
upgrades and uninstalls. Export or delete it any time from Settings → Data. - Known limitation: working-set memory with the window open is ~230–270 MB (the
WinUI 3 / SkiaSharp runtime floor). The Diagnostics page reports it honestly.
See CHANGELOG.md for the full feature list.