Skip to main content
Use a Saleae Logic analyzer to capture digital timing and decode buses. Embedder runs the captures through Saleae’s Logic 2 app, and each capture opens in the Monitor’s Logic tab. Plug the analyzer into the computer where Embedder runs, and run Logic 2 on that computer.

Prepare Logic 2

  1. Connect the analyzer by USB and open Logic 2.
  2. In Logic 2 Preferences, turn on the automation server (the Automation API). Keep the default port, 10430; Embedder connects on that port.
  3. Leave Logic 2 running while you capture.
  4. Ask Embedder to check the analyzer. The first time, approve the setup prompts:
    • Install Python 3? if Python is missing.
    • Create Embedder Python environment?
    • Install logic2-automation?, Saleae’s automation package.
  5. Connect ground first, then the signal channels. Check the voltage limits for both the analyzer and the target.
Embedder looks for a Saleae device on USB before it offers any setup. If it doesn’t find one, setup doesn’t start, so connect the analyzer first.

Channel numbers and thresholds

Embedder counts channels from 0. On the Original Logic, the housing labels run from 1 to 8, so housing channel 1 is channel 0 and housing channel 8 is channel 7. Don’t request a threshold on a model with a fixed threshold; the capture fails. For other models, ask Embedder which rates and thresholds the connected device reports. On the Original Logic, a busy USB 2.0 host can limit the rate to 16 or 12 MS/s. Embedder captures digital channels only. Use an oscilloscope for analog measurements.

Capture digital traffic

Give Embedder the physical channel map, duration, sample rate, and the activity you expect:
Choose the capture type that fits the test: For a manual capture, ask Embedder to start the capture, perform the operation, then stop the capture before exporting it. To run the capture and the operation in a fixed order, put both in one hardware script. Saleae captures start immediately; there is no trigger option. Start the capture before the event and keep enough margin on both sides. The connected model and the number of enabled channels determine which sample rates are available. If you request an unsupported rate, Embedder uses the nearest supported rate and reports the change. Check the reported rate before you calculate pulse widths or compare runs. If several Saleae analyzers are connected, say which one to use. Embedder can list the device IDs Logic 2 sees.

Decode a bus

Embedder decodes with Logic 2’s own protocol analyzers: 1-Wire, Atmel SWI, BiSS-C, CAN, DMX512, HD44780, HDLC, HDMI-CEC, I2C, I2S / PCM, JTAG, LIN, Manchester, MDIO, MIDI, Modbus, PS/2, SMBus, SPI, SWD, Synchronous Parallel, UART (Async Serial), and USB low and full speed. Provide the channel roles and settings for each bus:
  • UART: data channel, baud rate, data bits, parity, and stop bits.
  • SPI: clock and MISO, plus MOSI and chip select when used, and bits per transfer. Clock polarity, phase, and bit order use Logic 2’s defaults.
  • I2C: SDA and SCL. The address display setting changes only how addresses are shown.
  • LIN: data channel, bit rate, and LIN version.
Decoded tables show data values in hexadecimal. CAN decoding shows frames. To interpret application-level signals with your project’s database, use CAN Monitor.

Save and inspect

Ask for the files you need:
  • A .sal capture to reopen in Logic 2.
  • Raw digital CSV for the enabled channels.
  • A decoded CSV for each analyzer.
When Embedder saves or exports a capture, the waveform and any decoded rows appear in the Logic tab. While a capture runs, the tab shows a status message until the analyzer exports the data. To reopen an earlier capture, set Logic source to Saleae and select Capture history. Keep the raw signals so you can revisit channel assignments and decoder settings. Record the firmware revision, channel map, duration, and reported sample rate with the result.

In a hardware script

In a hardware script, these helpers are available without an import:
Omit digital_threshold_volts on the Original Logic and Logic 8.

Troubleshoot

  • “No Saleae device detected via USB”: check the cable and USB port, then confirm that Logic 2 shows the analyzer. On Linux, Embedder finds the analyzer with lsusb; install your distribution’s usbutils package if that command is missing.
  • “Saleae Logic 2 is not reachable on port 10430”: open Logic 2, turn on the automation server in Preferences, and confirm the port is 10430.
  • Python or package setup failed: install Python 3 yourself, then ask Embedder to check the analyzer again.
  • Wrong bytes: compare housing labels with channel numbers that start at 0, then check framing, SPI mode, channel order, and bit rate.
  • Sample rate changed: Embedder chose the nearest supported rate. Enable fewer channels for a higher rate.
  • Threshold rejected: the model has a fixed threshold. Remove the threshold from the request.
See Logic analyzer to compare instruments.
Last modified on October 13, 2026