A Laboratory Control System for Cold Atom Experiments:

Hardware and Software


We have developed a powerful yet inexpensive and easy to construct experiment control system. The construction of the system together with the control software is described here. All circuits and software are free to download and use for nonprofit. The system was developed for the BEC (Bose-Einstein condensation) experiments in the group of Prof. Mark Raizen at the University of Texas at Austin and is based on a system that one of the authors developed previously for experiments in the group of Christophe Salomon in Paris. It is now used by several other groups, among them the groups of Prof. Jook Walraven, Prof. Rudi Grimm, Prof. Randy Hulet, Prof. Kirk Madison, Prof. Lev Khaykovich and Prof. Gerard Meijer. The visualization software is even used by more groups.

The hardware here includes a design for analog outputs (16-bit DACs), digital outputs and a direct digital synthesis device (DDS) on a general purpose parallel bus which is easy to expand upon and interface with a variety of devices (i.e. analog inputs, microprocessors, etc). The hardware outputs are laboratory friendly with BNC-type outputs and line drive capacity. The software is intended for cold atom experiments and contains the code to talk with the hardware developed here. This system represents a simple to understand and cost effective method to control laboratory experiments.

Overview (pdf)

A one page hardware and software overview is given here.

Hardware

Here, we show an overview of the hardware implementation that we currently use. This setup involves an NI6533 card from National Instruments for allowing the computer to talk to the output hardware. The bus system speed between the NI card and the output hardware is 2 Megasamples/second, i.e.the timing resolution for digital or analog outputs is 0.5µs, for DDS intensity control 1µs and for DDS frequency control 1.5-3µs in dependence of the required precision. 

Photos of our analog, digital and DDS output boards. Ideal for laboratory electronics.

Hardware Manuals and layouts:

Layout Software: pcb123 Free software from the board maker, the above layouts have to be used with PCB123 Version 1.1.4.0 -- there are newer versions now, which are not compatible with our files. To place orders with PCB123, you just download the layout software (Version 1.1.4.0), load the layout file and place the order from the software through the internet. Generally, when making single boards, we have etched them ourselves with the various PCB supplies from circuitspecialists.com. This we did for the converter board from the NI card, the transceiver and strobe bit generator board, etc. We never actually ordered DDS boxes from emachineshop.com, but this looks like an interesting option for those without a professional machine shop on location. You can download their free cad software, the files for the DDS box are above.


Software

The experiment control system for download here was devised for the Rubidium and Natrium Bose-Einstein condensation (BEC) experiments in the group of Mark Raizen and has been improved significantly for the FeLiKx experiment in the group of Rudi Grimm. The software can easily be adapted to many other cold atom experiments. The design objective is to give the user a simple but very powerful programming interface to implement the sequence of a BEC type experiment. The program is written in Visual C++. The program communicates with a data acquisition computer, running the latest version of the data acquisition program "Vision", over TCP/IP. This second computer is responsible to acquire image data and treat and store them together with the experimental parameters. To use the control program it is not necessary to use Vision. Any other type of data acquisition program can be used, or for very simple experiments, Control itself can acquire the data. Read the manual to get more information about this program, which would certainly be very useful for any BEC experiment. Here you can look at some screenshots. The menus are automatically generated in dependence of the outputs, parameters and utilities that the user has defined and could look very different for you application. Main menu, Output list, Parameter Menu, Utility Menu, Measurement Menu (interactively created when using program), Measurement Menu (form to create new measurement), Measurement queue (interactively created). The control program can be used with many different types of input/output systems, not only our homegrown proposed here. It comes ready with support for NI6533 and NI6733 cards and it is not too difficult to support other types of output hardware. The control program was improved significantly for the FeLiKx experiment. New features include: 2 MegaSamples/second output rate, arbitrary time jumping, externally triggered but instantaneous start of the sequence (e.g. for MOT fluorescence started sequences), fast DDS control for scanning optical dipole traps (e.g. for vortex generation), colored menus with helping hints, more complex options to set up automated measurements. 



"VisionFeLiKx" is the latest version of the image acquisition, data treatment and management program that I wrote for the ENS Lithium project, the Raizen BEC experiments and now the Innsbruck FeLiKx experiment. It is easy to adapt to any camera system and well suited for many atom optics experiments, especially Bose-Einstein condensation experiments. Feel free to download, modify and use the code as you like as long as you notify me and don't sell the program or programs using my code. The working principle of Vision is the following. You should use one computer controlling the experiment and a second computer for image acquisition. The first computer controls the second by TCP/IP (or serial port). Absorption images are taken and stored together with the experimental parameters. The images are treated and adequate fits are performed. The results are stored in a Origin compatible ASCII file and displayed. Measurement series varying one or several parameters can be stored, added and displayed. Click on the above image to see an enlarged version of the Vision window. The code together with some sample data can be downloaded. You need Borland C++ 5.02 to modify the program. There are two ways of interfacing Vision to a camera. Either you add the camera driver directly to VisionFeLiKx or you use a separate Visual C++ program like "AndorServerFeLiKx" which communicates with Vision over TCP/IP. The latter is the recommended way, since it is more robust, more flexible and easier to program. I strongly recommend to run Andorserver or a similar program on a separate computer for each camera. Read the manual to get more information about this program and download the demonstration data to test it. Vision was completely overhauled for the FeLiKx experiment. New features include: simplified adaptation to an arbitrary amount of different cameras which can take pictures at the same time and extremely stable operation. (As was always the case for the control program, Vision also nearly never stalls now. Our experiment can run for many hours taking data without human supervision.)

"SortAsciiFile" is a small Visual C++ program helping to manage series of Vision data.

"Apogee server" is a small Visual C++ program that talks to Vision2 over TCP/IP and allows Vision2 to utilise cameras for which only a Visual C++ driver is available, not a Borland C++ driver. This implementation is made for the Apogee Alta series, but it can be easiely modified for any other camera system. Read the manual to get more information about this program.

If you intend to use our software, please contact me by email (schreckatnintakadotcom) so that I can put the very latest versions of Vision and Control on this webpage.

Software manuals, source codes and demonstration data:


Last modified: November 13, 2006

Authors: Todd Meyrath, Florian Schreck

Atom Optics Laboratory
Center for Nonlinear Dynamics
and Department of Physics
University of Texas at Austin