>
section 17 of 182 min read

17. Things to Try

  1. Compensate your scope probe. Connect the probe tip to the scope's "probe comp" output (usually a 1 kHz square wave). Adjust the trimmer cap until the corners are square: not rounded (under-compensated), not overshooting (over-compensated). Repeat for every probe + scope combo.

  2. Compare average vs true-RMS. Generate a triangle wave with a function generator; measure RMS with a cheap average-responding DMM and a true-RMS DMM. The cheap meter reads about 4% low. Now try a square wave: it reads about 11% high. Different waveforms unmask the form-factor assumption.

  3. Measure the bandwidth of your scope probe. Drive a fast-edge step (TDR-style) into the probe; measure rise time on the scope; deduce BW=0.35/trBW = 0.35/t_r. If you get less than the scope's spec, your probe (not the scope) is the bottleneck.

  4. Use a DMM in 4-wire ohms mode. Measure the resistance of a few inches of copper wire. Compare to 2-wire mode. The difference (probably 50-200 mΩ\Omega) is your test-lead resistance.

  5. Capture an SPI transaction. With a Saleae or Rigol logic analyzer, probe MOSI/MISO/CLK/CS during a flash read. Decode the protocol; verify you can read the same address you'd read from firmware.

  6. Watch your scope's FFT. Tune in a 1 MHz sine wave. Now mix in a 1.0001 MHz sine. Observe the spectral peaks; vary RBW (capture-time-equivalent) and watch the resolution change. This is the time-frequency uncertainty made visible.

  7. Build a Wheatstone bridge with strain gauges. Use 4 gauges on a metal beam; flex the beam; record the bridge output through an instrumentation amp. This is the load cell inside every digital scale.

  8. Acquire traces with PyVISA. Connect to your scope from Python; capture 100 traces of a UART character; average them; observe how the noise floor drops as N\sqrt{N}. Same algorithm as a side-channel attack, applied to a cleaner signal first.