la_* helpers as other logic analyzers. You do not need DSView or Logic 2.
Supported model profiles cover the original DSLogic, Pro, Basic, Plus, U2Basic, U2Pro16, U3Pro16, and U3Pro32. Channels, sample rates, buffer depth, and threshold controls differ between models and USB speeds. Ask Embedder to list the connected device’s capabilities before configuring a capture. Only the U3Pro16 has been checked on hardware, so check other models against a known signal first. On Linux and Windows, USB access may require device permissions or a compatible driver.
Prepare
- Connect the analyzer with a data-capable USB cable.
- Close DSView, Logic 2, or any other application holding the device.
- Connect signal ground and the signal channels. Check the input voltage limits for the analyzer and target.
instruments_enabled set. The Bridge host owns USB access, and Embedder transfers capture archives back to your project. Update older Bridges before using DSLogic.
Channel indexes are zero-based. When several DSLogic units are connected, pass the device id from la_get_devices() to la_connect(). Device IDs follow USB topology and change if you move the analyzer to another port. When other logic analyzers are also connected, add "logic_provider": "dslogic" to the run’s capture profile, or tell Embedder to use the DSLogic.
Capture digital traffic
Give the channel map, sample rate, capture length, threshold, and trigger:la_start_capture(), complete it with la_wait() or la_stop(), and save it with la_save_capture():
With an external clock, the configured rate is nominal. Embedder reports positions in samples, omits frequency and time measurements, and labels the Monitor axis in samples.
la_start_timed_capture() and la_start_manual_capture() remain available for scripts written for other analyzers. la_get_capture_status() reports acquisition, trigger, and upload progress while the Monitor shows a live preview.
Set a trigger
The triggerposition_percent sets the pretrigger amount from 1 to 90 percent. Streaming captures accept simple triggers with at most 1 percent pretrigger.
- Simple: map channels to
0,1,R(rising),F(falling), orC(any change). - Advanced: use 1–16 stages. Each stage has 32-character
pattern0andpattern1strings, highest physical channel first, withXfor don’t care. Stages also acceptlogic(andoror),contiguous,invert0,invert1,count0, andcount1. - Serial: set 32-character
start,stop, andclockpatterns, adata_channel,bits(1–16), anddataas 0/1/X, highest bit first.
Decode a bus
la_get_protocol_decoders() lists 158 decoder modules, including variants and an example module. la_decode(capture, stack, start_sample=0, end_sample=None) runs a decoder stack with the roles and options from that catalog.
Decoding runs separately from USB acquisition, so you can decode a long capture or a region of it after saving.
la_add_protocol_analyzer() also accepts the Saleae analyzer names and options, so a script written for Saleae can decode a DSLogic capture:
- UART defaults to 9600 baud.
- LIN defaults to 20000 baud and accepts
lin_versionvaluesVersion 1.xorVersion 2.x. - Modbus defaults to 9600 baud, 8E1, RTU client mode. Set
mode="ASCII"for 7E1 ASCII decoding ordirection="server"for responses. - I2C
address_modechanges only how addresses are displayed.
Save and analyze
la_save_capture(capture, filename="capture.dslogic.json") saves a .dslogic.json archive into the project’s capture history. The metadata file and its companion files belong together. la_open_capture(filename) reopens the archive.
Saved captures support further analysis:
la_measure()reports edge counts, duty cycle, pulse widths, and period for a channel.la_search()finds channel patterns of0,1,R,F,C, andX.la_decoder_results()andla_export_decoder_results()search and export decoded annotations and packets.la_redecode()replaces a capture’s decoders and keeps the previous results if any decoder fails.la_export_raw()writes Saleae-compatible transition CSV.la_export_samples()writes CSV, VCD, Gnuplot, or binary samples.la_import_dsl()andla_export_dsl()read and write DSView.dsllogic archives. Embedder does not run decoders from an imported file.la_export_screenshot()saves a PNG of the waveform with cursors and decoder annotations.
Limits
- DSLogic is digital-only. Analog capture and Saleae
.salfiles are not supported. - Loop captures cannot use buffer-only mode or RLE.
- Rates and thresholds differ between models and USB speeds. Do not reuse one model’s settings on another.
Troubleshoot
- Device busy: close DSView, Logic 2, or another script using the analyzer.
- Runtime needs setup or repair: choose Repair analyzer connection from the Logic tab’s ⋯ menu. If the download fails, check the network connection.
- Wrong analyzer selected: set
"logic_provider": "dslogic"in the capture profile and pass the deviceidtola_connect(). - Requested rate rejected: choose a rate and channel set the connected device advertises.
- Device missing on a Bridge: confirm that the Bridge host has
instruments_enabledset and is up to date.

