Skip to content

Analyze drop-tower accelerometer "tuning" data (issue #71)#74

Draft
sgbaird with Copilot wants to merge 11 commits into
mainfrom
copilot/tune-accelerometers-drop-tower
Draft

Analyze drop-tower accelerometer "tuning" data (issue #71)#74
sgbaird with Copilot wants to merge 11 commits into
mainfrom
copilot/tune-accelerometers-drop-tower

Conversation

Copilot AI commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

The single-axis and tri-axis accelerometers on the bungee-assisted drop tower report different accelerations. This adds a reproducible analysis of the 06/02/2026 TP4 series (table export + 13 time-domain events, 4 channels @ 125 kHz) to explain why, and what to fix. The analysis was reviewed independently by Edison Scientific, and its feedback (impact-windowed peak detection; corrected CH4 interpretation) is folded in. It also adds a follow-up analysis of a second, co-located TP4 calibration series (06/08/2026), a third corrected-sensitivity, metal-mount, height-sweep series (06/09/2026), and a fourth five-channel series (06/10/2026) that adds a properly-ranged single-axis on CH5 and finally closes out the cross-calibration — all posted later in the thread.

Changes

  • scripts/analysis/accelerometer_tuning_analysis.py — parses TP4 time-domain exports, applies SAE J211 CFC-180/CFC-1000 phaseless filtering, and emits per-event time-series, PSD, a CH1 saturation plot, a CH1-vs-CH4 peak bar chart, a CH1-vs-CH4 impact alignment plot, and peak_summary.csv. Filtered peaks are searched inside a ±1 ms window around the CH4 impact (located in the first ~10 ms), not over the whole 0.2 s record.
  • data/drop-tests/accelerometer-tuning/ — the 14 source CSVs under raw/, derived peak_summary.csv (now including impact time and impact-windowed peaks), and a README documenting format + inferred channel mapping (CH1 = single-axis; CH2–CH4 = tri-axis X/Y/Z).
  • docs/accelerometer-tuning-analysis.md + docs/figures/accelerometer-tuning/ — findings and troubleshooting.
  • scripts/edison/submit_accelerometer_tuning.py + edison-trajectories/accelerometer-tuning/ — bundles the dataset, analysis script, findings, and figures into one collection, uploads it, and submits an Edison ANALYSIS task for independent feedback. Task 015f36e1-0a1c-4aed-a9a3-1d1924983c4a (status: success) has been fetched and committed: the reviewer's answer (.md), full response (.json), notebook (.ipynb), and corrected peak table + alignment figure under reviewer-artifacts/.
  • scripts/analysis/accelerometer_calibration_analysis.py + data/drop-tests/accelerometer-calibration/ + docs/accelerometer-calibration-analysis.md + docs/figures/accelerometer-calibration/ — analysis of the co-located 06/08/2026 "Accelerometer callibaration" series (8 TP4 CSVs: 500G_Signal5 aborted + seven 1000 G drops), where both sensors are on the bottom acrylic plate and the known settings are CH1 = single-axis 20 kG/0.25 mV/G and CH2–CH4 = tri-axis 10 kG/1.0 mV/G. Reuses the CFC-180/CFC-1000 + impact-windowing machinery, runs a zero-intercept CH1-vs-CH4 cross-calibration, flags CH1 full-scale clipping, and emits a co-located overlay, a regression plot, a clipping zoom, a repeatability plot, and calibration_summary.csv.
  • scripts/analysis/accelerometer_calibration2_analysis.py + data/drop-tests/accelerometer-calibration-2/ + docs/accelerometer-calibration2-analysis.md + docs/figures/accelerometer-calibration-2/ — analysis of the third 06/09/2026 "Accelerometer Callibartion 2" series (15 TP4 CSVs: 10/15/20 in drop heights × 5 reps; 5 in didn't trigger). Here the per-channel sensitivities were re-entered from the calibration certificates (CH1 0.25 → 11.61 mV/G; CH2 1.0 → 0.690; CH3 → 0.667; CH4 → 0.734 mV/G) and both sensors were moved off the acrylic plates onto the bare metal load, ~1/4 in apart. Reuses the CFC-180/CFC-1000 + impact-windowing machinery, tracks the per-height amplitude sweep, runs a zero-intercept CH1-vs-CH4 fit, flags CH1 full-scale clipping, and emits an overlay, a clipping zoom, an amplitude-sweep plot, a regression plot, and calibration_summary.csv.
  • scripts/analysis/accelerometer_calibration3_analysis.py + data/drop-tests/accelerometer-calibration-3/ + docs/accelerometer-calibration3-analysis.md + docs/figures/accelerometer-calibration-3/ — analysis of the fourth 06/10/2026 "AC3" series (15 five-channel TP4 CSVs: 10/15/20 in × 5 reps; 5 in didn't trigger). A second, much lower-sensitivity single-axis accelerometer was added on CH5 (1.059 mV/G → 9442.9 G range), placed on the very left; CH1 and CH2–CH4 were unmoved and all channels were moved to the 10 V range, with CH4 the only trigger source. The script adds a 5-channel TP4 loader (reusing the CFC-180/CFC-1000 + impact-windowing machinery, CH4 still the impact axis), runs a primary zero-intercept CH5-vs-CH4 cross-calibration plus a clip-limited CH1-vs-CH4 fit, tracks the per-height amplitude sweep, records the CH4↔CH5 peak-time lag, flags per-channel clipping, and emits a CH4-vs-CH5 overlay, a CH1-vs-CH5 clipping comparison, an amplitude-sweep plot, a regression plot, and calibration_summary.csv.

Findings (06/02/2026 tuning series)

  • CH1 (single-axis) saturates at a recurring ~8806 G ceiling (events 2/3/5). This is analog full-scale saturation (a smooth ~180 µs compressed top), not a hard digital ADC clip — its peak is invalid there, so it cannot be matched against the unsaturated tri-axis.
  • Raw peaks are mount-resonance ringing (PSD energy past 20 kHz); CFC filtering is required before any comparison (e.g. event 1 CH1 at impact: 2576 G raw → 333 G CFC-180).
  • CH4's recurring ~4.2 ms peak is the real mechanical impact, not a trigger/magnet artifact — it is <0.5 G in the aborted drops (events 6–8) and has a ~280 µs mechanical FWHM; it just recurs at ~4.2 ms because the carriage free-fall time is repeatable. (This corrects the earlier draft, which read it as a fixed trigger artifact.)
  • Sensors were swapped between positions and per-event labels weren't posted, so this dataset can't cross-calibrate them. Only events 1 & 4 have both reading a comparable impact; measured in the impact window the single-axis is only ~1.06–1.07× the tri-axis impact axis on CFC-180 (the two sensors agree within ~5–10 %). The earlier ~1.5× figure was an artifact of taking each channel's global CFC-180 maximum — CH1's global peak is a low-frequency post-impact mount oscillation at ~15.8 ms, not the impact. The residual ~250 µs lag and that late oscillation show the sensors are at different mechanical locations, not merely mis-scaled.

Findings (06/08/2026 co-located calibration series)

  • The run is co-located and time-aligned (CH1 and CH4 peak within one 8 µs sample at ~4.26 ms across all seven 1000 G drops), so it is finally cross-calibratable.
  • The single-axis reads ~30× the tri-axis. Zero-intercept fit of the CFC-180 impact-window peaks: CH1 = 30.8 (±0.3) × CH4, per-drop ratio 30.8 ± 0.8 (SD). For rigidly co-located sensors this is far too large to be a real rigid-body difference — it points to a scale/sensitivity and mount-coupling problem, not a real acceleration difference. Both entered sensitivities are internally consistent with their full scales (0.25 mV/G × 20 kG ≈ 5 V; 1.0 mV/G × 10 kG = 10 V), so a simple mV/G typo doesn't obviously explain 30×.
  • CH1 still clips at +full scale (~20.5 kG) during the impact even with the upgraded 20 kG sensor, then rings to ~−23 kG, while CH4 is a clean ~270 G CFC-180 pulse — so the single-axis mount is far more compliant/resonant (likely the acrylic plate). The 30.8× slope is therefore measured but not yet a trustworthy correction until clipping and mount resonance are removed.

Findings (06/09/2026 corrected-sensitivity, metal-mount series)

  • The ~30× discrepancy is gone — it was the single-axis sensitivity entry. Re-entering the certificate value (CH1 0.25 → 11.61 mV/G, a ~46× correction) collapses the gross single-vs-tri factor. The earlier 30.8× was itself a clip-limited lower bound on the true ~46× scale error (CH1 was also railing at +20.5 kG on 06/08).
  • Still co-located and time-aligned — CH1 and CH4 peak at the same ~3.98 ms in all 15 drops, with the off-axis tri-axis channels staying small.
  • But CH1's full scale is now far too low (430.7 G), because the high 11.61 mV/G sensitivity on a 5 V range gives only 5 V / 11.61 mV/G of range. So CH1 hard-clips flat at a ~445 G digital rail for ~300 µs on every 10/15/20 in drop, then rings to ~−500 G, while CH4 (6812 G range) is a clean pulse.
  • The height sweep gives a clean lever arm — on CH4 only. CH4's CFC-180 impact peak scales repeatably with height (10 in 348.3 ± 2.5 → 15 in 427.1 ± 0.7 → 20 in 498.8 ± 4.0 G) while CH1 stays pinned at the rail. A zero-intercept fit gives CH1 ≈ 0.52 × CH4, but this is not a trustworthy factor because CH1 is clipped on every point.

Findings (06/10/2026 five-channel CH4-vs-CH5 series)

  • The cross-calibration finally closes — and it lands near 1:1. With a properly-ranged single-axis on CH5 (1.059 mV/G → 9442.9 G range), the zero-intercept fit over all 15 drops is CH5 = 0.953 (±0.001) × CH4 on the CFC-180 impact window, per-drop ratio 0.952 ± 0.004 (SD) — repeatable to <0.5 %. Both channels are unclipped and co-located (CH4/CH5 peak within one 8 µs sample), so this is the first trustworthy single-vs-tri factor; the residual ~5 % is consistent with the ~1/4 in spacing, not a scale error.
  • Why CH1 still clips is now pinned down: it's the 861 G range, not the mount. CH1 and CH5 are both single-axis and co-located, so CH5 shows what CH1 would read with enough range. The raw transient is ~1500 G (10 in) → ~2800 G (20 in), captured cleanly on CH5 but far above CH1's 861 G full scale (the most its 11.61 mV/G sensitivity allows even on the top 10 V range), so CH1 clips on 14/15 drops while CH5 clips on 0/15. CH1's clip-limited CH1-vs-CH4 fit (~0.74×, sign even flips between drops) is therefore not usable.

Recommendations

Step up the single-axis to a higher full-scale (~20,000 G) sensor to stop saturation and verify each sensor's mV/G in TP4; run a back-to-back co-location calibration with repeatable sub-saturation drops (regress CH1 vs CH4 with zero intercept, report slope ± SE); compare CFC-filtered, impact-windowed peaks only; address mount resonance; and label sensor/position/orientation per run. Note: the ~4.2 ms CH4 peak is the impact and should be kept, not gated out. For the co-located series specifically: check both sensors' mV/G against their calibration certificates first, mount both on a stiff metal block (not the compliant acrylic plate), keep drops below CH1's full scale, and sweep the impact amplitude so the regression has a real lever arm. For the corrected-sensitivity 06/09 series: the sensitivity fix solved the original disagreement, so the only remaining blocker is the CH1 input range — raise CH1's voltage range (full scale ≥ ~1000 G for these 10–20 in drops) so it stops clipping, then redo the CFC-filtered, impact-windowed, zero-intercept CH1-vs-CH4 regression over the existing height sweep; with both unclipped and co-located on the metal load it should land near 1:1. The 06/10 five-channel series confirms this: the properly-ranged CH5 single-axis lands at 0.953 (±0.001) × CH4, so going forward use CH5 (the 1.059 mV/G single-axis) as the working single-axis — its 9442.9 G range covers the raw drop-tower transient, whereas the 11.61 mV/G CH1 unit is intrinsically mis-ranged (861 G full scale can't be raised further, since 10 V is already the top range) and should be reserved for sub-~800 G work only.

> Note: the channel→sensor mapping is inferred from the data. The "both sensors on the bottom acrylic plate" assumption applies only to the 06/08 series; @ctrhjk later clarified that the 06/09 and 06/10 series had the acrylic plates removed with both sensors on the bare metal load (CH1/CH2–CH4 unmoved between 06/09 and 06/10, with CH5 added on the very left).

Copilot AI changed the title [WIP] Tune accelerometers on the drop tower Analyze drop-tower accelerometer "tuning" data (issue #71) Jun 4, 2026
Copilot AI requested a review from sgbaird June 4, 2026 23:07
@sgbaird

sgbaird commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator

@copilot send to edison analysis (upload the files per your custom instructions) for feedback. Fetch next session.

Copilot AI commented Jun 5, 2026

Copy link
Copy Markdown
Contributor Author

@copilot send to edison analysis (upload the files per your custom instructions) for feedback. Fetch next session.

Sent to Edison as a non-blocking ANALYSIS (data-analysis crow) task. I bundled the dataset + script + findings + figures into one collection and uploaded it per the file-upload convention (store_file_content(..., as_collection=True)), then asked for independent feedback on the saturation/clipping claim, the inferred channel→sensor mapping, the SAE J211 CFC filtering choices, the ~4.2 ms trigger artifact, a rigorous co-location cross-calibration protocol, and our recommendations.

I'll fetch the result and commit the artifacts next session.

@sgbaird

sgbaird commented Jun 6, 2026

Copy link
Copy Markdown
Collaborator

@copilot fetch, commit all artifacts, implement feedback if applicable, and report back.

Copilot AI commented Jun 6, 2026

Copy link
Copy Markdown
Contributor Author

@copilot fetch, commit all artifacts, implement feedback if applicable, and report back.

Fetched the Edison review (ANALYSIS task 015f36e1, status success), committed all artifacts, and implemented its feedback (commit 20f597b).

Committed artifacts in edison-trajectories/accelerometer-tuning/: the reviewer's answer .md, full .json dump, the .ipynb notebook, and the reviewer's corrected peak CSV + alignment figure under reviewer-artifacts/.

The review found two substantive errors in the original analysis, both now fixed:

  1. Peak detection was a global 0.2 s maximum. For events 1 & 4, CH1's global CFC‑180 "peak" (483 G) is actually a low‑frequency post‑impact mount oscillation at ~15.8 ms, not the impact. Restricting the search to a ±1 ms window around the CH4 impact drops the single‑axis/tri‑axis CFC‑180 ratio from ~1.5× to ~1.06–1.07 — the two sensors actually agree within ~5–10 % on the rigid‑body pulse. New figure makes this obvious:

    alignment

  2. The ~4.2 ms CH4 peak is the real impact, not a trigger/magnet artifact. In the aborted drops (events 6–8) CH4 is <0.5 G there; it just recurs at ~4.2 ms because the carriage free‑fall time is repeatable. The earlier "gate it out" recommendation is reversed.

Also: CH1's ~8806 G ceiling is analog saturation (smooth ~180 µs compression), not a digital clip → recommend a higher full‑scale (~20,000 G) sensor; and the residual ~250 µs lag + CH1's large late oscillation confirm the sensors are at different mechanical locations, not merely mis‑scaled (so this dataset still can't cross‑calibrate them — a co‑located back‑to‑back run is needed).

Updated scripts/analysis/accelerometer_tuning_analysis.py (windowed peaks + alignment plot), docs/accelerometer-tuning-analysis.md, and regenerated peak_summary.csv (now with impact time + windowed peaks). CodeQL scan is clean.

@ctrhjk

ctrhjk commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

These are the results of the first seven drop tower tests for calibrating accelerometers.
Events were measured 17 times; however, the events for non-existent numbers were measured before the actual drop was processed (like when the hoist raised up) so I removed those results.

500G_Signal5.csv
This event was set up as:
Ch1: Full-scale 20,000G, Sensitivity 0.25mV/G
Ch2~4: Full-scale 10,000G, Sensitivity 1.0mV/G
Trigger level is 500G for all channels
I raised the trigger level due to an early measurement issue in this event.

1000G_Signal6.csv
1000G_Signal7.csv
1000G_Signal9.csv
1000G_Signal12.csv
1000G_Signal14.csv
1000G_Signal15.csv
1000G_Signal17.csv
These seven events were set up as:
Ch1: Full-scale 20,000G, Sensitivity 0.25mV/G
Ch2~4: Full-scale 10,000G, Sensitivity 1.0mV/G
Trigger level is 1000G for all channels

@sgbaird

sgbaird commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

@ctrhjk thank you! Do you have videos for these? Were these all tests where you had both accelerometers attached directly to the bottom acrylic plate? (per #71 (comment))

@copilot assume yes for the above comment, i.e., that #71 (comment) was the test method for the data in #74 (comment) and analyze this data and report back to us

@ctrhjk could you have a look at the analysis from copilot when it completes?

@ctrhjk

ctrhjk commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

@sgbaird The accelerometers were on the same level, about 1/4 inch away from each other. I don't have a video of the experiments.
We took off the acrylic plates

image

Copilot AI commented Jun 9, 2026

Copy link
Copy Markdown
Contributor Author

@ctrhjk thank you! Do you have videos for these? Were these all tests where you had both accelerometers attached directly to the bottom acrylic plate? (per https://github.com/vertical-cloud-lab/tenseg...

Analyzed @ctrhjk's new 06/08/2026 series (assuming, per your note, that both accelerometers were mounted directly on the bottom acrylic plate — the co-located setup we recommended). Script scripts/analysis/accelerometer_calibration_analysis.py, data under data/drop-tests/accelerometer-calibration/, full writeup in docs/accelerometer-calibration-analysis.md. Used the same SAE J211 CFC-180/CFC-1000, impact-windowed (±1 ms around the CH4 impact) method. 500G_Signal5 is the aborted/low-amplitude capture, so the seven 1000G drops are the clean repeats.

It really is co-located + time-aligned → finally cross-calibratable. CH1 (single-axis) and CH4 (tri-axis Z) rise and fall together, peaking within one sample (8 µs) at ~4.26 ms in all seven drops.

overlay

Headline: the single-axis reads ~30× the tri-axis. Zero-intercept fit over the seven drops: CH1 = 30.8 (±0.3) × CH4 on the CFC-180 impact pulse, per-drop ratio 30.8 ± 0.8 (SD) — repeatable to ~3%.

regression

For two rigidly co-located sensors the low-frequency rigid-body accel must be identical, so a steady ~30× is not a real acceleration difference — it's a scale/coupling problem. Two things drive it, and both need fixing before the slope means anything:

  1. Scale/sensitivity. A constant factor is the classic wrong-mV/G signature. But note both entered sensitivities are internally consistent with their full scales (0.25 mV/G × 20 kG ≈ 5 V; 1.0 mV/G × 10 kG = 10 V), so a simple typo doesn't obviously give 30× — the entries need checking against each sensor's calibration certificate.
  2. Mounting. Even at the new 20 kG range, CH1 still clips at +full scale (~20.5 kG) during the impact and then rings violently to −23 kG, with a large post-impact low-frequency swing that CH4 never sees. CH4 is a clean ~270 G pulse. So the single-axis is far more compliant/resonant — likely the acrylic plate.

clipping

Next steps: (a) verify both sensors' mV/G against their cal sheets and the TP4 entries first; (b) mount both on a stiff metal block (not acrylic), stud-mounted, to kill the single-axis ringing; (c) keep drops below CH1's full scale and sweep the amplitude (all seven here are ~the same level, so the slope rests on one operating point); (d) keep the CFC-filtered, impact-windowed, zero-intercept comparison. So the 30.8× is the measured number but not yet a trustworthy correction until the clipping/mount issues are removed.

@ctrhjk — could you confirm the channel↔sensor mapping and that both were on the bottom plate, and have a look at the writeup? Videos would also help pin down what the single-axis mount is doing.

@ctrhjk

ctrhjk commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

@sgbaird

  1. Calibration certificate sensitivity value
    3-axis accelerometer:
    Sens X (Ch2): 0.690 mV/G
    Sens Y (Ch3): 0.668 mV/G
    Sens Z (Ch4): 0.734 mV/G
    Single-axis accelerometer:
    Sens Z (Ch1): 11.61 mV/G

  2. I repeated drop tower experiments after changing the sensor sensitivity values
    Ch1: 0.25mV/G (Before) -> 11.61 mV/G (After)
    Ch2: 1.0mV/G (Before) -> 0.69 mV/G (After)
    Ch3: 1.0mV/G (Before) -> 0.667 mV/G (After)
    Ch4: 1.0mV/G (Before) - > 0.734 mV/G (After)

  3. The experiments were set up as:
    Ch1: Full-scale 430.7G (5 Volts Range), Trigger level 430.66G, Sensitivity 11.61mV/G
    Ch2: Full-scale 7246.4G (5 Volts Range), Trigger level 1000G, Sensitivity 0.69mV/G
    Ch3: Full-scale 7496.3G (5 Volts Range), Trigger level 1000G, Sensitivity 0.667mV/G
    Ch4: Full-scale 6812G (5 Volts Range), Trigger level 1000G, Sensitivity 0.734mV/G
    Record time is 200msec, Sample size 25000, Frequency 125 KHz, Signal Pre Trigger 2%-4msec

  4. I took off the acrylic plates and located both sensors on the metal load. In the video, the single-axis accelerometer is on the left. Experiments were conducted at different heights. These are test results at 5 in, 10 in, 15 in, and 20 in heights. Tests were conducted five times at each height.

  1. 5 in height

    • Accelerometers couldn't measure the drop impact.
  2. 10 in height
    Test_10in_1.csv

trim.5D6C6BFA-39AE-4D2F-BA25-34C35A12C255.MOV

Test_10in_2.csv

trim.16CC3A21-EA08-48D2-A3F3-FEBF63996511.MOV

Test_10in_3.csv

trim.78F8CBE4-3ADC-445D-A166-A05E715B4DC4.MOV

Test_10in_4.csv

trim.7B05FA8A-363B-4499-877A-FF73706F569C.MOV

Test_10in_5.csv

trim.46CF1FF8-AA79-4FE6-8A1B-8BF34350ED77.MOV
  1. 15 in height
    Test_15in_1.csv
trim.AEA50312-C02D-44E1-AAA7-DC4086CA297E.MOV

Test_15in_2.csv

trim.7D72B342-1D16-4A70-8309-665985CE399E.MOV

Test_15in_3.csv

trim.8A65870D-0BAE-4936-873D-7FA6D7E5FC88.MOV

Test_15in_4.csv

trim.FB66335B-E260-4F3F-AE2A-A8C61544E176.MOV

Test_15in_5.csv

trim.5832B80C-6AE3-4C84-BDA8-F00610BE2003.MOV
  1. 20 in height
    Test_20in_1.csv
trim.857B7905-E8C5-492E-8307-00808899985A.MOV

Test_20in_2.csv

trim.FC7DCDAF-1E5A-4600-B661-F663AC9B3A45.MOV

Test_20in_3.csv

trim.DB8854ED-59F3-49EF-A5F9-3D09DECC56CF.MOV

Test_20in_4.csv

trim.3518FDEE-F487-4D39-BB6B-BE041DC92431.MOV

Test_20in_5.csv

trim.F1FF92C6-A6E0-4EED-A042-B416B15923B8.MOV

@sgbaird

sgbaird commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

@ctrhjk very thorough. Thank you!

@copilot see #74 (comment)

Copilot AI commented Jun 9, 2026

Copy link
Copy Markdown
Contributor Author

@ctrhjk very thorough. Thank you!

@copilot see #74 (comment)

Analyzed @ctrhjk's 06/09/2026 "Accelerometer Callibartion 2" series (15 CSVs: 10/15/20 in × 5; 5 in didn't trigger). New script scripts/analysis/accelerometer_calibration2_analysis.py, data under data/drop-tests/accelerometer-calibration-2/, writeup in docs/accelerometer-calibration2-analysis.md. Same SAE J211 CFC-180/CFC-1000, impact-windowed (±1 ms around the CH4 impact) method.

The ~30× is gone — it was the single-axis sensitivity entry. The only thing that changed is the certificate sensitivities (CH1 0.25 → 11.61 mV/G, a 46× correction), and the gross single-vs-tri factor collapses immediately. So the earlier 30.8× was a wrong mV/G entry, exactly the first thing to check — and the measured 30.8× was itself a clip-limited lower bound on the true ~46× (CH1 was also railing at +20.5 kG on 06/08). Good catch confirming it against the cal sheet.

It's co-located and time-aligned — CH1 and CH4 peak at the same ~3.98 ms in all 15 drops, off-axis CH2/CH3 stay small.

But CH1's full scale is now far too low (430.7 G), so it hard-clips on every drop. Re-entering the high 11.61 mV/G on a 5 V range gives CH1 only 5 V / 11.61 mV/G = 430.7 G full scale, so the impact rails it flat at a ~445 G digital plateau for ~300 µs and then rings to ~−500 G, while CH4 (6812 G range) is clean.

CH1 clipping

The height sweep gives a clean lever arm — on CH4 only. CH4 CFC-180 impact peak scales repeatably (10 in 348.3±2.5 → 15 in 427.1±0.7 → 20 in 498.8±4.0 G) while CH1 stays pinned at the rail:

Amplitude sweep

A zero-intercept fit gives CH1 ≈ 0.52 × CH4, but that's not a trustworthy factor — CH1 is clipped on every point, so its "peak" is a saturated/ringing artifact, not the real impact.

Recommendation: the sensitivity fix solved the original disagreement; the only remaining blocker is the CH1 input range. Bump CH1's voltage range (raise its full scale to ≥ ~1000 G for these 10–20 in drops) so it stops clipping, then redo the CFC-filtered, impact-windowed, zero-intercept CH1-vs-CH4 regression over the same sweep — with both unclipped and co-located on the metal load it should land near 1:1 and give the final slope ± SE.

(Mapping CH1 = single-axis, CH2–CH4 = tri-axis X/Y/Z and the bare-metal mounting follow your description, @ctrhjk.)

@sgbaird

sgbaird commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

Bump CH1's voltage range (raise its full scale to ≥ ~1000 G for these 10–20 in drops) so it stops clipping, then redo the CFC-filtered, impact-windowed, zero-intercept CH1-vs-CH4 regression over the same sweep — with both unclipped and co-located on the metal load it should land near 1:1 and give the final slope ± SE.

@copilot how to do this with that specific software, and what exactly to change? Noting that I think you also might have a manual PDF committed somewhere across the many issue and PR comments in this repository

@ctrhjk do you know what copilot is talking about?

Copilot AI commented Jun 10, 2026

Copy link
Copy Markdown
Contributor Author

Bump CH1's voltage range (raise its full scale to ≥ ~1000 G for these 10–20 in drops) so it stops clipping, then redo the CFC-filtered, impact-windowed, zero-intercept CH1-vs-CH4 regression over...

The software is Lansmont TestPartner 4 (the exports' header path is C:\TP4_46\…, i.e. TestPartner 4 v4.6). To be upfront on the manual: I searched the repo (working tree + git history) and there's no TP4/TestPartner/Lansmont manual PDF committed here — the only PDFs are papers under literature/ and the manuscript/proposal. So I can't point you at a committed page reference; the steps below are from the TestPartner channel-setup model plus your own posted settings.

What to change (and why): In TP4 every channel has the four fields you already listed — Volts Range, Sensitivity (mV/G), Full‑scale (G), Trigger level (G) — and they're linked by

    Full-scale (G) = Volts Range (V) ÷ Sensitivity (V/G)

CH1 is clipping purely because of Volts Range, not sensitivity. Right now CH1 is 5 V ÷ 11.61 mV/G = 430.7 G, so the ~350–500 G impact rails it flat. Keep the certificate sensitivity 11.61 mV/G (that's the part that fixed the 30×) and change only the range:

  1. Open the per‑channel sensor/hardware setup (the same dialog where you entered 11.61 mV/G and the 5 V range).
  2. For CH1, change Volts Range 5 V → 10 V (the DAQ's top range — it's what CH2–CH4 used in the 06/02 and 06/08 runs). TP4 will recompute Full‑scale 430.7 G → 861.4 G.
  3. Lower CH1's Trigger level off the rail (it's currently 430.66 G = full scale). Match it to the others (~1000 G is fine on the new range, or a few hundred G) so CH1 isn't triggering on its own clip.
  4. Leave CH2–CH4 as they are (0.69/0.667/0.734 mV/G, 5 V).

Important caveat — 10 V may not be enough, and here's the limit. 861 G covers the CFC‑180 rigid‑body impact at all three heights with headroom (CH4 is 348→427→499 G at 10/15/20 in), so the cross‑calibration regression becomes usable. But the raw (unfiltered) shock on the co‑located CH4 reaches ~1600 G at 10 in and ~2800 G at 20 in (calibration_summary.csv, CH4_raw). With the 11.61 mV/G sensor you top out at 861 G even at the maximum 10 V range, so CH1's raw high‑frequency ringing will likely still clip — and CFC‑filtering a clipped trace doesn't recover the true peak.

So there are really two levers:

  • Immediate (software only): set CH1 to 10 V as above and re‑run the 10/15/20 in sweep. Worth doing — it should de‑rail the rigid‑body peak and let us redo the impact‑windowed, zero‑intercept CH1‑vs‑CH4 fit.
  • Proper fix (hardware): the single‑axis is intrinsically a high‑sensitivity / low‑G unit (11.61 mV/G → only 861 G even maxed out), which is the wrong range for a multi‑thousand‑G drop. To stop clipping entirely you'd swap it for a lower‑sensitivity single‑axis accelerometer (≈1 mV/G, like the tri‑axis, → several‑thousand‑G full scale), then it covers the raw transient and lands near 1:1 against CH4.

@ctrhjk — does the TP4 channel‑setup dialog let you pick 10 V for CH1 (since CH2–CH4 ran at 10 V before)? And do you have a spare single‑axis head with a lower mV/G rating? Either would let us close this out.

@ctrhjk

ctrhjk commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

@sgbaird

  1. I added one more single-axis accelerometer that has much lower sensitivity in this test since ch1 kept clipping. This new accelerometer was plugged into ch5 so that we can compare ch5 and ch1 to figure out why ch1 had clipping in the results. Our goal for this experiment is to verify ch5 vs. ch4, and compare ch1, ch4, and ch5 quantitatively. Also need to check for the clipping. Consider Ch4 as a reference. This new accelerometer is placed on the very left. Ch1 and Ch2~4 accelerometers haven't been moved since the last experiment.

image

  1. Calibration certificate sensitivity values are :
  • Single-axis accelerometer:
    Sens Z (Ch1): 11.61 mV/G
  • 3-axis accelerometer:
    Sens X (Ch2): 0.690 mV/G
    Sens Y (Ch3): 0.668 mV/G
    Sens Z (Ch4): 0.734 mV/G
  • Single-aixs accelerometer:
    Sens Z (Ch5): 1.059 mV/G
  1. The experiments were set up as:
    Ch1: Full-scale 861.3G (10 Volts Range), Trigger level None, Sensitivity 11.61mV/G
    Ch2: Full-scale 14492.8G (10 Volts Range), Trigger level None, Sensitivity 0.69mV/G
    Ch3: Full-scale 14992.5G (10 Volts Range), Trigger level None, Sensitivity 0.667mV/G
    Ch4: Full-scale 13624.0G (10 Volts Range), Trigger level 1000G, Sensitivity 0.734mV/G
    Ch5: Full-scale 9442.9G (10 Volts Range), Trigger level None, Sensitivity 1.059mV/G

Record time is 200msec, Sample size 25000, Frequency 125 KHz, Signal Pre Trigger 2%-4msec

In this experiment, the trigger resource is only Ch4 because our goal is ch4 - ch5 calibration. The single accelerometer Ch5 is calibrated. I replaced the voltage range for all channels with a 10V range.

  1. Experiments were conducted at different heights (the same conditions as last time). These are test results at 5 in, 10 in, 15 in, and 20 in heights. Tests were conducted five times at each height.
  1. 5 in height

Accelerometers couldn't measure the drop impact.

  1. 10 in height
    Test_10in_1.csv
trim.B04577D5-AED1-4168-8F0C-2D70EFC41D86.MOV

Test_10in_2.csv

trim.8C1DEE56-61F7-4A8F-974E-6AA7D44E67B2.MOV

Test_10in_3.csv

trim.BF4164D8-A9C0-4B1D-858B-1BA38EF21D2E.MOV

Test_10in_4.csv

trim.BD7E1C88-AFF6-4289-88A3-FA5397C72623.MOV

Test_10in_5.csv

trim.1309DE99-D6AD-4346-9BBF-00A938808AE0.MOV
  1. 15 in height
    Test_15in_1.csv
trim.7FDA4B4B-8789-4291-8FD0-86E266AC8132.MOV

Test_15in_2.csv

trim.1F024FA6-9A46-43A3-81E8-EBBE10DB3F4D.MOV

Test_15in_3.csv

trim.A9C03862-C697-4712-88FC-D46B764F370E.MOV

Test_15in_4.csv

trim.0E87AD98-114E-4FE1-ADF7-AF053386B3AB.MOV

Test_15in_5.csv

trim.AA1B459B-6A30-41CF-9A34-E75426349357.MOV
  1. 20 in height
    Test_20in_1.csv
trim.C31C3CAA-076A-463F-B261-0A2D6DD0D9AA.MOV

Test_20in_2.csv

trim.D8D19572-6BDD-49C4-B7C1-80615100B321.MOV

Test_20in_3.csv

trim.D15F7D08-1C63-4B86-82D8-67E93A3E89AA.MOV

Test_20in_4.csv

trim.B617DD04-5130-4565-B2FF-A1227232F2E1.MOV

Test_20in_5.csv

trim.D044B36B-4752-4A3E-8A73-82A233075B36.MOV

@sgbaird

sgbaird commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

@copilot see #74 (comment)

@ctrhjk

ctrhjk commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

@copilot see #74 (comment)
@sgbaird
I just uploaded videos as well

Copilot AI commented Jun 10, 2026

Copy link
Copy Markdown
Contributor Author

@copilot see #74 (comment)

Analyzed @ctrhjk's 06/10/2026 "AC3" 5-channel series (15 CSVs: 10/15/20 in × 5; 5 in didn't trigger). New script scripts/analysis/accelerometer_calibration3_analysis.py, data under data/drop-tests/accelerometer-calibration-3/, writeup in docs/accelerometer-calibration3-analysis.md. Same SAE J211 CFC-180/CFC-1000, impact-windowed (±1 ms around the CH4 impact) method, with a 5-channel TP4 loader. CH4 is the reference, as requested.

The cross-calibration finally closes — and it's near 1:1. Adding the low-sensitivity CH5 single-axis (1.059 mV/G → 9442.9 G range) gives an unclipped single-axis to compare against CH4. Zero-intercept fit over all 15 drops:

CH5 = 0.953 (± 0.001) × CH4 on the CFC-180 impact window, per-drop ratio 0.952 ± 0.004 (SD) — repeatable to <0.5%.

So the single-axis reads ~95% of the tri-axis Z impact peak. Both are unclipped and co-located (CH4/CH5 peak within one 8 µs sample), so this is a trustworthy number — the residual ~5% is consistent with the ~1/4 in spacing, not a scale error.

Why CH1 clips (your other question): it's the 861 G range, not the mount. CH1 and CH5 are both single-axis and co-located, so CH5 shows what CH1 would read with enough range. The raw transient is ~1500 G (10 in) → ~2800 G (20 in), captured cleanly on CH5 but far above CH1's 861 G full scale — so CH1 rails flat at ~+810 G through the impact then rings to ~−900 G, clipping on 14/15 drops (CH5: 0/15):

Because CH1 is railed, its CH1-vs-CH4 fit (~0.74×, sign even flips between drops) is not usable. The amplitude sweep shows CH4 and CH5 scaling together with height while CH1 stays rail-corrupted:

Drop height CH4 CFC-180 CH5 CFC-180 CH5/CH4
10 in 345.1 ± 0.7 G 328.0 ± 0.9 G 0.950
15 in 425.9 ± 3.1 G 404.7 ± 3.8 G 0.950
20 in 500.1 ± 1.7 G 477.9 ± 2.7 G 0.955

Bottom line / recommendation: this run answers the original issue. With the properly-ranged CH5 the single-axis vs tri-axis Z factor is 0.953 (±0.001), within ~5% of 1:1 — the earlier ~30×/~46× disagreements were the CH1 sensitivity entry and the residual clipping was purely CH1's range. Going forward, use CH5 (the 1.059 mV/G single-axis) as the working single-axis; the 11.61 mV/G CH1 unit is intrinsically mis-ranged for these multi-thousand-G drops (its 861 G full scale can't be raised further — 10 V is already the top range), so reserve it for sub-~800 G work only.

(Mapping CH1, CH5 = single-axis; CH2–CH4 = tri-axis X/Y/Z, bare-metal co-located mount, and CH1/CH2–CH4 unmoved since 06/09 all follow your description, @ctrhjk.)

@sgbaird

sgbaird commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

Bottom line seems to be that we swap accelerometers?

@sgbaird

sgbaird commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator

@copilot any additional feedback or analysis in light of most recent results in #67 ? Also, what are the dimensions of the 3-axis accelerometer? I think that might have been given somewhere in a comment in one of the issues or PRs

Copilot AI commented Jun 24, 2026

Copy link
Copy Markdown
Contributor Author

@copilot any additional feedback or analysis in light of most recent results in #67 ? Also, what are the dimensions of the 3-axis accelerometer? I think that might have been given some...

Feedback in light of #67

The headline is that this PR (#74) closes the calibration loop that #67 depends on. #67 standardizes on the low‑sensitivity single‑axis on CH5 (1.059 mV/G → 9442.9 G FS) as the go‑forward sensor; #74's five‑channel series now shows that sensor reads almost exactly the tri‑axis Z reference:

CH5 = 0.953 (± 0.001) × CH4 (CFC‑180 impact window, zero‑intercept), per‑drop ratio 0.952 ± 0.004 — both unclipped and co‑located.

So three concrete things for the SOP:

  1. Add drop-test protocol, Edison synthesis, and first-data analysis #67's CH5 numbers are validated and cross‑walkable. The vertex CFC‑180 peaks in Add drop-test protocol, Edison synthesis, and first-data analysis #67 (229–284 G on CH5) are real single‑axis impacts, and you can map them to tri‑axis‑Z by dividing by 0.953 → ~240–298 G — i.e. the single‑axis and tri‑axis agree to within ~5% (the residual is consistent with the ~1/4 in sensor spacing, not a scale error). Add drop-test protocol, Edison synthesis, and first-data analysis #67 and Analyze drop-tower accelerometer "tuning" data (issue #71) #74 use the identical CFC‑180 + CH4‑windowed method, so the two datasets are directly comparable.
  2. Re: "do we swap accelerometers?" — no further swap needed: CH5 (1.059 mV/G) is the right single‑axis standard, and CH1 (11.61 mV/G, 861 G FS) should stay retired for impacts — it clipped on 14/15 AC3 drops. The one thing to watch is CH5 saturation at full drop energy: Add drop-test protocol, Edison synthesis, and first-data analysis #67 already flagged the m6cyoq‑acrylic run at CH5 raw ≈ 8527 G (~90% of its 9442.9 G FS), and Analyze drop-tower accelerometer "tuning" data (issue #71) #74's sweep shows raw single‑axis transients rising ~1500 G (10 in) → ~2800 G (20 in). A stiff/direct 13 ft vertex hit could push CH5 raw near or over FS, so keep the CH5_clipped flag in view and treat ~9.4 kG as the usable ceiling for this sensor. CH4 (tri‑axis Z, 1000 G trigger) remains the impact locator/reference in both PRs.
  3. The remaining Add drop-test protocol, Edison synthesis, and first-data analysis #67 need is unchanged: fresh, intact, distinct‑geometry vertex‑only samples (n ≥ 5) before peak‑g can discriminate geometry as a BO objective.

3‑axis accelerometer dimensions

I couldn't find them. I searched issues #71 and #36 and PRs #67/#74 plus the committed docs: the only sensor specs on record are per‑channel sensitivity + full‑scale (the cal‑cert values you posted in #74 — tri‑axis 0.690 / 0.667 / 0.734 mV/G; single‑axis 11.61 and 1.059 mV/G). The #71 "figure out the models/part numbers" ask was answered with signal plots, not the certificate, and there's no sensor datasheet PDF committed in the repo. So the tri‑axis model/part number (and therefore its footprint/mass) hasn't actually been shared in text or in a readable image.

@ctrhjk / @me-madsen — could you post the tri‑axis accelerometer's model/part number or its calibration‑certificate PDF? With the part number I can pull the exact footprint and mass from the datasheet rather than guess.

@ctrhjk

ctrhjk commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator

@sgbaird
The specs of the tri-axis accelerometer are:

Manufacturer: Dytran instruments, inc.
Model name: 3133A4
Serial number: 11799
Cal date: 4/20/2023
Sens X: 0.690 mV/G
Sens Y: 0.667 mV/G
Sens Z: 0.734 mV/G

The dimensions below were measured using a caliper
6mm x 6mm x 5.94mm (L x W x H)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

"Tune" the accelerometers on the drop tower

4 participants