Vibration & Condition Monitoring: IEPE, Edge FFT & RS-485
← Back to: Industrial Sensing & Process Control
Central idea: Vibration & Condition Monitoring is only reliable when the entire evidence chain is controlled and provable—from IEPE excitation and low-noise AFE/ADC, through anti-alias filtering and clock/sync, to edge FFT/envelope features with timestamps, counters, and versioned parameters. The goal is not “more algorithms,” but repeatable health indicators backed by waveforms, logs, and minimal fixes that can be verified in the field.
H2-1. Mission, Reader Fit, and “Evidence Chain” Definition
This page defines vibration & condition monitoring as a verifiable measurement chain: the system must prove that the sensed waveform is real, correctly sampled, and analytically trustworthy—not just “a sensor + FFT”.
The goal is to build a chain that outputs evidence fields alongside features, so field issues can be triaged by measurement integrity first (bias headroom / aliasing / clipping / sync) before algorithm tuning.
- SNR & dynamic range that match the target frequency band and crest factor.
- Anti-saturation behavior (predictable headroom; graceful gain plan; clip detection).
- Controllable bandwidth with anti-aliasing consistent with the chosen sampling rate.
- Sampling integrity (clock health + multi-channel alignment when needed).
- Traceable timestamps for each analysis window and each transmitted payload.
- IEPE bias window + headroom status (open/short/saturation flags).
- Clipping counters + peak/RMS per analysis window.
- Sampling snapshot: sample rate, decimation, AA filter profile/version.
- Clock status: PLL lock + drift/holdover indicator.
- Feature provenance: algorithm version + parameter hash (windowing/envelope settings).
H2-2. Use Cases & Signal Requirements (Frequency, Dynamic Range, Channel Count)
Requirements must be quantified first. Vibration features only become trustworthy when the target frequency span, peak/crest factor, sampling plan, and synchronization level are explicit. This section converts application intent into parameters that drive AFE/ADC/filtering and the edge analytics pipeline.
- Spectrum shape: strong 1× + harmonics, sidebands; bearing faults often appear in envelope spectrum.
- Critical integrity risks: aliasing that moves sidebands; clipping that fabricates harmonics; channel skew that breaks coherence.
- Typical outputs: peak list (1×/harmonics), sideband spacing, envelope peaks with confidence score.
- Signal shape: transients and broadband energy; high crest factor dominates gain planning.
- Critical integrity risks: saturation during impacts; “features-only” payloads that cannot be audited without snippets.
- Typical outputs: RMS/peak/crest factor, kurtosis, triggered raw snippets for forensic review.
- Spectrum shape: narrow peaks (modes); comparisons depend on consistent frequency response.
- Critical integrity risks: channel-to-channel mismatch (gain/phase); timestamp-only alignment when phase coherence is required.
- Typical outputs: resonance peak tracking, bandwidth/Q estimate, multi-channel relative phase (when synchronized).
- Target band: fmin / fmax (Hz), plus any “must-keep” tones or defect bands.
- Peak & crest: expected peak g (or peak-to-peak) and crest factor for transient headroom.
- Sampling: sample rate (Fs), window length (time or N points), and allowed decimation steps.
- Channels & sync: channel count; phase-coherent vs timestamp-aligned requirement.
- Throughput: features-only vs “features + triggered snippets” transport budget.
H2-3. IEPE Constant-Current Excitation: Compliance, Bias Headroom, Fault Modes
IEPE sensing is a two-wire bias + AC signal system. A constant-current source powers the sensor’s internal buffer, while the vibration waveform rides on a DC bias level. When compliance or headroom is insufficient, the chain can output “plausible” spectra that are physically incorrect. This section defines the minimum evidence fields that prove the IEPE link is healthy.
- Likely root cause: bias headroom is consumed (compliance limit or analog saturation).
- What to measure: IEPE bias voltage against the valid window; check saturation/headroom flags.
- First fix: restore compliance margin (reduce excitation current, reduce drop in protection path, shorten cable, or adjust input loading).
- Likely root cause: cable capacitance and shielding/grounding alter HF roll-off and common-mode coupling.
- What to measure: noise floor (band-limited RMS) and 50/60 Hz indicators; compare A/B with the same sensor.
- First fix: correct shield termination and impedance; avoid protection capacitance that loads the input at high frequency.
Fault detection should be based on bias-window state and excitation current state. The most dangerous mode is compliance-limited distortion, where the link is not fully open/shorted but still produces invalid waveforms.
- Open: bias rises toward high limit; unstable bias window.
- Short: bias collapses low; current enters limit/foldback.
- Miswire: bias sits in abnormal range; AC amplitude unusually low.
- Saturation: bias appears “normal” but waveform shows flat-top distortion; harmonics become artificial.
- Drift: slow bias shift or noise-floor rise with temperature or cable movement.
- iepe_bias_voltage + iepe_bias_window_state (low/normal/high).
- iepe_headroom_flag (compliance margin / saturation).
- iepe_current_setting + iepe_current_state (normal/limit/foldback).
- iepe_fault_code (open/short/miswire/saturation/drift).
- noise_floor_rms and hum_50_60_indicator for cable/ground diagnostics.
H2-4. Analog Front-End Architecture: AC Coupling, Protection, Gain Plan, Noise Budget
The analog front-end is where “measurable” becomes accurate and repeatable. A robust AFE must control low-frequency behavior (AC coupling), protect against miswire and transients without destroying bandwidth/phase, and implement a gain plan that prevents clipping while preserving small-signal resolution.
- Trade-off: keep meaningful low-frequency content while suppressing bias drift and slow offsets.
- Evidence: high-pass profile ID plus a drift indicator computed per window (mean / trend).
- Design rule: coupling corner should be explicit and tied to the use-case frequency band.
- Risk: protection capacitance/leakage shifts bandwidth and phase, altering spectra and coherence.
- Evidence: front-end bandwidth profile and (when available) frequency-response calibration version.
- Design rule: protection should be staged so that the measurement path does not inherit large parasitics.
Gain must be treated as a recorded state, not an implicit analog detail. Without gain-state provenance, the same machine can produce different feature values that cannot be reconciled in the field.
- Define headroom for peak/crest factor; reserve margin so transients do not saturate the AFE or ADC.
- Create gain steps (ladder) that cover the expected dynamic range with minimal step count.
- Log every step: gain step ID, clipping counters, and per-window RMS/peak statistics.
- Stabilize switching: use hysteresis/freeze so gain transitions do not inject false modulation.
- Sensor source sets a baseline; AFE input-referred noise should not dominate in-band.
- AFE noise + ADC quantization should be stated as a budget, not adjectives.
- Measurement proof: a stable in-band noise floor across time and gain steps.
- rtinoise_uVrms (or band-limited noise_floor_rms).
- clip_count + clip_flag per window.
- gain_step_id + gain_change_count.
- hp_corner_profile + dc_drift_indicator.
- frontend_bw_profile (AA/response profile linkage).
H2-5. Anti-Aliasing & Bandwidth Control: Filters That Match Your Analytics
Anti-aliasing is not a filter “topic”; it is a data validity gate. When out-of-band energy folds into the analysis band, spectra can show stable peaks that are not physically present. The system must bind the analog bandwidth to Fs / decimation and preserve channel-to-channel consistency, otherwise multi-channel comparisons and envelope results become untrustworthy.
- Cause: AA corner does not track the effective sampling rate; aliasing folds a real out-of-band peak into the band.
- Evidence: fs_hz + decimation_ratio + aa_corner_profile_id; flag mismatch if profiles are not bound.
- First fix: freeze Fs/decimation, then validate AA profile; peaks that relocate with Fs are treated as alias suspects.
- Cause: inconsistent amplitude/phase response across channels (AA and front-end bandwidth variations).
- Evidence: channel_response_profile_id per channel; freq_response_cal_id summary for consistency proof.
- First fix: enforce the same response profile set across channels; downgrade confidence when profiles differ.
Envelope analytics requires a defined high-frequency band that carries modulation. If AA or decimation causes folding, envelope spectra can produce “clean” peaks that are artifacts. Envelope confidence must incorporate alias/clipping evidence and the active band profile.
- fs_hz + decimation_ratio (effective sampling).
- aa_corner_profile_id + aa_profile_version (bound to Fs).
- config_mismatch_flag (AA vs Fs/decimation mismatch).
- channel_response_profile_id + channel_mismatch_flag.
- envelope_band_profile + envelope_param_hash + envelope_confidence.
- Production / calibration: frequency-response sweep summary linked by freq_response_cal_id.
- Runtime binding: AA profile and effective Fs share a versioned configuration record.
- Confidence policy: any mismatch marks FFT/envelope outputs as low confidence.
H2-6. Low-Noise ADC & Clocking: ENOB, THD, Aperture Jitter, Multi-Channel Sync
“Low-noise ADC” is only meaningful when expressed as a selection ruler for the intended analytics. ENOB/SNR controls small-signal feature credibility, THD protects harmonic-based diagnostics, and aperture jitter consumes high-frequency SNR. For multi-channel diagnostics, the timebase and synchronization mode define whether phase/coherence results are admissible.
- Why it matters: early faults often appear as subtle band-energy or peak changes; noise floor drift breaks health indices.
- Evidence: band-limited noise_floor_rms and an SNR/ENOB profile reference.
- Policy: unstable noise floor → downgrade feature confidence even if FFT looks “clean”.
- Why it matters: harmonic patterns (gear mesh, rotational harmonics) must reflect physics, not converter nonlinearity.
- Evidence: thd_indicator linked to calibration; always interpret together with clip_count.
- Policy: clipping or saturation disqualifies harmonic interpretations for that window.
High-frequency analytics is limited by clock timing uncertainty. As the highest effective frequency increases, the allowable jitter becomes tighter. A practical selection approach is to classify the clock as low / medium / high jitter and bind that class to the maximum effective band.
- Max effective frequency → choose a jitter_class that preserves HF SNR for that band.
- Peak g + gain plan → set ADC full-scale and headroom; track clip_count per window.
- Window length + bandwidth → set throughput; select payload_mode (features-only vs snippets).
- Multi-channel need → choose sync_mode (timestamp-aligned vs phase-coherent).
- noise_floor_rms + snr_estimate + enob_profile_id.
- thd_indicator + clip_count.
- clock_source_id + pll_lock_status + jitter_class.
- sync_mode + channel_skew_estimate + timebase_health.
- window_length_ms + payload_mode.
H2-7. Edge Analytics Pipeline: Windowing, FFT, Envelope, Kurtosis, Health Index
Edge analytics must be auditable. Every FFT peak, envelope peak, kurtosis jump, and health-index alarm must be tied to the window’s input conditions (gain, clipping, alias risk, timestamp quality) and to a reproducible algorithm configuration (version + parameter snapshot). Without this provenance, field results cannot be reproduced or trusted.
- Windowize: define window length/overlap and timestamp semantics (start/center), then compute per-window quality fields.
- Preprocess: detrend/DC remove and gain-step normalization; record preprocessing mode and parameter hash.
- FFT: apply a window function and compute spectrum peaks; record resolution and window function ID.
- Envelope: apply band-pass → envelope extraction → low-pass → envelope FFT; record band and method IDs.
- Features: compute RMS/peak/crest/kurtosis and derive a health index with baseline/threshold provenance.
- Purpose: make windows comparable across time and gain steps; avoid treating bias drift as low-frequency energy.
- Risk: inconsistent detrend/normalization creates false trends.
- Evidence: detrend_mode_id, dc_remove_mode_id, gain_step_id, preproc_param_hash.
- Purpose: stable peak lists for trending and diagnosis; leakage control is a validity requirement.
- Risk: window choice and resolution alter apparent sidebands/harmonics.
- Evidence: window_function_id, fft_n, fft_bin_hz, spectrum_peak_list, noise_floor_rms.
- Purpose: detect modulation signatures; requires a defined HF band and clean sampling conditions.
- Risk: bias/alias/clipping can create “clean” but invalid envelope peaks.
- Evidence: envelope_band_profile, envelope_method_id, envelope_param_hash, envelope_peak_list, envelope_confidence.
- Purpose: turn features into a decision with baseline + threshold provenance.
- Risk: index drift caused by noise floor drift or configuration changes.
- Evidence: baseline_id, threshold_profile_id, drift_comp_mode, decision_reason_code.
- Identity: window_id, window_start_ts, window_length_ms.
- Quality: clip_count, noise_floor_rms, timestamp_quality_flag, gain_step_id.
- FFT: spectrum_peak_list (Top-N: freq/amp/snr), fft_bin_hz, window_function_id.
- Envelope: envelope_peak_list (Top-N), envelope_band_profile, envelope_confidence.
- Stats: rms, peak, crest_factor, kurtosis, health_index_value.
- Provenance: algorithm_version, param_snapshot_hash (preproc/fft/envelope).
H2-8. Data Transport: Ethernet vs RS-485, Payload Design, Timestamping & Determinism
Transport is part of the evidence chain. The link type determines whether the node can deliver continuous window features, on-demand raw snippets for traceability, and reliable timestamp quality. This section defines when RS-485 is sufficient, when Ethernet becomes necessary, and how payload modes and counters turn “field issues” into measurable facts.
- Use case: long runs, point-to-multipoint, robust physical layer, limited maintenance needs.
- Payload: features-only windows (stats + peak lists + quality flags).
- Evidence: packet_counter, crc_error_count, drop_counter; payload_mode must be logged.
- Use case: multi-channel high-rate windows, remote diagnostics, and triggered raw snippets.
- Payload: features + raw snippet on trigger for forensic reproduction.
- Evidence: retransmit_count (if applicable), drop_counter, timestamp_quality_flag, update_capability_flag.
- Send: stats + spectrum/envelope peak lists + quality flags per window.
- Best for: continuous monitoring under tight bandwidth.
- Must include: algorithm_version + param_snapshot_hash for reproducibility.
- Send: short waveform snippet plus the window’s parameter snapshot.
- Trigger: health_index threshold, envelope anomaly, alias risk, or clipping events.
- Must include: snip_trigger_reason, snip_length_ms, param_snapshot_hash.
- Timestamp quality flag: locked / free_run / holdover (records whether the local timebase is trustworthy).
- Drift record: clock_drift_ppm_est (or drift_class) when free_run/holdover is active.
- Transport counters: packet_counter, drop_counter, crc_error_count, retransmit_count (if supported).
- Determinism marker: payload_mode + window_id linkage ensures missing packets are detectable and explainable.
H2-9. Power, Isolation, Grounding, and Ruggedization (Sensor Nodes in the Real World)
Real-world sensor nodes fail the evidence chain in predictable ways: rail ripple can appear as low-frequency drift or stable mains hum peaks; grounding and shield termination can form loops that inject 50/60 Hz and slow bias wander; temperature and mechanical environment can create repeatable drift signatures. This section turns those “environment” issues into loggable quality evidence, not guesswork.
- How it shows up: slow baseline wander, 50/60 Hz peaks (and harmonics), and window-to-window instability during load events.
- Why it matters: it contaminates RMS/health baselines and can create “stable” spectral peaks unrelated to mechanics.
- Evidence fields: rail_ripple_rms (or pp), uvlo_event_count, brownout_flag, power_event_reason_code.
- How it shows up: mains hum energy increases, channel mismatch, and low-frequency drift that follows installation changes.
- Why it matters: a ground loop can mimic periodic “fault” energy and destabilize envelope confidence.
- Evidence fields: shield_termination_mode, chassis_bond_status, isolation_boundary_id, ground_loop_suspect_flag.
- How it shows up: gain/bias drift and gradual noise-floor lift; often correlates with temperature ramps or self-heating states.
- Why it matters: health thresholds drift unless temperature and drift indicators are recorded and compensated at edge.
- Evidence fields: temperature_c, temp_rate_c_per_min, gain_drift_indicator, bias_drift_indicator.
- Focus: only what directly affects the vibration chain: connector intermittency, cable shielding continuity, and enclosure bonding.
- How it shows up: intermittent opens, bias window excursions, and step-like changes in noise floor.
- Evidence fields: open_short_flag, bias_window_status, self_test_result_code.
- Power: rail_ripple_rms (or pp), uvlo_event_count, brownout_flag, power_event_reason_code.
- Grounding: shield_termination_mode, chassis_bond_status, isolation_boundary_id, ground_loop_suspect_flag.
- Temperature: temperature_c, temp_rate_c_per_min, gain_drift_indicator, bias_drift_indicator.
- Self-check hooks: self_test_result_code, open_short_flag, noise_floor_rms (same definition as analytics).
H2-10. Calibration & Self-Test: From Production to Field Re-Validation
Long-term reliability comes from a repeatable calibration and self-test loop. Production calibration establishes gain/phase/frequency-response baselines. Field self-test verifies wiring integrity and noise-floor health. Calibration data must be protected with versioning and integrity checks, and every analytics window must bind to a calibration ID and parameter snapshot so firmware changes do not silently shift health indicators.
- Gain baseline: gain_cal per gain step (or gain_step_id mapping) with a calibration_id.
- Channel alignment: phase_delay_cal summary (skew/phase consistency evidence for multi-channel comparisons).
- Frequency response: freq_response_cal_summary (key points or band summary) for in-band amplitude/phase consistency.
- Open/short/miswire: bias window + input status → open_short_flag.
- Noise-floor self-check: noise_floor_rms vs baseline range; flag drift.
- Optional injection: fixed-tone or short sweep (if supported) for response sanity.
- self_test_id, self_test_timestamp, self_test_result_code.
- open_short_flag, bias_window_status, noise_floor_rms.
- inject_test_enabled, inject_profile_id (if used).
- self_test_confidence.
- Integrity: cal_data_crc; reject corrupted calibration data.
- Versioning: cal_data_version, cal_profile_version, calibration_date.
- Compatibility: firmware_version + algorithm_version + cal_fw_compat_matrix_id.
- Rollback: rollback_policy_id (retain last-known-good calibration slot).
H2-11. Validation & Debug Playbook (Waveforms + Logs You Must Capture)
The fastest field debug path is to disprove chain failures before tuning algorithms. Classify anomalies in a fixed order: IEPE headroom → clipping → aliasing → sync/clock → transport → parameters. Each step below defines exactly what to capture and which evidence fields must be saved.
- Goal: rule out IEPE compliance/bias headroom collapse that shrinks or distorts the signal.
- Capture: bias_min/bias_max over the anomaly window, open/short flags, and (if available) excitation current monitor.
- Fail signature: bias approaches rails or leaves the valid window, correlated with amplitude drop or distortion.
- Next action: log a headroom_fail_reason_code and continue to Step 2; do not interpret FFT/envelope peaks as mechanical yet.
AD8244 (instrumentation amplifier), OPA140 (low-bias JFET op amp),
LT3092 (programmable 2-terminal current source) as a building block for constant-current excitation (discrete approach),
INA826 (INA option).
- Goal: rule out clipping that creates false harmonics, inflated kurtosis, and unstable envelope peaks.
- Capture: a raw waveform snippet (triggered Mode B), clip_count/overrange flag, peak-to-fullscale ratio, and gain_step_id.
- Fail signature: non-zero clip_count or visibly flattened peaks; spectrum shows harmonic “ladder” uplift.
- Next action: reduce gain / increase headroom; repeat the same window conditions before proceeding.
AD8250 (programmable gain instrumentation amplifier),
ADS127L01 (high-resolution delta-sigma ADC with diagnostics options),
LTC2500-32 (high-resolution ADC family option for precision capture).
- Goal: confirm whether “ghost” peaks are folded energy from out-of-band content.
- Capture: two A/B runs with different sample rates or AA profiles; save fs_hz, aa_profile_id, and peak_list (Top-N).
- Fail signature: suspicious peaks move when fs_hz changes, or vanish when AA profile is tightened.
- Next action: lock fs_hz to the AA profile and record the binding as a configuration version.
LTC1564 (active filter / lowpass building block family),
ADA4807-1 (high-speed low-noise op amp often used in AA stages),
OPA1612 (low-noise audio/precision op amp usable for certain filter bands).
- Goal: ensure multi-channel phase/coherence conclusions are valid.
- Capture: timestamp_quality_flag (locked/free_run/holdover), channel skew/phase summary, and clock lock status.
- Fail signature: phase difference drifts between channels under identical conditions; timestamps show quality downgrade.
- Next action: gate coherence features by sync quality; do not diagnose based on phase until stable.
AD9545 (jitter cleaner / clock generator family),
Si5341 (jitter attenuating clock),
LMK00334 (clock buffer/distribution).
- Goal: rule out missing/corrupted windows caused by the link.
- Capture: packet_counter, drop_counter, crc_error_count, retransmit_count (if any), plus window_id continuity.
- Fail signature: counters rise with anomalies; window_id gaps or timestamp discontinuities.
- Next action: mark results with transport_caveat; trigger Mode B snippets for reproducible forensic review.
DP83825I (10/100 Ethernet PHY),
KSZ8081 (Ethernet PHY option),
SN65HVD1781 (robust RS-485 transceiver),
ADM2587E (isolated RS-485 transceiver).
- Goal: only after the chain is clean, verify parameters and provenance for reproducibility.
- Capture: algorithm_version, param_snapshot_hash, band/profile IDs, and calibration_id binding.
- Fail signature: parameter mismatch between devices; firmware update changed param hash without re-validation.
- Next action: enforce calibration_stale_flag + self_test_required_flag when incompatibilities are detected.
ATECC608B (secure element for identity/integrity),
W25Q64JV (SPI NOR flash for logs),
MB85RS64V (FRAM for robust parameter snapshots).
H2-12. FAQs (Accordion) + FAQPage JSON-LD
These FAQs stay strictly inside the device-side evidence chain. Each answer follows the same 3-part template: Short answer (1 sentence), What to measure (2 checks: waveform/fields), and First fix (the minimum change to prove the cause).
1
Signal looks quiet but the health index fluctuates — noise floor drift or windowing?
Maps to H2-4 / H2-7
Short answer: Most “quiet but unstable” health scores come from a drifting noise floor or inconsistent window settings, not real vibration changes.
What to measure:
- Track noise_floor_rms (same definition every time) and compare it against a baseline over temperature/time.
- Log window length / overlap / window function plus the active gain_step_id per window.
First fix: Freeze window parameters as a versioned profile, then re-run a stable test and confirm whether noise_floor_rms still drifts.
OPA1612 (low-noise op amp), ADS127L01 (precision ADC).
2
Sudden distortion after a cable change — IEPE compliance or capacitive loading?
Maps to H2-3 / H2-4
Short answer: If distortion started right after a cable swap, suspect IEPE headroom loss or cable capacitance loading before suspecting analytics.
What to measure:
- Record bias_min/bias_max (or bias_window_status) during the same vibration level and check for rail proximity.
- Compare in-band noise floor and amplitude with the old cable at the same gain_step_id.
First fix: Restore headroom (lower gain or raise compliance margin) and validate bias stability; only then revisit filters or features.
LT3092 (current source building block), INA826 (instrumentation amplifier).
3
Peaks appear at impossible frequencies — aliasing or a resampling bug?
Maps to H2-5 / H2-7
Short answer: If the suspect peak moves when you change sampling conditions, it is almost always aliasing rather than a “mystery fault.”
What to measure:
- Run an A/B test with different fs_hz and log aa_profile_id for each run.
- Compare the Top-N peak_list; alias peaks shift predictably with Fs, while true mechanical peaks stay put.
First fix: Bind Fs to a matched AA profile and lock it as a configuration version; only then audit resampling code paths.
ADA4807-1 (AA driver op amp), LTC1564 (active filter building block).
4
Bearing envelope band disappears at high speed — band-pass corner or clipping?
Maps to H2-5 / H2-7 / H2-11
Short answer: High-speed cases often lose envelope content because clipping destroys modulation, or because the band-pass no longer covers the effective resonance region.
What to measure:
- Check clip_count and inspect a raw snippet for flattened peaks during high-speed operation.
- Log the active envelope band-pass profile (corner IDs) and confirm it still matches the resonance band.
First fix: Eliminate clipping first (gain/headroom), then retune the envelope band-pass profile and re-validate with the same operating speed.
AD8250 (PGA/INA), ADS127L01 (precision ADC).
5
FFT shows strong 50/60 Hz lines — ground loop or rail ripple coupling?
Maps to H2-9 / H2-11
Short answer: Persistent 50/60 Hz lines usually indicate grounding/shielding mistakes or rail ripple coupling, not a true mechanical signature.
What to measure:
- Log shield_termination_mode, chassis_bond_status, and whether ground_loop_suspect_flag is set.
- Correlate hum energy with rail_ripple, uvlo_event_count, or other power-event markers.
First fix: Correct the isolation boundary and shield termination (single-point policy), then retest before applying notches or algorithm changes.
ADM2587E (isolated RS-485, isolation concept example), OPA140 (precision front-end op amp).
6
Two channels disagree in amplitude — gain step logging or calibration mismatch?
Maps to H2-4 / H2-10
Short answer: Channel disagreement is usually traceability failure—different gain steps or mismatched calibration IDs—before it is a “sensor problem.”
What to measure:
- Verify both channels logged the same gain_step_id and that no automatic range change occurred.
- Compare calibration_id (and cal version/CRC) across channels and confirm identical response baselines.
First fix: Enforce per-window gain logging and a single calibration set for the device; only then interpret amplitude differences as real.
W25Q64JV (log storage), MB85RS64V (FRAM for snapshots).
7
High-frequency SNR is worse than expected — clock jitter or ADC front-end drive?
Maps to H2-6
Short answer: If SNR degrades mainly at high frequency, clock quality and input-drive linearity are the first suspects, not FFT settings.
What to measure:
- Measure SNR versus frequency and log the clock status (locked/holdover) or jitter-quality indicator if available.
- Check ADC drive headroom: verify THD/overrange indicators and whether the AA/driver stage is within its linear region.
First fix: Stabilize the clock path and validate ADC drive conditions at the target frequency before re-tuning analytics thresholds.
Si5341 (jitter attenuating clock), LMK00334 (clock distribution).
8
RS-485 works but events are missing — payload too feature-only or trigger logic?
Maps to H2-8
Short answer: “Missing events” on RS-485 is often a payload/trigger design issue—features-only packets may not carry enough proof for event classification.
What to measure:
- Log the trigger decision: threshold hit, debounce state, and the feature values used at that moment.
- Confirm whether a raw snippet was attached on trigger (or a “snippet requested” flag was raised).
First fix: Enable “raw snippet on trigger” (small, bounded) to validate that the trigger logic matches the waveform reality.
SN65HVD1781 (robust RS-485), ADM2587E (isolated RS-485).
9
Ethernet packets drop under load — buffer sizing or timestamping overhead?
Maps to H2-8 / H2-11
Short answer: Drops under load are usually queue/buffer pressure or per-packet overhead (timestamping, logging), not “random Ethernet.”
What to measure:
- Track drop_counter, crc_error_count, and any queue watermark/buffer-full indicator.
- Compare CPU/ISR time spent on timestamping/logging versus payload throughput during the same window rate.
First fix: Increase buffering (or batch timestamps) and re-run the same load to confirm counters stabilize before changing analytics.
DP83825I (Ethernet PHY), KSZ8081 (Ethernet PHY option).
10
Health index shifted after a firmware update — parameter snapshot/versioning missing?
Maps to H2-7 / H2-10
Short answer: If the score shifted after an update, suspect missing provenance (parameter snapshot + calibration binding) before suspecting a real mechanical change.
What to measure:
- Verify algorithm_version and param_snapshot_hash are logged per window and match the expected profile.
- Confirm the same calibration_id is still compatible (cal CRC/version check) with the new firmware.
First fix: Enforce stale-flag rules: if provenance mismatches, require re-validation/self-test before trusting health trends.
MB85RS64V (FRAM for param snapshots), ATECC608B (integrity/identity).
11
Open/short detection triggers falsely — bias window thresholds or protection leakage?
Maps to H2-3 / H2-4
Short answer: False opens/shorts are commonly caused by poorly chosen bias thresholds, leakage in protection paths, or insufficient debounce—not a real wiring fault.
What to measure:
- Log bias_min/bias_max around the trigger and capture the fault state history (debounce counters).
- Compare the trigger rate versus temperature and input protection state to spot leakage-driven drift.
First fix: Tighten the bias window model and add robust debounce; confirm triggers disappear before changing analytics thresholds.
OPA140 (low leakage front-end), INA826 (INA option).
12
Why do raw snippets matter if FFT/features are already sent?
Maps to H2-8 / H2-11
Short answer: Features cannot prove chain integrity—raw snippets are the only way to confirm clipping, aliasing, and transient shape when disputes happen.
What to measure:
- Use a short triggered snippet to verify clip_count, bias stability, and whether the waveform matches the supposed event type.
- Compare the same event with altered fs_hz/AA settings to prove (or dismiss) aliasing artifacts.
First fix: Implement a bounded policy: “snippets only on trigger or quality-fail,” so bandwidth stays low but evidence stays admissible.
W25Q64JV (log/snippet storage), DP83825I (Ethernet PHY).