Embedded Plotter
Embedded Plotter is a real-time acquisition and visualization workspace for
embedded development inside Visual Studio Code.

The 0.1.1 preview focuses on practical acquisition paths that have been
validated with local generators and real hardware:
- Cortex-Debug Live View expressions;
- Cortex-Debug SWO/ITM with J-Link;
- Serial/UART devices;
- UDP and TCP streams;
- built-in demo signals;
- recording and JSONL playback;
- multi-signal time and X/Y plots.
Quick start
- Run Embedded Plotter: Open from the Command Palette.
- Add a demo, Serial, UDP, TCP, or Debugger Live View source.
- Drag signals from the signal browser into the workspace.
- Drag plot headers to arrange plots and use the corner handle to resize them.
The extension accepts simple text that is easy to emit from firmware:
rpm=2450
temperature[C]=87.5
rpm=2450;temperature[C]=87.5
One line or UDP datagram is one logical sample group. JSON objects and grouped
JSON samples are also accepted. A source may provide its own timestamps;
otherwise the extension assigns a shared receive timestamp to values arriving
in the same group.
Sources
Serial / UART
Select a detected COM port and baud rate in the Sources panel. Text input is
line-framed.
UDP
Enter a local bind address such as 0.0.0.0:9000. UDP status is shown as
listening because the transport has no connection handshake.
TCP
Enter an endpoint such as 127.0.0.1:9000. Text input is line-framed.
Debugger Live View
Start a VS Code debug session, select Debugger Live View, and enter one or
more expressions separated by semicolons. Cortex-Debug uses liveEvaluate
while the target is running.
Cortex-Debug SWO
For Cortex-Debug configurations with SWO enabled, Embedded Plotter injects a
shared advanced decoder and discovers ITM channels automatically. SWO output
can use name=value lines; multiple named values may share one ITM port.
Plot interaction
- LIVE follows newest samples.
- Wheel changes the live time window.
- Horizontal pan opens a fixed HISTORY viewport while acquisition continues.
- Double-click returns to LIVE.
- Pause freezes plot refresh but does not stop acquisition or recording.
- Plot clear keeps raw source history and does not affect recording.
- Measurement cursors A and B show time/value differences.
- Theme settings control colors, line width, glow, grid, and series fill.
Recording
Recordings are streamed to a versioned JSON Lines session file independently
of the Webview. Plot pause, clear, resize, and color changes do not affect
recorded raw samples. Playback preserves source metadata, timestamps, and
sample grouping.
Current preview limitations
- The first packaged release targets Windows x64 because Serial support uses a
native Node module.
- RTT acquisition and binary/CAN/LIN decoders remain experimental and are not
exposed in the source picker.
- Browser-level Webview tests and large-capture performance policies are
planned.
Please report reproducible problems through
GitHub Issues.
License
MIT