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

TriggerScope DAC Overdrive Transitions #205

Open
ieivanov opened this issue May 25, 2022 · 3 comments
Open

TriggerScope DAC Overdrive Transitions #205

ieivanov opened this issue May 25, 2022 · 3 comments

Comments

@ieivanov
Copy link
Contributor

@nicost it would be very useful to be able to apply a voltage "overdrive" on each DAC transition using the TriggerScope - for example, go from 1V to 2V through a brief (say 5 ms) pulse at 5V. The reverse should also work, i.e. go from 2V to 1V through a 5 ms transition at 0V. The overdrive transition can be engaged only if the Overdrive-Duration property is larger than 0 ms. In this way, each DAC state would be defined by an overdrive voltage, overdrive duration, and final voltage value.

Could you give us an idea on how easy it may be implement that in the TriggerScopeMM device adapter and maybe give us any pointers on how to do it? Would we need to change the TriggerScope firmware as well? We would also like to be able to go through these overdrive transition during a hardware sequence, i.e. for one pulse received by the TriggerScope, go through the overdrive transition to the final voltage stage. Do you think that would be possible?

Any help would be greatly appreciated. Thanks!

cc: @ talonchandler @ Soorya19Pradeep

@AdvancedResearchConsulting

I'd probably recommend doing this in firmware, just add the commands to the pcDac function so each time the DAC is changed, the command performs the function. Adding the steps both at the serial command and program step locations in the firmware would accomplish both requests.

@nicost
Copy link
Member

nicost commented Jun 3, 2022

This would certainly need to be implemented in the firmware first. Once it is there, adding a property in the device adapter is simple. This is quite analogous to adding delays (see: micro-manager/TriggerScopeMM#5). I discovered that it is not simple to add in the current code (although I believe that it is possible). The main obstacle is to make it performant, i.e. you do not want to have this slow things down. The reason for adding delays dis-appeared, so I never finished that work, but maybe that branch provides some inspiration.

@ieivanov
Copy link
Contributor Author

ieivanov commented Jun 8, 2022

Thank you both! I realized that this idea could be extended to a more general sequence of timed states (e.g. V1-t1-V2-t2-V3), which should be more broadly useful.

@nicost it seems like the pulsedTriggers branch doesn't have any commits ahead of the main - maybe you haven't synced your work yet? Could you describe here your targeted approach and the problems you've encountered so far?

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

No branches or pull requests

3 participants