On this page
A temperature trace can become noisier or slower after a firmware timing change even though the sensor and thick-film heater are unchanged. A fixed digital smoothing coefficient describes a response per update, not per second. Tie that coefficient to the actual acquisition interval before retuning the heater controller or replacing the sensor.
System boundary
A digital first-order low-pass filter applied to valid heater temperature measurements before a display or normal control loop. It is not an independent protective function, analog antialias filter or physical sensor model.
Integration interfaces
| Interface | Required input | Thick film role | Validation owner |
|---|---|---|---|
| Sensor acquisition to filter update | New-data timing, timestamps and validity flags. | The heater may be controlled by a value whose digital delay differs from its physical sensor delay. | Acquisition engineer. |
| Filter coefficient to time response | Recurrence, coefficient convention and intended time constant. | Changing a heater cannot correct an unintended software filter time scale. | Firmware owner. |
| Filtered value to control and display | Destination signals, state initialization and missing-data behavior. | The installed heater response is affected by the timing of the control measurement. | Controls and system safety owners. |
Integration risks
| Risk | Control or verification | Validation owner |
|---|---|---|
| The same coefficient is reused at a different acquisition rate. | Recalculate the physical decay time and verify the new response. | Firmware engineer. |
| One old measurement is filtered repeatedly as if it were fresh. | Advance the filter according to its declared new-data policy. | Acquisition owner. |
| A smooth stale value conceals loss of the temperature signal. | Keep measurement validity separate from filter output and enforce the approved fault response. | Equipment controls owner. |
System integration decisions
- Identify whether the filter updates on new measurements or repeated task executions.
- Convert the recurrence coefficient into a physical decay time.
- Verify startup, missing samples and rate changes using timestamped deterministic input.
Locate the filter in the complete measurement chain
Draw the order of sensor conversion, digital filtering, controller execution and display refresh. These events may run at different rates. A display refreshed twenty times per second does not establish twenty independent temperature samples, and a fast control task may read the same converter result repeatedly. Record which event actually advances the filter state.
Keep physical sensor lag and analog filtering separate from this software stage. A bonded sensor can lag the material, while a digital filter adds further delay after conversion. The question here is whether that added delay changes unintentionally with scheduling. Correcting the software time scale does not establish that the sensor attachment, analog bandwidth or control tuning is otherwise suitable.
Declare which coefficient multiplies the old state
Use the recurrence y[k+1] = a y[k] + (1 minus a)u[k], where u is the valid input used during an interval and y is the stored filtered state. The old-state weight a lies between zero and one for the monotonic low-pass behavior considered here. Some firmware names the new-input weight alpha instead, so alpha equals one minus a.
For a constant input, the remaining error multiplies by a on each update. If updates are spaced by Ts seconds, that discrete exponential has time constant tau = minus Ts divided by ln(a). Conversely, choosing a = exp(minus Ts/tau) preserves the desired exponential decay time. These relations follow directly from the recurrence; they are not interchangeable with every numerical approximation of a continuous filter.
y[k+1] = a y[k] + (1 - a)u[k]; a = exp(-Ts/tau); tau = -Ts/ln(a)
- u and y: input and filtered temperature values in the same units.
- a: dimensionless weight on the previous state, with 0 < a < 1.
- Ts: time between filter updates in seconds.
- tau: equivalent exponential decay time in seconds; k is the update index.
Constant update interval and the declared recurrence. The exact exponential correspondence assumes a piecewise-constant input over each modeled interval; it does not reconstruct an unknown waveform between samples.
Calculate what happens when acquisition becomes five times faster
Assume the intended time constant is one second and the initial update interval is 0.10 second. The corresponding old-state weight is approximately 0.904837, while the new-input weight is approximately 0.095163. Ten updates cover one second and leave exp(minus one), or about 36.79 percent, of a step's initial error.
If the same coefficient is executed every 0.02 second, ten updates now cover only 0.20 second. The physical decay time becomes 0.20 second, five times faster than intended. To retain the one-second time constant at the new interval, use old-state weight approximately 0.980199 and new-input weight approximately 0.019801. These values illustrate software timing, not a recommended heater filter setting.
| Update interval | Old-state weight | Equivalent time constant | One-second step fraction |
|---|---|---|---|
| 0.10 s | 0.904837 | 1.00 s | About 63.21% |
| 0.02 s, coefficient unchanged | 0.904837 | 0.20 s | About 99.33% |
| 0.02 s, coefficient recalculated | 0.980199 | 1.00 s | About 63.21% |
Do not mix coefficient formulas from different discretizations
A continuous first-order filter follows tau times dy/dt equal to u minus y. Forward Euler approximates its new-input weight as Ts/tau. The exponential method above instead uses one minus exp(minus Ts/tau). They approach one another for small Ts relative to tau but are not exactly equal. Record the method as well as the time constant when comparing implementations.
For example, Ts/tau equal to 0.10 gives a forward-Euler new-input weight of 0.10 rather than 0.095163. The resulting old-state weight 0.90 has equivalent exponential time constant approximately 0.94912 second when Ts is 0.10 second. This is a numerical-method difference, not a sensor defect. Do not copy a coefficient while silently changing recurrence or update order.
Distinguish repeated values from repeated measurements
A task that executes faster than the converter may feed one unchanged measurement through the recurrence several times. Depending on the intended model, that can make the displayed filter approach a stale sample more quickly without obtaining new information. Identify whether the software intentionally models a held input continuously or advances only on a new conversion. Both choices require a coherent time definition.
When the interval varies, an exponential coefficient based on the actual elapsed interval can preserve the modeled decay for a held input. However, it cannot reveal what temperature did during a missing-data gap. Do not bridge an unbounded gap and report the resulting smooth value as a valid continuous measurement. Preserve timestamps, acquisition validity and the application's permitted maximum data age outside the filter calculation.
Specify startup and rate-change state handling
Initializing a temperature filter to zero can create a false cold indication when the first valid measurement is already warm. Initializing from that first measurement avoids that particular artificial step, but may not be appropriate when a retained state or another startup policy is required. State the selected rule explicitly and test it under the equipment's allowed restart conditions.
Changing the coefficient does not require resetting the stored temperature to zero. Retaining the existing state generally avoids an unnecessary discontinuity, while the future response follows the new recurrence. If the measurement scale, calibration or sensor channel also changes, resolve that separate state-conversion question. A filter configuration update must not silently make an old sensor's state appear to belong to a new channel.
Verify the response with timestamps before retuning the heater
Feed a prescribed step into the filter implementation with heating disabled or in a software test. Record the update index, timestamp, raw input and state. Compare the remaining error with the independently calculated exponential at equal elapsed times, not only equal sample counts. Identify the state before the first interval so that an indexing offset does not masquerade as one sample of extra delay. Repeat at each supported acquisition rate and with representative scheduling variation.
Then use the approved thermal setup to compare raw and filtered measurements while keeping sensor placement and operating conditions fixed. Determine whether the intended smoothing and added control delay remain acceptable. A calmer display is not automatically a better control signal, and an unchanged controller coefficient does not imply an unchanged loop when measurement filtering changes. Independent overtemperature protection must retain its reviewed behavior.
Keep the filter's physical meaning with the firmware release
Document the recurrence, coefficient convention, time constant, update event and initialization rule together. Include deterministic vectors for the supported rates and the response to invalid or late data. Retain the raw acquisition record separately where needed for diagnosis so a later reviewer can distinguish a physical thermal change from a software processing change.
For a custom thick-film heater application, provide the sensor and controller timing with the thermal requirements. ChipSimple can review the drawing-defined heater and supplied interface conditions, while the system owner validates software filtering and control behavior. Recheck the seconds-based response after changing converter rate, scheduler, averaging stage or firmware library rather than assuming a reused numerical coefficient preserves the original measurement.
Review the heater with its actual measurement timing
Include raw acquisition and filtering behavior with the thermal interface.
- Sensor placement and raw conversion interval.
- Filter recurrence, coefficient and time-constant convention.
- Control-task and display timing.
- Startup, missing-data and rate-change test vectors.
- Raw and filtered response traces with common timestamps.
The drawing-upload form loads as you reach this section.

