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

Pmtunes driver dev #63

Open
wants to merge 64 commits into
base: master
Choose a base branch
from
Open

Conversation

PeterMintun
Copy link

Merging in drivers for:

  • Lakeshore332 temperature controller
  • Signal Recovery 7265 Lock-in amplifier
  • CoBrite DX1 telecom laser
  • Newport 69907 arc lamp power supply
  • Acton SP2150i monochromater
  • Hinds PEM-90 (not done, but I don't think anyone is using this atmo, should be finished later this week)

PeterMintun and others added 30 commits November 17, 2015 18:43
Starting guide for new Lantz users
Adding files for Lakeshore 332 and Signal Recovery 7265 drivers.

These drivers are going to be heavily reworked as I actually learn how
to properly use lantz. Please use with caution!
Making progress porting Lakeshore 332 driver from QTLab over to
Lantz...at least I think
Wrote this for the Python newbs out there, this should give you a
minimal lantz installation using Miniconda3. Needs to include
information about what National Instruments software needs to be
specifically installed (this is probably the useful thing to include
here!) - will write that up when I set up a data computer from scratch
Added basic code to test if lantz is installed
cpanderson tip for how to fix qt installation not working
did a lot of stuff to try and figure out what's going on. but the basic
lantz query function they suggest in the driver tutorial makes it
timeout and not communicate with the instrument.

still want to improve the design to follow proper coding practice better
but not playing nice with whatever the @feats() and __init__ functions
do. basically confused by lanz
added basic instructions for installing a NI USB -> GPIB interface and a
NI DAQ
added info for verifying that DAQ works after reboot
looks like the read termination I was using was wrong. things should be
working now.
expanding library of commands in the driver, and adding code
debugging/to prove that they work
got rid of some old extraneous code in there, tried to clean up style
too
I think this one is done as far as functionality goes.

Items to work on: test integration with other python code.

Add some sort of basic logging functionality
changed CMODE to properly implement dictionary functionality
wrote most of functionality for lockin and monochromater, need to work
on this to iron out some kinks, and more importantly, test some of this
code!
added more function to lockin driver, also testing slack integration
test slack
this driver should be done...still missing comments and some logging
functionality, but it should be able to be useful for most stuff you
might want to do experimentally.

SP2150 I can communicate w/ over USB, but there are some weird things
going on where it drops commands or something. still debugging this.
Added testing code from lantz examples to codebase.

Note that this code requires you to manually download the ni/nidaqmx
folder from LabPy\lantz on GitHub, then copy it to the appropriate
folder in your python library
better reflects what this code actually does.
added autophase operation to lockin driver
adding document for future lantz bug fixes, will probably add more to
this once I can diagnose problem w/ NI driver
brief explanation of current issue affecting lantz NI driver on 64-bit
systems
adding guide for installing/setting up Acton
Figured out how to fix bug for DAQ demo code, basically was an issue w/
the 64-bit TaskHandle getting truncated. Put in a hack-y fix for this to
avoid an integer overflow error, but the driver may still have other
bugs. If anyone has a specific use case that should be developed
specifically, let me know ASAP
added file describing how to modify the DAQ code and pushed all changes
made to get it running
added some more fancy DAQ test code, including live plotting w/
matplotlib
Fixed some issues w/ lantz NI driver, added the ability to create AI
voltage channel

Also added a fun demo where you can plot a voltage input of the DAQ in
real time with an animated matplotlibplot
PeterMintun and others added 30 commits December 15, 2015 16:25
able to read and write multiple channels using DAQ_FSM_Demo and
DAQ_double_blit, will be using this to test FSM smooth next
able to read/write array of analog voltages, but need to synchronize w/
timing
This update includes code for edge counting, and fast FSM controlled by
the hardware clock.

Next steps:
- make counter read fast
- write_and_count function

Longer term goals:
- clean up interface - uses two inconsistent ways of interfacing w/ NI
dlls
- make wrapping w/ foreign.py nicer and possibly push these changes to
the main lantz repository
added basic example code to push to a slack channel, could be used for
providing status updates on experiments, etc.
added little interface for posting status messages to slack for an
experiment. feel free to improve or modify the code for your own
purposes. there are a few changes you need to make, most notably
creating a token for yourself, but I've included documentation - make
sure to read it.
…lamp

adding updated software for laser, now that comm is working well + no
address error, adding new files to manage CoBrite DX1 telecom laser and
Newport 69907 arc lamp controller
added full library of commands to arc lamp. Still needs to be tested
with an actual instrument connected - will try and work this out
tomorrow.
pretty much everything done here except for logging
initial commit, implements basic functionality
about time. communication should be good and I have it set to wait for
the monochromater to finish scanning or changing gratings before
restoring control to the user. always check the most recent version of
the manual is the lesson here!
sorry for committing twice, cleaned up some comments and added more
comments for future users of the code
added code that queries if the laser is done with an operation and then
restores control to the user after it finishes tuning for command
setting. also tested everything and seems to work well
basically prepping for big merge of all files, wish me luck!
… could probably be better unified between CI and AI input choices, also really slow + probably unnecessary overhead with reconfiguring tasks
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