STEP 1.1.5 EXPLAINED — why and how we load the board for the ripple test
=========================================================================

WHAT THE STEP DOES
Power-supply ripple and droop get worse as current draw rises. Measuring
ripple with the board idle only proves the easy case. Step 1.1.5 forces the
CM5 to draw its worst-case current so steps 1.1.6/1.1.7 measure the supply
under real load.

THE TOOL
stress-ng is a Linux load generator. The exact command:

    sudo apt install -y stress-ng      (one-time install)
    stress-ng --cpu 4 --timeout 300s

  --cpu 4        start 4 worker processes, one per CM5 CPU core, each
                 running math loops that pin its core at 100 %
  --timeout 300s stop automatically after 300 seconds (5 minutes)

While it runs, `htop` (or `top`) shows all four cores at 100 %. The command
prints "successful run completed" when the timer expires. It changes nothing
on the system - it only burns CPU cycles.

WHY 4 CORES
The CM5 has 4 cores. Loading all of them pulls the processor's maximum
sustained current (~2.5 A of the 5 V budget), which is when supply ripple
and voltage droop are at their worst.

OPTIONAL: ADD NETWORK LOAD
Ethernet transmission adds PHY current on top of CPU current. If the link
partner from section 1.5 is already available, run in a second console:

    iperf3 -c <partner-ip> -t 300

This is optional at 1.1.5 (Ethernet is not formally tested until 1.5) but
gives the truest worst-case. If used, note it on the Overview sheet.

WHAT TO WATCH FOR
While the load runs, the scope (steps 1.1.6/1.1.7) shows:
  - ripple: the repetitive sawtooth/noise on the rail, read as mV peak-to-peak
  - droop:  the drop in average rail voltage under load; the peak-detect
            capture in 1.1.7 records the single lowest instantaneous voltage
The CM5 requires its 5 V rail to stay above 4.75 V at all times - that is
where the 1.1.7 PASS limit comes from.