Compare commits
2 Commits
047ce54ade
...
3c3097f0e1
| Author | SHA1 | Date | |
|---|---|---|---|
| 3c3097f0e1 | |||
| fec3762e43 |
@ -37,7 +37,7 @@ y dejarla flasheada con el firmware de arranque entregado por ingeniería.
|
||||
| 1 | Fuente de banco 0–30 V con límite de corriente ajustable |
|
||||
| 1 | Cable USB-C ↔ USB-C (o USB-A ↔ USB-C) **con datos** (no solo carga) |
|
||||
| 1 | Laptop con **STM32CubeProgrammer** instalado (o `dfu-util` en terminal) |
|
||||
| 1 | Archivo de firmware: **`hbox-v5-bringup_0.1.0.bin`** (repo: `04-Source-Code/firmware/hbox_v5_bringup/release/`, SHA-256 inicia `1a9a77ae`) |
|
||||
| 1 | Archivo de firmware: **`hbox-v5-bringup_0.2.0.bin`** — descarga: **https://drogheda.helgen.online/descargas/** (repo: `04-Source-Code/firmware/hbox_v5_bringup/release/`, SHA-256 inicia `8491625d`) |
|
||||
| 1 | Jumper 2.54 mm para P11 (interruptor de corte) |
|
||||
| 1 | Lupa o lámpara con aumento |
|
||||
| — | Hoja de registro (sección 7) |
|
||||
@ -183,7 +183,7 @@ Solo para tarjetas que pasaron las secciones 1 a 4.
|
||||
2. Arriba a la derecha, en el selector de conexión elegir **USB**. Pulsar el botón de refrescar;
|
||||
debe aparecer `USB1`. Pulsar **Connect**.
|
||||
3. Ir a la pestaña **Erasing & Programming** (icono de flecha hacia abajo, lado izquierdo).
|
||||
4. **File path** → seleccionar `hbox-v5-bringup_0.1.0.bin`.
|
||||
4. **File path** → seleccionar `hbox-v5-bringup_0.2.0.bin`.
|
||||
5. **Start address** = `0x08000000`. Marcar **Verify programming** y **Run after programming**.
|
||||
6. Pulsar **Start Programming**. Esperar "File download complete" y "Verify… successful".
|
||||
7. Pulsar **Disconnect**.
|
||||
@ -192,7 +192,7 @@ Solo para tarjetas que pasaron las secciones 1 a 4.
|
||||
|
||||
```bash
|
||||
dfu-util -l # debe listar [0483:df11]
|
||||
dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.1.0.bin
|
||||
dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.2.0.bin
|
||||
```
|
||||
|
||||
### 5d. Verificación después del flasheo
|
||||
@ -206,7 +206,7 @@ dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.1.0.bin
|
||||
| **D17** (LED azul) + LED de panel en P8 (si hay) | **Parpadean** a 1 Hz (MCU ejecutando el firmware) |
|
||||
| **DB1 → DB4** (LEDs del indicador de batería) | Se encienden **en secuencia** una vez, luego se apagan; después R, G, B en P14 si hay LED RGB conectado |
|
||||
| Laptop | Aparece un **puerto serie** nuevo ("STMicroelectronics Virtual COM Port" / `usbmodem…`) |
|
||||
| Terminal serie a **115200 baud** | Encabezado `hbox-v5-bringup 0.1.0`, luego líneas `[PASS]` / `[FAIL]`, y al final **`>>> BOARD OK`** |
|
||||
| Terminal serie a **115200 baud** | Encabezado `hbox-v5-bringup 0.2.0`, luego líneas `[PASS]` / `[FAIL]`, y al final **`>>> BOARD OK`** |
|
||||
|
||||
3. Si el terminal se abrió tarde y no se vio el reporte: teclear **`r`** en el terminal → repite
|
||||
todas las pruebas (y vuelve a encender los LEDs en secuencia).
|
||||
|
||||
@ -0,0 +1,526 @@
|
||||
---
|
||||
tags: [project-drogheda, testing, halt, environmental, hbox, rig]
|
||||
project: Project Drogheda
|
||||
author: Helgen CTO
|
||||
date: 2026-09-17
|
||||
status: Draft for review
|
||||
supersedes: 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`
|
||||
@ -0,0 +1,211 @@
|
||||
---
|
||||
title: HBOX v5 — Prueba de módulos (simpleRTK2B Pro y 4G NTRIP Master) e integración RTK antes del ensamble
|
||||
tags: [project-drogheda, hardware, hbox, v5, ardusimple, 4g, ntrip, testing, procedimiento]
|
||||
project: Project Drogheda
|
||||
author: Helgen Technologies
|
||||
date: 2026-09-17
|
||||
version: 1.0
|
||||
status: ACTIVO — se aplica a cada módulo antes de asignarlo a una unidad
|
||||
audience: técnicos de banco
|
||||
---
|
||||
|
||||
# HBOX v5 — Prueba de módulos e integración RTK (antes del ensamble)
|
||||
|
||||
**Objetivo:** que ningún módulo llegue al ensamble sin haber demostrado que funciona **solo** y **en
|
||||
pareja**: cada simpleRTK2B Pro obtiene fix GNSS, cada 4G NTRIP Master se registra en la red, y la
|
||||
pareja RTK + 4G alcanza **RTK FIX** con correcciones NTRIP. Todo queda registrado en las actas
|
||||
del sitio (`https://drogheda.helgen.online` → Actas).
|
||||
|
||||
**Duración estimada:** módulo RTK 10 min · módulo 4G 10 min · integración 15–30 min (depende del cielo).
|
||||
|
||||
> ⛔ **REGLA 1 — Un acta por módulo, con su número de serie.** No se prueba "un lote"; se prueba
|
||||
> RTK-010, 4G-006, uno por uno.
|
||||
>
|
||||
> ⛔ **REGLA 2 — Sin EinarBoard en estas pruebas.** El simpleRTK2B se alimenta por su propio USB y el
|
||||
> módulo 4G va en el zócalo XBee del simpleRTK2B. La tarjeta EinarBoard entra hasta el ensamble.
|
||||
>
|
||||
> ⛔ **REGLA 3 — Antenas siempre conectadas antes de energizar** el módulo 4G y el receptor GNSS.
|
||||
> Un transmisor LTE sin antena se puede dañar.
|
||||
|
||||
---
|
||||
|
||||
## 0. Identidad de cada pieza (números de serie)
|
||||
|
||||
| Pieza | Etiqueta | Rango | Dónde va la etiqueta |
|
||||
|---|---|---|---|
|
||||
| EinarBoard v5 | **V5-01 … V5-15** (30 seleccionables) | lote JLC 22-Ago | esquina cerca de MH4 (ya puesta en la prueba de tarjeta) |
|
||||
| simpleRTK2B Pro (ArduSimple) | **ARD-001 … ARD-030** | consecutivo de 3 dígitos | sobre el blindaje del ZED-F9P, sin tapar el conector SMA ni el zócalo XBee |
|
||||
| 4G NTRIP Master (módem) | **RTK-0001 … RTK-0030** | consecutivo de 4 dígitos (serie hasta RTK-1000) | sobre el blindaje del módem, sin tapar los conectores u.FL de antena |
|
||||
| Unidad HBOX (ensamblada) | **HBOX5-E07-A010-R0006** | se calcula sola en el acta de ensamble | panel exterior del HBOX |
|
||||
|
||||
El número de la unidad **se arma con los tres módulos que lleva dentro**: `E07` = EinarBoard V5-07,
|
||||
`A010` = ArduSimple ARD-010, `R0006` = módem 4G RTK-0006. **Ojo:** la etiqueta "RTK-" es la del **módem 4G**, no la del receptor GNSS. No hace falta que los números coincidan entre sí: el técnico
|
||||
**selecciona** en el acta de ensamble qué módulo (ya aprobado) va en qué unidad, y el sitio compone el
|
||||
número. Así, con solo leer la etiqueta del HBOX se sabe qué hay dentro.
|
||||
|
||||
Anota también en cada acta la **etiqueta de fábrica** del módulo (el código que trae impreso
|
||||
ArduSimple) y, en el 4G, el **IMEI** y el **ICCID de la SIM**. Es lo que después permite rastrear un
|
||||
módulo en la plataforma.
|
||||
|
||||
---
|
||||
|
||||
## 1. Material
|
||||
|
||||
| Cant. | Ítem |
|
||||
|---|---|
|
||||
| 1 | Laptop con **u-center** (u-blox, Windows) o **u-center 2** |
|
||||
| 2 | Cables USB-C **con datos** (el simpleRTK2B Pro tiene dos puertos USB: **POWER+GPS** y **XBEE**) |
|
||||
| 1 | Antena GNSS multibanda (SMA) con vista al cielo (ventana con cielo abierto o exterior) |
|
||||
| 2 | Antenas LTE (u.FL → SMA pigtail según el módulo) |
|
||||
| 1 | SIM Telcel activa (nano-SIM) por módulo 4G |
|
||||
| 1 | Archivo de configuración del **ZED-F9P** de Helgen (u-center `.txt`) — lo entrega ingeniería |
|
||||
| 1 | Archivo de configuración del **4G NTRIP Master** con credenciales reales (`4G_NTRIP_HelgenSRV-NMEA.local.txt`) — lo entrega ingeniería, **no** se copia a otras máquinas |
|
||||
| — | Etiquetas ARD-NNN (ArduSimple) y RTK-NNNN (módem 4G), marcador, bolsas antiestáticas |
|
||||
|
||||
---
|
||||
|
||||
## 2. Módulo simpleRTK2B Pro (ArduSimple) — acta **"Módulo ArduSimple"**
|
||||
|
||||
### 2a. Inspección visual (sin energía)
|
||||
|
||||
- [ ] Etiqueta **ARD-NNN** puesta y legible; anotar también la etiqueta de fábrica.
|
||||
- [ ] Pines del zócalo **XBee** (2 hileras de 10) rectos; conector **SMA** firme; sin componentes golpeados.
|
||||
- [ ] Pines de la tira tipo Arduino (los que entran en MOD1 de la EinarBoard) rectos y completos.
|
||||
|
||||
### 2b. Energizado y fix GNSS
|
||||
|
||||
1. Conectar la **antena GNSS** al SMA. Colocarla con vista al cielo.
|
||||
2. Conectar el USB-C **POWER+GPS** a la laptop.
|
||||
3. Verificar:
|
||||
|
||||
| Punto | Esperado |
|
||||
|---|---|
|
||||
| LED **POWER** | Encendido |
|
||||
| Laptop | Aparece un puerto serie (u-blox GNSS receiver) |
|
||||
| u-center → Receiver → Connect | Conecta; **Fix Mode** pasa de *No Fix* a **3D** en < 2 min a cielo abierto |
|
||||
| Satélites en uso | **≥ 10** (cielo abierto) |
|
||||
| LED **GPS FIX** | Parpadea cuando hay fix |
|
||||
|
||||
4. Anotar en el acta: **versión de firmware** del ZED-F9P (u-center → View → Messages → UBX-MON-VER),
|
||||
satélites en uso, y el tiempo hasta el primer fix.
|
||||
|
||||
### 2c. Cargar la configuración de Helgen
|
||||
|
||||
1. u-center → **Tools → Receiver Configuration** → *Load configuration* → archivo F9P de Helgen →
|
||||
**Transfer file → GNSS**.
|
||||
2. Guardar en el receptor: **UBX-CFG-CFG → Save current configuration** (todas las memorias) → Send.
|
||||
3. Desconectar y reconectar el USB. Volver a conectar en u-center a la **velocidad configurada por Helgen
|
||||
(115200)**. Debe seguir mostrando fix y mensajes `$GNGGA`.
|
||||
|
||||
- [ ] Configuración cargada y guardada; sobrevive al reinicio.
|
||||
|
||||
> Si el módulo no da fix en 5 min a cielo abierto, probar con otra antena antes de marcarlo FALLA.
|
||||
|
||||
---
|
||||
|
||||
## 3. Módem 4G NTRIP Master — acta **"Módem 4G"**
|
||||
|
||||
### 3a. Inspección visual (sin energía)
|
||||
|
||||
- [ ] Etiqueta **RTK-NNNN** puesta; anotar **IMEI** (etiqueta del módem) e **ICCID** (tarjeta SIM).
|
||||
- [ ] **SIM insertada** en la dirección correcta, con clic.
|
||||
- [ ] Pines XBee (2 × 10, paso 2 mm) rectos; conectores **u.FL** de antena sin daño.
|
||||
|
||||
### 3b. Montaje sobre el simpleRTK2B y configuración
|
||||
|
||||
1. **Sin energía**, insertar el módulo 4G en el zócalo **XBee del simpleRTK2B Pro** (el módulo queda
|
||||
sobre el receptor; el corte de la silueta indica la orientación — nunca forzar).
|
||||
2. Conectar las **2 antenas LTE** a los u.FL del módulo.
|
||||
3. Conectar la antena GNSS. Conectar el USB **POWER+GPS** (alimenta todo) **y** el USB **XBEE** (puerto de
|
||||
configuración del módem).
|
||||
4. En la laptop abrir un terminal serie en el puerto **XBEE** a **115200 baud** y enviar, línea por línea,
|
||||
el archivo `4G_NTRIP_HelgenSRV-NMEA.local.txt` (solo las líneas `$$$AS+…`). Cada línea debe contestar
|
||||
`OK` (o el eco de ArduSimple).
|
||||
5. Al terminar: `$$$AS+I=1111` para entrar a config y **`$$$AS+K=…`** debe llevar el **ID de estación**
|
||||
que indique ingeniería para este módulo (se anota en el acta).
|
||||
|
||||
- [ ] Configuración enviada completa, sin líneas con `ERROR`.
|
||||
- [ ] ID de estación (`AS+K`) anotado en el acta.
|
||||
|
||||
### 3c. Registro en la red
|
||||
|
||||
Esperar hasta 2 min con las antenas LTE conectadas:
|
||||
|
||||
| Punto | Esperado |
|
||||
|---|---|
|
||||
| LED de **red / 4G** del módulo | Pasa de parpadeo rápido (buscando) a **parpadeo lento o fijo** (registrado) |
|
||||
| Consulta de estado por el puerto XBEE (comando de estado de ArduSimple) | Reporta operador **Telcel** y señal (RSSI) |
|
||||
|
||||
- [ ] Registrado en la red Telcel. Anotar RSSI si el módulo lo reporta.
|
||||
|
||||
> Sin registro en 3 min: revisar que la SIM esté activa (probar la SIM en otro módulo aprobado). Si
|
||||
> la SIM funciona en otro módulo y este no registra → **FALLA (4G)**.
|
||||
|
||||
---
|
||||
|
||||
## 4. Integración ArduSimple + 4G — acta **"Integración"**
|
||||
|
||||
Se hace con la **pareja** que después irá junta en una unidad (ARD-NNN + RTK-NNNN). El acta registra
|
||||
los dos números; el mismo par se seleccionará en el ensamble.
|
||||
|
||||
Montaje: el mismo del punto 3b (4G sobre el simpleRTK2B, dos antenas LTE, antena GNSS al cielo, USB
|
||||
POWER+GPS conectado; el USB XBEE puede quedar conectado para ver mensajes).
|
||||
|
||||
1. u-center conectado al puerto **POWER+GPS** (115200). Esperar fix **3D**.
|
||||
2. Observar el LED **NO RTK** del simpleRTK2B: encendido = sin correcciones; **parpadeando = RTK FLOAT**;
|
||||
**apagado = RTK FIX**.
|
||||
3. En u-center: **Fix Mode** debe llegar a **3D/DGNSS/FIXED** (RTK fixed). Tiempo típico a cielo abierto:
|
||||
1–5 min tras el registro 4G.
|
||||
|
||||
| Punto | Esperado | Anotar |
|
||||
|---|---|---|
|
||||
| Tiempo desde encendido hasta **RTK FIX** | < 10 min | minutos |
|
||||
| Fix Mode en u-center | 3D/DGNSS/**FIXED** | — |
|
||||
| Satélites en uso | ≥ 10 | número |
|
||||
| Precisión estimada (u-center, hAcc) | < 0.05 m en FIX | metros |
|
||||
| Estabilidad | Se mantiene FIXED **5 min** sin caer a FLOAT (con la antena quieta) | sí/no |
|
||||
| Plataforma Helgen | Ingeniería confirma que la estación (ID `AS+K`) aparece reportando en el servidor | sí/no |
|
||||
|
||||
- [ ] RTK FIX alcanzado y estable 5 min.
|
||||
- [ ] Confirmado en plataforma (o anotado "pendiente de confirmar" con hora).
|
||||
|
||||
> **Si llega a FLOAT pero nunca a FIX:** cielo insuficiente (probar exterior) o punto de montaje
|
||||
> incorrecto; no es falla del módulo si el módulo 4G ya registró y hay correcciones (LED NO RTK
|
||||
> parpadea). Si **nunca sale de "encendido"** (sin correcciones): revisar credenciales NTRIP con
|
||||
> ingeniería antes de marcar FALLA.
|
||||
|
||||
### 4b. Cierre
|
||||
|
||||
- [ ] Apagar (desconectar USB). Separar el módulo 4G del simpleRTK2B **con cuidado, sin doblar pines**.
|
||||
- [ ] Guardar cada módulo en su bolsa con su etiqueta. Anotar en la bolsa del ArduSimple: "pareja: RTK-NNNN".
|
||||
- [ ] Enviar el acta de integración con los dos números.
|
||||
|
||||
---
|
||||
|
||||
## 5. Hoja rápida de estados (para el técnico)
|
||||
|
||||
| Módulo | Aprobado cuando… |
|
||||
|---|---|
|
||||
| ARD-NNN | fix 3D, ≥10 sat, configuración Helgen cargada y guardada |
|
||||
| RTK-NNNN (módem) | SIM registrada en Telcel, configuración enviada sin errores, `AS+K` anotado |
|
||||
| Pareja ArduSimple + 4G | RTK FIX estable 5 min con correcciones por 4G |
|
||||
|
||||
Un módulo con **FALLA** no se asigna a ninguna unidad: el acta de ensamble no lo dejará seleccionar.
|
||||
|
||||
---
|
||||
|
||||
## Anexo A — Notas de ingeniería
|
||||
|
||||
- En la **unidad v5** el módulo 4G **no** va sobre el simpleRTK2B: va en el zócalo **J7/J8** de la
|
||||
EinarBoard (mismo footprint XBee). El enlace F9P ↔ módem pasa por el relevador **K1**; con K1
|
||||
liberado (estado por defecto del firmware, `BYP_CTRL` bajo) el camino es directo. Por eso la
|
||||
prueba de integración se hace con el módulo montado en el simpleRTK2B (misma electrónica, sin
|
||||
depender del firmware de la EinarBoard).
|
||||
- Configuración F9P: UART1 a **115200** (es lo que lee la EinarBoard en PA3/PA2) y UART2 a la
|
||||
velocidad del módem (`AS+B=115200`). El archivo `.txt` del F9P **no está en el repo** — hay que
|
||||
añadirlo a `04-Source-Code/rtk-config/` (sin secretos) para que este procedimiento sea reproducible.
|
||||
- El ID de estación `AS+K` es la identidad de la unidad en el servidor secundario (`AS+r/AS+h`).
|
||||
Decisión pendiente: `AS+K` = número del módem 4G (R0006) o número de unidad. Mientras se decide,
|
||||
el acta lo registra como texto libre.
|
||||
- Las credenciales (APN, NTRIP) viven solo en `…local.txt` en la laptop de banco. Nunca en git ni en
|
||||
el sitio.
|
||||
@ -0,0 +1,176 @@
|
||||
---
|
||||
title: HBOX v5 — Procedimiento de ensamble de la unidad y energizado final
|
||||
tags: [project-drogheda, hardware, hbox, v5, ensamble, checklist, procedimiento]
|
||||
project: Project Drogheda
|
||||
author: Helgen Technologies
|
||||
date: 2026-09-17
|
||||
version: 1.0
|
||||
status: ACTIVO — una unidad a la vez; se registra en el acta "Ensamble"
|
||||
audience: técnicos de banco
|
||||
---
|
||||
|
||||
# HBOX v5 — Ensamble de la unidad y energizado final
|
||||
|
||||
**Entrada:** tres módulos **ya aprobados** en sus actas — una EinarBoard **V5-NN** (acta de prueba y
|
||||
flasheo), un simpleRTK2B Pro **ARD-NNN** y un módem 4G NTRIP Master **RTK-NNNN** que pasaron juntos la
|
||||
**integración**. **Salida:** una unidad HBOX cerrada, etiquetada **HBOX5-Exx-Axxx-Rxxxx**, encendida y
|
||||
reportando.
|
||||
|
||||
**Duración estimada:** 60–90 min por unidad.
|
||||
|
||||
> ⛔ **REGLA 1 — Primero el acta, luego el desarmador.** Abrir el acta de ensamble, seleccionar los
|
||||
> tres módulos y esperar a que el sitio muestre los tres en **verde (Aprobado)** y la pareja ArduSimple+4G
|
||||
> con **integración OK**. Si alguno sale en rojo o "sin acta", **no se ensambla** con ese módulo.
|
||||
>
|
||||
> ⛔ **REGLA 2 — Batería al final.** El pack 1S4P se conecta en P4 solo en la sección 6, con la unidad
|
||||
> ya energizada desde 24 V y con el NTC del pack en P4-3.
|
||||
>
|
||||
> ⛔ **REGLA 3 — Todo módulo se inserta sin energía**, mirando la orientación dos veces. Un XBee al
|
||||
> revés o un simpleRTK2B corrido un pin se destruye al encender.
|
||||
|
||||
---
|
||||
|
||||
## 0. El número de serie de la unidad
|
||||
|
||||
El acta lo compone automáticamente al seleccionar los módulos:
|
||||
|
||||
```
|
||||
HBOX5 - E07 - A010 - R0006
|
||||
│ │ │ └── módem 4G NTRIP Master RTK-0006
|
||||
│ │ └────────── simpleRTK2B Pro (ArduSimple) ARD-010
|
||||
│ └──────────────── EinarBoard V5-07
|
||||
└──────────────────────── producto HBOX, tarjeta v5
|
||||
```
|
||||
|
||||
Ese texto va en la **etiqueta exterior** del HBOX (panel, junto al GX16) y en la **etiqueta interior**
|
||||
(cara interna de la tapa). Un módulo solo puede pertenecer a **una** unidad: el sitio rechaza el acta
|
||||
si el módulo ya está asignado.
|
||||
|
||||
---
|
||||
|
||||
## 1. Material y herramientas
|
||||
|
||||
| Ítem | Notas |
|
||||
|---|---|
|
||||
| Gabinete HBOX con panel perforado (GX16-5, 3 × SMA, RJ45, prensaestopas) | según el diseño mecánico vigente |
|
||||
| EinarBoard **V5-NN** aprobada, con firmware de bring-up **0.2.0 o superior** | ver acta de tarjeta |
|
||||
| simpleRTK2B Pro **ARD-NNN** y módem 4G NTRIP Master **RTK-NNNN** aprobados e integrados | con sus bolsas |
|
||||
| Fuente **Mean Well SD-15B-05** (24 V → 5 V) | va dentro del HBOX |
|
||||
| Pack de batería **1S4P** con NTC (3 hilos → P4) | conectar al final |
|
||||
| Ventilador 5 V 2 hilos (P6), LED de panel (P8), botón de reset (P10), interruptor de corte (P11), NTC de punto caliente (P12) | arnés interno |
|
||||
| Pigtails de antena: GNSS SMA-hembra bulkhead → SMA del simpleRTK2B; 2 × LTE SMA bulkhead → u.FL del módulo 4G | |
|
||||
| Separadores M2.5/M3, tornillería, bridas, fijador de rosca para SMA | |
|
||||
| Fuente de banco 24 V / 1 A con límite de corriente, multímetro, laptop con terminal serie | |
|
||||
| Etiquetas: exterior e interior con el número de unidad | impresas desde el acta |
|
||||
|
||||
---
|
||||
|
||||
## 2. Preparación de la tarjeta (sin energía)
|
||||
|
||||
- [ ] EinarBoard **V5-NN** corresponde a la seleccionada en el acta (leer la etiqueta cerca de MH4).
|
||||
- [ ] Jumpers del cargador en la posición del pack Li-ion 4.00 V: **JP2 (F2) = 1 · JP3 (F1) = 0 · JP4 (F0) = 1**.
|
||||
Anotar en el acta la posición de cada uno. *(Si el pack cambia a LiFePO4, ingeniería indicará JP2 = 0.)*
|
||||
- [ ] Jumper **JP1** (0R, alimentación del ventilador) presente.
|
||||
- [ ] **P11** (corte) **abierto** — sin jumper; el interruptor de panel se conecta ahí en la sección 4.
|
||||
- [ ] Tarjeta fijada en la platina/gabinete con separadores en **MH1–MH6** (y MH7–MH12 según el diseño) sin flexionar la tarjeta; tornillos con apriete suave.
|
||||
|
||||
## 3. Módulos enchufables (sin energía)
|
||||
|
||||
- [ ] **simpleRTK2B Pro ARD-NNN** en **MOD1**: alinear el pin **"5V"** del zócalo UNO con el pin 5V del
|
||||
módulo; las cuatro tiras entran a fondo y parejas; **ninguna** clavija queda fuera del zócalo.
|
||||
- [ ] **Módem 4G NTRIP Master RTK-NNNN** en **J7/J8** (zócalo XBee de 2 mm de la EinarBoard, **no** en el
|
||||
simpleRTK2B): la silueta del módulo coincide con la serigrafía; pin 1 (VCC) del lado marcado.
|
||||
- [ ] SIM presente en el módulo 4G (ya verificada en su acta).
|
||||
- [ ] Nada toca la tapa ni los separadores; los módulos no rozan componentes altos (K1, C10, L6).
|
||||
|
||||
## 4. Panel y arnés interno (sin energía)
|
||||
|
||||
Conectar contra el pinout; cada JST hace **clic**.
|
||||
|
||||
| Conector | Qué se conecta | Verificar |
|
||||
|---|---|---|
|
||||
| **P1** (GX16-5 del panel) | pin 1 = +24 V · pin 2 = GND · pin 3 = ignición · pin 4 = GND | polaridad con multímetro **antes** de conectar al panel |
|
||||
| **SD-15B-05** | entrada: +24 V/GND del GX16 (empalme en Y) · salida +5 V/GND → **P2** (pin 1 = +5 V) | ajustar salida a **5.0 V** en banco antes de montar |
|
||||
| **P6** | ventilador (pin 1 = +5V_FAN, pin 2 = retorno) | dirección de flujo: aire **hacia afuera** por la rejilla |
|
||||
| **P8** | LED de panel (pin 1 = ánodo, pin 2 = cátodo) | LED asoma por el panel |
|
||||
| **P10** | botón de reset externo | normalmente abierto |
|
||||
| **P11** | interruptor de corte del panel (2 hilos) | en posición **ON** cierra pin 1–2 |
|
||||
| **P12** | NTC de punto caliente pegado al módulo 4G o al disipador | con cinta térmica |
|
||||
| **P4** | **NO conectar todavía** (batería, sección 6) | — |
|
||||
| Antena **GNSS** | bulkhead SMA del panel → SMA del simpleRTK2B | fijador de rosca, apriete a mano + ¼ vuelta |
|
||||
| Antenas **LTE (2)** | bulkheads SMA del panel → u.FL del módulo 4G | los u.FL hacen clic; ruta del cable sin dobleces < 10 mm |
|
||||
| **J10** RJ45 / **P15** RS-485 / **P16** RS-232 | solo si el panel de esta unidad los lleva | tapas ciegas en los que no |
|
||||
|
||||
- [ ] Ningún cable pasa sobre el módulo 4G ni sobre la antena; cables sujetos con bridas al chasis.
|
||||
- [ ] Sin conductores expuestos cerca de 24 V (P1, SD-15B).
|
||||
|
||||
## 5. Energizado desde 24 V (unidad abierta, sin batería)
|
||||
|
||||
1. Fuente de banco **24.0 V, límite 1.0 A**, salida apagada, conectada al **GX16** del panel (pin 1 = +, pin 2 = −).
|
||||
Interruptor de corte (P11) en **ON**. USB-C en **J11** conectado a la laptop, terminal serie a 115200.
|
||||
2. Encender la salida. En los primeros 10 s:
|
||||
|
||||
| Punto | Esperado |
|
||||
|---|---|
|
||||
| Corriente de la fuente | **< 150 mA** (etapa RTK aún apagada) |
|
||||
| **D18** verde | Encendido |
|
||||
| **D17** azul + LED de panel | Parpadean (firmware de bring-up corriendo) |
|
||||
| Consola | Encabezado `hbox-v5-bringup`, reporte con **12 PASS**, luego `STAT … v5=4.9–5.1` |
|
||||
| Ventilador | **Gira** (con 24 V presente el buck U2 se enciende solo) |
|
||||
|
||||
3. Anotar en el acta: `v5` (debe ser 4.8–5.1 V), `tmp102`, `sht40`.
|
||||
4. **Encender la etapa RTK desde la consola:** teclear **`P`** y confirmar con **`Y`**. El firmware sube
|
||||
`PWR_CTRL` y reporta `STACK ON`. En los siguientes 60 s:
|
||||
|
||||
| Punto | Esperado |
|
||||
|---|---|
|
||||
| Corriente de la fuente | sube a **250–600 mA** (pico corto al registrar el 4G) |
|
||||
| simpleRTK2B: LED POWER | Encendido |
|
||||
| 4G: LED de red | Buscando → registrado (< 2 min) |
|
||||
| Consola, comando **`n`** | Muestra las tramas `$GNGGA` de PA3: **`fix=1`** (GPS) al minuto, **`fix=4`** (RTK FIX) en < 10 min con antena al cielo; `sats ≥ 10` |
|
||||
|
||||
5. Anotar en el acta el **tiempo hasta `fix=4`** y el número de satélites.
|
||||
6. Teclear **`P`** de nuevo para **apagar** la etapa RTK. La corriente debe volver a < 150 mA.
|
||||
|
||||
> Si `n` no muestra tramas: el simpleRTK2B no está a 115200 en UART1 (volver al acta del módulo RTK:
|
||||
> configuración Helgen) o MOD1 está corrido un pin. **Apagar antes de tocar nada.**
|
||||
|
||||
## 6. Batería y respaldo
|
||||
|
||||
1. Con la unidad encendida desde 24 V y la etapa RTK **apagada**: conectar el pack en **P4**
|
||||
(pin 1 = BAT+, pin 2 = GND, pin 3 = NTC). Medir antes con multímetro: **3.0–4.2 V** entre BAT+ y GND.
|
||||
2. En la consola, `STAT` debe mostrar **`vbat`** con el voltaje del pack y **`chrg`**: `0` = cargando
|
||||
(el firmware de bring-up mantiene la carga **deshabilitada**, así que `chrg=1` es lo esperado aquí).
|
||||
3. **Prueba de respaldo:** apagar la salida de la fuente de 24 V.
|
||||
|
||||
| Punto | Esperado |
|
||||
|---|---|
|
||||
| D18, D17 y consola | **Siguen vivos** (el LTC4040 conmuta a batería sin reinicio: el encabezado **no** se vuelve a imprimir) |
|
||||
| `STAT` | `v5=0.0`, `vbat` con el voltaje del pack |
|
||||
| Ventilador | Se detiene (no hay 24 V) — correcto |
|
||||
|
||||
4. Volver a encender 24 V: `STAT` vuelve a `v5≈5.0`. Sin reinicio.
|
||||
5. Anotar: voltaje del pack, "respaldo OK sin reinicio".
|
||||
|
||||
## 7. Cierre, etiquetado y registro
|
||||
|
||||
- [ ] Etiqueta **exterior** `HBOX5-Exx-Axxx-Rxxxx` en el panel, junto al GX16. Etiqueta **interior** en la tapa.
|
||||
- [ ] Interruptor de corte en **OFF** para almacenar (evita descargar la batería). Anotarlo en la etiqueta interior.
|
||||
- [ ] Tapa cerrada con su sello; tornillos en cruz; prensaestopas apretados.
|
||||
- [ ] Acta de ensamble enviada con resultado **APROBADA**.
|
||||
|
||||
---
|
||||
|
||||
## Anexo A — Notas de ingeniería
|
||||
|
||||
- **Firmware:** el bring-up **0.2.0** añade el modo de banco (`P` = stack ON/OFF con confirmación,
|
||||
`n` = monitor NMEA de PA3, 20 s). Mantiene la carga deshabilitada (`CHRG_EN` alto) y K1 liberado.
|
||||
La unidad ensamblada queda con este firmware hasta que exista el firmware de producción v5
|
||||
(rediseño de gestión de batería); se re-flashea por J11 sin abrir el HBOX si J11 queda accesible —
|
||||
**decidir si J11 asoma por el panel o se deja interno.**
|
||||
- **Corriente en 24 V:** valores orientativos; los reales se fijan con las primeras tres unidades y
|
||||
se actualizan aquí (bring-up 0.2.0 imprime `v5` pero no mide corriente).
|
||||
- **Respaldo sin reinicio** es la prueba del LTC4040 + L6/SW_BAT en la tarjeta real (el EMC audit
|
||||
marcó `/SW_BAT` 0.3 mm como crítico): si alguna unidad reinicia al cortar 24 V, anotar `vbat` y
|
||||
temperatura — es evidencia para el respin.
|
||||
- **Modo B / relevador K1:** no se prueba aquí; K1 queda liberado (camino directo F9P ↔ módem).
|
||||
@ -1 +1 @@
|
||||
Subproject commit 57f67332ebb20b916f5b46fefcd5c1af72fd5d25
|
||||
Subproject commit 1a31352bdab00ae05ed922e003f07d5d18568728
|
||||
Loading…
Reference in New Issue
Block a user