biologic: Driver for BioLogic potentiostats
This driver is a wrapper around BioLogic’s kbio package.
Note
This driver is Windows-only.
Driver Configuration
The biologic driver requires the following settings in the
Settings file:
[drivers.biologic.dllpath]pointing to the folder of the EC-Lib Development library;[drivers.biologic.lockfile]pointing to a file to be used as a lock file for the DLL.
Supported method parameters:
General parameters
Parameter |
Type |
Meaning |
|---|---|---|
|
|
see below |
|
|
total runtime of the method, in |
|
|
maximum current available to the method |
|
|
voltage range used by the method |
|
|
delay between datapoints, in |
|
|
is the setpoint a delta ( |
Technique limits
Parameter |
Type |
Meaning |
|---|---|---|
|
|
maximum allowed current, can be a C-rate |
|
|
minimum allowed current, can be a C-rate |
|
|
maximum allowed voltage |
|
|
minimum allowed voltage |
|
|
abort when limit reached ( |
Controlled current and voltage techniques
Parameter |
Type |
Meaning |
|---|---|---|
|
|
current setpoint, can be a C-rate, in |
|
|
maximum spacing between datapoints, in |
|
|
voltage setpoint, in |
|
|
maximum spacing between datapoints, in |
|
|
sweep rate of setpoint, in |
Loop parameters
Parameter |
Type |
Meaning |
|---|---|---|
|
|
number of jumps - |
|
|
zero-indexed index of the method to jump to |
Supported techniques:
open_circuit_voltage: Measure the OCV of the cell. Supports the following parameters:timerecord_every_dtandrecord_every_dEI_rangeandE_range
constant_current: Run a cell in CC mode - chronopotentiometry. Supports the following parameters:timecurrentandis_deltarecord_every_dtandrecord_every_dEall of the Technique limits.
constant_voltage: Run a cell in CV mode - chronoamperometry. Supports the following parameters:timevoltageandis_deltarecord_every_dtandrecord_every_dIall of the Technique limits.
sweep_current: Run a cell in LSC mode - linear sweep of current. Supports the following parameters:timecurrent,scan_rateandis_deltarecord_every_dtandrecord_every_dEall of the Technique limits.
sweep_voltage: Run a cell in LSV mode - linear sweep of voltage. Supports the following parameters:timevoltage,scan_rateandis_deltarecord_every_dtandrecord_every_dIall of the Technique limits.
loop: Arbitrary loop of techniques. Supports the following parameters:n_gotosandgoto
Code author: Peter Kraus
Subpackages
Submodules
- tomato.drivers.biologic.kbio_wrapper.get_test_magic(variable, sign, logic='or', active=True)
- Return type
int
- tomato.drivers.biologic.kbio_wrapper.get_num_steps(tech)
- Return type
int
- tomato.drivers.biologic.kbio_wrapper.pad_steps(param, ns)
- Return type
list
- tomato.drivers.biologic.kbio_wrapper.current(val, capacity)
- Return type
Union[list[float],float]
- tomato.drivers.biologic.kbio_wrapper.vlimit(cond, vals, Is=None)
- Return type
list[float]
- tomato.drivers.biologic.kbio_wrapper.translate(technique, capacity)
- Return type
dict
- tomato.drivers.biologic.kbio_wrapper.payload_to_ecc(api, payload, capacity)
- Return type
list[dict]
- tomato.drivers.biologic.kbio_wrapper.parse_raw_data(api, data, devname)
- tomato.drivers.biologic.kbio_wrapper.get_kbio_api(dllpath)
- tomato.drivers.biologic.kbio_wrapper.get_kbio_techpath(dllpath, techname, devname)
- Return type
str
- tomato.drivers.biologic.main.get_status(address, channel, jobqueue, logger, dllpath=None, lockpath=None, **kwargs)
Get the current status of the device.
- Parameters
address (
str) – IP address of the potentiostat.channel (
int) – Numeric, 1-indexed ID of the channel.dllpath (
Optional[str]) – Path to the BioLogic DLL file.
- Returns
timestamp, ready, metadata – Returns a tuple containing the timestamp, readiness status, and associated metadata.
- Return type
tuple[float, bool, dict]
- tomato.drivers.biologic.main.get_data(address, channel, jobqueue, logger, dllpath=None, lockpath=None, **kwargs)
Get cached data from the device.
- Parameters
address (
str) – IP address of the potentiostat.channel (
int) – Numeric, 1-indexed ID of the channel.dllpath (
Optional[str]) – Path to the BioLogic DLL file.
- Returns
timestamp, nrows, data – Returns a tuple containing the timestamp and associated metadata.
- Return type
tuple[float, int, dict]
- tomato.drivers.biologic.main.start_job(address, channel, jobqueue, logger, payload, dllpath=None, lockpath=None, capacity=0.0, **kwargs)
Start a job on the device.
The function first translates the
payloadinto an instrument-specific language, using thecapacityprovided if necessary. The convertedpayloadis then submitted to the device, overwriting any current job information.- Parameters
address (
str) – IP address of the potentiostat.channel (
int) – Numeric, 1-indexed ID of the channel.dllpath (
Optional[str]) – Path to the BioLogic DLL file.payload (
list[dict]) – A protocol describing the techniques to be executed and their order.capacity (
float) – The capacity information for the studied battery cell. Only required for battery-testing applications or for payloads where currents are specified using C or D rates.
- Returns
A timestamp corresponding to the start of the job execution.
- Return type
timestamp
- tomato.drivers.biologic.main.stop_job(address, channel, jobqueue, logger, dllpath=None, lockpath=None, **kwargs)
Stop a job running on the device.
This function stops any currently running technique on the specified channel of the device. No data is returned.
- Parameters
address (
str) – IP address of the potentiostat.channel (
int) – Numeric, 1-indexed ID of the channel.dllpath (
Optional[str]) – Path to the BioLogic DLL file.
- Returns
A timestamp corresponding to the start of the job execution.
- Return type
timestamp