Lab::Measurement 3.620 was released yesterday. The most important addition as a new high-level sweep framework written with Moose. Check out the new tutorial Lab::Moose::Sweep::Tutorial! Comparing with the older Lab::XPRESS framework, the main new feature is support for block data. This is needed when working with instruments like spectrum analyzers which return an array of data in each measurement....
The Lab::Measurement module stack will be featured with a poster at Europe's largest physics conference this year, the DPG Frühjahrstagung (Spring Meeting) of the Condensed Matter Section, Berlin, march 11. - 16. 2018. So please come by on Monday, March 12, 2018, 15:00?19:00, Poster B, TT 29: Poster Session: Cryogenic Particle Detectors and Cyotechnique. If you cannot wait until march, please consider the Perl in the Physics Lab presentation at FOSDEM by Andreas K. Hüttel, my supervisor, next weekend!...
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
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.
The Lab::Measurement project provides Open Source control of Test & Measurement devices with Perl. This post introduces the new Test & Measurement back end modules Lab::VXI11 and USB::TMC. Both VXI-11 and USBTMC are open standards and are supported by most modern T & M devices. They were developed as alternatives to the legacy GPIB (General Purpose Interface Bus). The main purpose of GPIB is to transfer text messages between the measurement PC and an automated measurement device, such as a...
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.
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!
The Lab::Measurement project provides Open Source control of test & measurement devices with Perl. On our recent poster, which was presented at this year's DPG Spring Meeting of the Condensed Matter Section, we mainly discuss the high-level aspects of Lab::Measurement necessary to perform highly complex measurement tasks with simple scripts. Now, the topic of this post is the CPAN release of Lab::Zhinst, which provides a Perl5 interface to devices from Zurich Instruments, a vendor of fast digital lock-in amplifiers, phase-locked...
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!
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:
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-measurementand you can anonymously clone the code e.g. from the following URL:
https://github.com/lab-measurement/lab-measurement.gitThis means we'll also be able to use the Github issue tracker in the future. The copy on Gitorious will eventually be removed.
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.
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/.