Drogheda/06-Testing-Validation/2026-09-17_Drogheda_HALT-Rig_Thermal-Vibration-Impact_v1.0.md

25 KiB
Raw Blame History

tags project author date status supersedes
project-drogheda
testing
halt
environmental
hbox
rig
Project Drogheda Helgen CTO 2026-09-17 Draft for review none

DIY Environmental Test Rig — 60 °C + Vibration + Impact for HBOX

Question asked (Leo, 17-Sep): can we build a cheap, off-the-shelf heat chamber with vibration and impact that reproduces crane service conditions for the HBOX?

Answer: yes. Target scope agreed: 1–2 units in the chamber, self-declared profile-shaped results (measured and logged, not calibration-traceable), budget band $10k–$30k MXN. The design below lands at ~$22k MXN with a ~$14k MXN stripped variant, buildable in the Querétaro shop in 2–3 weeks of part-time work.

The single most important design decision is in §2: measure the real crane environment before building anything, using the accelerometer that is already on the v6 board. That step costs nothing and is what turns this from a "shake it and see" box into something we can put in a report and show ICAVE.


1. What we are actually trying to catch

We are not trying to certify the HBOX. We are trying to reproduce, in a week on a bench, the failure modes that took months to appear at ICAVE, TIMSA and LCT:

Failure mode Provoked by Evidence we already have
Solder joint / pad cracking on heavy parts (L22, U25, electrolytics, the GX16 entry) Vibration + thermal cycling Generic, but v5.5 has tall inductors and a 100 µF/50 V can
Connector backout / intermittent (P1 Phoenix, U.FL pigtails, GX16) Vibration + impact U.FL rated ~30 mating cycles; field units were hand-wired
Screw / standoff loosening, enclosure resonance Vibration ASA case in a sealed ABS cabinet
Battery charge stall and hot-pause at temperature 60 °C soak Confirmed: RNTB = 10 k puts the LTC4040 hot-pause at ≈ +42 °C (B3380). Port ambient ~45 °C. See Battery-Chemistry-HighTemp v1.0
Modem brownout / boot-loop under load at temperature 60 °C soak + LTE TX burst 10-Ago RCA, LTC4040 PFI 4.60 V trip
Firmware thermal policy bugs (fan, BAT_CRITICAL, watchdog) 60 °C soak fan-policy v3 doc, and v6 still has open firmware items
GNSS TCXO drift / fix loss hot 60 °C soak not yet characterised

Note the asymmetry: most of our known failures are thermal, not mechanical. The heat chamber is the part that earns its money immediately. Vibration and impact are the insurance policy for the 250-unit rollout, where a 1 % mechanical failure rate is 2–3 truck rolls to Veracruz.

That argues for building the thermal chamber first (§4) and the mechanical stage second (§5–6). They are separable and the chamber is useful on day one.


2. Step zero: measure the crane, don't guess it

Do this before buying a single part.

The published standards a crane-mounted controller would normally be judged against are all borrowed from adjacent industries and none of them is "port crane":

  • IEC 60068-2-6 (Test Fc, sinusoidal sweep) — the generic industrial severity is a constant-displacement leg then a constant-acceleration leg, e.g. 10–150 Hz, 0.35 mm / 5 m·s⁻², 1 oct/min, 10–20 sweep cycles per axis. Toradex, for example, runs 10–55 Hz at 0.54 mm and 10–300 Hz at 39 m·s⁻².
  • IEC 61373 Cat 1 Class B (railway, equipment inside a case on the car body) — the closest analogue in spirit: low-level random 5–150 Hz for function, plus a 5 h/axis simulated-long-life run.
  • IEC 60068-2-27 (Test Ea, shock) — half-sine severities of 15 g / 11 ms, 30 g / 18 ms, 30 g / 11 ms, 50 g / 20 ms, typically 200–1000 shocks per direction over 3 axes.

Picking one of these off the shelf would be guessing. We don't have to guess:

EinarBoard v6 carries U26 = SC7A20TR (LIS3DH-compatible, I²C 0x18, INT1 → PB9). Firmware work for $PHLG vibration fields is already an open item in the v6 brief. Finish that item first, flash one unit, mount it on a live crane at ICAVE for 5–7 working days, and log raw XYZ at 400 Hz ODR in bursts (e.g. 10 s every 5 min, plus a triggered burst on INT1 over threshold).

From that log we get, for free:

  1. the real PSD — where the energy actually sits (expect < 50 Hz: gantry travel over rail joints, trolley accel/decel, hoist, structural modes);
  2. the real shock spectrum — container landing and twistlock events, which is what "impact on a crane" actually means;
  3. the duty cycle — how many shock events per shift, which sets how many shocks the rig has to deliver to represent a year of service;
  4. a defensible sentence for the report: "the rig reproduces the 95th-percentile measured field environment at ICAVE, ×N acceleration factor."

That sentence is worth more to a client than "we ran IEC 60068-2-6."

Fallback if the field log slips: build to 5–60 Hz, 0.5 g rms broadband, peaks to 2 g, plus 15 g / 11 ms half-sine shock. Those are the numbers sized throughout this document and they are defensible as a conservative industrial-vehicle envelope.


3. Architecture

Three subsystems on one frame. The key trick is that the hot box rides on the shaker rather than the shaker living inside the heat — a 3600 rpm motor, its bearings and a VFD do not belong in a 60 °C oven.

                    ┌─────────────────────────────┐
                    │  HOT BOX  (40×40×40 useful) │
                    │   ┌───────┐   ┌───────┐     │  ← 50 mm rockwool,
                    │   │ HBOX  │   │ HBOX  │     │    3 mm alu liner
                    │   │  DUT1 │   │  DUT2 │     │
                    │   └───────┘   └───────┘     │  ← DUTs on the SAME
                    │  PTC heater + circ. fan     │    bracket the crane uses
                    └──────────────┬──────────────┘
                     ══════════════╪══════════════   ← 12 mm alu platen
                          ║        │        ║
                        [spring] [ECC]  [spring]      ← VIBRATION MODE:
                          ║      motor    ║             4 soft springs, fn ≈ 5 Hz
                    ══════╩═══════════════╩══════   ← steel base frame, floor-bolted
                          ▲                             SHOCK MODE: springs swapped
                          │ 4× linear shaft + SC16UU     for Shore-60A pucks, platen
                          │ (guided drop, 25–55 mm)      lifted and released

Service loop for mains + thermocouples + DUT harness enters the moving platen through a slack silicone-jacketed loop with a strain-relief anchor on both ends — this is the #1 thing that breaks on rigs like this.

Mode switching is a 20-minute job (unbolt 4 springs, bolt in 4 pucks). Do not try to do vibration and shock simultaneously; the pad stiffness requirements are in direct conflict (see §6).


4. Thermal stage — 60 °C

Sizing

Steady-state loss through 50 mm rockwool (k ≈ 0.040 W·m⁻¹·K⁻¹) on a 0.50 m cube, ΔT = 45 K worst case (15 °C shop morning → 60 °C):

Q_cond = k·A·ΔT/t = 0.040 × 1.22 m² × 45 / 0.050 ≈ 44 W
× 3 for leakage, cable penetrations, door seal, thermal bridges ≈ 130 W

Pull-up dominates the sizing, not steady state. A 10 kg aluminium platen + 5 kg of DUT + fixture raised 35 K is 455 kJ:

Pull-up time Power for the thermal mass alone
15 min 506 W
20 min 379 W
30 min 253 W

Specify 600 W (2 × 300 W PTC fan-heater modules). That gives ~25 min to setpoint with margin, and the PID will spend most of the soak at 20–25 % duty.

PTC elements are the right choice over nichrome coils or cartridge heaters: they self-limit, they come as a sealed module with the fan integrated, and they cannot run away if the fan stops.

Control and — more important — safety

Two independent layers. This is not optional.

  1. Control loop: REX-C100 PID → SSR-40DA → heaters. Type-K thermocouple in the return air stream, not touching a DUT.
  2. Independent over-temperature cutout: a KSD301 85 °C normally-closed thermostat wired in series with the coil of a mechanical contactor that feeds the heaters. The dominant failure mode of an SSR is shorted on, and when that happens the PID has no authority at all. The contactor is the only thing between a stuck SSR and a fire in an unattended overnight soak.
  3. Plus: a 10 A breaker, a metal control enclosure, and PE bonded to the alu liner.

Log independently of the PID: 2 spare type-K probes (one at each DUT surface, one in the air) into a cheap 2–4 channel USB/SD logger, so the report has a measured temperature trace rather than "the display said 60."

Materials

  • Insulation: rockwool board, not EPS/XPS. EPS is rated ~75 °C and softens and outgasses long before that near a heater; rockwool is non-combustible and costs about the same. Polyiso is also fine but rockwool is safer next to a 600 W element.
  • Liner: 3 mm aluminium or a stainless steamer-pan shell. Needed both as a fire barrier and to stop the insulation from shedding fibres onto the DUTs.
  • Door: piano hinge + silicone oven gasket + two over-centre latches.

🔴 Battery hazard — read before the first soak

The HBOX contains a lithium pack. A 60 °C ambient plus internal self-heating plus LTE TX bursts puts cells above their charge window, and per Battery-Chemistry-HighTemp v1.0 the LTC4040 already hot-pauses at ≈ +42 °C with the current RNTB = 10 k.

  • Run the first soaks with the pack fitted but the charger inhibited, and a thermocouple taped to the pack.
  • Never leave the first soak of a new build configuration unattended.
  • Keep a Class-D extinguisher or a bucket of dry sand and a welding blanket at the rig. Not a CO₂ extinguisher.
  • If we move to high-temp LFP 26650, re-baseline everything — LFP is the whole reason 60 °C becomes a reasonable soak rather than a destructive one.

Useful side effect: this rig is the cheapest way to prove the RNTB → 5.6 k + LFP decision before committing it to the 30-unit BOM.


5. Vibration stage

Mechanism choice

Rotating eccentric mass on soft springs. It is the only mechanism that gives useful force at 5–60 Hz for four figures of pesos. An electrodynamic shaker (§5.4) is better but is a Phase 2 upgrade.

Moving assembly budget: alu platen 12 mm (~5 kg) + hot box shell and insulation (~4 kg) + heaters and fixture (~2 kg) + 2 DUTs (~5 kg) ≈ 16 kg.

The honest limitation — read this before believing any number below

A fixed eccentric on a soft-mounted mass produces constant displacement, so acceleration rises as f²:

m_e·e peak displacement a @ 10 Hz a @ 30 Hz a @ 60 Hz
2 g·m 0.12 mm 0.05 g 0.45 g 1.81 g
5 g·m 0.31 mm 0.13 g 1.13 g 4.53 g
10 g·m 0.62 mm 0.25 g 2.26 g 9.05 g
20 g·m 1.25 mm 0.50 g 4.53 g 18.1 g

You cannot hold a flat 0.5 g across 5–60 Hz with one weight setting. Anyone who tells you their eccentric rig "runs IEC 60068-2-6" either has closed-loop amplitude control or is not measuring.

What we do instead — banded sweeps with a weight change between bands:

Band Frequency Motor RPM Eccentric setting m_e·e Achieved a
A 5–15 Hz 300–900 ~20 g·m (400 g @ 50 mm) 0.1 → 1.1 g
B 15–40 Hz 900–2400 ~5 g·m (100 g @ 50 mm) 0.3 → 2.0 g
C 40–80 Hz 2400–4800 ~1.5 g·m (30 g @ 50 mm) 0.9 → 3.8 g

⚠ Band C overspeeds a 60 Hz motor to 80 Hz on the VFD. Check the motovibrador's rated maximum centrifugal force and bearing speed before doing this, and de-rate the weights accordingly — the force the bearings see scales as f² too. If the datasheet won't allow it, stop band C at 60 Hz and use Option V3 (BLDC) for anything above.

Each band is swept at 1 octave/min, several cycles, and the accelerometer logs what actually happened. The report states measured levels per band, which is honest and still perfectly good at finding cracked joints.

Suspension

Soft springs so the platen floats above its own suspension resonance and the bench does not get shaken:

Target fn k total per spring (×4) static deflection
4 Hz 10.1 kN/m 2.5 kN/m 15.5 mm
5 Hz 15.8 kN/m 4.0 kN/m 9.9 mm
6 Hz 22.7 kN/m 5.7 kN/m 6.9 mm

Pick fn ≈ 5 Hz (4 N/mm springs). Note this means band A starts near the suspension resonance — expect amplification there and do not dwell at 5–7 Hz until you have watched the accelerometer trace.

Drive options

  • Option V1 (recommended): 3-phase motovibrador 0.18–0.25 kW with adjustable half-moon counterweights + VFD 0.75 kW, 220 V 1-ph in / 3-ph out. Smooth 0–80 Hz, ramps programmable, weights adjustable by design. ~$5,400 MXN.
  • Option V2 (cheap): 110 V 100 W single-phase vibrating motor (VEVOR-class, 3600 rpm) on a phase-angle dimmer. Works, but speed regulation under load is poor and the eccentric is often not adjustable. ~$2,000 MXN. Acceptable for the stripped build.
  • Option V3 (reach 80–200 Hz): RC outrunner BLDC + 80 A ESC + servo tester, eccentric disc on the shaft. Spins to 10 000+ rpm for ~$1,200 MXN. Crude but it is the only cheap way to excite PCB-level resonances (typically 150–300 Hz).

5.4 Phase 2 upgrade (optional, ~$6k MXN) — the woofer shaker

A 15" pro-audio woofer, its voice coil coupled to a light fixture, driven by a class-D amp from a PC sound card, gives genuine closed-loop swept sine and random 20–200 Hz with the accelerometer as the control sensor. Force is modest (~100 N, so ~2 g on a 5 kg light fixture — the hot box is too heavy for it), but it is the only sub-$10k way to run a real controlled profile. Worth doing later for bare-PCBA resonance search; not needed for v1.


6. Impact / shock stage

A guided drop table. The platen is lifted a set height on four linear shafts and released onto elastomer pucks. Pulse shape is a clean half-sine; peak g and duration are set by drop height and puck stiffness, and both are measured, not assumed.

For the 15 g / 11 ms target on the 16 kg platen:

Δv = (2/π)·a·T = 0.6366 × 147.2 m/s² × 0.011 s = 1.03 m/s
Rebound Impact velocity Drop height
0 % 1.03 m/s 54 mm
30 % 0.79 m/s 32 mm
50 % 0.69 m/s 24 mm

Pad stiffness required: k = m·π²/T² = 1.31 MN/m, i.e. 326 kN/m per puck across four. With Shore 60A rubber (E ≈ 4 MPa) 25 mm thick that is a 51 mm diameter puck; Shore 70A (E ≈ 6 MPa) gives 42 mm. Buy an assortment of 30/40/50 mm pucks in 60A and 70A and tune empirically against the accelerometer trace — this takes an afternoon.

⚠ The puck diameters above use k = E·A/L, which under-estimates real rubber in compression: a bonded or friction-constrained puck is stiffened by its shape factor, often by 2–4× for a squat geometry. Expect the pucks you actually need to be smaller or softer than the table says. Treat those numbers as the starting point of the tuning, not the answer.

Other severities for reference, same rig:

Severity Δv Drop height (30 % rebound) Pad k
3 g / 30 ms (gentle, ≈ IEC 61373 Cat 1) 0.56 m/s 10 mm 0.18 MN/m
15 g / 11 ms 1.03 m/s 32 mm 1.31 MN/m
30 g / 11 ms 2.06 m/s 128 mm 1.31 MN/m
30 g / 18 ms 3.37 m/s 343 mm 0.49 MN/m

Everything up to 30 g / 11 ms is comfortably inside a 300 mm shaft travel. Lift by hand with a lever and a detent for v1; motorise with a cam and a geared motor later if we want 1000-shock endurance runs.

Axes: rotate the DUT in its bracket rather than tipping the table. Three orthogonal orientations, N shocks each, per §2's measured duty cycle (fallback: 100 per direction).


7. Instrumentation

What Sensor Why
Rig control/reference vibration ADXL355 (±8 g, 20-bit, SPI, low noise) on the platen This is the sensor the report quotes. Mount it rigidly to the platen, not the box
Shock peaks ADXL1002 (±50 g, 11 kHz BW, analog) The ADXL355 will clip and alias on a 15 g / 11 ms pulse
DUT-internal vibration U26 SC7A20 already on the v6 board Free, and it cross-checks the field log from §2 with the rig — that correlation is the validation of the rig
Temperature 3 × type-K + the DUT's own tair (SHT40), tntc, tbat (TMP102) Already in $PHLG
DUT health $PHLG telemetry over RS-232/RS-485 out of the chamber, logged continuously Pass/fail evidence

Logger: Teensy 4.0 or Pi Pico → SD at ≥2 kHz for the shock channel. Keep the logger outside the hot box.

Pass/fail is defined on $PHLG, not on "it still turns on": no GNSS fix loss > N s, no modem re-registration, no watchdog reset, no cflt charge fault that does not clear, no drift in C/N₀ beyond X dB. Define the thresholds before the first run, not after.


8. BOM and budget (MXN, Sep-2026 street prices, ±25 %)

Thermal stage

Item Qty Est.
Aluminium sheet 3 mm + angle frame (liner + door) — 1,800
Rockwool board 50 mm, ~2 m² — 700
PTC fan-heater module 220 V 300 W 2 700
High-temp circulation fan, metal blade 1 400
PID kit: REX-C100 + SSR-40DA + type-K probe 1 450
KSD301 85 °C cutout + mechanical contactor + 10 A breaker 1 500
Spare type-K probes + 4-ch SD/USB temp logger 1 600
Mains wiring, control enclosure, IEC inlet, silicone glands, oven gasket, latches — 900
Subtotal 6,050

Vibration stage

Item Qty Est.
Motovibrador 3-ph 0.18–0.25 kW, adjustable weights 1 3,500
VFD 0.75 kW 220 V 1-ph → 3-ph 1 1,900
Aluminium platen 12 mm, 400×400 mm 1 2,200
Compression springs ~4 N/mm + guide cups 4 600
Steel base frame (PTR 2", welded, floor-anchored) 1 1,400
Guarding: steel mesh + polycarbonate window, E-stop 1 1,200
Fasteners, Loctite 243, service-loop cable + strain relief — 500
Subtotal 11,300

Impact stage

Item Qty Est.
Linear shaft 16 mm × 300 mm + SC16UU bearings 4 + 8 1,600
Lift lever, detent, release latch, shaft supports 1 900
Rubber puck assortment, Shore 60A/70A, 30/40/50 mm — 500
Subtotal 3,000

Instrumentation

Item Qty Est.
ADXL355 breakout 1 1,100
ADXL1002 breakout (shock channel) 1 700
Teensy 4.0 + SD + protoboard + wiring 1 800
Subtotal 2,600

Total

MXN
Thermal 6,050
Vibration 11,300
Impact 3,000
Instrumentation 2,600
Subtotal 22,950
Contingency 15 % 3,450
Total ≈ 26,400

Stripped variant — ≈ $14,000 MXN

Drop to: 110 V 100 W vibrating motor on a dimmer instead of motovibrador + VFD (−3,500), hand-built wooden outer box with rockwool and alu liner instead of a folded alu shell (−1,000), 10 mm steel plate instead of alu tooling plate (−1,200), ADXL345 only, no ADXL1002 (−1,400), no formal guarding beyond a polycarbonate lid and E-stop (−700), reduced contingency.

Do not strip: the independent thermal cutout + contactor, the E-stop, the reference accelerometer, or the guarding around the rotating mass. Those four are the difference between a test rig and an incident.


9. Build sequence

Week Deliverable Gate
0 Finish the $PHLG vibration fields + SC7A20 driver (already an open v6 item); flash one unit; ship to ICAVE Firmware logs XYZ bursts to SD/telemetry
1 Field log running on a live crane, 5–7 days. In parallel: build the thermal chamber Chamber holds 60.0 ± 1.0 °C for 4 h with the door shut and the cutout proven by test
2 Derive the real PSD + shock spectrum from the field log → freeze the rig target profile. Build platen, base frame, suspension, guarding Bare platen sweeps 5–80 Hz, accelerometer trace logged and sane
3 Drop-table conversion; tune pucks to hit 15 g / 11 ms ± 20 % Three consecutive pulses within tolerance
4 First full campaign: 2 units, one control Report

Do not skip the "bare platen" and "empty chamber" commissioning runs. Half the problems in a rig like this are the rig's own resonances and hot spots, and you want them characterised before a DUT is in there confusing the picture.


10. Test campaign v1 (proposed)

Two units. DUT-A gets everything; DUT-B is the control and only gets the thermal soak — so that if something breaks, we know whether it was heat or mechanics. Both fully instrumented, both powered and transmitting throughout.

  1. Baseline — 1 h at 25 °C, full $PHLG logging, GNSS fix + NTRIP + LTE. Record C/N₀, fix type, modem RSSI, tbat, cflt. This is the reference.
  2. Thermal soak — ramp to 60 °C over 30 min, hold 8 h, with LTE TX active. Then off, cool to ambient, repeat ×3 (3 cycles). Watch for: charge stall, modem re-registration storms, fan policy behaviour, watchdog resets, GNSS C/N₀ drift.
  3. Hot vibration — at 60 °C, bands A/B/C per §5, 10 sweep cycles each, in the Z axis first (crane deck is dominantly vertical), then X, then Y.
  4. Hot shock — still at 60 °C, 100 half-sine pulses per direction × 3 orientations at the measured field severity (fallback 15 g / 11 ms).
  5. Post-test — repeat step 1 verbatim and diff against the baseline. Then open both units: visual + X-ray-by-eye of L22, U25, the 100 µF can, the GX16 entry and every connector; torque-check every screw; re-seat and re-measure the U.FL pigtails.

The diff in step 5 is the deliverable. "Nothing visibly broke" is not a result; "C/N₀ fell 2.1 dB and never recovered" is.


11. What this rig will NOT give you

State this plainly in any client-facing use of the results:

  • No traceability. No calibrated accelerometer, no accredited lab, no certificate. Measurements are self-declared with a commercial MEMS reference.
  • No closed-loop profile control. The eccentric produces a measured displacement-limited sweep, not a controlled constant-g or PSD-shaped profile.
  • Single-axis at a time, not simultaneous triaxial.
  • No cold, no humidity, no salt fog. Ports are humid and saline; that is a separate (and for us, probably more relevant) test than cold.
  • Not a substitute for certification if a client ever demands IEC/EN compliance. It is a legitimate pre-screen that makes a paid lab run far more likely to pass first time — which is where it saves real money.

12. Open decisions for Leo

  1. Green-light step zero? The field-log firmware is already on the v6 open-items list; this just prioritises it. Nothing else should be bought until that log exists.
  2. 60 °C or 70 °C? 60 °C is the stated target and matches port ambient + solar gain in the cabinet. But the nested ASA-in-ABS heat trap from the June RCA is what actually cooks the unit — if we have a measured internal cabinet temperature above 60 °C, the chamber should be sized for that instead. The design above has headroom to ~75 °C; the only change is insulation thickness.
  3. Battery in or out for the first campaign? Recommend: in, charger inhibited, pack instrumented. Revisit once the LFP decision lands.
  4. Who builds it? This is ~2 weeks of shop time competing with the ICAVE/Lázaro assembly finishing end of September. It may be worth waiting until after the first-week-of-October shipment.
  5. Stripped ($14k) or full ($26k)? Recommend full — the VFD and the adjustable-weight motovibrador are what make the vibration stage repeatable, and repeatability is the whole point.

References

  • IEC 60068-2-6 — Test Fc, sinusoidal vibration
  • IEC 60068-2-27 — Test Ea, mechanical shock (half-sine severities)
  • IEC 60068-2-64 — Test Fh, broadband random vibration
  • IEC 61373 — Railway rolling stock, shock and vibration, Cat 1 Class B
  • Internal: 03-Architecture-Hardware/2026-09-09_Drogheda_Battery-Chemistry-HighTemp_v1.0.md
  • Internal: 03-Architecture-Hardware/2026-08-24_Drogheda_EinarBoard-v6_GNSS-4G-Integration_Design-Brief_v1.0.md
  • Internal: 06-Testing-Validation/RCA-2026-06-field-failures.md
  • Internal: 06-Testing-Validation/2026-08-18_Drogheda_FW-v3.0.3_Fan-Policy_Bench-Test_v1.0.md