LabRAD
From Wikipedia, the free encyclopedia
LabRAD | |
---|---|
Developed by | Markus Ansmann and Matthew Neeley (UCSB) |
Latest release | v1.0.5 / May 17th, 2008 |
OS | Cross-platform |
Genre | SCADA |
License | GNU General Public License |
Website | LabRAD SourceForge Project Wiki |
LabRAD (RAD = Rapid Application Development) is an open source data acquisition and instrument control platform targeted at (university) research laboratories. It provides a framework to modularize the software required to control experiments. The modules can be distributed on different computers linked with a standard network connection, immediately allowing for remote access and management. LabRAD is available for download under the GNU General Public License from SourceForge.net.
[edit] Motivation
LabRAD was developed in response to an increasingly complex software effort needed to run experiments in the Martinis Group at UC Santa Barbara. The group's effort is focused on building a Quantum Computer using superconducting integrated circuits. The experiment will eventually include a large number of Qubits, each requiring dedicated control mechanisms. To prevent frequent duplication of effort, a scalable software architecture was needed to provide the required control. This architecture needed to accommodate multiple users and developers, since many different graduate students and post docs are sharing the software and hardware resources required to run their respective experiments. LabRAD was specifically designed to alleviate the problems inherent in designing a complex, scalable control system managed by several developers and users. As science advances, novel experiments in all fields are becoming increasingly involved, making LabRAD a generally useful tool beyond the developing group.
[edit] Approach
LabRAD provides a platform to efficiently separate code into reusable modules. The modules communicate with each other over the network making the system inherently distributed. This strong separation allows each module to be independently maintained by a different developer. A well-specified interface allows other developers to easily use the available modules in their projects. The interface was designed to enable the addition of features to individual modules while maintaining backward compatibility. Developers can update modules to fit new functional requirements without compromising existing projects.