Simultaneous two outputs

Moku model: Moku Go
Operating system: Windows 10
Software version: Moku API 3.3.1.1 MokuCli 4.0.1

Bug or support request description: How to ensure that both output ports in Moku Go operate simultaneously when using the AWG? We find that the delay between the two output ports is inconsistent when running the Python program each time.

It is possible to achieve this aim without an external trigger?

Hello @miaomaoke ,

Thank you for reaching out to Liquid Instruments! Are you attempting to sync the phase of both of your waveforms, or are you looking to trigger two waveforms at the same time?

To sync the phase, you can click on the settings button in the app and click ‘Sync phase’. In the API, the command would be awg.sync_phase().

To trigger them both at the same time, you can use the new manual trigger feature. To do this, configure both of your inputs to be burst modulated, with a manual trigger. Then, whenever manual_trigger() is called, both waveforms will be triggered. Here is a code snippet to help you get started:

awg=ArbitraryWaveformGenerator('192.168.2.52', force_connect=True)

t = np.linspace(0, 1, 100)
sq_wave = np.array([-1.0 if x < 0.5 else 1.0 for x in t])

awg.burst_modulate(1, trigger_source='Manual', trigger_mode='NCycle', burst_cycles=3)
awg.burst_modulate(2, trigger_source='Manual', trigger_mode='NCycle', burst_cycles=3)

awg.generate_waveform(1, sample_rate='Auto', lut_data=list(sq_wave),frequency=1e6, amplitude=1)
awg.generate_waveform(2, sample_rate='Auto', lut_data=list(sq_wave),frequency=1e6, amplitude=1)


for j in range(3):
    awg.sync_phase()
    awg.manual_trigger()
    time.sleep(3)


awg.relinquish_ownership()

I hope this is helpful!

-Dylan