config.rst 25.67 KiB

Configuration

The configuration file config.py defines how the OhmPi system is assembled and expected to behave. It tells the software how the hardware is set up, cabled and configured. In certain cases, it also allows you to define hardware specifications, such as the maximum voltage that a specific MUX board can handle. For general purpose, most specifications can be left on default values.

Warning

Not to be confused with :ref:`settings`. One configuration specified in a config.py file can handle multiple combinations of acquisition settings.

Default configuration

A default version of config.py is provided in the repository. This file should be edited to customize the configuration following the user's needs and preferences. A series of default configuration files are available in the configs folder. A simple helper command can help you select the appropriate configuration file depending on your version of the meausurement board and type of MUX boards. The helper will ask you a few questions and will select the right configuration for your case. It can be called in via the terminal as .. code-block:: bash

$ python setup_config.py

Still, it is best practice to open the configuration file and check that the parameters are correctly configured. Updating the configuration file manually is mandatory for custom systems combining different versions of the measurement and MUX boards.

Warning

One should make sure to understand the parameters before altering them. It is also recommended to keep a copy of the default configuration.

Configuration file structure

The configuration is written in a python file structured in a series of dictionaries related to:

  1. OHMPI_CONFIG: the OhmPi instrument information (id of the instrument and default settings).
  1. HARDWARE_CONFIG: the hardware system in which the five different modules 'ctl' (controller), 'tx' (transmitter), 'rx' (receiver), 'mux' (multiplexers), 'pwr' (power).
HARDWARE_CONFIG
Main Key Module Key Value
Description Expected Value Value description
ctl model Controller of the OhmPi system. raspberry_pi Defines a Raspberry Pi as controller.
pwr model Type of power unit. pwr_batt Defines an external battery as power unit.
pwr_dps5005 Defines an external DPS 5005 as power unit
voltage Defines default output voltage in V. float, e.g. 12. Sets 12 V as default voltage.
interface_name
Interface used for communication
with controller.
none Sets no software communication (e.g. for 'pwr_batt')
modbus Sets a modubs connection
tx model Type of transmitter. mb_2024_0_2
Load TX defined in
:func:`ohmpi.hardware_components.mb_2024_0_2`
mb_2023_0_X
Load TX defined in
:func:`ohmpi.hardware_components.mb_2023_0_X`
voltage_max Maximum voltage supported by the TX board [V] float, e.g. 50.  
current_max Maximum current supported by TX board [A] float, e.g. 0.05 Is function of r_shunt. Can be calculated as 4.80/(50*r_shunt)
r_shunt Value (in Ohms) of shunt resistor mounted on TX. float, e.g. 2. 2 Ohms resistor.
interface_name
Name of interface used for communication with
controller
i2c I2C connector 1
i2c_ext I2C connector 2
rx model Type of transmitter. mb_2024_0_2
Load RX defined in
:func:`ohmpi.hardware_components.mb_2024_0_2`
mb_2023_0_X
Load RX defined in
:func:`ohmpi.hardware_components.mb_2024_0_2`
latency
Latency in seconds in continuous mode
(related to ADS)
float, e.g. 0.01 10 ms
sampling_rate Number of samples per second int, e.g. 50 50 samples per seconds.
interface_name
Name of interface used for communication with
controller
i2c I2C connector 1
i2c_ext I2C connector 2
mux boards
Dictionary containing all MUX boards of the
system and the associated specific
configuration.
mux_id Dictionary (see table_mux_config)
default
Dictionary containing configuration applicable
to all MUX boards of the systems
default_dict Dictionary (see table_mux_config)
MUX board general config in HARDWARE_CONFIG
Module Key Value
Description Expected Value Value description
model Type of Mux board. mux_2024_0_X
Load RX defined in
:func:`ohmpi.hardware_components.mux_2024_0_X`
mux_2023_0_X
Load RX defined in
:func:`ohmpi.hardware_components.mux_2023_0_X`
electrodes List of electrodes addressed by the MUX board
array-like,
e.g. range(1,65)
Sets electrode IDs addressed by the MUX board
roles roles addressed by the MUX board
string, list
of 'A', 'B', 'M', 'N'

or dict, e.g.
{'A':'X','B':'Y',
'M':'XX','N':'YY'}


Sets roles addressed by the MUX board.
If string, MUX addresses only 1 role (for MUX 2023)
For MUX 2024:
* Number of roles defines if MUX set up in 2 or 4 roles mode.
* list or array order determines physical cabling
* dict values rely on annotation on MUX 2024 board
'X', 'Y', 'XX', 'YY'

voltage_max Maximum injected voltage managed by the MUX board float, e.g. 50. Sets maximum voltage to 50 V.
current_max Maximum current [in A] managed by the MUX board float, e.g. 3. Sets maximum current to 3 A.
i2c_ext_tca_address I2C address of I2C extension None (default) | No I2C extensions cabled.
hex integer, e.g. 0x71 Address of I2C extension
i2c_ext_tca_channel Channel of the I2C extension int 0 - 7 Channel used in case I2C extension configured.
MUX 2023 board specific config in HARDWARE_CONFIG
Module Key Value
Description Expected Value Value description
mux_tca_address I2C address of MUX board
hex integer
0x70 - 0x77
Address of MUX board
MUX 2024 board specific config in HARDWARE_CONFIG
Module Key Value
Description Expected Value Value description
addr1 Physical position of jumper on addr1
string 'up' or 'down
This will compute I2C address of MUX board based on addr1
and addr 2 configuration.
addr2 Physical position of jumper on addr1
string 'up' or 'down
This will compute I2C address of MUX board based on addr1
and addr 2 configuration.
  1. the logging dictionaries divided in:
  1. the MQTT dictionaries divided in: