Generating a Waveform Signal with a PXI Source Measure Unit

Updated Apr 12, 2023

Reported In


  • PXIe-4139
  • PXIe-4135
  • PXIe-4136
  • PXIe-4137
  • PXIe-4138
  • PXIe-4140
  • PXIe-4141
  • PXIe-4142
  • PXIe-4143
  • PXIe-4144
  • PXIe-4145
  • PXI Source Measure Unit


  • NI-DCPower

Issue Details

I would like to generate a voltage or current waveform like a sine wave signal or an arbitrary waveform using a Source Measure Unit (SMU). I can configure the source mode either as Single Point or Sequence, but I cannot set AC, sine, arbitrary or other modes. How can I generate waveform signal with the hardware?


Although the DCPower and the SMU cards like the PXIe-4139 were not designed to be used as a function or waveform generator, it is possible to program the card to output standard functions by translating the desired frequency and amplitude or a predefined arbitrary waveform to a continuous output sequence with voltage levels and source delays (corrected by the intersample delays of the specific hardware) set appropriately.

If using NI-DCPower 18.2 or later, then the best way to go about this is using Sequence Step Delta Time (see offline driver help for more information). Sequence Step Delta Time allows you to control the timing for each step of a sequence in Sequence Source Mode, including advanced sequences, by bounding the step time to a specified duration dt. For example, this level of determinism allows you to create periodic voltage and current waveforms with your source measure unit (see CV with Step Delta

If you are not able to upgrade to NI-DCPower 18.2 or later:

The FGEN VI together with the Signal Calculation VI both found under the Forum Sine Wave Generation with SMU link allows you to use a NI 414x, NI 4135/4136/4137/4138/4139 as a function generator.  
The solution is limited to a maximum output frequency of 5 kHz.

The block diagram for the signal calculation is shown by the following picture:

The block diagram of the signal generation includes the signal calculation as a SubVI:

Additional Information

  • Since the sequence mode is used to generate the waveforms, you can use the Sequence Loop Count Is Finite Property  to define the generation as finite or continuous.
    • If the property is set to true, you can use the niDCPower Wait For Event VI  to wait for a Sequence Engine Done Event after initiating the generation and before stopping the device to make sure all the sequence values are generated.
    • If the property is set to false, the sequence will restart when completed until the generation is aborted.
    • If the generation needs to be continuous, you also need to set the Measure Record Length Is Finite Property to false. Otherwise, the VI will return an error when the specified record length is reached.
  • These methods do not work for all SMUs, see driver help for supported devices.
  • These methods work best on lower frequency signals. This is because SMUs have a lower update rate than signal generators. For smoother high frequency waveforms, consider purchasing NI's Waveform Generators .