Links
Documentation and Support
Download Lab::Measurement
News blog
Lab::Measurement 3.900 released - also dropping support for legacy scripts (posted 30 October 2023)
Following a lot of smaller and larger improvements and additions, we have finally released Lab::Measurement 3.900 on CPAN. Highlights compared to the last "round version" include support for the Nanonis Tramea quantum transport measurement, the Zurich Instruments HDAWG arbitrary waveform generator, the Synktek MCL1-540 lock-in amplifier, the Bluefors dilution refrigerator temperature control, the American Magnetics AMI430 magnet power supply, as well as many improvements for Lakeshore temperature controllers.
In addition, version 3.900 now finally drops the unmaintained legacy code layers (Lab::Bus, Lab::Connection, Lab::Instrument, Lab::XPRESS) and focuses on the Moose-based Modern Perl interface alone. This should make maintenance easier in the future. Anyone who still needs the old interfaces for measurement scripts should install the distribution Lab::Measurement::Legacy, where the deprecated modules are archived.
Comp. Phys. Comm. published: "Lab::Measurement - a portable and extensible framework for controlling lab equipment and conducting measurements" (posted 18 October 2018)
We're happy to announce that our article
"Lab::Measurement — a portable and extensible framework for controlling lab equipment and conducting measurements", describing our measurement software package
Lab::Measurement, has been published in
Computer Physics Communications.
Lab::Measurement is a collection of object-oriented Perl 5 modules for controlling lab instruments, performing measurements, and recording and plotting the resultant data. Its operating system independent driver stack makes it possible to use nearly identical measurement scripts both on Linux and Windows. Foreground operation with live plotting and background operation for, e.g., process control are supported. For more details, please
read our article, visit the
Lab::Measurement homepage, or visit
Lab::Measurement on CPAN!
"Lab::Measurement - a portable and extensible framework for controlling lab equipment and conducting measurements"
S. Reinhardt, C. Butschkow, S. Geissler, A. Dirnaichner, F. Olbrich, C. Lane, D. Schröer, and A. K. Hüttel
Comp. Phys. Comm. 234, 216 (2019); arXiv:1804.03321
(
PDF)
Manuscript on Lab::Measurement submitted for publication (posted 11 April 2018)
Today's news is that we have submitted a manuscript for publication, describing
Lab::Measurement and with it our approach towards fast, flexible, and platform-independent measuring with Perl! The manuscript mainly focuses on the new, Moose-based class hierarchy. We have uploaded it to arXiv as well; here is the (for now) full bibliographic information of the preprint:
"Lab::Measurement - a portable and extensible framework for controlling lab equipment and conducting measurements"
S. Reinhardt, C. Butschkow, S. Geissler, A. Dirnaichner, F. Olbrich, C. Lane, D. Schröer, and A. K. Hüttel
submitted for publication; arXiv:1804.03321
(PDF, BibTeX entry)
If you're using
Lab::Measurement in your lab, and this results in some nice publication, then we'd be very grateful for a citation of our work - for now the preprint, and later hopefully the accepted version.
DPG 2018, the proof: Yes we've been in Berlin! (posted 18 March 2018)
The
2018 spring meeting of the DPG condensed matter physics section in Berlin is over, and we've all listened to interesting talks and seen exciting physics. And we've also
presented the
Lab::Measurement poster! Here's the
photo proof of Simon explaining our software... click on the image or the link for a larger version!
FOSDEM 2018 talk: Perl in the Physics Lab (posted 8 January 2018)
FOSDEM 2018, the "Free and Open Source Developers' European Meeting", takes place 3-4 February at Universite Libre de Bruxelles, Campus Solbosch, Brussels - and our measurement control software
Lab::Measurement will be presented there in the Perl devrooom! As all of FOSDEM, the talk will also be streamed live and archived; more details on this follow later. Here's the abstract:
Perl in the Physics Lab
Andreas K. Hüttel
Track: Perl Programming Languages devroom
Room: K.4.601
Day: Sunday
Start: 11:00
End: 11:40
Let's visit our university lab. We work on low-temperature nanophysics and transport spectroscopy, typically measuring current through experimental chip structures. That involves cooling and temperature control, dc voltage sources, multimeters, high-frequency sources, superconducting magnets, and a lot more fun equipment. A desktop computer controls the experiment and records and evaluates data.
Some people (like me) want to use Linux, some want to use Windows. Not everyone knows Perl, not everyone has equal programming skills, not everyone knows equally much about the measurement hardware. I'm going to present our solution for this, Lab::Measurement. We implement a layer structure of Perl modules, all the way from the hardware access and the implementation of device-specific command sets to high level measurement control with live plotting and metadata tracking. Current work focuses on a port of the entire stack to Moose, to simplify and improve the code.
Lab::Measurement 3.550 released - port to Dist::Zilla (posted 26 June 2017)
With the release of Lab::Measurement 3.550 we've switched to
Dist::Zilla as maintenance tool. If you're not involved in hacking Lab::Measurement, you should essentially not notice this change. However, for the authors of the package, Dist::Zilla makes it much easier to keep track of dependencies, prepare new releases, and eventually also improve and unify the documentation... At the side we've also fixed
Issue 4 and Lab::Measurement should now work out of the box with recent Gnuplot on Windows again.
Lab::Measurement 3.544 released - support for Zurich Instruments devices (posted 12 June 2017)
I've just uploaded Lab::Measurement 3.544 to
CPAN. This is our first release containing support for
Zurich Instruments equipment, in particular the
ZI MFLI digital lock-in amplifier, via Simon's
Lab::Zhinst package. Enjoy!
Lab::Measurement at the DPG Spring Meeting Dresden 2017 (posted 14 March 2017)
As nearly every year we'll present a poster on
Lab::Measurement at the spring meeting of the German Physical Society again. This time the conference is in Dresden - so
visit us on upcoming 23 March 2017, 15:00-19:00, poster session TT75, poster TT75.7!
Lab::Measurement 3.512 released (posted 8 July 2016)
Immediately at the heels of the previous post, I've just uploaded Lab::Measurement 3.512. It fixes some problems in the Yokogawa GS200 driver introduced in the previous version. Enjoy!
Lab::Measurement 3.511 and Lab::VISA 3.04 released (posted 5 July 2016)
It's been some time since the last Lab::Measurement blog post; we are at
Lab::Measurement version 3.511 by now. Here are the most important changes since 3.31:
- One big addition "under the hood", which is still in flux, was a generic input/output framework for status and error messages.
- The device cache code has seen updates and bugfixes.
- Agilent multimeter drivers have been cleaned up and rewritten.
- Minimal support has been added for the Agilent E8362A network analyzer.
- The Oxford Instruments IPS driver has been sprinkled with consistency checks and debug output, the ITC driver has seen bugfixes.
- Controlling an Oxford Instruments Triton system is work in progress.
- The Stanford Research SR830 lock-in now supports using the auxiliary inputs as "multimeters" and the auxiliary outputs as voltage sources.
- Support for the Keithley 2400 multimeter, the Lakeshore 224 temperature monitor, and the Rohde&Schwarz SMB100A rf-source has been added.
- Work on generic SCPI parsing utilities has started.
- Sweeps can now also vary pulse length and pulse repetition rate; the "time sweep" has been enhanced.
- Test routines (both with instruments attached and software-only) are work in progress.
Lab::VISA has also seen a new bugfix release, 3.04. Changes since version 3.01 are:
- Support for VXI_SERVANT ressources has been removed; these are NI-specific and not available in 64bit VISA.
- The documentation, especially on compiling and installing on recent Windows installations, has been improved. No need for Visual Studio and similar giga-downloads anymore!
- Compiling on both 32bit and 64bit Windows 10 should now work without manual modifications in the Makefile.pl.
Enjoy!
Lab::Measurement moves to Github (posted 20 February 2014)
We've decided to migrate the primary Git repository of our code from Gitorious to Github. The new project page of Lab::Measurement is
https://github.com/lab-measurement/lab-measurement
and you can anonymously clone the code e.g. from the following URL:
https://github.com/lab-measurement/lab-measurement.git
This means we'll also be able to use the Github
issue tracker in the future. The copy on Gitorious will eventually be removed.
Lab::Measurement 3.31 released (posted 27 January 2014)
Since we came up with a few good ideas at the last moment, we're skipping the announcement of Lab::Measurement 3.30 and hereby directly announce a new and shiny
Lab::Measurement 3.31!
So why a version number increase again? First of all, the structure of the XPRESS package has changed once more a bit, and with it the way your measurement scripts should look like. The "hub" package is gone, and the whole XPRESS functionality is now made available by a simple
use Lab::Measurement;
statement at the start of your file. The example scripts (also
on the website) have been adapted accordingly.
In addition, we have implemented a generic support for so-called multichannel instruments, as for example multimeters with several input channels. This is a more generic solution compared to earlier multichannel sources, and also ties in with the device cache mechanisms. So far, the drivers for the Oxford Instruments ITC temperature control system and the
Agilent 34420A nanovoltmeter are multichannel-aware.
Next, now at the start of any measurement the entire device configuration as far as accessible by the driver is saved into a file for your later perusal. Should you ever try to decipher mystery data months later...
Finally, a driver for the
Andeen-Hagerling AH 2700A capacitance measurement bridge has been added, and of course also quite some bugfixes. Enjoy!
Lab::Measurement 3.20 released - including Lab::XPRESS (posted 19 October 2013)
We have uploaded
Lab::Measurement 3.20 to CPAN today. This release includes significant new features, in particular in the high-level measurement code and in the instrument readout logic.
The central new feature is Lab::XPRESS. This set of Perl modules builds upon the Instrument layer and provides a replacement and alternative to the Lab::Measurement class and its metadata handling. As detailed in several examples (
1,
2,
3), nested loops of parameters, as e.g. gate voltages, combined with arbitrary measurements at each point can now be implemented in a highly flexible but simple way: you describe the logical structure of the measurement, without having to program the loops yourself. This means the actual measurement scripts become simpler and shorter, while remaining highly configurable. The underlying code can automatically take care of many details such as waiting times, timing of measurements, and pause or well-defined abort of the script on key events.
At the Instrument level, foundations have been laid for a centralized caching of instrument parameters. While this defaults off, it can be enabled in an instrument driver. The functionality is useful e.g. if reading out a parameter from the device that does not change on its own, unless explicitly set by a script, is a slow command. This also includes a generic support for asynchronous readout, i.e. first requesting a measurement value and thereby starting a read-out, then later in a separate command reading the result.
In addition, several instrument drivers have been added in varying states of completion, as e.g. the
Cryogenic SMS magnet power supply, the Knick S252 voltage source, the
Anritsu MG369xB signal generator, and the
Keithley 2000 multimeter.
Finally, the TCPraw connection has been deprecated in favour of a new generic Socket implementation which provides a larger feature set. While TCPraw is still available, it internally only calls Socket and will be removed in a future version.
The release package is available from CPAN. Documentation as well as a web view of the Git code repository and a bug tracker are available from the package homepage
https://www.labmeasurement.de/.
Lab::Measurement 3.11 released (posted 12 May 2013)
Lab::Measurement 3.11 has been uploaded to CPAN. This is a minor maintenance release, with small bug fixes in the voltage source handling (gate protect and sweep functionality) and the Yokogawa drivers (output voltage range settings).
Lab::Measurement 3.10 (posted 5 August 2012)
Since we've got several interesting measurements running in the
lab at the moment, our scripts are receiving a lot of attention. Which means we can already release a new feature (and bugfix) version,
Lab::Measurement 3.10. Packages are
on CPAN (and in Gentoo portage); you'll find the major changes listed below. Cheers!
Lab::Bus and Lab::Connection classes
- Initial support for the USBtmc Linux kernel driver
- GPIB (i.e. IEEE-488) termination characters are now handled identically in LinuxGPIB and VISA_GPIB
- New VISA_RS232 connection which takes all arguments as RS232
Lab::Instrument classes
- HP34420A nanovoltmeter re-added
- Many improvements in the Oxford Instruments ITC503 driver
- Re-named the Oxford Instruments IPS12010 driver to OI_IPS
- New driver: Trinamic PD-110-42 stepper motor
- New driver: Agilent U2000 rf power sensor
Lab::Measurement classes
- Started refactoring the keyboard handling code
Lab::Measurement 3.00 released (posted 12 July 2012)
I'm happy to be able to announce a
first real release of the
Lab::Measurement Perl package, providing a platform for measurement control with Perl.
Lab::Measurement is based on the packages Lab::VISA, Lab::Instrument, and Lab::Tools started by Daniel Schröer in 2005. Many people have contributed in the meantime, amongst others in roughly historical order Daniela Taubert, David Kalok, Florian Olbrich, and Alois Dirnaichner. The efforts of the last year have focussed on a general modularization, originally driven by a certain frustration with National Instruments NI-VISA support on Linux. Now, the hardware driver backend can be exchanged transparently, making measurements both with
NI-VISA and with e.g.
LinuxGPIB or the operating system serial port drivers on Linux and Windows possible.
Since VISA does not form a central part or even requirement anymore, the original use of Lab::VISA as name for the entire package became impractical, and we've decided to switch to Lab::Measurement instead. As version numbers of all components should still increase monotonously, our first release of the code rewrite then actually ended up as Lab::Measurement 3.00.
For downloads and documentation, including installation instructions for Linux and Windows and examples, visit the homepage of the package,
http://www.labmeasurement.de/. Of course, if you're using Gentoo, the package is readily available in the main portage tree as
dev-perl/Lab-Measurement.
Not all device drivers have been ported to the new internal architecture so far, but work is progressing swiftly. In the Regensburg
nanophysics groups, we're using the new code already all the time in measurements at three different cryogenic setups. More drivers, bugfixes, and improvements are present in
Git master. If you're willing to hack, I can only recommend that you give it a try. Contributors are always welcome; feel free to clone our
git repository on Gitorious.