Documentation and Support

Download Lab::Measurement

Lab::Measurement 3.550 released - port to Dist::Zilla   (posted 2017-06-26)

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 2017-06-12)

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 2017-03-14)

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 2016-07-08)

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 2016-07-05)

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:

 Lab::VISA has also seen a new bugfix release, 3.04. Changes since version 3.01 are:

Lab::Measurement moves to Github   (posted 2014-02-20)

We've decided to migrate the primary Git repository of our code from Gitorious to Github. The new project page of Lab::Measurement is
and you can anonymously clone the code e.g. from the following URL:
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 2014-01-27)

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 2013-10-19)

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

Lab::Measurement 3.11 released   (posted 2013-05-12)

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 2012-08-05)

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

Lab::Instrument classes

Lab::Measurement classes

Lab::Measurement 3.00 released   (posted 2012-07-12)

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, 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.