Easy Biologic
Allows easy control over BioLogic devices.
High and low level control over BioLogic devices are available.
Low level control is in the lib subpackage, while high level control
is in the main module.
Install with
python -m pip install easy-biologic
API
For a full overview of both APIs see
API.md.
High Level
High level control of devices and programs. Most users will use these.
- Biologic Device: Represents a BioLogic Device.
- Biologic Program: Represents a program to be run on a device.
- Program Runner: Represents a program to be run on a device channel.
- Base Programs: Basic implementations of
BiologicPrograms. - Find Devices: A convenience script for finding connected devices.
Low Level
Gives direct control of the Biologic device using DLL libraries. Used to implement new techniques.
- EC Lib: Contains methods converting the
BL_*DLL functions for use, enumeration classes to encapsulate program and device states, and C Structures for sending and receiving data from th device. - Data Parser: Parses data received from a technique and contains technique fields for different device types.
- EC Find: Implements the BL Find DLL.
- Technique Fields: Parameter types for techniques. (Not all techniques are implemented.)
- EC Errors: Implements EC errors.
Examples
Basic
Runs an MPP program on channels 0 - 7 for 10 minutes.
import easy_biologic as ebl
import easy_biologic.base_programs as blp
# create device
bl = ebl.BiologicDevice('192.168.1.2')
# create mpp program
params = {
'run_time': 10* 60
}
mpp = blp.MPP(
bl,
params,
channels = [ 0, 1, 2, 3, 4, 5, 6 ]
)
# run program
mpp.run('data')
Custom parameters
Runs a CV scan for three cycles at a scan rate of 50 mV/s on channel 0. The experiment begins at 0.5 V and forward scans to -0.25 V, then scans backward to 0.8 V. In the final cycle, it scans to 1.0 V.
import easy_biologic as ebl
import easy_biologic.base_programs as blp
bl = ebl.BiologicDevice('192.168.1.2')
save_path = '/path/to/data/CV.csv'
params = {
'start': 0.5,
'end': -0.25,
'E2': 0.8,
'Ef': 1.0,
'rate': 0.05,
'step': 0.001,
'N_Cycles': 2,
'begin_measuring_I': 0.5,
'End_measuring_I': 1.0,
}
CV = blp.CV(
bl,
params,
channels = [0]
)
CV.run('data')
CV.save_data(save_path)
Advanced
Runs an OCV then uses the final OCV voltage for PEIS.
import easy_biologic as ebl
import easy_biologic.base_programs as blp
bl = ebl.BiologicDevice('192.168.1.2')
save_path_ocv = '/path/to/data/OCV.csv'
# Run OCV
params_ocv = {
'time': 2,
'time_interval': 1,
}
ocv = blp.OCV(
bl,
params_ocv,
channels=[0]
)
ocv.run('data')
ocv.save_data(save_path_ocv)
voc = {
ch: [datum.voltage for datum in data]
for ch, data in ocv.data.items()
}
voc = {
ch: sum(ch_voc) / len(ch_voc)
for ch, ch_voc in voc.items()
}
# Run PEIS
save_path_peis = '/path/to/data/PEIS.csv'
params_peis = {
'voltage': list(voc.values())[0],
'final_frequency': 1000,
'initial_frequency': 1000000,
'amplitude_voltage': 0.1,
'frequency_number': 60,
'duration': 0,
'repeat': 10,
'wait': 0.1
}
peis = blp.PEIS(
bl,
params_peis,
channels=[0]
)
peis.run('data')
peis.save_data(save_path_peis)
CV and PEIS options
- Voltage and current range: CV and PEIS accept optional
voltage_rangeandcurrent_range(useec_lib.ERangeandec_lib.IRange) to fix the measurement ranges. - Averaging: PEIS supports N-point averaging per frequency via the
repeatparameter (e.g.repeat: 5 or 10 for better noise averaging). CV supports hardware averaging on/off only via theaverageparameter (True/False).
Extras
pandas: Usepandasto save data.
Known issues
- USB connection: Often times using a USB connection will give a
ERR_COMM_CONNECTIONFAILED (-201)error. We have found that USB can be unreliable, and a TCP connection is resolves this issue.
Adding techniques
BioLogic will often update their firmware which needs to be included in this package. To do so
0. Download this package. The easiest way to do this is git clone https://github.com/bicarlsen/easy-biologic.git.
- Download the EC-Lab Developer Package, noting its install path (typically
C:\EC-Lab Development Package). - Copy the
EC-Lab Development Package\libfolder (typicallyC:\EC-Lab Development Package\lib) into the foldereasy-biologic/src/techniquesfolder and rename it with the major and minor version of the firmware (e.g.6.04). You can view previous technique version folders for examples. - Update the
src/data/techniques_version.jsonfile to the version you just added. - (optional) Create a pull request to have it included in the package, so everybody benefits :).
Release files for puda-biologic 0.0.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| puda_biologic-0.0.8.tar.gz | 34.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| puda_biologic-0.0.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 70.0 MB
Release files / puda_biologic-0.0.8.tar.gz
| Download URL | puda_biologic-0.0.8.tar.gz |
|---|---|
| Size | 34.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7b1fea12643b1b6caefa86879c790d19596bf311ec2079eb7916ce5a9d3d1afe
|
|
BLAKE2b-256 checksum How to use checksums |
739d6eab16c5aa1b0b770ccd49aa6f06a5d21d6a54cc1c3d625e7e3fe8565c33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / puda_biologic-0.0.8-py3-none-any.whl
| Download URL | puda_biologic-0.0.8-py3-none-any.whl |
|---|---|
| Size | 35.9 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5ee7a80ca86533f783f9c8041f9e33e53a7ab3711db340477a52aa4ca823fbea
|
|
BLAKE2b-256 checksum How to use checksums |
8d05dad6ce89dfe52f2d5f8cc769cdfc8158d985a1bcf085bf9a4df297fcd687
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|