# v1.1.4 — A thermal and safety run that loads the box and watches the rails ## ✨ New features **`4_Blanton_Script_thermal_safety.ttl`** * A **standalone** script — it is not part of the A → B → C chain and is not started by any of them. Run it on its own when the question is thermal or safety rather than functional. * Brings the DUT up the same way Script A does (login, session reset, fan speed, `wait_init`, DUT inventory, BMC, PCIe error clear, `pcie_bus`, PMON, dmesg), then loads it: `mlucas-avx2 -cpu 0:15` in the background and `blanton_tr518.sh start` on the data plane. * Then loops every minute: platform data, **both switch boards' rail power** via `TH6_SWB0/1_power_readback.sh`, and `bgctl list` / `jobs`. That is the point of the script — power per rail under sustained full load, sampled over hours. * **It has no teardown.** When you interrupt it the DUT is still in `port cd lb=mac`, `l2 learn off` and `test mode nr=yes`, and `mlucas-avx2` is still running. Run `blanton_tr518.sh stop` and `kill $(jobs -p)` before anything else uses the box — nothing in `show interfaces status` reveals the leftover state. * **It cannot share a DUT with Script B.** Both take over the `cd` ports. **Test flow diagram** * `docs/Blanton_Test_Flow.drawio` draws all four scripts side by side, with the config flags that change each step marked, the one real `goto` in Script B drawn, and the manual handoffs between A → B → C shown as such. ## 🐛 Bug fixes **The soak loop spent most of its minute reading margin** * Script B's per-round loop is meant to be a quick sample. `margin_status_all.sh` walks nine LTC2980s over I2C and dominated the round. The scan moved to Script C, which takes it once before `show uptime`. * **The trade-off is real and worth knowing**: margin is now only measured at the start (Script A) and the end (Script C). Drift that happens *during* the soak is no longer visible. **`hw-test-session finish` ran from inside the session's own shell** * Script C now sends `exit` and waits for `Script done` first, so `finish` runs in the login shell that opened the session. **The new script arrived with LF line endings** * Every other `.ttl` in the repo is CRLF, and `.gitattributes` marks `*.ttl` as `-text` — whatever is committed is exactly what Tera Term gets. Converted to CRLF to match. ## 📦 Downloads | File | Contents | |---|---| | `Script_ABC_Blanton_V1.1.4.zip` | The full Tera Term working directory, including `Blanton_Script/` to copy onto the DUT | **After copying to the DUT:** ```bash chmod +x ~/Blanton_Script/*.sh # see below grep -rlU $'\r' ~/Blanton_Script # expect no output ``` `blanton_ber.sh`, `nfc_polling.sh`, `blanton_tr518.sh` and the two `TH6_SWB*_power_readback.sh` are invoked through `./` or `~/`, so they need the execute bit along with `bmc_monitor.sh` and `usb_target.sh` — neither git nor a Windows/USB copy carries it reliably. ## ⚠️ Before you run * **Script 4 leaves the switch loaded and looped back.** Always finish with `blanton_tr518.sh stop`. If the next test starts without it, traffic and BER results are meaningless and nothing warns you. * **Do not run Script 4 and Script B on the same DUT.** Same ports, same L2 settings. * **Margin is no longer sampled during the soak** — only Script A (start) and Script C (end). * **Re-baseline your margin limits if you have not already**: `VNOM` became the measured median in v1.1.3, which moved both the deviation % and the margin window. * **These three cannot share the switch**: `blanton_ber.sh`, `blanton_tr518.sh`, `blanton_traffic_linespeed`. * **PRBS takes the links down** while `blanton_ber.sh` is armed. * **`ce0` keeps circulating until you stop it.** * **Two numbers must stay in step**: Script C's `sleep 30` and `blanton_ber.sh`'s `BER_INTERVAL`. * **`FAN_SPEED` is 100** — relevant here more than anywhere: a thermal run at full fan is not the same test as one at 30%. * **The three items listed as unverified in v1.1.0 are still unverified**: the `ce0` ingress mirror, the 120s settle in `blanton_tr518.sh`, and `test mode nr=no` on stop. The settle matters most for this release — Script 4 depends on `tr 518` still driving traffic minutes after it was started. ## 🔗 Links * [Blanton_Test_Flow.drawio](https://etgit.et-wen.com/etwen/Blanton_TTL_Script/src/branch/main/docs/Blanton_Test_Flow.drawio) — the four scripts side by side * [ARCHITECTURE.md](https://etgit.et-wen.com/etwen/Blanton_TTL_Script/src/branch/main/ARCHITECTURE.md) — test flow, data models, constraints * [CLAUDE.md](https://etgit.et-wen.com/etwen/Blanton_TTL_Script/src/branch/main/CLAUDE.md) — commands and the bench gotchas **Full changelog:** [V1.1.3...V1.1.4](https://etgit.et-wen.com/etwen/Blanton_TTL_Script/compare/V1.1.3...V1.1.4)