Skip to content

Alternator Health

Status: design / in development

This page describes the best-ever performance design that replaces the original Field Bucketer (a fixed 3-D RPM × temperature × field-voltage matrix). The new system is specced and being implemented; details below are the design intent and may shift slightly during the build.

The regulator learns what your alternator can produce when conditions are steady, builds a best-ever reference surface from real operating data, and rates present output against it. If the unit later makes less current under matched conditions — or needs more field to make the same current — it reads below its own best-ever and the drift is flagged. It's advisory: no safety logic depends on it.

This works because alternator output is near-deterministic given its inputs — at a fixed operating point the machine produces what physics dictates, so "best-ever ≈ expected." The reference auto-ratchets to the healthy peak; there is no freeze step and no staircase.

The output and its axes

The quantity being learned is output amps, as a function of four equal input axes:

Axis Notes
RPM engine/alternator speed
Excitation temp-normalized field-drive proxy, exc = (duty × Vbus) / (1 + α·(T_C − 25)), α = 0.00393
Bus voltage charging bus volts
Alternator temperature from the digital temp sensor

Output amps is valid in every charge mode (bulk/current-control, absorption/CV, manual) because the physics amps = f(rpm, excitation, temp, Vbus) is the same regardless of why the regulator chose a given field — the mode only decides where in (RPM, excitation) space it operates.

Temperature must be available

If the global ignore temperature setting is on, the entire alternator-health system is disabled — temperature is one of the four axes, so without it there is no valid surface.

How a data point is formed

A point is one steady episode, not a fixed time slice:

  1. Sample fast and mode-agnostically — once per control tick (gated on a fresh current sample, ~200 Hz), reading RPM, duty, Vbus, temperature and measured amps after the control loop has settled the field. Off / fault / shutdown states are excluded automatically.
  2. Steady = every axis within its band. Each axis has a user-tunable deviation bound and steady time. A run is steady while, for every axis, max − min over the run stays within its bound; it must hold for each axis's steady time.
  3. One averaged point per episode. When any axis leaves its band the episode closes and its average becomes a single point. Sampling fast means a brief excursion on any axis can't hide inside a "steady" run.

Each stored point keeps the raw inputs and the derived axis{RPM, duty, Vbus, temp, excitation, amps} — so the excitation can be recomputed and a bad point diagnosed later.

The best-ever front

The reference is a best-ever surface over the four axes, stored as a sparse set of support points (the front) and interpolated between them — not a percentile, not an average, not a fixed-size buffer.

  • Keep only new bests. A finished episode is kept only if its amps exceed the surface at its operating point; otherwise it's discarded.
  • The cloud is authoritative and never throws data away. It keeps the full history of accepted points and derives the pruned front as a rebuildable view — so the reference ratchets up and never decays (the failure mode of older "rolling window" designs, which silently track recent rather than best performance).
  • The device evaluates the held front locally, so rating works offline between cloud syncs.

What you see

  • Live health % — present amps ÷ best-ever for the current conditions.
  • Trend over engine-hours — average and worst "percent of best-ever," plotted against engine-hours since the baseline was last reset (a Start Over button, e.g. after replacing the alternator, belt, or regulator). The trend is the signal: a healthy unit reads high-but-not-perfect and roughly flat; a steady decline is the early warning.

See also the plain-English overview: Best-ever performance monitoring.