In debug mode, Embedder can drive a Nordic PPK2 or Jetperch Joulescope to measure DUT current, voltage, and energy. Captures auto-publish to the Power tab of the Console panel (VS Code extension and standalone app) with µA / mA / A and energy stats. The two devices cover different needs:Documentation Index
Fetch the complete documentation index at: https://docs.embedder.com/llms.txt
Use this file to discover all available pages before exploring further.
| PPK2 | Joulescope | |
|---|---|---|
| Powers the DUT | ✓ (source meter, 800–5000 mV) | — (pass-through only, needs external supply) |
| Cheap | ✓ | — |
| Wider current range | — | ✓ (down to nA, up to 10 A) |
| Higher sample rate | 100 kHz | up to 2 MS/s |
| Hardware UART decode | — | ✓ (JS220 only) |
| JLS recording | — | ✓ |
Prerequisites
Be in debug mode
Run
/debug. Embedder’s preflight detects PPK2 / Joulescope and walks you through Python / package install if needed.Install the host helper
Embedder installs
ppk2-api (GPL-2.0) or joulescope (Apache-2.0) automatically the first time you run a script for that device. Approve when prompted.PPK2 wiring
The PPK2 has a physical mode switch. Set it before connecting:| Position | Use when |
|---|---|
| Source meter | The PPK2 powers your DUT (800–5000 mV). |
| Ampere meter | The DUT has its own supply; the PPK2 measures inline. |
- Source meter
- Ampere meter
- PPK2
VOUT+→ DUT VDD - PPK2
GND→ DUT GND
Joulescope wiring
JS110 and JS220 use different binding posts. Check the front panel or ask Embedder (“what Joulescope model is connected?”):- JS110
- JS220 (2-wire)
- JS220 (4-wire Kelvin)
- JS220 + FP02-BNA panel
- Bench supply (+) →
IN+ - Bench supply (−) →
IN- OUT+→ DUT VCCOUT-→ DUT GND
The Joulescope is pass-through only — it cannot supply power. You always need an external bench supply.

Example prompts
Measure sleep current with a PPK2:embedder
embedder
>60s durations and the agent will switch to streaming or JLS recording automatically.
Capture only a sleep window:
embedder
embedder
embedder
embedder
What the agent does for you
The agent picks PPK2 or Joulescope helpers based on which device is connected, writes the script under.embedder/hardware/, and surfaces the result both as a structured JSON payload (avg / min / max / charge / energy) and as an interactive chart in the Power tab. The Power tab decimates with min / max windowing — peaks and transients are preserved, not averaged out.
Common gotchas
PPK2 reads zero current
PPK2 reads zero current
Source meter mode: did you ask the agent to power on the DUT? (
measure does this for you.) Ampere meter mode: is the external supply actually on?Joulescope shows wildly wrong voltage
Joulescope shows wildly wrong voltage
On JS220 in 2-wire mode, did you tie
V+ to I+? Without that jumper, the voltage input floats.On-board debugger loses power
On-board debugger loses power
On Nordic DK boards in PPK2 ampere meter mode, the nRF CURRENT jumper must be plugged back in before using serial, RTT, or GDB through the on-board debugger.
Capture longer than 60 seconds fails
Capture longer than 60 seconds fails
joulescope_measure buffers in RAM. For longer captures, ask for “streaming” (running stats only) or “JLS recording” (raw samples to disk).Joulescope JS220 won't sustain more than 3 A
Joulescope JS220 won't sustain more than 3 A
The 10 A range is rated for 3 A continuous; bursts up to 10 A are fine for under 50 ms. For higher continuous loads, use a different instrument.
Next steps
GDB
Snapshot register state during a power capture without resetting the chip.
Combined workflows
Sleep-current regression: power capture + UART decode + GDB attach.