Unofficial LabVIEW driver for BioLogic potentiostats/galvanostats, designed for easy integration into LV projects. I must stress that this is specifically meant for integration, so it's not a complete LabVIEW out-of-the-box solution. This means you'll need the EC-Lab OEM Development Package along with a good understanding of the accompanying documentation to get started.
That said, getting up and running is pretty straightforward. The driver follows this pattern:
Connect ➡ Set Channel ➡ Load Technique ➡ Start ➡ Acquire Data ➡ Process Data ➡ Stop ➡ Disconnect
Connect.vi handles the initialisation and connects to the instrument.
Loading a technique is also quite simple. Just set the channel you want to work on using Set Channel.vi, connect the type-def associated with the technique you want to the Technique Parameters terminal of Load Technique.vi and select your technique from the enum. The Load Technique.vi will check if you've connected a valid and supported technique, then format the parameters accordingly if the check passes. If your device fails the check, an error will be generated and propagated through the error wire.
Start Channel.vi begins acquisition on the specified channel.
The Acquire Buffered Data.vi will return the channel data with minimal processing. This data can be hard to read unless you refer to the documentation located in the EC-Lab OEM Development Package. The output is a cluster containing the meta-data for the data (Data Information), Current Values, and Process Data. This is where you can implement your custom processing solution. There's also a built-in processing solution in the form of a VI called Process Data.vi. This VI not only outputs the column header text but also does additional maths, like producing extra columns for -Im(Z) and Re(Z) used for Nyquist plots in the PEIS technique.
Stop Channel.vi stops acquisition on the specified channel.
Disconnet.vi cleans up and disconnects the instrument.
NOTE: Not all devices and techniques are supported.
- LabVIEW 2018 (32-bit) or above
- EC-Lab OEM Development Package
NOTE: 64-bit LabVIEW is not supported. See Issue #1 for further details
- OCV - Open Circuit Voltage
- CV - Cyclic Voltammetry
- CA - Chronoamperometry
- CP - Chronopotentiometry
- PEIS - Potentio Electrochemical Impedance Spectroscopy
- GEIS - Galvano Electrochemical Impedance Spectroscopy
- VMP3 series - theoretically should be supported
- SP-300 series - not supported, a little extra work is needed to add support for these. I don't have access to this hardware. The Connect.vi VI will detect these and produce an error.
Feel free to contribute to the project. For unsupported Techniques/Devices, I'm happy to try and add them upon request. However, I'll do this in my spare time and won't adhere to any deadlines, nor will I accept any form of payment. This is just a hobby 😊.
I am also happy to answer any questions regarding the software architecture of this driver to the best of my knowledge.
Single Channel Acquisition.vi:
Multi-Channel Acquisition.vi:
Acquiring data from more than one channel takes advantage of LabVIEW's data flow model and OOP. Each branch is a copy of the object at that point. For more information on OOP and Dataflow, see NI's documentation titled LabVIEW Object-Oriented Programming: The Decisions Behind the Design.
You can wrap the duplicate code in the block diagram above in a reentrant SubVI and launch it asynchronously. This will achieve the same results.
In the future, I plan to create an abstraction layer for multi-channel acquisition. I've got a few ideas I'm mulling over.
Application (WIP).vi:
This is the front panel of an example VI that I’ll be building over time to serve as a proper showcase of how to utilise the drivers. As long as the (WIP) flag is shown in the VI's name, the VI is incomplete. There's no date I can provide for when it will be finished.
As always, feel free to contribute.