Ulm-IQO / qudi-iqo-modules

A collection of qudi measurement modules originally developed for experiments on colorcenters in semiconductor materials.
GNU General Public License v3.0
10 stars 27 forks source link

[Bug] Can't generate Pulse Sequences with pulse_blaster_esrpro (within pulsed_gui) #113

Open mario-b-amaro opened 9 months ago

mario-b-amaro commented 9 months ago

Version

current main

What is affected by the bug?

This bug seems to hold for the pulse_blaster_esrpro module (and, by extension, to a custom pulse_blaster module I adapted for a DDS-II-300 based on the ESR-PRO one).

I can create Pulse Blocks in the Pulse Block Editor, and mount them in Pulse Ensembles in the Pulse Block Organizer with no issue. I can generate, sample and load them with no problems to my SpinCore. So far so good. The issue arrises only when I try to create Pulse Sequences of ensembles. The bug lies within the "Sequence Generator" tab of the pulsed_gui when connected to a pulse_blaster_esrpro.

When does the bug occur?

Whenever I try to create a Pulse Sequence on the Pulse Sequence Editor (Sequence Generator tab), I get an error. I get the logged error below for any combination of Pulse Ensembles I try to add, and for any combinations of values in the "Repetitions", "Go To" and "Event Jump To" fields.

Note that there is no issue whatsoever when assembling Pulse Blocks into Ensembles (Pulse Generator tab) and I can perfectly load those to the spincore.

How do we replicate the issue?

  1. Create a pulsed_gui instance and connect it to a pulse_blaster_esrpro.
  2. Load qudi and initialize the pulsed_gui module
  3. In "Pulse Generator", create some Pulse Blocks and mount them in an Ensemble in the Pulse Block Organizer, Generate it, and then Sample and Load it. So far everything should be fine, if we turn the Pulser ON, that Ensemble was successfully loaded and is working well.
  4. Now to go "Sequence Generator". Try to create any sequence (even if with just a single BlockEnsemble). Generate it and try to Sample and Load it. The log output below should appear.

Expected behavior

When we create a Sequence, generate it, sample and load it, it should either load to the spincore or give another error. The current error indicates a returned number of sequence steps of -1, while it should be the number of Block Ensembles one added. Hence, -1 sequence steps does not correspond to any real input, it seem to indicate an error return.

Relevant log output

Writing PulseSequence "test" to the device memory failed.
Returned number of sequence steps (-1) does not match desired number of steps (2).

Additional Comments

pulser_dummy works. It allows the creation, generation and "Sample+Load" routine of Sequences. It seems to be a problem exclusive to pulse_blaster_esrpro

Contact Details

mario.bettencourt.amaro@fysik.su.se

NicolasStaudenmaier commented 9 months ago

Hi @mario-b-amaro, I am not familiar with the SpinCore PulseBlasterESR-PRO and its technical specifications. However, in the hardware file for this device sequencing is not implemented with the note that the device is no capable of it. Indeed, -1 sequence steps are returned to create an error in the sequencegeneratorlogic. You should also find the following warning message that is written by the hardware itself:

PulseBlaster digital pulse generator has no sequencing capabilities. 
write_sequence call ignored.

Improving the error handling to make clear that the PulseBlasterESR-PRO is not able to use the sequence mode would be a good idea.