A Laboratory Control System for Cold Atom Experiments



We have developed a powerful yet inexpensive and easy to construct experiment control system. All circuit designs and the 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 at the E.N.S. in Paris.

Hardware overview

The system is based on a parallel bus which distributes data from a central computer to analog, digital and radiofrequency output boards. The bus runs at a speed of 2MHz and can address up to 4096 16-bit devices (e.g. a single 16-bit analog output, 16 digital outputs, or a direct digital synthesizer (DDS)). In our design, an analog output board contains eight 16 bit DACs (Digital Analog Converter) and driver electronics to drive 1/4 Ampere per channel. The even simpler digital boards provide 16 buffered digital outputs which can drive 50 Ohm loads. The DDS board can generate radiofrequency signals up to 135MHz with 12bit amplitude control. The system was designed with atom optics experiments in mind, but is very general and can be used for any kind of control of electronic devices. The bus system is bidirectional and in the future other devices like digital and analog inputs, microcontrollers, stepper motor drivers and so forth could be interfaced to the computer through it. The bus system can be linked to the computer via a National Instruments NI6534 32bit digital output card. Our control system compares very favorably with commercial solutions, e.g. from National Instruments. Our analog outputs have a comparable quality at a fraction of the cost. They come with line drivers, which still would have to be constructed for the NI cards, which is nearly as much work as building our system. The digital outputs are even cheaper. With our bus system it is possible to place output cards right at the location where the output signal is needed, reducing the length of cabling required and preserving signal quality. One drawback is that at each clock cycle only one analog output or 16 digital outputs can be updated. When performing waveforms on several outputs, the update period is multiplied by the number of waveforms. For many applications this plays no role since the bus speed is with 2MHz relatively high. It has not been a limitation in the many BEC experiments the authors have worked on. Higher speed devices could be added as long as they have local memory and their own (faster) clock, something that is typically done with preloaded arbitrary function generators for instance.

Software overview

The software part of the control system is more specific to BEC experiments. It is divided in two parts: the control program running on the computer to which the output hardware is connected to and the data acquisition program running on the computer to which a camera is hooked up which records the outcome of an experimental run. The two programs communicate via TCP/IP. The programs are written in Visual C++ / Borland C++ and the source code is free for download and use. The control software is not only able to drive our homebuild electronics, but also works together with National Instruments digital and analog output cards (NI6533, NI6534, NI67x3, and NI6024E), or a mixture of both.


Here, we show an overview of the hardware. Signals are transmitted through an National Instruments NI6534 card over a parallel bus to our 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. 

Here we show some photos of our analog, digital and DDS output boards.

Hardware Manuals and layouts

  • Bus buffer, strobe generator and NI6533 adapter board (schematics & layout, Gerber files).
  • Bus System Manual and layout (pdf): Description of the hardware of the parallel bus system. Contains schematic and layout for strobe pulse generator board.
  • Analog Output Design Manual (pdf), Layout (Schematics Layout V2) (pcb123 file V1): 16-bit Digital-to-Analog (DAC) converter design to be used with the parallel bus system. Eight analog channels per board, each has a 1/4 Amp line driver and -10 to +10 Volt range.
  • Digital Output Design Manual (pdf), Layout (Schematics, Layout V3) (pcb123 file, V1): 16 buffered line driver digital outputs per board.
  • RF Synthesizer Manual (new Version 2.x) (pdf), Layout (pcb123 file, gerber files, partlist): Direct Digital Sythethesizer (DDS) for radio frequency (RF) from DC to 135MHz. One RF output, one `control' DAC. Based on AD9852 complete DDS IC, compatible with bus system, rack mountable (V2.1). Box drawing in emachineshop format (V2.0): (center), (lid), (bracket).
  • Bus system testboard (pdf): provides a system bus which can be manually controlled using switches. Very useful for debugging.
  • Cheap 8 channel analog input board (pdf): a cheap board providing eight analog inputs. Useful for testing the analog output boards.
  • Serial port multiplexer(pdf): multiplexes one RS232 serial port on eight RS232 ports. Using this multiplexer one can connect up to eight serial port devices to one PC serial port. Three digital lines select which serial port is used. Another method to access several serial port devices is to use USB to serial port converters.
  • RF amplifier PCB (Schematics, Layout V2 (pdf)) (Protel&Gerber (zip) V1 schematics (pdf)): a rack mountable RF amplifier (2 Watt at 100MHz, 0.5W at 1GHz) with externaly or internaly controlled 50dB attenuator and filtered power supply section. Ideal as power stage after a DDS to drive acousto-optic modulators. Designed with Protel. Partlist, source and gerber files provided.
  • RF amplifier housing (zip): ProEngineer drawings of housing parts.
A converter from ethernet to our bus system has been developped in the laboratory of Dan Steck at the University of Oregon. This system is also decribed in Review of Scientific Instruments.

Layout Software: pcb123 Free software from the board maker, the above layouts have to be used with PCB123 Version -- there are newer versions now, which are not compatible with our files. To place orders with PCB123, you just download the layout software (Version, load the layout file and place the order from the software through the internet. Using the gerber files and parts lists you can get our board with components placed from any PCB company.


The experiment control system for download here is controlling the strontium quantum gas experiments in our grou. 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. Here we show 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, manual operation menu, initialization parameter menu, sequence parameter menu, utility menu, measurement menu overview, measurement menu (form to create new measurement), measurement queue (interactively created), configuration menu, file menu.

"VisionSrBEC" 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 the Innsbruck Lithium/Potassium and the Amsterdam Strontium experiments. It is easy to adapt to any camera system and well suited for many atom optics experiments, especially Bose-Einstein condensation experiments. Vision communicates over TCP/IP with the control software and with camera programs. Vision treats the acquired images, performs simple fits and stores images and fitresults on harddisk. For each image all parameters of the experimental sequence leading to the image are stored as well. You need Borland C++ 5.02 to modify Vision. To interface Vision with a camera, use a separate Visual C++ program like "AndorServerLucaSrBEC" which communicates with Vision over TCP/IP. Read the manual to get more information about this program and download the demonstration data to test it.

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

"AndorLucaServer" is a small Visual C++ program that talks to Vision over TCP/IP and allows Vision to utilise cameras. This implementation is made for the Andor Luca 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 (schreckATstrontiumBEC.com) so that I can put the very latest versions of Vision and Control on this webpage.

Software manuals, source codes and demonstration data:

NI DAQmx versions for Win 7 or higher. Tested with NI6534 digital output card. Can easily be adapted to any National Instruments 32-bit digital output card that supports buffered output and 2MHz output speed under Win 7. Does not support NI6532, NI6533, NI67x3, and NI6024E cards. Parallel port digital input can now be replaced by the slow digital input lines of NI cards. These inputs are e.g. used for the comparator analog in card, see hardware section above. To upgrade a traditional NI DAQ version of the Control software to NI DAQmx, please ask me by email (schreckATStrontiumBEC.com) to place the latest version of the software onto this website, then download the software and follow the simple instructions in "ReadmeForUpdateToNIDAQmx.rtf" included in these distributions.

  • SrBEC experiment version of the control program (with additional lasershow demo using crossed AOM setup). This is the best version to start with for Win 7 or higher. If you want to transition from a NI DAQ version of the control program to NI DAQmx, then start with this version, overwrite the files sequence.cpp/.h, iolist.cpp/.h, param.cpp/.h, utilities.cpp/.h with your versions, and make sure the string table contains all IDM_ identifiers you have created (you can edit resource.rh/.h, making sure no number is used twice). If you run into trouble with the merged version then ask me by email. (Control_Demo.zip (17/03/2015, 9MB, Win 7, Visual C++ 2010 Ultimate or Professional, NI DAQmx)).

Traditional NI DAQ versions for Windows XP:


Last modified: 13.03.2015, FS

Authors: Todd Meyrath, Florian Schreck

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

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.