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;
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:time
record_every_dt
andrecord_every_dE
I_range
andE_range
constant_current
: Run a cell in CC mode - chronopotentiometry. Supports the following parameters:time
current
andis_delta
record_every_dt
andrecord_every_dE
all of the Technique limits.
constant_voltage
: Run a cell in CV mode - chronoamperometry. Supports the following parameters:time
voltage
andis_delta
record_every_dt
andrecord_every_dI
all of the Technique limits.
sweep_current
: Run a cell in LSC mode - linear sweep of current. Supports the following parameters:time
current
,scan_rate
andis_delta
record_every_dt
andrecord_every_dE
all of the Technique limits.
sweep_voltage
: Run a cell in LSV mode - linear sweep of voltage. Supports the following parameters:time
voltage
,scan_rate
andis_delta
record_every_dt
andrecord_every_dI
all of the Technique limits.
loop
: Arbitrary loop of techniques. Supports the following parameters:n_gotos
andgoto
Code author: Peter Kraus Graham Kimbell
Subpackages
- tomato.drivers.biologic.kbio package
- Submodules
c_dump()
c_buffer
POD
KBIO_api
KBIO_api.GetLibVersion()
KBIO_api.Connect()
KBIO_api.USB_DeviceInfo()
KBIO_api.TestConnection()
KBIO_api.TestComSpeed()
KBIO_api.Disconnect()
KBIO_api.PluggedChannels()
KBIO_api.channel_map()
KBIO_api.GetChannelInfo()
KBIO_api.LoadFirmware()
KBIO_api.GetHardwareConf()
KBIO_api.SetHardwareConf()
KBIO_api.OptionError()
KBIO_api.GetMessage()
KBIO_api.GetErrorMsg()
KBIO_api.DefineParameter()
KBIO_api.DefineBoolParameter()
KBIO_api.DefineSglParameter()
KBIO_api.DefineIntParameter()
KBIO_api.UpdateParameters()
KBIO_api.GetTechniqueInfos()
KBIO_api.GetParamInfos()
KBIO_api.LoadTechnique()
KBIO_api.StartChannel()
KBIO_api.StopChannel()
KBIO_api.StartChannels()
KBIO_api.StopChannels()
KBIO_api.GetCurrentValues()
KBIO_api.GetData()
KBIO_api.ConvertNumericIntoSingle()
KBIO_api.FindEChemDev()
KBIO_api.FindEChemEthDev()
KBIO_api.FindEChemUsbDev()
KBIO_api.SetEthernetConfig()
KBIO_api.DeviceInfo
KBIO_api.ChannelInfo
KBIO_api.HardwareConf
KBIO_api.BL_Error
KBIO_api.Error
KBIO_api.FindError
KBIO_api.ecl_api
KBIO_api.blfind_api
KBIO_api.bind_function()
ECC_parm
make_ecc_parm()
make_ecc_parms()
print_experiment_data()
ChannelsArray
ResultsArray
DataBuffer
USB_device
Ethernet_device
DEVICE
DEVICE.VMP
DEVICE.VMP2
DEVICE.MPG
DEVICE.BISTAT
DEVICE.MCS_200
DEVICE.VMP3
DEVICE.VSP
DEVICE.HCP803
DEVICE.EPP400
DEVICE.EPP4000
DEVICE.BISTAT2
DEVICE.FCT150S
DEVICE.VMP300
DEVICE.SP50
DEVICE.SP150
DEVICE.FCT50S
DEVICE.SP300
DEVICE.CLB500
DEVICE.HCP1005
DEVICE.CLB2000
DEVICE.VSP300
DEVICE.SP200
DEVICE.MPG2
DEVICE.SP100
DEVICE.MOSLED
DEVICE.KINEXXX
DEVICE.BCS815
DEVICE.SP240
DEVICE.MPG205
DEVICE.MPG210
DEVICE.MPG220
DEVICE.MPG240
DEVICE.BP300
DEVICE.VMP3E
DEVICE.VSP3E
DEVICE.SP50E
DEVICE.SP150E
DEVICE.UNKNOWN
DeviceInfo
DEVICE_INFO
CHANNEL_BOARD
CHANNEL_BOARD.C340_IF0
CHANNEL_BOARD.C340_IF2_Z
CHANNEL_BOARD.C340_OTHERS
CHANNEL_BOARD.C340_IF2_NONZ
CHANNEL_BOARD.C340_IF3_Z
CHANNEL_BOARD.C340_IF3_NONZ
CHANNEL_BOARD.C340_IF3_ZZ
CHANNEL_BOARD.C340_IF3_NZZ
CHANNEL_BOARD.C340_SP50
CHANNEL_BOARD.C340_SP150Z
CHANNEL_BOARD.C340_SP150NZ
CHANNEL_BOARD.C437_Z
CHANNEL_BOARD.C437_NZ
CHANNEL_BOARD.C437_SP150Z
CHANNEL_BOARD.C437_SP150NZ
CHANNEL_BOARD.C437_MPG2
CHANNEL_BOARD.C437_MPG2Z
CHANNEL_BOARD.C437_MPGX
CHANNEL_BOARD.C437_MPGXZ
CHANNEL_BOARD.C437_VMP3EZ
CHANNEL_BOARD.C437_VMP3ENZ
ChannelInfo
ChannelInfo.AmpCode
ChannelInfo.BoardSerialNumber
ChannelInfo.BoardVersion
ChannelInfo.Channel
ChannelInfo.FirmwareCode
ChannelInfo.FirmwareVersion
ChannelInfo.GPRAboard
ChannelInfo.Lcboard
ChannelInfo.MUXboard
ChannelInfo.MaxBandwidth
ChannelInfo.MaxIRange
ChannelInfo.MemFilled
ChannelInfo.MemSize
ChannelInfo.MinIRange
ChannelInfo.NbAmps
ChannelInfo.NbOfTechniques
ChannelInfo.State
ChannelInfo.XilinxVersion
ChannelInfo.Zboard
CH_INFO
HardwareConf
HW_CONF
HW_CNX
HW_MODE
OPTION_ERROR
OPTION_ERROR.NO_ERROR
OPTION_ERROR.OPT_CHANGE
OPTION_ERROR.OPEN_IN
OPTION_ERROR.IRCMP_OVR
OPTION_ERROR.OPT_4A
OPTION_ERROR.OPT_4A_OVRTEMP
OPTION_ERROR.OPT_4A_BADPOW
OPTION_ERROR.OPT_4A_POWFAIL
OPTION_ERROR.OPT_48V
OPTION_ERROR.OPT_48V_OVRTEMP
OPTION_ERROR.OPT_48V_BADPOW
OPTION_ERROR.OPT_48V_POWFAIL
OPTION_ERROR.OPT_10A5V_ERR
OPTION_ERROR.OPT_10A5V_OVRTEMP
OPTION_ERROR.OPT_10A5V_BADPOW
OPTION_ERROR.OPT_10A5V_POWFAIL
FIRMWARE
CurrentValues
CurrentValues.Ece
CurrentValues.EceRangeMax
CurrentValues.EceRangeMin
CurrentValues.ElapsedTime
CurrentValues.Eoverflow
CurrentValues.Ewe
CurrentValues.EweRangeMax
CurrentValues.EweRangeMin
CurrentValues.Freq
CurrentValues.I
CurrentValues.IRange
CurrentValues.Ioverflow
CurrentValues.MemFilled
CurrentValues.OptErr
CurrentValues.OptPos
CurrentValues.Rcomp
CurrentValues.Saturation
CurrentValues.State
CurrentValues.TimeBase
CURRENT_VALUES
DataInfo
DATA_INFO
PARAM_TYPE
EccParam
ECC_PARM
EccParams
ECC_PARMS
ECC_PARM_ARRAY()
TechniqueInfos
TECHNIQUE_INFOS
PROG_STATE
I_RANGE
E_RANGE
BANDWIDTH
GAIN
FILTER
AMPLIFIER
AMPLIFIER.AMPL_NONE
AMPLIFIER.AMPL_2A
AMPLIFIER.AMPL_1A
AMPLIFIER.AMPL_5A
AMPLIFIER.AMPL_10A
AMPLIFIER.AMPL_20A
AMPLIFIER.AMPL_HEUS
AMPLIFIER.AMPL_LC
AMPLIFIER.AMPL_80A
AMPLIFIER.AMPL_4AI
AMPLIFIER.AMPL_PAC
AMPLIFIER.AMPL_4AI_VSP
AMPLIFIER.AMPL_LC_VSP
AMPLIFIER.AMPL_UNDEF
AMPLIFIER.AMPL_MUIC
AMPLIFIER.AMPL_ERROR
AMPLIFIER.AMPL_8AI
AMPLIFIER.AMPL_LB500
AMPLIFIER.AMPL_100A5V
AMPLIFIER.AMPL_LB2000
AMPLIFIER.AMPL_1A48V
AMPLIFIER.AMPL_4A14V
AMPLIFIER.AMPL_5A_MPG2B
AMPLIFIER.AMPL_10A_MPG2B
AMPLIFIER.AMPL_20A_MPG2B
AMPLIFIER.AMPL_40A_MPG2B
AMPLIFIER.AMPL_COIN_CELL_HOLDER
AMPLIFIER.AMPL4_10A5V
AMPLIFIER.AMPL4_2A30V
AMPLIFIER.AMPL4_30A50V
AMPLIFIER.AMPL3_50A60V
AMPLIFIER.AMPL3_200A12V
AMPLIFIER.AMPL3_50A60VII
AMPLIFIER.AMPL4_1A48VPII
AMPLIFIER.AMPL4_1A48VPIII
ERROR
ERROR.NOERROR
ERROR.GEN_NOTCONNECTED
ERROR.GEN_CONNECTIONINPROGRESS
ERROR.GEN_CHANNELNOTPLUGGED
ERROR.GEN_INVALIDPARAMETERS
ERROR.GEN_FILENOTEXISTS
ERROR.GEN_FUNCTIONFAILED
ERROR.GEN_NOCHANNELSELECTED
ERROR.GEN_INVALIDCONF
ERROR.GEN_ECLAB_LOADED
ERROR.GEN_LIBNOTCORRECTLYLOADED
ERROR.GEN_USBLIBRARYERROR
ERROR.GEN_FUNCTIONINPROGRESS
ERROR.GEN_CHANNEL_RUNNING
ERROR.GEN_DEVICE_NOTALLOWED
ERROR.GEN_UPDATEPARAMETERS
ERROR.INSTR_VMEERROR
ERROR.INSTR_TOOMANYDATA
ERROR.INSTR_RESPNOTPOSSIBLE
ERROR.INSTR_RESPERROR
ERROR.INSTR_MSGSIZEERROR
ERROR.COMM_COMMFAILED
ERROR.COMM_CONNECTIONFAILED
ERROR.COMM_WAITINGACK
ERROR.COMM_INVALIDIPADDRESS
ERROR.COMM_ALLOCMEMFAILED
ERROR.COMM_LOADFIRMWAREFAILED
ERROR.COMM_INCOMPATIBLESERVER
ERROR.COMM_MAXCONNREACHED
ERROR.FIRM_FIRMFILENOTEXISTS
ERROR.FIRM_FIRMFILEACCESSFAILED
ERROR.FIRM_FIRMINVALIDFILE
ERROR.FIRM_FIRMLOADINGFAILED
ERROR.FIRM_XILFILENOTEXISTS
ERROR.FIRM_XILFILEACCESSFAILED
ERROR.FIRM_XILINVALIDFILE
ERROR.FIRM_XILLOADINGFAILED
ERROR.FIRM_FIRMWARENOTLOADED
ERROR.FIRM_FIRMWAREINCOMPATIBLE
ERROR.TECH_ECCFILENOTEXISTS
ERROR.TECH_INCOMPATIBLEECC
ERROR.TECH_ECCFILECORRUPTED
ERROR.TECH_LOADTECHNIQUEFAILED
ERROR.TECH_DATACORRUPTED
ERROR.TECH_MEMFULL
ERROR.OPT_CHANGE
ERROR.OPT_OPEN_IN
ERROR.OPT_4A_ERROR
ERROR.OPT_4A_OVERTEMP
ERROR.OPT_4A_BADPOWER
ERROR.OPT_4A_POWERFAIL
ERROR.OPT_48V_ERROR
ERROR.OPT_48V_OVERTEMP
ERROR.OPT_48V_BADPOWER
ERROR.OPT_48V_POWERFAIL
ERROR.OPT_10A5V_ERROR
ERROR.OPT_10A5V_OVERTEMP
ERROR.OPT_10A5V_BADPOWER
ERROR.OPT_10A5V_POWERFAIL
ERROR.OPT_1A48VP_ERROR
ERROR.OPT_1A48VP_OVERTEMP
ERROR.OPT_1A48VP_BADPOWER
ERROR.OPT_1A48VP_POWERFAIL
FIND_ERROR
FIND_ERROR.NO_ERROR
FIND_ERROR.UNKNOWN_ERROR
FIND_ERROR.INVALID_PARAMETER
FIND_ERROR.ACK_TIMEOUT
FIND_ERROR.EXP_RUNNING
FIND_ERROR.CMD_FAILED
FIND_ERROR.FIND_FAILED
FIND_ERROR.SOCKET_WRITE
FIND_ERROR.SOCKET_READ
FIND_ERROR.CFG_MODIFY_FAILED
FIND_ERROR.READ_PARAM_FAILED
FIND_ERROR.EMPTY_PARAM
FIND_ERROR.IP_FORMAT
FIND_ERROR.NM_FORMAT
FIND_ERROR.GW_FORMAT
FIND_ERROR.IP_NOT_FOUND
FIND_ERROR.IP_ALREADYEXIST
TECH_ID
TECH_ID.NONE
TECH_ID.OCV
TECH_ID.CA
TECH_ID.CP
TECH_ID.CV
TECH_ID.PEIS
TECH_ID.POTPULSE
TECH_ID.GALPULSE
TECH_ID.GEIS
TECH_ID.STACKPEIS_SLAVE
TECH_ID.STACKPEIS
TECH_ID.CPOWER
TECH_ID.CLOAD
TECH_ID.FCT
TECH_ID.SPEIS
TECH_ID.SGEIS
TECH_ID.STACKPDYN
TECH_ID.STACKPDYN_SLAVE
TECH_ID.STACKGDYN
TECH_ID.STACKGEIS_SLAVE
TECH_ID.STACKGEIS
TECH_ID.STACKGDYN_SLAVE
TECH_ID.CPO
TECH_ID.CGA
TECH_ID.COKINE
TECH_ID.PDYN
TECH_ID.GDYN
TECH_ID.CVA
TECH_ID.DPV
TECH_ID.SWV
TECH_ID.NPV
TECH_ID.RNPV
TECH_ID.DNPV
TECH_ID.DPA
TECH_ID.EVT
TECH_ID.LP
TECH_ID.GC
TECH_ID.CPP
TECH_ID.PDP
TECH_ID.PSP
TECH_ID.ZRA
TECH_ID.MIR
TECH_ID.PZIR
TECH_ID.GZIR
TECH_ID.LOOP
TECH_ID.TO
TECH_ID.TI
TECH_ID.TOS
TECH_ID.CPLIMIT
TECH_ID.GDYNLIMIT
TECH_ID.CALIMIT
TECH_ID.PDYNLIMIT
TECH_ID.LASV
TECH_ID.MP
TECH_ID.CASG
TECH_ID.CASP
class_name()
exception_brief()
warn_diff()
error_diff()
prepend_path()
file_complete()
pp_plural()
- Submodules
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, max_connect_attempts=120, **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 (
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, max_connect_attempts=120, **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 (
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, max_connect_attempts=120, capacity=0.0, **kwargs)
Start a job on the device.
The function first translates the
payload
into an instrument-specific language, using thecapacity
provided if necessary. The convertedpayload
is 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 (
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, max_connect_attempts=120, **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 (
str
) – Path to the BioLogic DLL file.
- Returns:
A timestamp corresponding to the start of the job execution.
- Return type:
timestamp