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

add a new hardware file #31

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open

add a new hardware file #31

wants to merge 4 commits into from

Conversation

liuyanulm
Copy link
Contributor

add a hardware file to control the Keysight power supply.

Using the keysight power supply for power switches, so that one can control devices such as APD, MINI amplifers etc remotely.

Description

coded the hardware file of the Keysight power supply in the format of switches, it works pretty well.

Motivation and Context

With this change, you can switch on your APDs and amplifiers and other devices remotely.

How Has This Been Tested?

it was tested on the latest iqo-qudi-modules on a Windows 10 PC with a Keysight E36234A power supply.

Screenshots (only if appropriate, delete if not):

image

Types of changes

  • Bug fix
  • New feature
  • Breaking change (Causes existing functionality to not work as expected)

Checklist:

  • My code follows the code style of this project.
  • I have documented my changes in /docs/changelog.md.
  • My change requires additional/updated documentation.
  • I have updated the documentation accordingly.
  • I have added/updated the config example for any module docstrings as necessary.
  • I have checked that the change does not contain obvious errors
    (syntax, indentation, mutable default values, etc.).
  • I have tested my changes using 'Load all modules' on the default dummy configuration.
  • All changed Jupyter notebooks have been stripped of their output cells.

add a hardware file to control the Keysight power supply.
# -*- coding: utf-8 -*-

"""
Control the Radiant Dyes flip mirror driver through the serial interface.
Copy link
Contributor

Choose a reason for hiding this comment

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

Typo

Copy link
Contributor Author

Choose a reason for hiding this comment

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

corrected

# Excelitas APD: 5V,1.3A
self._instrument.write('INST CH1')
self._instrument.write('OUTP 0')
self._instrument.write('VOLT 5')
Copy link
Contributor

Choose a reason for hiding this comment

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

Maximum voltages should be ConfigOptions, not hardcoded.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Now the voltages and currents are taken from ConfigOption


def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.lock = RecursiveMutex()
Copy link
Contributor

Choose a reason for hiding this comment

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

I think the lock is not needed in this module.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

These lines are used in all switch hardwares. I think we may keep it for now for unification

@timoML
Copy link
Contributor

timoML commented Sep 14, 2022

@liuyanulm Is the power supply API compatible with the existing hw file for the E3631A? In this case, we might think of unifying the files and fullfill both the ProcessControlInterface and the SwitchInterface.

@timoML timoML closed this Sep 14, 2022
@timoML timoML reopened this Sep 14, 2022
@liuyanulm
Copy link
Contributor Author

Interesting idea. I also had a similar thought when I notice the power_supply hardware pacage. But after I went through the E3631A hardware file, I noticed that is not the category of functions I had in mind. fullfilling both the ProcessControlInterface and the SwitchInterface seems rather an ideal arrangement but I assume it's not easy. But we can keep this in mind.

@liuyanulm
Copy link
Contributor Author

@liuyanulm Is the power supply API compatible with the existing hw file for the E3631A? In this case, we might think of unifying the files and fullfill both the ProcessControlInterface and the SwitchInterface.

@timoML The Keysight power supplies are not controlled via API, you don't have to install any APP in your control comuter. They are controlled via SCPI commands through USB connections. The range of the outputs are of course different.

@timoML
Copy link
Contributor

timoML commented Sep 20, 2022

We discussed the PR in the maintenance team. Our prefered solution is to generalize your code such that every device fullfilling the ProcessControlInterface can fullfill the SwitchInterface. We will look into this and keep this PR pending meanwhile.

@liuyanulm
Copy link
Contributor Author

Thanks

@Neverhorst Neverhorst mentioned this pull request Sep 23, 2022
11 tasks
@Neverhorst Neverhorst mentioned this pull request Sep 30, 2022
11 tasks
@LukePiewalker
Copy link
Contributor

Dear @liuyanulm ,

Since there now is the switch functionality for all ProcessControlInterface Hardware through PR #37 could you maybe incoorporate these changes in your PR?

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.

3 participants