Skip to main content
Read power, current, and voltage measurements from watt meter Nets through the Lager CLI. Supports Yocto-Watt, Joulescope JS220, and Nordic PPK2 hardware.

Syntax

With no COMMAND, lager watt NET_NAME reads power (watts). The current, voltage, and all subcommands read the other quantities (Joulescope JS220 and Nordic PPK2 only).

Commands

Options

These options are available on each read subcommand (power/current/voltage/all). --box is also accepted directly after lager watt NET_NAME for the default power read.

Arguments

Usage

If NET_NAME is omitted and no default is set, lager watt lists all available watt meter nets on the box.

Output

Readings are formatted with an SI prefix so small magnitudes stay readable (for example a 52.34 µW load is shown as 52.340 µW rather than rounding to 0.000 W):
all prints all three quantities:
With --json, output is a single JSON object (units are base SI — amps, volts, watts):
The default reading timeout is 30 seconds (scaled up for long --duration windows). If no reading is received within that time, the command exits with an error suggesting the device may be disconnected or experiencing USB issues.

Increasing resolution

Two levers improve a power/current reading:
  • Display — output is SI-scaled automatically, so sub-milliwatt and sub-milliamp readings are shown in µ/n units instead of rounding to zero. For values too small for even the nano prefix, the reading is shown in scientific notation (e.g. 3.000e-13 W) rather than rounding to 0.000 — a nonzero reading is never lost.
  • Averaging window — pass --duration to average over a longer capture. A longer window reduces noise on the mean, giving a steadier, higher-effective-resolution value:

Long averaging windows

--duration also works for long windows — e.g. the average current over a minute:
On a Joulescope JS220, windows longer than ~10 s are measured with the instrument’s on-device charge accumulator (average current = Δcharge ÷ Δt) rather than by buffering raw samples. This is gapless (it captures every transient, not just the sampled fraction), uses constant memory, and scales to arbitrarily long windows (a minute, ten minutes, longer). Short windows continue to use direct sampling.

Supported Hardware

Hardware Feature Comparison

The current, voltage, and all subcommands require a Joulescope JS220 or Nordic PPK2. On a Yocto-Watt (power only) they exit with a clear “not supported” message — use lager watt NET_NAME for power instead. The same readings are also available through the Python API.

Instrument Name Matching

The backend driver is selected based on the instrument name in the net configuration:

Default Net

To avoid specifying the net name each time:
Then:

Examples

Scripting Examples

Power Threshold Check (JSON)

Current Profiling (JSON)

Troubleshooting

Notes

  • Readings are SI-scaled (W/mW/µW/nW, A/mA/µA/nA, V/mV) with 3 significant decimal places; values too small for the nano prefix fall back to scientific notation instead of rounding to 0.000. --json emits base SI units (W, A, V).
  • --duration sets the averaging window; the Joulescope JS220 and Nordic PPK2 honor it, while the Yocto-Watt returns an instantaneous value and ignores it. On the JS220, windows longer than ~10 s are measured gaplessly with the on-device charge accumulator (constant memory, any length).
  • The Nordic PPK2 operates in source mode (supplies a configurable voltage 0.8–5V and measures current); its voltage reading is the configured source voltage.
  • The current, voltage, and all subcommands must follow the net name: lager watt NET_NAME current.
  • Net names refer to names assigned when setting up your testbed.
  • Use lager nets to see available watt meter nets, and lager instruments --box <box> to verify the device is detected.