In debug mode, Embedder can drive a Siglent SDS800X HD bench scope over LAN to capture analog waveforms. Supported models: SDS802X HD, SDS804X HD, SDS812X HD, SDS814X HD, SDS822X HD, SDS824X HD. Captures auto-publish to the Power tab of the Console panel (VS Code extension and standalone app).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.
Oscilloscope support is in beta. The SDS800X HD family is fully supported. Other LXI / SCPI scopes may work for some features but aren’t fully verified — expect rough edges.
What you can probe
| Signal | What you’re checking |
|---|---|
| Crystal / clock output | Oscillator startup, frequency, ringing |
nRESET | Reset pulse width, edge integrity |
| VDD / 3V3 rail | Droop under load, ripple |
| UART TX/RX | Idle level, edge slew, glitches |
SPI SCK / CS | Clock integrity at high rates |
I²C SDA / SCL | Pull-up strength, rise time |
| PWM | Duty cycle, frequency, glitches |
| GPIO debug pin | Interrupt latency (firmware toggles a pin in ISR) |
Prerequisites
Install host software
Embedder installs
pyvisa and pyvisa-py automatically the first time you run a scope script — approve the install when prompted.Connect the scope to LAN
Connect the scope to the same LAN as your host (Ethernet or Wi-Fi). Embedder browses mDNS (Read the scope’s IP from the front panel under Utility → Menu → I/O → LAN Config (DHCP is on by default). Quick reachability check: open
_lxi._tcp / _vxi-11._tcp / _scpi-raw._tcp) on every non-internal IPv4 NIC, so any LXI-compliant scope shows up in hardware_status under metadata.discoveredScopes with its vendor, model, serial, firmware, ip, and hostname.If discoveredScopes is empty (corporate Wi-Fi, AP isolation, mDNS blocked), set the IP directly:http://<ip> in a browser and you should see the scope’s built-in LXI status page.Example prompts
Single-shot capture on an edge trigger:embedder

embedder
embedder
embedder
embedder
embedder
What the agent does for you
The agent writes a Python script that opens a SCPI session over LAN, configures channels and timebase, arms the trigger, captures the waveform, and publishes the result to the Power tab. The chart is shared with power-analyzer traces, so you can correlate analog scope captures with current measurements on the same timeline.Common gotchas
Scope not discovered
Scope not discovered
Check that the scope is on the same LAN as your host and that you can open
http://<ip> in a browser. If mDNS is blocked (corporate Wi-Fi, AP isolation), set EMBEDDER_SCOPE_HOST=<ip> and re-run hardware_status. If discoveredScopes shows the scope but reachable: false, follow the suggestedFix (typically a subnet alias like sudo ifconfig <iface> alias <ip>/<cidr>).Trigger never fires
Trigger never fires
A single-shot capture times out after 5 s by default. Check the trigger source, level, and coupling, or ask the agent to use a longer timeout: “wait up to 30 seconds for the trigger”.
Trace clipped at the top or bottom
Trace clipped at the top or bottom
V/div is too coarse for the signal — the trace runs into the rails. Ask the agent to “drop V/div to 200 mV” or whatever fits. The opposite (V/div too fine) shows a flat-looking line because the signal is way bigger than the visible window.
Capture or screenshot looks wrong on a non-SDS800X HD scope
Capture or screenshot looks wrong on a non-SDS800X HD scope
Some helpers are tuned for the SDS800X HD’s specifics. On other LXI / SCPI scopes those helpers may misparse data or fail — fall back to raw
scope_query / scope_write calls and the vendor’s programming guide, or stick to a verified SDS800X HD model for full coverage.Next steps
Logic analyzer
Decode digital protocols with a Saleae or Digilent.
Combined workflows
Mix scope, logic, and GDB in one debug session.

