AWG.load_sequencer_program(sequencer_program: Union[str, Sequence], **kwargs: Union[str, int]) Dict[str, Any][source]#

Compiles the given sequencer program on the AWG Core.


After uploading the sequencer program one needs to wait before for the awg core to become ready before it can be enabled. The awg core indicates the ready state through its ready node. (device.awgs[0].ready() == True)

  • sequencer_program (Union[str, Sequence]) – Sequencer program to be uploaded.

  • kwargs (Union[str, int]) –

Keyword Arguments:
  • samplerate – Target sample rate of the sequencer. Only allowed/ necessary for HDAWG devices. Must correspond to the samplerate used by the device (device.system.clocks.sampleclock.freq()). If not specified the function will get the value itself from the device. It is recommended passing the samplerate if more than one sequencer code is uploaded in a row to speed up the execution time.

  • wavepath – path to directory with waveforms. Defaults to path used by LabOne UI or AWG Module.

  • waveforms – waveform CSV files separated by ‘;’

  • output – name of embedded ELF filename.

Return type:

Dict[str, Any]


>>> compile_info = device.awgs[0].load_sequencer_program(seqc)
>>> device.awgs[0].ready.wait_for_state_change(1)
>>> device.awgs[0].enable(True)
  • RuntimeErrorsequencer_program is empty.

  • RuntimeError – If the upload or compilation failed.

  • sequencer_program (Union[str, Sequence]) –

  • kwargs (Union[str, int]) –

Return type:

Dict[str, Any]

New in version 0.3.4: sequencer_program does not accept empty strings

New in version 0.4.0: Use offline compiler instead of AWG module to compile the sequencer program. This speeds of the compilation and also enables parallel compilation/upload.