Skip to main content
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:

Prerequisites

1

Be in debug mode

Run /debug. Embedder’s preflight detects PPK2 / Joulescope and walks you through Python / package install if needed.
2

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.
3

Wire to your DUT

Wiring depends on the device — see the per-device sections below.

PPK2 wiring

The PPK2 has a physical mode switch. Set it before connecting:
  • PPK2 VOUT+ → DUT VDD
  • PPK2 GND → DUT GND
On Nordic DK boards, remove the nRF CURRENT jumper to disconnect the on-board supply, then connect PPK2 in its place. Plug the jumper back in before using serial, RTT, or GDB through the on-board debugger — the debug chip loses power without it.

Joulescope wiring

JS110 and JS220 use different binding posts. Check the front panel or ask Embedder (“what Joulescope model is connected?”):
  • Bench supply (+) → IN+
  • Bench supply (−) → IN-
  • OUT+ → DUT VCC
  • OUT- → DUT GND
The Joulescope is pass-through only — it cannot supply power. You always need an external bench supply.
If you’re not sure which posts go where, ask Embedder — it’ll walk you through the wiring for your specific model.
User asking Embedder for Joulescope wiring help, agent responds with the per-model wiring steps

Asking Embedder how to wire a Joulescope

Example prompts

Measure sleep current with a PPK2:
embedder
The agent reports avg / min / max in µA, plus a chart in the Power tab. Profile boot with a Joulescope:
embedder
The chart shows the full transient, plus avg and peak current. Pass >60s durations and the agent will switch to streaming or JLS recording automatically. Capture only a sleep window:
embedder
This is the JS220 GPI-trigger pattern — only the sleep window is captured, ignoring boot and wake transitions. Decode UART alongside the power trace (JS220 only):
embedder
The JS220 FPGA decodes the UART in parallel with current sampling — perfect for correlating “enter_sleep” and “wake” log lines with the actual transitions. Multi-phase test:
embedder
Long capture with raw samples:
embedder
JLS files open in the Joulescope desktop UI for advanced analysis.

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

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?
On JS220 in 2-wire mode, did you tie V+ to I+? Without that jumper, the voltage input floats.
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.
joulescope_measure buffers in RAM. For longer captures, ask for “streaming” (running stats only) or “JLS recording” (raw samples to disk).
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.
Last modified on May 8, 2026