fisothemes / Unofficial-LabVIEW-Driver-for-EC-Lab-BioLogic-Potentiostats

LabVIEW Driver for EC-Lab BioLogic Potentiostats

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unofficial LabVIEW Driver for EC-Lab BioLogic Potentiostats

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.

Minimum Requirements

NOTE: 64-bit LabVIEW is not supported. See Issue #1 for further details

Supported Techniques

  • OCV - Open Circuit Voltage
  • CV - Cyclic Voltammetry
  • CA - Chronoamperometry
  • CP - Chronopotentiometry
  • PEIS - Potentio Electrochemical Impedance Spectroscopy
  • GEIS - Galvano Electrochemical Impedance Spectroscopy

Supported Devices

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

Developer Notes

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.

Showcase

Showcase

Example 1 - Single Channel Acquisition

Single Channel Acquisition.vi:

Block Diagram Front Panel

Example 2 - Multi-Channel Aquisition

Multi-Channel Acquisition.vi:

Block Diagram

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.

Example 3 - Application (WIP)

Application (WIP).vi:

Block Diagram

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.


About

LabVIEW Driver for EC-Lab BioLogic Potentiostats

License:MIT License


Languages

Language:LabVIEW 100.0%