docs(appendix-e): offset fault is geophone-side — operator swap test + MicL evidence

Operator report: attaching a different geophone to an affected unit
makes the offset go away.  That rules out the unit's analog front-end
and any stored per-channel zero constant (a constant lives in the unit
and would survive a sensor swap).

The stored data agrees — MicL, a separate transducer on its own cable,
shows no offset during either episode (|mean|/peak 0.17 and 0.02) while
the geo channels on the same unit at the same moment are pinned.

Two distinct sensor-side patterns recorded:
  BE18438  Vert 0.97, Tran 0.16, Long 0.18  -> one conductor pair
  BE9558   Long 0.99, Tran 0.90, Vert 0.81  -> shared return / ground

Candidate mechanisms narrowed to three, since a geophone coil is passive
and cannot generate sustained DC: galvanic corrosion at a connector or
splice (matches the ~46 mV referred to the ADC input), a leakage path to
shield, or changed coil DC resistance interacting with the amplifier's
input bias current.

Also records the confound: swapping a sensor requires a monitoring
restart, and these units run Sensor Check "Before monitoring", so the
restart re-zeros too.  The swap does not cleanly separate "new sensor"
from "the restart re-zeroed it".  Controls and the single best
measurement (open-circuit DC across the suspect connector) documented.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HgTe8CamXAHcAmaQ6QNcog
This commit is contained in:
2026-08-25 15:06:34 +00:00
co-authored by Claude Opus 5
parent 5d3963b545
commit 4f8224a751
+57 -18
View File
@@ -3536,26 +3536,65 @@ steps. A small common-mode diurnal wobble rides on top of it, but that
wobble is present on the healthy channels too (it is the unit's normal
thermal breathing) and is not the fault.
**Open: two candidate mechanisms.**
**The fault is on the geophone side.** Operator report (2026-08-25):
*attaching a different geophone to an affected unit makes the offset go
away.* That is the channel-swap test, already run in the field many
times, and it rules out the unit's analog front-end and any stored
per-channel zero constant — a constant lives in the unit and would
survive a sensor swap.
1. *A latched bad zero.* These units run Sensor Check "Before
monitoring", so a baseline is captured at session start. Disturb the
geophone at that instant and the unit bakes a non-zero reading in as
"zero". Fits the discrete steps, the rock-steadiness between them,
surviving power cycles, the sensor check still passing, and clearing
on a clean re-zero. Also explains why it is episodic rather than
constant — it needs a disturbance at the moment of zeroing.
2. *A degrading analog front-end.* Fits BE9558 better: it was clean for
nine months, then escalated 3 → 1 → 1 → 193 events over five weeks
**and moved from Tran to Long**, which a single bad channel would
not do.
The stored data agrees. MicL — a separate transducer on its own cable —
shows no offset during either episode (`|mean|/peak` = 0.17 and 0.02),
while the geo channels on the same unit at the same moment are pinned.
BE18438 (same channel twice, months apart) looks like (1); BE9558
(escalating, channel-migrating) looks like (2). The decisive test is to
force a clean re-zero on a faulted unit: if the offset clears and stays
clear it is (1) and fixable in the field — potentially over the wire,
since we already speak SUB `0x0E` (channel sensor data) and `0x98`
(trigger test), see §7.10.
**Two distinct failure patterns**, both geophone-side:
| unit | Tran | Vert | Long | MicL | reading |
|---|---|---|---|---|---|
| BE18438 | 0.16 | **0.97** | 0.18 | 0.02 | one element only |
| BE9558 | 0.90 | 0.81 | **0.99** | 0.17 | all three, Long dominant |
(values are `\|mean\|/peak` on the dominant axis)
BE18438 has a single faulted conductor pair with the other two clean.
BE9558 has all three geo channels offset by different amounts
(Long +0.340, Tran +0.037, Vert −0.020) — that points at a shared return
or ground path in the housing rather than one element.
**Candidate mechanisms.** A geophone coil is passive and cannot
generate sustained DC on its own, so an offset originating on the sensor
side has to come from one of:
1. *Galvanic corrosion at a connector or splice* — dissimilar metals
plus moisture form a literal cell. This generates DC directly, in
the tens-of-millivolts range that matches the measured offset
(0.29 in/s ÷ 6.206053 in/s per volt ≈ 46 mV referred to the ADC
input). Fits the discrete steps, surviving power cycles, and being
cured by swapping the sensor.
2. *A leakage path to shield or another conductor*, letting the unit's
own bias/reference divide into the signal pair. Best fit for the
BE9558 all-three-channels pattern.
3. *Changed coil DC resistance* (partial short or degraded winding)
interacting with the amplifier's input bias current —
`V_offset = I_bias × R_source`. Best fit for the BE18438
single-element pattern. Note the on-device sensor check would not
catch this: it measures ring-down frequency and damping, not DC.
**Caveat on the swap test.** Swapping a geophone requires stopping and
restarting monitoring, and these units run Sensor Check "Before
monitoring" — so the restart also re-zeros the channels. The swap
therefore does not cleanly separate *"new sensor"* from *"the restart
re-zeroed it"*. Two cheap controls settle it: restart monitoring
**without** swapping (if the offset clears, it was the re-zero), or swap
the **original** sensor back (if the offset returns, it is the sensor).
The operator's remedy being a swap rather than a restart is weak
evidence for the sensor, since a restart is the easier thing to try
first.
**Best single measurement when it recurs:** DC voltage across the
suspect geophone's connector pins with the sensor **disconnected from
the unit**. A galvanic cell (mechanism 1) shows an open-circuit
voltage; mechanisms 2 and 3 do not.
**Note:** the surveyed population is subject to survivorship bias —
flooded events were routinely deleted before this snapshot, so units