A supported Digilent device can combine logic capture, analog inputs, waveform generation, and supply controls. Check which instruments the connected device provides; capabilities differ between models.
The documented Analog Discovery 3 workflow covers all four uses.
Prepare
Connect the device with a data-capable USB cable, complete the requested WaveForms and Python setup, and close other applications using it.
Use zero-based indexes in hardware scripts: analog input 0 is physical Channel 1; AD3 digital channels are 0–15. Identify the serial number when several devices are connected, and ask Embedder to check the selected device’s digital inputs, analog inputs, waveform outputs, and supplies before using them.
Capture digital traffic
Timed and manual captures, edge or level triggers, and common bus decoders are available. AD3’s digital threshold is fixed. Stop a manual capture before decoding or saving it; its duration is capped at 60 seconds and high sample rates can reach the capture-size limit sooner.
For a level trigger, specify the digital channel and required high or low state. If the device has a suitable external trigger, provide its source and edge. In a hardware script, configure the trigger with la_setup_trigger() before starting the capture. Use the achieved sample rate when measuring timing.
Decode and save
Supported decoders include UART, SPI, I2C, CAN, LIN, 1-Wire, I2S/PCM, Manchester, JTAG, SWD, and Modbus. Provide channel roles and protocol settings: UART baud rate and framing; SPI clock, data, chip select, polarity, phase, and bit order; or I2C SDA and SCL.
Ask for raw digital CSV and decoded CSV, then inspect the signals and frames in Logic. A saved Digilent capture uses .dwf3.json; it is not a Saleae .sal file. Scripts use la_add_protocol_analyzer(), la_export_table(), la_export_raw(), and la_save_capture() for these results.
CAN decoding shows frames. Use CAN Monitor with a project database for application-level signals.
Measure analog signals
Digilent analog captures appear in the Power tab. Digital captures appear in Logic.
For a saved script, the public analog helper is:
range_volts=5.0 requests a ±5 V window. Check the returned rate and duration before calculating timing.
Generate a stimulus
Describe the output, waveform, frequency, amplitude, offset, and cleanup:
Supported waveform functions depend on the device. In a hardware script, use la_wavegen_setup() to configure an output and la_wavegen_start() / la_wavegen_stop() to control it. amplitude is the peak amplitude, so a 1 V amplitude is 2 V peak-to-peak before offset. You can also request a DC level, a pulse with a specified duty cycle, or custom samples when supported by the device.
Put stimulus, capture, and cleanup in one script. Specify the permitted voltage range and final output state; request cleanup even if capture fails.
Control a supply
On a device with supported supplies, specify the rail and requested voltage. AD3 offers a positive rail up to +5 V and a negative rail down to -5 V.
Before enabling a supply or waveform, confirm voltage, polarity, grounding, current demand, and any other power source connected to the target.
Ask for an explicit shutdown state. You can also read the supply status or monitor it over a defined interval:
Scripts use la_psu_setup() to set rails and their master enable, la_psu_status() for a readback, and la_psu_monitor() for a bounded record. Supply readings come from the supported device controls; use PPK2 or Joulescope when the test requires an inline current measurement.
Troubleshoot
- Instrument missing: verify that the selected model provides it.
- Device busy: close WaveForms or another script using the hardware.
- Clipped signal: increase the acquisition range or reduce amplitude.
- Wrong channel: check zero-based script indexes against physical labels.
- Analog capture appears in Power: this is the expected Digilent view.