Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

multiple-pulse capability enabled #86

Merged
merged 4 commits into from
Aug 26, 2024

Conversation

Code-Craftsman-Christian
Copy link
Contributor

The capability to emit multiple pulses per sequence step was added to the driver. For this, the sweep mode was misused by setting start and stop voltage/current to the same value.

As this also works for a single pulse as well as the DC mode, the initialization was modified to have the B290xB SMU run in the sweep mode all the time, even if the pulse count in the GUI is set to 1 or if the SMU is used for DC output. No drawbacks were observed in practical use other than that the symbol on the display of the SMU shows a sweep rather than a DC or pulse graphic.

The capability to emit multiple pulses per sequence step was added to the driver. For this, the sweep mode was misused by setting start and stop voltage/current to the same value. 

As this also works for a single pulse as well as the DC mode, the initialization was modified to have the B290xB SMU run in the sweep mode all the time, even if the pulse count in the GUI is set to 1 or if the SMU is used for DC output. No drawbacks were observed in practical use other than that the symbol on the display of the SMU shows a sweep rather than a DC or pulse graphic.
@Code-Craftsman-Christian Code-Craftsman-Christian requested a review from a team as a code owner August 6, 2024 08:55
Copy link
Contributor

@afischer-sweepme afischer-sweepme left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the further contribution. I have not much experience to say whether the Sweep is also a good choice for the single-spot DC measurement. One option would be to use FIX for the normal DC measurement and SWE for the pulsed measurments to allow for multiple pulses.

src/SMU-Agilent_B29xx/main.py Outdated Show resolved Hide resolved
src/SMU-Agilent_B29xx/main.py Outdated Show resolved Hide resolved
src/SMU-Agilent_B29xx/main.py Outdated Show resolved Hide resolved
src/SMU-Agilent_B29xx/main.py Outdated Show resolved Hide resolved
src/SMU-Agilent_B29xx/main.py Show resolved Hide resolved
src/SMU-Agilent_B29xx/main.py Outdated Show resolved Hide resolved
- separate SCPI commands are now used for DC and PULSE measurements as suggested previously
- NPLC settings moved to a dictonary to get rid of the mutiple if-statements in the configuration section
- removed unused and commented-out variable + code for a measurement deplay as implementing it would make things even more complicated for most application cases than necessary

(cherry picked from commit 1e7c8a2)

# Conflicts:
#	src/SMU-Agilent_B29xx/main.py
Copy link
Contributor

@afischer-sweepme afischer-sweepme left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I saw that you pushed the latest changes in the "main" branch. As the first commit was in "patch-1" branch, I cherry-picked your latest commit and moved it to "patch-1" so that this pull request remains valid and we can proceed here with the merge.

I only did a bit cleanup of the comments. Most relevant change ist that I renamed speed type "Standard (1)" to "Medium (1") as this matches the wording of all other drivers and
"Very Slow" -> "Very slow".

If you are fine with the changes, we can proceed with the merge.

Copy link
Contributor Author

@Code-Craftsman-Christian Code-Craftsman-Christian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, looks fine.

src/SMU-Agilent_B29xx/main.py Outdated Show resolved Hide resolved
…-check (if self.pulse) removed. commented print() removed
Copy link
Contributor

@afischer-sweepme afischer-sweepme left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have moved the pulse triggering to 'measure' as this phase is the one where a measurement should be initiated. If this does not work or makes problems later, we can resolve them in a new pull request. Sometimes some adaptions is needed until all drivers are perfectly harmonized.

@afischer-sweepme afischer-sweepme merged commit 6b4c623 into SweepMe:main Aug 26, 2024
2 checks passed
@Code-Craftsman-Christian Code-Craftsman-Christian deleted the patch-1 branch August 27, 2024 06:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants