diff --git a/ohmpi/hardware_components/dummy_ctl.py b/ohmpi/hardware_components/dummy_ctl.py
index b9cedf8f4adfa133cad9bd57ccc5fa8e48f66531..9eeb98e0a4ee56f075ccc061c2feb58e13cfba90 100644
--- a/ohmpi/hardware_components/dummy_ctl.py
+++ b/ohmpi/hardware_components/dummy_ctl.py
@@ -8,4 +8,3 @@ class Ctl(CtlAbstract):
     def __init__(self, **kwargs):
         kwargs.update({'board_name': os.path.basename(__file__).rstrip('.py')})
         super().__init__(**kwargs)
-        self.connections = None
diff --git a/uml_diagrams/classes_uml_ohmpi.dot b/uml_diagrams/classes_uml_ohmpi.dot
index b16d126edf33b1e5158d946400c1ac62d25a1a3c..2071ce04e004cfe6ade11f8de935531f3d3e3386 100644
--- a/uml_diagrams/classes_uml_ohmpi.dot
+++ b/uml_diagrams/classes_uml_ohmpi.dot
@@ -2,42 +2,40 @@ digraph "classes_uml_ohmpi" {
 charset="utf-8"
 rankdir=BT
 "0" [label="{CompressedSizedTimedRotatingFileHandler|maxBytes : int\lstream\lzip_mode : int\l|doRollover()\lfind_last_rotated_file()\lshouldRollover(record)\l}", shape="record"];
-"1" [label="{Ctl|board_name : str\lbus\lmax_cpu_temp : float\l|}", shape="record"];
-"2" [label="{Ctl|board_name : str\lbus : I2C\lmax_cpu_temp : float\l|}", shape="record"];
-"3" [label="{Ctl|bus : NoneType\l|}", shape="record"];
-"4" [label="{CtlAbstract|board_name\lbus : NoneType\lcpu_temperature\lexec_logger : RootLogger, NoneType\lmax_cpu_temp\lsoh_logger : RootLogger, NoneType\l|}", shape="record"];
-"5" [label="{MQTTHandler|auth : NoneType\lclient_id : str\lhostname\lkeepalive : int\lport : int\lprotocol\lqos : int\lretain : bool\ltls : NoneType\ltopic\ltransport : str\lwill : NoneType\l|emit(record)\l}", shape="record"];
-"6" [label="{Mux|addresses : dict\l|reset()\lswitch_one(elec, role, state)\l}", shape="record"];
-"7" [label="{Mux|\l|reset()\lswitch_one()\ltest()\l}", shape="record"];
-"8" [label="{Mux|addresses : dict\l|reset()\lswitch_one(elec, role, state)\l}", shape="record"];
-"9" [label="{MuxAbstract|addresses\lbarrier\lboard_id\lboard_name\lcabling : dict\lctl\lexec_logger : RootLogger, NoneType\lsoh_logger : RootLogger, NoneType\l|reset()\lswitch(elec_dict, state, bypass_check)\lswitch_one(elec, role, state)\ltest(elec_dict, activation_time)\l}", shape="record"];
-"10" [label="{MyServer|\l|do_POST()\l}", shape="record"];
-"11" [label="{OhmPi|cmd_id : NoneType\lcontroller : NoneType\ldata_logger : RootLogger, NoneType\lexec_logger : RootLogger, NoneType\lid : str\lmqtt : bool\lnb_samples : int\lon_pi : NoneType, bool\lsequence\lsequence : NoneType, ndarray\lsettings : dict\lsoh_logger : RootLogger, NoneType\lstatus : str\lthread : Thread, NoneType\l|append_and_save(filename, last_measurement, cmd_id)\lget_data(survey_names, cmd_id)\lget_deprecated_methods(cls)\linterrupt(cmd_id)\lload_sequence(filename, cmd_id)\lquit(cmd_id)\lremove_data(cmd_id)\lreset_mux(cmd_id)\lrestart(cmd_id)\lrs_check(tx_volt, cmd_id)\lrun_measurement(quad, nb_stack, injection_duration, autogain, strategy, tx_volt, best_tx_injtime, cmd_id)\lrun_multiple_sequences(cmd_id, sequence_delay, nb_meas)\lrun_sequence(cmd_id)\lrun_sequence_async(cmd_id)\lset_sequence(sequence, cmd_id)\lswitch_mux_off(quadrupole, cmd_id)\lswitch_mux_on(quadrupole, bypass_check, cmd_id)\ltest_mux(activation_time, mux_id, cmd_id)\lupdate_settings(settings, cmd_id)\l}", shape="record"];
-"12" [label="{OhmPiHardware|ctl\ldata_logger : RootLogger, NoneType\lexec_logger : RootLogger, NoneType\llast_dev\llast_rho\lmux_barrier : Barrier\lmux_boards : dict\lpulses\lpwr\lreadings : ndarray\lrx\lsoh_logger : NoneType, RootLogger\lsp\ltx\ltx_sync : Event\l|calibrate_rx_bias()\lreset_mux()\lswitch_mux(electrodes, roles, state)\ltest_mux(channel, activation_time)\lvab_square_wave(vab, cycle_duration, sampling_rate, cycles, polarity, duty_cycle, append)\l}", shape="record"];
-"13" [label="{Pwr|ctl\lcurrent\lcurrent_max\lvoltage\lvoltage_adjustable : bool\l|battery_voltage()\lturn_off()\lturn_on()\l}", shape="record"];
-"14" [label="{Pwr|current\lvoltage\lvoltage_adjustable : bool\l|turn_off()\lturn_on()\l}", shape="record"];
-"15" [label="{PwrAbstract|board_name\lctl\lcurrent\lexec_logger : RootLogger, NoneType\lsoh_logger : RootLogger, NoneType\lvoltage\lvoltage_adjustable\l|turn_off()\lturn_on()\l}", shape="record"];
+"1" [label="{Ctl|board_name : str\linterfaces : dict\lmax_cpu_temp : float\l|}", shape="record"];
+"2" [label="{Ctl|\l|}", shape="record"];
+"3" [label="{CtlAbstract|board_name\lconnection : NoneType\lcpu_temperature\lexec_logger : NoneType, RootLogger\linterfaces : NoneType\lmax_cpu_temp\lsoh_logger : NoneType, RootLogger\l|}", shape="record"];
+"4" [label="{MQTTHandler|auth : NoneType\lclient_id : str\lhostname\lkeepalive : int\lport : int\lprotocol\lqos : int\lretain : bool\ltls : NoneType\ltopic\ltransport : str\lwill : NoneType\l|emit(record)\l}", shape="record"];
+"5" [label="{Mux|addresses : dict\lio\l|reset()\lswitch_one(elec, role, state)\l}", shape="record"];
+"6" [label="{Mux|\l|reset()\lswitch_one()\ltest()\l}", shape="record"];
+"7" [label="{Mux|addresses : dict\l|reset()\lswitch_one(elec, role, state)\l}", shape="record"];
+"8" [label="{MuxAbstract|addresses\lbarrier\lboard_id\lboard_name\lcabling : dict\lconnection\lexec_logger : NoneType, RootLogger\lsoh_logger : NoneType, RootLogger\l|reset()\lswitch(elec_dict, state, bypass_check)\lswitch_one(elec, role, state)\ltest(elec_dict, activation_time)\l}", shape="record"];
+"9" [label="{MyServer|\l|do_POST()\l}", shape="record"];
+"10" [label="{OhmPi|cmd_id : NoneType\lcontroller : NoneType\ldata_logger : NoneType, RootLogger\lexec_logger : NoneType, RootLogger\lid : str\lmqtt : bool\lnb_samples : int\lon_pi : NoneType, bool\lsequence\lsequence : ndarray, NoneType\lsettings : dict\lsoh_logger : NoneType, RootLogger\lstatus : str\lthread : Thread, NoneType\l|append_and_save(filename, last_measurement, cmd_id)\lget_data(survey_names, cmd_id)\lget_deprecated_methods(cls)\linterrupt(cmd_id)\lload_sequence(filename, cmd_id)\lquit(cmd_id)\lremove_data(cmd_id)\lreset_mux(cmd_id)\lrestart(cmd_id)\lrs_check(tx_volt, cmd_id)\lrun_measurement(quad, nb_stack, injection_duration, autogain, strategy, tx_volt, best_tx_injtime, cmd_id)\lrun_multiple_sequences(cmd_id, sequence_delay, nb_meas)\lrun_sequence(cmd_id)\lrun_sequence_async(cmd_id)\lset_sequence(sequence, cmd_id)\lswitch_mux_off(quadrupole, cmd_id)\lswitch_mux_on(quadrupole, bypass_check, cmd_id)\ltest_mux(activation_time, mux_id, cmd_id)\lupdate_settings(settings, cmd_id)\l}", shape="record"];
+"11" [label="{OhmPiHardware|ctl\ldata_logger : NoneType, RootLogger\lexec_logger : NoneType, RootLogger\llast_dev\llast_rho\lmux_barrier : Barrier\lmux_boards : dict\lpulses\lpwr\lreadings : ndarray\lrx\lsoh_logger : NoneType, RootLogger\lsp\ltx\ltx_sync : Event\l|calibrate_rx_bias()\lreset_mux()\lswitch_mux(electrodes, roles, state)\ltest_mux(channel, activation_time)\lvab_square_wave(vab, cycle_duration, sampling_rate, cycles, polarity, duty_cycle, append)\l}", shape="record"];
+"12" [label="{Pwr|connection\lctl\lcurrent\lcurrent_max\lvoltage\lvoltage_adjustable : bool\l|battery_voltage()\lturn_off()\lturn_on()\l}", shape="record"];
+"13" [label="{Pwr|current\lvoltage\lvoltage_adjustable : bool\l|turn_off()\lturn_on()\l}", shape="record"];
+"14" [label="{PwrAbstract|board_name\lconnection\lctl\lcurrent\lexec_logger : NoneType, RootLogger\lsoh_logger : NoneType, RootLogger\lvoltage\lvoltage_adjustable\l|turn_off()\lturn_on()\l}", shape="record"];
+"15" [label="{Rx|adc_gain\ladc_gain\lconnection\lctl\lvoltage\l|adc_gain_auto()\l}", shape="record"];
 "16" [label="{Rx|adc_gain\ladc_gain : float\lvoltage\l|adc_gain_auto()\l}", shape="record"];
-"17" [label="{Rx|adc_gain\ladc_gain\lctl\lvoltage\l|adc_gain_auto()\l}", shape="record"];
-"18" [label="{Rx|adc_gain\ladc_gain\lctl\lvoltage\l|adc_gain_auto()\l}", shape="record"];
-"19" [label="{RxAbstract|adc_gain\lboard_name\lctl\lexec_logger : RootLogger, NoneType\lsampling_rate\lsoh_logger : RootLogger, NoneType\lvoltage\l|adc_gain_auto()\l}", shape="record"];
-"20" [label="{Tx|adc_gain\ladc_gain : int, float\lctl\lcurrent\lcurrent_adjustable : bool\lmcp_board : MCP23008\lpin0 : DigitalInOut\lpin1 : DigitalInOut\lpin4 : DigitalInOut\lpolarity\lpolarity : int\lpwr : NoneType\ltx_bat\lvoltage_adjustable : bool\l|adc_gain_auto()\lcurrent_pulse()\linject(polarity, injection_duration)\lturn_off()\lturn_on()\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"];
-"21" [label="{Tx|adc_gain\ladc_gain : float\lcurrent\lpolarity : int\ltx_bat\lvoltage\l|adc_gain_auto()\lcurrent_pulse()\linject(state)\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"];
-"22" [label="{Tx|DPS\ladc_gain\ladc_gain : int, float\lctl\lcurrent\lmcp_board : MCP23008\lpin0 : DigitalInOut\lpin1 : DigitalInOut\lpin2 : DigitalInOut\lpin3 : DigitalInOut\lpin4 : DigitalInOut\lpolarity\lpolarity : NoneType, int\ltx_bat\lvoltage\lvoltage\l|adc_gain_auto()\lcurrent_pulse()\linject(polarity, injection_duration)\lturn_off()\lturn_on()\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"];
-"23" [label="{TxAbstract|adc_gain\lboard_name\lctl\lexec_logger : RootLogger, NoneType\linjection_duration\linjection_duration\lpolarity\lpwr\lsoh_logger : RootLogger, NoneType\ltx_bat\ltx_sync\l|adc_gain_auto()\lcurrent_pulse()\linject(polarity, injection_duration)\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"];
-"1" -> "4" [arrowhead="empty", arrowtail="none"];
-"2" -> "4" [arrowhead="empty", arrowtail="none"];
-"3" -> "4" [arrowhead="empty", arrowtail="none"];
-"6" -> "9" [arrowhead="empty", arrowtail="none"];
-"7" -> "9" [arrowhead="empty", arrowtail="none"];
-"8" -> "9" [arrowhead="empty", arrowtail="none"];
-"13" -> "15" [arrowhead="empty", arrowtail="none"];
-"14" -> "15" [arrowhead="empty", arrowtail="none"];
-"16" -> "19" [arrowhead="empty", arrowtail="none"];
-"17" -> "19" [arrowhead="empty", arrowtail="none"];
-"18" -> "19" [arrowhead="empty", arrowtail="none"];
-"20" -> "23" [arrowhead="empty", arrowtail="none"];
-"21" -> "23" [arrowhead="empty", arrowtail="none"];
-"22" -> "23" [arrowhead="empty", arrowtail="none"];
-"12" -> "11" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="_hw", style="solid"];
+"17" [label="{Rx|adc_gain\ladc_gain : float\lctl\lio\lmcp_board : MCP23008\lpin_DG0 : DigitalInOut\lpin_DG1 : DigitalInOut\lpin_DG2 : DigitalInOut\lvoltage\lvoltage_gain\lvoltage_gain : int, float\l|adc_gain_auto()\lvoltage_gain_auto()\l}", shape="record"];
+"18" [label="{RxAbstract|adc_gain\lboard_name\lconnection\lctl\lexec_logger : NoneType, RootLogger\lsampling_rate\lsoh_logger : NoneType, RootLogger\lvoltage\l|adc_gain_auto()\l}", shape="record"];
+"19" [label="{Tx|adc_gain\ladc_gain : int, float\lconnection\lctl\lcurrent\lcurrent_adjustable : bool\lmcp_board : MCP23008\lpin0 : DigitalInOut\lpin1 : DigitalInOut\lpin4 : DigitalInOut\lpolarity\lpolarity : int\lpwr : NoneType\ltx_bat\lvoltage_adjustable : bool\l|adc_gain_auto()\lcurrent_pulse()\linject(polarity, injection_duration)\lturn_off()\lturn_on()\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"];
+"20" [label="{Tx|adc_gain\ladc_gain : float\lcurrent\lpolarity : int\ltx_bat\lvoltage\l|adc_gain_auto()\lcurrent_pulse()\linject(state)\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"];
+"21" [label="{Tx|adc_gain\ladc_gain : int, float\lctl\lcurrent\lcurrent_adjustable : bool\lio\lmcp_board : MCP23008\lpin0 : DigitalInOut\lpin1 : DigitalInOut\lpin4 : DigitalInOut\lpolarity\lpolarity : int\lpwr : NoneType\ltx_bat\lvoltage_adjustable : bool\l|adc_gain_auto()\lcurrent_pulse()\linject(polarity, injection_duration)\lturn_off()\lturn_on()\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"];
+"22" [label="{TxAbstract|adc_gain\lboard_name\lconnection\lctl\lexec_logger : NoneType, RootLogger\linjection_duration\linjection_duration\lpolarity\lpwr\lsoh_logger : NoneType, RootLogger\ltx_bat\ltx_sync\l|adc_gain_auto()\lcurrent_pulse()\linject(polarity, injection_duration)\lvoltage_pulse(voltage, length, polarity)\l}", shape="record"];
+"1" -> "3" [arrowhead="empty", arrowtail="none"];
+"2" -> "3" [arrowhead="empty", arrowtail="none"];
+"5" -> "8" [arrowhead="empty", arrowtail="none"];
+"6" -> "8" [arrowhead="empty", arrowtail="none"];
+"7" -> "8" [arrowhead="empty", arrowtail="none"];
+"12" -> "14" [arrowhead="empty", arrowtail="none"];
+"13" -> "14" [arrowhead="empty", arrowtail="none"];
+"15" -> "18" [arrowhead="empty", arrowtail="none"];
+"16" -> "18" [arrowhead="empty", arrowtail="none"];
+"17" -> "18" [arrowhead="empty", arrowtail="none"];
+"19" -> "22" [arrowhead="empty", arrowtail="none"];
+"20" -> "22" [arrowhead="empty", arrowtail="none"];
+"21" -> "22" [arrowhead="empty", arrowtail="none"];
+"11" -> "10" [arrowhead="diamond", arrowtail="none", fontcolor="green", label="_hw", style="solid"];
 }
diff --git a/uml_diagrams/classes_uml_ohmpi.dot.png b/uml_diagrams/classes_uml_ohmpi.dot.png
index 00b93feb2a608839aa567e627eeb3588a2a23078..aee047e1953c5924ff5078c615f9f46bffc3a7ae 100644
Binary files a/uml_diagrams/classes_uml_ohmpi.dot.png and b/uml_diagrams/classes_uml_ohmpi.dot.png differ
diff --git a/uml_diagrams/classes_uml_ohmpi.dot.svg b/uml_diagrams/classes_uml_ohmpi.dot.svg
index c7a229ae61d163551587f58cc68074c778e6da2d..a9efb920da2c9b15bcb79a3d04970923e89b84f5 100644
--- a/uml_diagrams/classes_uml_ohmpi.dot.svg
+++ b/uml_diagrams/classes_uml_ohmpi.dot.svg
@@ -1,506 +1,514 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <!-- Generated by graphviz version 2.43.0 (0)
  -->
-
 <!-- Title: classes_uml_ohmpi Pages: 1 -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="4198pt"
-   height="964pt"
-   viewBox="0.00 0.00 4197.50 964.00"
-   version="1.1"
-   id="svg1693"
-   sodipodi:docname="classes_uml_ohmpi.dot.svg"
-   inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
-  <metadata
-     id="metadata1699">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs1697" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1868"
-     inkscape:window-height="1016"
-     id="namedview1695"
-     showgrid="false"
-     inkscape:snap-text-baseline="false"
-     inkscape:zoom="0.65135348"
-     inkscape:cx="4758.8494"
-     inkscape:cy="499.44138"
-     inkscape:window-x="52"
-     inkscape:window-y="27"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="graph0" />
-  <g
-     id="graph0"
-     class="graph"
-     transform="scale(1 1) rotate(0) translate(4 960)">
-    <title
-       id="title873">classes_uml_ohmpi</title>
-    <!-- 0 -->
-    <!-- 1 -->
-    <!-- 4 -->
-    <!-- 1&#45;&gt;4 -->
-    <!-- 2 -->
-    <!-- 2&#45;&gt;4 -->
-    <!-- 3 -->
-    <!-- 3&#45;&gt;4 -->
-    <!-- 5 -->
-    <!-- 6 -->
-    <!-- 9 -->
-    <!-- 6&#45;&gt;9 -->
-    <!-- 7 -->
-    <!-- 7&#45;&gt;9 -->
-    <!-- 8 -->
-    <!-- 8&#45;&gt;9 -->
-    <!-- 10 -->
-    <!-- 11 -->
-    <!-- 12 -->
-    <!-- 12&#45;&gt;11 -->
-    <!-- 13 -->
-    <!-- 15 -->
-    <!-- 13&#45;&gt;15 -->
-    <!-- 14 -->
-    <!-- 14&#45;&gt;15 -->
-    <!-- 16 -->
-    <!-- 19 -->
-    <!-- 16&#45;&gt;19 -->
-    <!-- 17 -->
-    <!-- 17&#45;&gt;19 -->
-    <!-- 18 -->
-    <!-- 18&#45;&gt;19 -->
-    <!-- 20 -->
-    <g
-       id="node21"
-       class="node"
-       transform="translate(115.5)"
-       style="stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">
-      <title
-         id="title1493">20</title>
-      <polygon
-         points="3561.5,-354.5 3561.5,-15.5 3265.5,-15.5 3265.5,-354.5 "
-         id="polygon1495"
-         style="fill:none;stroke:#000000;stroke-width:3.16884092;stroke-miterlimit:4;stroke-dasharray:none"
-         transform="matrix(1.0003563,0,0,0.79991151,-1.2162088,-70.9841)" />
-      <text
-         x="3413.5"
-         y="-339.29999"
-         font-size="14.00"
-         id="text1497"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14px;font-family:Times, serif;-inkscape-font-specification:'Times, serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:2.83464551;stroke-miterlimit:4;stroke-dasharray:none">Tx (mb_2023.0.0)</text>
-      <polyline
-         points="3265.5,-331.5 3561.5,-331.5 "
-         id="polyline1499"
-         style="fill:none;stroke:#000000;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none" />
-      <text
-         x="3273.5"
-         y="-316.29999"
-         font-size="14.00"
-         id="text1501"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">adc_gain</text>
-      <text
-         x="3273.5"
-         y="-301.29999"
-         font-size="14.00"
-         id="text1503"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">adc_gain : int, float</text>
-      <text
-         x="3273.5"
-         y="-286.29999"
-         font-size="14.00"
-         id="text1505"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">ctl</text>
-      <text
-         x="3273.5"
-         y="-271.29999"
-         font-size="14.00"
-         id="text1507"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">current</text>
-      <text
-         x="3273.5"
-         y="-256.29999"
-         font-size="14.00"
-         id="text1509"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">current_adjustable : bool</text>
-      <text
-         x="3273.5"
-         y="-241.3"
-         font-size="14.00"
-         id="text1511"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">mcp_board : MCP23008</text>
-      <text
-         x="3273.5"
-         y="-226.3"
-         font-size="14.00"
-         id="text1513"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pin0 : DigitalInOut</text>
-      <text
-         x="3273.5"
-         y="-211.3"
-         font-size="14.00"
-         id="text1515"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pin1 : DigitalInOut</text>
-      <text
-         x="3273.5"
-         y="-196.3"
-         font-size="14.00"
-         id="text1517"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pin4 : DigitalInOut</text>
-      <polyline
-         points="3265.5,-113.5 3561.5,-113.5 "
-         id="polyline1529"
-         style="fill:none;stroke:#000000;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none"
-         transform="translate(0,-72)" />
-      <text
-         x="3273.5"
-         y="-170.3"
-         font-size="14.00"
-         id="text1531"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">adc_gain_auto()</text>
-      <text
-         x="3273.5"
-         y="-155.3"
-         font-size="14.00"
-         id="text1533"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">current_pulse()</text>
-      <text
-         x="3273.5"
-         y="-140.3"
-         font-size="14.00"
-         id="text1535"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">inject(polarity, injection_duration)</text>
-      <text
-         x="3273.5"
-         y="-125.3"
-         font-size="14.00"
-         id="text1537"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">turn_off()</text>
-      <text
-         x="3273.5"
-         y="-110.3"
-         font-size="14.00"
-         id="text1539"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">turn_on()</text>
-      <text
-         x="3273.5"
-         y="-95.299995"
-         font-size="14.00"
-         id="text1541"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">voltage_pulse(voltage, length, polarity)</text>
-    </g>
-    <!-- 23 -->
-    <g
-       id="node24"
-       class="node"
-       transform="translate(0,109.5)"
-       style="stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">
-      <title
-         id="title1544">23</title>
-      <polygon
-         points="3875.5,-820.5 3875.5,-556.5 3579.5,-556.5 3579.5,-820.5 "
-         id="polygon1546"
-         style="fill:none;stroke:#000000;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none" />
-      <text
-         x="3727.5"
-         y="-805.29999"
-         font-size="14.00"
-         id="text1548"
-         style="font-size:13.99999956px;font-family:Times, serif;text-anchor:middle;-inkscape-font-specification:'Times, serif, Bold';font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal;text-align:center;writing-mode:lr;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">TxAbstract</text>
-      <polyline
-         points="3579.5,-797.5 3875.5,-797.5 "
-         id="polyline1550"
-         style="fill:none;stroke:#000000;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none" />
-      <text
-         x="3587.5"
-         y="-782.29999"
-         font-size="14.00"
-         id="text1552"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">adc_gain</text>
-      <text
-         x="3587.5"
-         y="-767.29999"
-         font-size="14.00"
-         id="text1554"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">board_name</text>
-      <text
-         x="3587.5"
-         y="-752.29999"
-         font-size="14.00"
-         id="text1556"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">ctl</text>
-      <text
-         x="3587.5"
-         y="-737.29999"
-         font-size="14.00"
-         id="text1558"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">exec_logger : RootLogger, NoneType</text>
-      <text
-         x="3587.5"
-         y="-722.29999"
-         font-size="14.00"
-         id="text1560"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">injection_duration</text>
-      <text
-         x="3587.5"
-         y="-707.29999"
-         font-size="14.00"
-         id="text1562"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">injection_duration</text>
-      <text
-         x="3587.5"
-         y="-692.29999"
-         font-size="14.00"
-         id="text1564"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">polarity</text>
-      <text
-         x="3587.5"
-         y="-677.29999"
-         font-size="14.00"
-         id="text1566"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pwr</text>
-      <text
-         x="3587.5"
-         y="-662.29999"
-         font-size="14.00"
-         id="text1568"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">soh_logger : RootLogger, NoneType</text>
-      <text
-         x="3587.5"
-         y="-647.29999"
-         font-size="14.00"
-         id="text1570"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">tx_bat</text>
-      <text
-         x="3587.5"
-         y="-632.29999"
-         font-size="14.00"
-         id="text1572"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">tx_sync</text>
-      <polyline
-         points="3579.5,-624.5 3875.5,-624.5 "
-         id="polyline1574"
-         style="fill:none;stroke:#000000;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none" />
-      <text
-         x="3587.5"
-         y="-609.29999"
-         font-size="14.00"
-         id="text1576"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">adc_gain_auto()</text>
-      <text
-         x="3587.5"
-         y="-594.29999"
-         font-size="14.00"
-         id="text1578"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">current_pulse()</text>
-      <text
-         x="3587.5"
-         y="-579.29999"
-         font-size="14.00"
-         id="text1580"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">inject(polarity, injection_duration)</text>
-      <text
-         x="3587.5"
-         y="-564.29999"
-         font-size="14.00"
-         id="text1582"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">voltage_pulse(voltage, length, polarity)</text>
-    </g>
-    <!-- 20&#45;&gt;23 -->
-    <g
-       id="edge12"
-       class="edge">
-      <title
-         id="title1585">20-&gt;23</title>
-      <path
-         d="m 3519.15,-354.74 c 39.21,-62.63 156.5312,-22.94704 193.9712,-82.73704"
-         id="path1587"
-         inkscape:connector-curvature="0"
-         style="fill:none;stroke:#000000"
-         sodipodi:nodetypes="cc" />
-      <polygon
-         points="3645.29,-556.2 3642.95,-545.87 3637.02,-549.58 "
-         id="polygon1589"
-         transform="translate(73.4042,110.06747)"
-         style="fill:none;stroke:#000000" />
-    </g>
-    <!-- 21 -->
-    <!-- 21&#45;&gt;23 -->
-    <!-- 22 -->
-    <g
-       id="node23"
-       class="node"
-       transform="translate(-111)"
-       style="stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">
-      <title
-         id="title1630">22</title>
-      <polygon
-         points="3893.5,-369.5 4189.5,-369.5 4189.5,-0.5 3893.5,-0.5 "
-         id="polygon1632"
-         style="fill:none;stroke:#000000;stroke-width:3.19778794;stroke-miterlimit:4;stroke-dasharray:none"
-         transform="matrix(1,0,0,0.78577501,0,-79.156135)" />
-      <text
-         x="4041.5"
-         y="-354.29999"
-         font-size="14.00"
-         id="text1634"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14px;font-family:Times, serif;-inkscape-font-specification:'Times, serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">Tx (mb_2024.0.0)</text>
-      <polyline
-         points="3893.5,-346.5 4189.5,-346.5 "
-         id="polyline1636"
-         style="fill:none;stroke:#000000;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none" />
-      <text
-         x="3901.5"
-         y="-331.29999"
-         font-size="14.00"
-         id="text1640"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">adc_gain</text>
-      <text
-         x="3901.5"
-         y="-316.29999"
-         font-size="14.00"
-         id="text1642"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">adc_gain : int, float</text>
-      <text
-         x="3901.5"
-         y="-301.29999"
-         font-size="14.00"
-         id="text1644"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">ctl</text>
-      <text
-         x="3901.5"
-         y="-286.29999"
-         font-size="14.00"
-         id="text1646"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">current</text>
-      <text
-         x="3901.5"
-         y="-271.29999"
-         font-size="14.00"
-         id="text1648"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">mcp_board : MCP23008</text>
-      <text
-         x="3901.5"
-         y="-256.29999"
-         font-size="14.00"
-         id="text1650"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pin0 : DigitalInOut</text>
-      <text
-         x="3901.5"
-         y="-241.3"
-         font-size="14.00"
-         id="text1652"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pin1 : DigitalInOut</text>
-      <text
-         x="3901.5"
-         y="-226.3"
-         font-size="14.00"
-         id="text1654"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pin2 : DigitalInOut</text>
-      <text
-         x="3901.5"
-         y="-211.3"
-         font-size="14.00"
-         id="text1656"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pin3 : DigitalInOut</text>
-      <text
-         x="3901.5"
-         y="-196.3"
-         font-size="14.00"
-         id="text1658"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">pin4 : DigitalInOut</text>
-      <polyline
-         points="3893.5,-98.5 4189.5,-98.5 "
-         id="polyline1670"
-         style="fill:none;stroke:#000000;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none"
-         transform="translate(0,-88.5)" />
-      <text
-         x="3901.5"
-         y="-168.8"
-         font-size="14.00"
-         id="text1672"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">adc_gain_auto()</text>
-      <text
-         x="3901.5"
-         y="-153.8"
-         font-size="14.00"
-         id="text1674"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">current_pulse()</text>
-      <text
-         x="3901.5"
-         y="-138.8"
-         font-size="14.00"
-         id="text1676"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">inject(polarity, injection_duration)</text>
-      <text
-         x="3901.5"
-         y="-123.8"
-         font-size="14.00"
-         id="text1678"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">turn_off()</text>
-      <text
-         x="3901.5"
-         y="-108.8"
-         font-size="14.00"
-         id="text1680"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">turn_on()</text>
-      <text
-         x="3901.5"
-         y="-93.799995"
-         font-size="14.00"
-         id="text1682"
-         style="font-size:14px;font-family:Times, serif;text-anchor:start;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none">voltage_pulse(voltage, length, polarity)</text>
-      <text
-         xml:space="preserve"
-         style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:48px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Italic';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none"
-         x="4051.5347"
-         y="-351.80414"
-         id="text1703"><tspan
-           sodipodi:role="line"
-           id="tspan1701"
-           x="4051.5347"
-           y="-309.33539"
-           style="stroke-width:2.83464558;stroke-miterlimit:4;stroke-dasharray:none"></tspan></text>
-    </g>
-    <!-- 22&#45;&gt;23 -->
-    <g
-       id="edge14"
-       class="edge">
-      <title
-         id="title1685">22-&gt;23</title>
-      <path
-         d="m 3926.58,-369.54 c -36.81,-58.8 -159.2615,-12.42398 -193.7915,-67.58398"
-         id="path1687"
-         inkscape:connector-curvature="0"
-         style="fill:none;stroke:#000000"
-         sodipodi:nodetypes="cc" />
-      <polygon
-         points="3809.58,-556.4 3817.86,-549.78 3811.92,-546.07 "
-         id="polygon1689"
-         transform="translate(-82.0101,110.67319)"
-         style="fill:none;stroke:#000000" />
-    </g>
-  </g>
+<svg width="3998pt" height="949pt"
+ viewBox="0.00 0.00 3997.50 949.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 945)">
+<title>classes_uml_ohmpi</title>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-945 3993.5,-945 3993.5,4 -4,4"/>
+<!-- 0 -->
+<g id="node1" class="node">
+<title>0</title>
+<polygon fill="none" stroke="black" points="0,-113 0,-242 335,-242 335,-113 0,-113"/>
+<text text-anchor="middle" x="167.5" y="-226.8" font-family="Times,serif" font-size="14.00">CompressedSizedTimedRotatingFileHandler</text>
+<polyline fill="none" stroke="black" points="0,-219 335,-219 "/>
+<text text-anchor="start" x="8" y="-203.8" font-family="Times,serif" font-size="14.00">maxBytes : int</text>
+<text text-anchor="start" x="8" y="-188.8" font-family="Times,serif" font-size="14.00">stream</text>
+<text text-anchor="start" x="8" y="-173.8" font-family="Times,serif" font-size="14.00">zip_mode : int</text>
+<polyline fill="none" stroke="black" points="0,-166 335,-166 "/>
+<text text-anchor="start" x="8" y="-150.8" font-family="Times,serif" font-size="14.00">doRollover()</text>
+<text text-anchor="start" x="8" y="-135.8" font-family="Times,serif" font-size="14.00">find_last_rotated_file()</text>
+<text text-anchor="start" x="8" y="-120.8" font-family="Times,serif" font-size="14.00">shouldRollover(record)</text>
+</g>
+<!-- 1 -->
+<g id="node2" class="node">
+<title>1</title>
+<polygon fill="none" stroke="black" points="353.5,-128 353.5,-227 521.5,-227 521.5,-128 353.5,-128"/>
+<text text-anchor="middle" x="437.5" y="-211.8" font-family="Times,serif" font-size="14.00">Ctl</text>
+<polyline fill="none" stroke="black" points="353.5,-204 521.5,-204 "/>
+<text text-anchor="start" x="361.5" y="-188.8" font-family="Times,serif" font-size="14.00">board_name : str</text>
+<text text-anchor="start" x="361.5" y="-173.8" font-family="Times,serif" font-size="14.00">interfaces : dict</text>
+<text text-anchor="start" x="361.5" y="-158.8" font-family="Times,serif" font-size="14.00">max_cpu_temp : float</text>
+<polyline fill="none" stroke="black" points="353.5,-151 521.5,-151 "/>
+<text text-anchor="middle" x="437.5" y="-135.8" font-family="Times,serif" font-size="14.00"> </text>
+</g>
+<!-- 3 -->
+<g id="node4" class="node">
+<title>3</title>
+<polygon fill="none" stroke="black" points="363,-594 363,-753 642,-753 642,-594 363,-594"/>
+<text text-anchor="middle" x="502.5" y="-737.8" font-family="Times,serif" font-size="14.00">CtlAbstract</text>
+<polyline fill="none" stroke="black" points="363,-730 642,-730 "/>
+<text text-anchor="start" x="371" y="-714.8" font-family="Times,serif" font-size="14.00">board_name</text>
+<text text-anchor="start" x="371" y="-699.8" font-family="Times,serif" font-size="14.00">connection : NoneType</text>
+<text text-anchor="start" x="371" y="-684.8" font-family="Times,serif" font-size="14.00">cpu_temperature</text>
+<text text-anchor="start" x="371" y="-669.8" font-family="Times,serif" font-size="14.00">exec_logger : NoneType, RootLogger</text>
+<text text-anchor="start" x="371" y="-654.8" font-family="Times,serif" font-size="14.00">interfaces : NoneType</text>
+<text text-anchor="start" x="371" y="-639.8" font-family="Times,serif" font-size="14.00">max_cpu_temp</text>
+<text text-anchor="start" x="371" y="-624.8" font-family="Times,serif" font-size="14.00">soh_logger : NoneType, RootLogger</text>
+<polyline fill="none" stroke="black" points="363,-617 642,-617 "/>
+<text text-anchor="middle" x="502.5" y="-601.8" font-family="Times,serif" font-size="14.00"> </text>
+</g>
+<!-- 1&#45;&gt;3 -->
+<g id="edge1" class="edge">
+<title>1&#45;&gt;3</title>
+<path fill="none" stroke="black" d="M443.91,-227.22C454.81,-310.02 477.09,-479.36 490.81,-583.69"/>
+<polygon fill="none" stroke="black" points="487.38,-584.43 492.16,-593.89 494.32,-583.52 487.38,-584.43"/>
+</g>
+<!-- 2 -->
+<g id="node3" class="node">
+<title>2</title>
+<polygon fill="none" stroke="black" points="539.5,-142.5 539.5,-212.5 593.5,-212.5 593.5,-142.5 539.5,-142.5"/>
+<text text-anchor="middle" x="566.5" y="-197.3" font-family="Times,serif" font-size="14.00">Ctl</text>
+<polyline fill="none" stroke="black" points="539.5,-189.5 593.5,-189.5 "/>
+<polyline fill="none" stroke="black" points="539.5,-165.5 593.5,-165.5 "/>
+<text text-anchor="middle" x="566.5" y="-150.3" font-family="Times,serif" font-size="14.00"> </text>
+</g>
+<!-- 2&#45;&gt;3 -->
+<g id="edge2" class="edge">
+<title>2&#45;&gt;3</title>
+<path fill="none" stroke="black" d="M562.05,-212.84C552.22,-288.7 528.4,-472.57 514.04,-583.4"/>
+<polygon fill="none" stroke="black" points="510.54,-583.2 512.73,-593.56 517.48,-584.1 510.54,-583.2"/>
+</g>
+<!-- 4 -->
+<g id="node5" class="node">
+<title>4</title>
+<polygon fill="none" stroke="black" points="611.5,-60.5 611.5,-294.5 745.5,-294.5 745.5,-60.5 611.5,-60.5"/>
+<text text-anchor="middle" x="678.5" y="-279.3" font-family="Times,serif" font-size="14.00">MQTTHandler</text>
+<polyline fill="none" stroke="black" points="611.5,-271.5 745.5,-271.5 "/>
+<text text-anchor="start" x="619.5" y="-256.3" font-family="Times,serif" font-size="14.00">auth : NoneType</text>
+<text text-anchor="start" x="619.5" y="-241.3" font-family="Times,serif" font-size="14.00">client_id : str</text>
+<text text-anchor="start" x="619.5" y="-226.3" font-family="Times,serif" font-size="14.00">hostname</text>
+<text text-anchor="start" x="619.5" y="-211.3" font-family="Times,serif" font-size="14.00">keepalive : int</text>
+<text text-anchor="start" x="619.5" y="-196.3" font-family="Times,serif" font-size="14.00">port : int</text>
+<text text-anchor="start" x="619.5" y="-181.3" font-family="Times,serif" font-size="14.00">protocol</text>
+<text text-anchor="start" x="619.5" y="-166.3" font-family="Times,serif" font-size="14.00">qos : int</text>
+<text text-anchor="start" x="619.5" y="-151.3" font-family="Times,serif" font-size="14.00">retain : bool</text>
+<text text-anchor="start" x="619.5" y="-136.3" font-family="Times,serif" font-size="14.00">tls : NoneType</text>
+<text text-anchor="start" x="619.5" y="-121.3" font-family="Times,serif" font-size="14.00">topic</text>
+<text text-anchor="start" x="619.5" y="-106.3" font-family="Times,serif" font-size="14.00">transport : str</text>
+<text text-anchor="start" x="619.5" y="-91.3" font-family="Times,serif" font-size="14.00">will : NoneType</text>
+<polyline fill="none" stroke="black" points="611.5,-83.5 745.5,-83.5 "/>
+<text text-anchor="start" x="619.5" y="-68.3" font-family="Times,serif" font-size="14.00">emit(record)</text>
+</g>
+<!-- 5 -->
+<g id="node6" class="node">
+<title>5</title>
+<polygon fill="none" stroke="black" points="763.5,-128 763.5,-227 979.5,-227 979.5,-128 763.5,-128"/>
+<text text-anchor="middle" x="871.5" y="-211.8" font-family="Times,serif" font-size="14.00">Mux</text>
+<polyline fill="none" stroke="black" points="763.5,-204 979.5,-204 "/>
+<text text-anchor="start" x="771.5" y="-188.8" font-family="Times,serif" font-size="14.00">addresses : dict</text>
+<text text-anchor="start" x="771.5" y="-173.8" font-family="Times,serif" font-size="14.00">io</text>
+<polyline fill="none" stroke="black" points="763.5,-166 979.5,-166 "/>
+<text text-anchor="start" x="771.5" y="-150.8" font-family="Times,serif" font-size="14.00">reset()</text>
+<text text-anchor="start" x="771.5" y="-135.8" font-family="Times,serif" font-size="14.00">switch_one(elec, role, state)</text>
+</g>
+<!-- 8 -->
+<g id="node9" class="node">
+<title>8</title>
+<polygon fill="none" stroke="black" points="907,-564 907,-783 1194,-783 1194,-564 907,-564"/>
+<text text-anchor="middle" x="1050.5" y="-767.8" font-family="Times,serif" font-size="14.00">MuxAbstract</text>
+<polyline fill="none" stroke="black" points="907,-760 1194,-760 "/>
+<text text-anchor="start" x="915" y="-744.8" font-family="Times,serif" font-size="14.00">addresses</text>
+<text text-anchor="start" x="915" y="-729.8" font-family="Times,serif" font-size="14.00">barrier</text>
+<text text-anchor="start" x="915" y="-714.8" font-family="Times,serif" font-size="14.00">board_id</text>
+<text text-anchor="start" x="915" y="-699.8" font-family="Times,serif" font-size="14.00">board_name</text>
+<text text-anchor="start" x="915" y="-684.8" font-family="Times,serif" font-size="14.00">cabling : dict</text>
+<text text-anchor="start" x="915" y="-669.8" font-family="Times,serif" font-size="14.00">connection</text>
+<text text-anchor="start" x="915" y="-654.8" font-family="Times,serif" font-size="14.00">exec_logger : NoneType, RootLogger</text>
+<text text-anchor="start" x="915" y="-639.8" font-family="Times,serif" font-size="14.00">soh_logger : NoneType, RootLogger</text>
+<polyline fill="none" stroke="black" points="907,-632 1194,-632 "/>
+<text text-anchor="start" x="915" y="-616.8" font-family="Times,serif" font-size="14.00">reset()</text>
+<text text-anchor="start" x="915" y="-601.8" font-family="Times,serif" font-size="14.00">switch(elec_dict, state, bypass_check)</text>
+<text text-anchor="start" x="915" y="-586.8" font-family="Times,serif" font-size="14.00">switch_one(elec, role, state)</text>
+<text text-anchor="start" x="915" y="-571.8" font-family="Times,serif" font-size="14.00">test(elec_dict, activation_time)</text>
+</g>
+<!-- 5&#45;&gt;8 -->
+<g id="edge3" class="edge">
+<title>5&#45;&gt;8</title>
+<path fill="none" stroke="black" d="M889.15,-227.22C916.48,-302.64 969.82,-449.83 1007.68,-554.32"/>
+<polygon fill="none" stroke="black" points="1004.48,-555.77 1011.18,-563.98 1011.06,-553.38 1004.48,-555.77"/>
+</g>
+<!-- 6 -->
+<g id="node7" class="node">
+<title>6</title>
+<polygon fill="none" stroke="black" points="997.5,-127.5 997.5,-227.5 1103.5,-227.5 1103.5,-127.5 997.5,-127.5"/>
+<text text-anchor="middle" x="1050.5" y="-212.3" font-family="Times,serif" font-size="14.00">Mux</text>
+<polyline fill="none" stroke="black" points="997.5,-204.5 1103.5,-204.5 "/>
+<polyline fill="none" stroke="black" points="997.5,-180.5 1103.5,-180.5 "/>
+<text text-anchor="start" x="1005.5" y="-165.3" font-family="Times,serif" font-size="14.00">reset()</text>
+<text text-anchor="start" x="1005.5" y="-150.3" font-family="Times,serif" font-size="14.00">switch_one()</text>
+<text text-anchor="start" x="1005.5" y="-135.3" font-family="Times,serif" font-size="14.00">test()</text>
+</g>
+<!-- 6&#45;&gt;8 -->
+<g id="edge4" class="edge">
+<title>6&#45;&gt;8</title>
+<path fill="none" stroke="black" d="M1050.5,-227.67C1050.5,-303.01 1050.5,-449.22 1050.5,-553.45"/>
+<polygon fill="none" stroke="black" points="1047,-553.72 1050.5,-563.72 1054,-553.72 1047,-553.72"/>
+</g>
+<!-- 7 -->
+<g id="node8" class="node">
+<title>7</title>
+<polygon fill="none" stroke="black" points="1121.5,-135.5 1121.5,-219.5 1337.5,-219.5 1337.5,-135.5 1121.5,-135.5"/>
+<text text-anchor="middle" x="1229.5" y="-204.3" font-family="Times,serif" font-size="14.00">Mux</text>
+<polyline fill="none" stroke="black" points="1121.5,-196.5 1337.5,-196.5 "/>
+<text text-anchor="start" x="1129.5" y="-181.3" font-family="Times,serif" font-size="14.00">addresses : dict</text>
+<polyline fill="none" stroke="black" points="1121.5,-173.5 1337.5,-173.5 "/>
+<text text-anchor="start" x="1129.5" y="-158.3" font-family="Times,serif" font-size="14.00">reset()</text>
+<text text-anchor="start" x="1129.5" y="-143.3" font-family="Times,serif" font-size="14.00">switch_one(elec, role, state)</text>
+</g>
+<!-- 7&#45;&gt;8 -->
+<g id="edge5" class="edge">
+<title>7&#45;&gt;8</title>
+<path fill="none" stroke="black" d="M1214.55,-219.77C1188.18,-292.53 1132.52,-446.15 1093.37,-554.19"/>
+<polygon fill="none" stroke="black" points="1089.99,-553.25 1089.87,-563.84 1096.57,-555.63 1089.99,-553.25"/>
+</g>
+<!-- 9 -->
+<g id="node10" class="node">
+<title>9</title>
+<polygon fill="none" stroke="black" points="1356,-142.5 1356,-212.5 1447,-212.5 1447,-142.5 1356,-142.5"/>
+<text text-anchor="middle" x="1401.5" y="-197.3" font-family="Times,serif" font-size="14.00">MyServer</text>
+<polyline fill="none" stroke="black" points="1356,-189.5 1447,-189.5 "/>
+<polyline fill="none" stroke="black" points="1356,-165.5 1447,-165.5 "/>
+<text text-anchor="start" x="1364" y="-150.3" font-family="Times,serif" font-size="14.00">do_POST()</text>
+</g>
+<!-- 10 -->
+<g id="node11" class="node">
+<title>10</title>
+<polygon fill="none" stroke="black" points="1409,-406.5 1409,-940.5 2182,-940.5 2182,-406.5 1409,-406.5"/>
+<text text-anchor="middle" x="1795.5" y="-925.3" font-family="Times,serif" font-size="14.00">OhmPi</text>
+<polyline fill="none" stroke="black" points="1409,-917.5 2182,-917.5 "/>
+<text text-anchor="start" x="1417" y="-902.3" font-family="Times,serif" font-size="14.00">cmd_id : NoneType</text>
+<text text-anchor="start" x="1417" y="-887.3" font-family="Times,serif" font-size="14.00">controller : NoneType</text>
+<text text-anchor="start" x="1417" y="-872.3" font-family="Times,serif" font-size="14.00">data_logger : NoneType, RootLogger</text>
+<text text-anchor="start" x="1417" y="-857.3" font-family="Times,serif" font-size="14.00">exec_logger : NoneType, RootLogger</text>
+<text text-anchor="start" x="1417" y="-842.3" font-family="Times,serif" font-size="14.00">id : str</text>
+<text text-anchor="start" x="1417" y="-827.3" font-family="Times,serif" font-size="14.00">mqtt : bool</text>
+<text text-anchor="start" x="1417" y="-812.3" font-family="Times,serif" font-size="14.00">nb_samples : int</text>
+<text text-anchor="start" x="1417" y="-797.3" font-family="Times,serif" font-size="14.00">on_pi : NoneType, bool</text>
+<text text-anchor="start" x="1417" y="-782.3" font-family="Times,serif" font-size="14.00">sequence</text>
+<text text-anchor="start" x="1417" y="-767.3" font-family="Times,serif" font-size="14.00">sequence : ndarray, NoneType</text>
+<text text-anchor="start" x="1417" y="-752.3" font-family="Times,serif" font-size="14.00">settings : dict</text>
+<text text-anchor="start" x="1417" y="-737.3" font-family="Times,serif" font-size="14.00">soh_logger : NoneType, RootLogger</text>
+<text text-anchor="start" x="1417" y="-722.3" font-family="Times,serif" font-size="14.00">status : str</text>
+<text text-anchor="start" x="1417" y="-707.3" font-family="Times,serif" font-size="14.00">thread : Thread, NoneType</text>
+<polyline fill="none" stroke="black" points="1409,-699.5 2182,-699.5 "/>
+<text text-anchor="start" x="1417" y="-684.3" font-family="Times,serif" font-size="14.00">append_and_save(filename, last_measurement, cmd_id)</text>
+<text text-anchor="start" x="1417" y="-669.3" font-family="Times,serif" font-size="14.00">get_data(survey_names, cmd_id)</text>
+<text text-anchor="start" x="1417" y="-654.3" font-family="Times,serif" font-size="14.00">get_deprecated_methods(cls)</text>
+<text text-anchor="start" x="1417" y="-639.3" font-family="Times,serif" font-size="14.00">interrupt(cmd_id)</text>
+<text text-anchor="start" x="1417" y="-624.3" font-family="Times,serif" font-size="14.00">load_sequence(filename, cmd_id)</text>
+<text text-anchor="start" x="1417" y="-609.3" font-family="Times,serif" font-size="14.00">quit(cmd_id)</text>
+<text text-anchor="start" x="1417" y="-594.3" font-family="Times,serif" font-size="14.00">remove_data(cmd_id)</text>
+<text text-anchor="start" x="1417" y="-579.3" font-family="Times,serif" font-size="14.00">reset_mux(cmd_id)</text>
+<text text-anchor="start" x="1417" y="-564.3" font-family="Times,serif" font-size="14.00">restart(cmd_id)</text>
+<text text-anchor="start" x="1417" y="-549.3" font-family="Times,serif" font-size="14.00">rs_check(tx_volt, cmd_id)</text>
+<text text-anchor="start" x="1417" y="-534.3" font-family="Times,serif" font-size="14.00">run_measurement(quad, nb_stack, injection_duration, autogain, strategy, tx_volt, best_tx_injtime, cmd_id)</text>
+<text text-anchor="start" x="1417" y="-519.3" font-family="Times,serif" font-size="14.00">run_multiple_sequences(cmd_id, sequence_delay, nb_meas)</text>
+<text text-anchor="start" x="1417" y="-504.3" font-family="Times,serif" font-size="14.00">run_sequence(cmd_id)</text>
+<text text-anchor="start" x="1417" y="-489.3" font-family="Times,serif" font-size="14.00">run_sequence_async(cmd_id)</text>
+<text text-anchor="start" x="1417" y="-474.3" font-family="Times,serif" font-size="14.00">set_sequence(sequence, cmd_id)</text>
+<text text-anchor="start" x="1417" y="-459.3" font-family="Times,serif" font-size="14.00">switch_mux_off(quadrupole, cmd_id)</text>
+<text text-anchor="start" x="1417" y="-444.3" font-family="Times,serif" font-size="14.00">switch_mux_on(quadrupole, bypass_check, cmd_id)</text>
+<text text-anchor="start" x="1417" y="-429.3" font-family="Times,serif" font-size="14.00">test_mux(activation_time, mux_id, cmd_id)</text>
+<text text-anchor="start" x="1417" y="-414.3" font-family="Times,serif" font-size="14.00">update_settings(settings, cmd_id)</text>
+</g>
+<!-- 11 -->
+<g id="node12" class="node">
+<title>11</title>
+<polygon fill="none" stroke="black" points="1465.5,-8 1465.5,-347 2125.5,-347 2125.5,-8 1465.5,-8"/>
+<text text-anchor="middle" x="1795.5" y="-331.8" font-family="Times,serif" font-size="14.00">OhmPiHardware</text>
+<polyline fill="none" stroke="black" points="1465.5,-324 2125.5,-324 "/>
+<text text-anchor="start" x="1473.5" y="-308.8" font-family="Times,serif" font-size="14.00">ctl</text>
+<text text-anchor="start" x="1473.5" y="-293.8" font-family="Times,serif" font-size="14.00">data_logger : NoneType, RootLogger</text>
+<text text-anchor="start" x="1473.5" y="-278.8" font-family="Times,serif" font-size="14.00">exec_logger : NoneType, RootLogger</text>
+<text text-anchor="start" x="1473.5" y="-263.8" font-family="Times,serif" font-size="14.00">last_dev</text>
+<text text-anchor="start" x="1473.5" y="-248.8" font-family="Times,serif" font-size="14.00">last_rho</text>
+<text text-anchor="start" x="1473.5" y="-233.8" font-family="Times,serif" font-size="14.00">mux_barrier : Barrier</text>
+<text text-anchor="start" x="1473.5" y="-218.8" font-family="Times,serif" font-size="14.00">mux_boards : dict</text>
+<text text-anchor="start" x="1473.5" y="-203.8" font-family="Times,serif" font-size="14.00">pulses</text>
+<text text-anchor="start" x="1473.5" y="-188.8" font-family="Times,serif" font-size="14.00">pwr</text>
+<text text-anchor="start" x="1473.5" y="-173.8" font-family="Times,serif" font-size="14.00">readings : ndarray</text>
+<text text-anchor="start" x="1473.5" y="-158.8" font-family="Times,serif" font-size="14.00">rx</text>
+<text text-anchor="start" x="1473.5" y="-143.8" font-family="Times,serif" font-size="14.00">soh_logger : NoneType, RootLogger</text>
+<text text-anchor="start" x="1473.5" y="-128.8" font-family="Times,serif" font-size="14.00">sp</text>
+<text text-anchor="start" x="1473.5" y="-113.8" font-family="Times,serif" font-size="14.00">tx</text>
+<text text-anchor="start" x="1473.5" y="-98.8" font-family="Times,serif" font-size="14.00">tx_sync : Event</text>
+<polyline fill="none" stroke="black" points="1465.5,-91 2125.5,-91 "/>
+<text text-anchor="start" x="1473.5" y="-75.8" font-family="Times,serif" font-size="14.00">calibrate_rx_bias()</text>
+<text text-anchor="start" x="1473.5" y="-60.8" font-family="Times,serif" font-size="14.00">reset_mux()</text>
+<text text-anchor="start" x="1473.5" y="-45.8" font-family="Times,serif" font-size="14.00">switch_mux(electrodes, roles, state)</text>
+<text text-anchor="start" x="1473.5" y="-30.8" font-family="Times,serif" font-size="14.00">test_mux(channel, activation_time)</text>
+<text text-anchor="start" x="1473.5" y="-15.8" font-family="Times,serif" font-size="14.00">vab_square_wave(vab, cycle_duration, sampling_rate, cycles, polarity, duty_cycle, append)</text>
+</g>
+<!-- 11&#45;&gt;10 -->
+<g id="edge14" class="edge">
+<title>11&#45;&gt;10</title>
+<path fill="none" stroke="black" d="M1795.5,-347.13C1795.5,-362.38 1795.5,-378.08 1795.5,-393.96"/>
+<polygon fill="black" stroke="black" points="1795.5,-394.14 1799.5,-400.14 1795.5,-406.14 1791.5,-400.14 1795.5,-394.14"/>
+<text text-anchor="middle" x="1809.5" y="-376.8" font-family="Times,serif" font-size="14.00" fill="green">_hw</text>
+</g>
+<!-- 12 -->
+<g id="node13" class="node">
+<title>12</title>
+<polygon fill="none" stroke="black" points="2143.5,-90.5 2143.5,-264.5 2337.5,-264.5 2337.5,-90.5 2143.5,-90.5"/>
+<text text-anchor="middle" x="2240.5" y="-249.3" font-family="Times,serif" font-size="14.00">Pwr</text>
+<polyline fill="none" stroke="black" points="2143.5,-241.5 2337.5,-241.5 "/>
+<text text-anchor="start" x="2151.5" y="-226.3" font-family="Times,serif" font-size="14.00">connection</text>
+<text text-anchor="start" x="2151.5" y="-211.3" font-family="Times,serif" font-size="14.00">ctl</text>
+<text text-anchor="start" x="2151.5" y="-196.3" font-family="Times,serif" font-size="14.00">current</text>
+<text text-anchor="start" x="2151.5" y="-181.3" font-family="Times,serif" font-size="14.00">current_max</text>
+<text text-anchor="start" x="2151.5" y="-166.3" font-family="Times,serif" font-size="14.00">voltage</text>
+<text text-anchor="start" x="2151.5" y="-151.3" font-family="Times,serif" font-size="14.00">voltage_adjustable : bool</text>
+<polyline fill="none" stroke="black" points="2143.5,-143.5 2337.5,-143.5 "/>
+<text text-anchor="start" x="2151.5" y="-128.3" font-family="Times,serif" font-size="14.00">battery_voltage()</text>
+<text text-anchor="start" x="2151.5" y="-113.3" font-family="Times,serif" font-size="14.00">turn_off()</text>
+<text text-anchor="start" x="2151.5" y="-98.3" font-family="Times,serif" font-size="14.00">turn_on()</text>
+</g>
+<!-- 14 -->
+<g id="node15" class="node">
+<title>14</title>
+<polygon fill="none" stroke="black" points="2257,-579 2257,-768 2536,-768 2536,-579 2257,-579"/>
+<text text-anchor="middle" x="2396.5" y="-752.8" font-family="Times,serif" font-size="14.00">PwrAbstract</text>
+<polyline fill="none" stroke="black" points="2257,-745 2536,-745 "/>
+<text text-anchor="start" x="2265" y="-729.8" font-family="Times,serif" font-size="14.00">board_name</text>
+<text text-anchor="start" x="2265" y="-714.8" font-family="Times,serif" font-size="14.00">connection</text>
+<text text-anchor="start" x="2265" y="-699.8" font-family="Times,serif" font-size="14.00">ctl</text>
+<text text-anchor="start" x="2265" y="-684.8" font-family="Times,serif" font-size="14.00">current</text>
+<text text-anchor="start" x="2265" y="-669.8" font-family="Times,serif" font-size="14.00">exec_logger : NoneType, RootLogger</text>
+<text text-anchor="start" x="2265" y="-654.8" font-family="Times,serif" font-size="14.00">soh_logger : NoneType, RootLogger</text>
+<text text-anchor="start" x="2265" y="-639.8" font-family="Times,serif" font-size="14.00">voltage</text>
+<text text-anchor="start" x="2265" y="-624.8" font-family="Times,serif" font-size="14.00">voltage_adjustable</text>
+<polyline fill="none" stroke="black" points="2257,-617 2536,-617 "/>
+<text text-anchor="start" x="2265" y="-601.8" font-family="Times,serif" font-size="14.00">turn_off()</text>
+<text text-anchor="start" x="2265" y="-586.8" font-family="Times,serif" font-size="14.00">turn_on()</text>
+</g>
+<!-- 12&#45;&gt;14 -->
+<g id="edge6" class="edge">
+<title>12&#45;&gt;14</title>
+<path fill="none" stroke="black" d="M2267.67,-264.55C2294.41,-349.23 2335.27,-478.62 2363.78,-568.9"/>
+<polygon fill="none" stroke="black" points="2360.5,-570.13 2366.85,-578.61 2367.18,-568.02 2360.5,-570.13"/>
+</g>
+<!-- 13 -->
+<g id="node14" class="node">
+<title>13</title>
+<polygon fill="none" stroke="black" points="2355.5,-120.5 2355.5,-234.5 2549.5,-234.5 2549.5,-120.5 2355.5,-120.5"/>
+<text text-anchor="middle" x="2452.5" y="-219.3" font-family="Times,serif" font-size="14.00">Pwr</text>
+<polyline fill="none" stroke="black" points="2355.5,-211.5 2549.5,-211.5 "/>
+<text text-anchor="start" x="2363.5" y="-196.3" font-family="Times,serif" font-size="14.00">current</text>
+<text text-anchor="start" x="2363.5" y="-181.3" font-family="Times,serif" font-size="14.00">voltage</text>
+<text text-anchor="start" x="2363.5" y="-166.3" font-family="Times,serif" font-size="14.00">voltage_adjustable : bool</text>
+<polyline fill="none" stroke="black" points="2355.5,-158.5 2549.5,-158.5 "/>
+<text text-anchor="start" x="2363.5" y="-143.3" font-family="Times,serif" font-size="14.00">turn_off()</text>
+<text text-anchor="start" x="2363.5" y="-128.3" font-family="Times,serif" font-size="14.00">turn_on()</text>
+</g>
+<!-- 13&#45;&gt;14 -->
+<g id="edge7" class="edge">
+<title>13&#45;&gt;14</title>
+<path fill="none" stroke="black" d="M2446.13,-234.69C2436.93,-315.82 2419.78,-467.17 2408.25,-568.89"/>
+<polygon fill="none" stroke="black" points="2404.76,-568.55 2407.11,-578.88 2411.72,-569.34 2404.76,-568.55"/>
+</g>
+<!-- 15 -->
+<g id="node16" class="node">
+<title>15</title>
+<polygon fill="none" stroke="black" points="2567.5,-113 2567.5,-242 2695.5,-242 2695.5,-113 2567.5,-113"/>
+<text text-anchor="middle" x="2631.5" y="-226.8" font-family="Times,serif" font-size="14.00">Rx</text>
+<polyline fill="none" stroke="black" points="2567.5,-219 2695.5,-219 "/>
+<text text-anchor="start" x="2575.5" y="-203.8" font-family="Times,serif" font-size="14.00">adc_gain</text>
+<text text-anchor="start" x="2575.5" y="-188.8" font-family="Times,serif" font-size="14.00">adc_gain</text>
+<text text-anchor="start" x="2575.5" y="-173.8" font-family="Times,serif" font-size="14.00">connection</text>
+<text text-anchor="start" x="2575.5" y="-158.8" font-family="Times,serif" font-size="14.00">ctl</text>
+<text text-anchor="start" x="2575.5" y="-143.8" font-family="Times,serif" font-size="14.00">voltage</text>
+<polyline fill="none" stroke="black" points="2567.5,-136 2695.5,-136 "/>
+<text text-anchor="start" x="2575.5" y="-120.8" font-family="Times,serif" font-size="14.00">adc_gain_auto()</text>
+</g>
+<!-- 18 -->
+<g id="node19" class="node">
+<title>18</title>
+<polygon fill="none" stroke="black" points="2638,-586.5 2638,-760.5 2917,-760.5 2917,-586.5 2638,-586.5"/>
+<text text-anchor="middle" x="2777.5" y="-745.3" font-family="Times,serif" font-size="14.00">RxAbstract</text>
+<polyline fill="none" stroke="black" points="2638,-737.5 2917,-737.5 "/>
+<text text-anchor="start" x="2646" y="-722.3" font-family="Times,serif" font-size="14.00">adc_gain</text>
+<text text-anchor="start" x="2646" y="-707.3" font-family="Times,serif" font-size="14.00">board_name</text>
+<text text-anchor="start" x="2646" y="-692.3" font-family="Times,serif" font-size="14.00">connection</text>
+<text text-anchor="start" x="2646" y="-677.3" font-family="Times,serif" font-size="14.00">ctl</text>
+<text text-anchor="start" x="2646" y="-662.3" font-family="Times,serif" font-size="14.00">exec_logger : NoneType, RootLogger</text>
+<text text-anchor="start" x="2646" y="-647.3" font-family="Times,serif" font-size="14.00">sampling_rate</text>
+<text text-anchor="start" x="2646" y="-632.3" font-family="Times,serif" font-size="14.00">soh_logger : NoneType, RootLogger</text>
+<text text-anchor="start" x="2646" y="-617.3" font-family="Times,serif" font-size="14.00">voltage</text>
+<polyline fill="none" stroke="black" points="2638,-609.5 2917,-609.5 "/>
+<text text-anchor="start" x="2646" y="-594.3" font-family="Times,serif" font-size="14.00">adc_gain_auto()</text>
+</g>
+<!-- 15&#45;&gt;18 -->
+<g id="edge8" class="edge">
+<title>15&#45;&gt;18</title>
+<path fill="none" stroke="black" d="M2650.29,-242.07C2675.37,-326.93 2720.01,-477.97 2749.18,-576.68"/>
+<polygon fill="none" stroke="black" points="2745.85,-577.76 2752.04,-586.36 2752.56,-575.78 2745.85,-577.76"/>
+</g>
+<!-- 16 -->
+<g id="node17" class="node">
+<title>16</title>
+<polygon fill="none" stroke="black" points="2713.5,-128 2713.5,-227 2841.5,-227 2841.5,-128 2713.5,-128"/>
+<text text-anchor="middle" x="2777.5" y="-211.8" font-family="Times,serif" font-size="14.00">Rx</text>
+<polyline fill="none" stroke="black" points="2713.5,-204 2841.5,-204 "/>
+<text text-anchor="start" x="2721.5" y="-188.8" font-family="Times,serif" font-size="14.00">adc_gain</text>
+<text text-anchor="start" x="2721.5" y="-173.8" font-family="Times,serif" font-size="14.00">adc_gain : float</text>
+<text text-anchor="start" x="2721.5" y="-158.8" font-family="Times,serif" font-size="14.00">voltage</text>
+<polyline fill="none" stroke="black" points="2713.5,-151 2841.5,-151 "/>
+<text text-anchor="start" x="2721.5" y="-135.8" font-family="Times,serif" font-size="14.00">adc_gain_auto()</text>
+</g>
+<!-- 16&#45;&gt;18 -->
+<g id="edge9" class="edge">
+<title>16&#45;&gt;18</title>
+<path fill="none" stroke="black" d="M2777.5,-227.22C2777.5,-308.02 2777.5,-471.22 2777.5,-576.01"/>
+<polygon fill="none" stroke="black" points="2774,-576.27 2777.5,-586.27 2781,-576.27 2774,-576.27"/>
+</g>
+<!-- 17 -->
+<g id="node18" class="node">
+<title>17</title>
+<polygon fill="none" stroke="black" points="2859.5,-60.5 2859.5,-294.5 3047.5,-294.5 3047.5,-60.5 2859.5,-60.5"/>
+<text text-anchor="middle" x="2953.5" y="-279.3" font-family="Times,serif" font-size="14.00">Rx</text>
+<polyline fill="none" stroke="black" points="2859.5,-271.5 3047.5,-271.5 "/>
+<text text-anchor="start" x="2867.5" y="-256.3" font-family="Times,serif" font-size="14.00">adc_gain</text>
+<text text-anchor="start" x="2867.5" y="-241.3" font-family="Times,serif" font-size="14.00">adc_gain : float</text>
+<text text-anchor="start" x="2867.5" y="-226.3" font-family="Times,serif" font-size="14.00">ctl</text>
+<text text-anchor="start" x="2867.5" y="-211.3" font-family="Times,serif" font-size="14.00">io</text>
+<text text-anchor="start" x="2867.5" y="-196.3" font-family="Times,serif" font-size="14.00">mcp_board : MCP23008</text>
+<text text-anchor="start" x="2867.5" y="-181.3" font-family="Times,serif" font-size="14.00">pin_DG0 : DigitalInOut</text>
+<text text-anchor="start" x="2867.5" y="-166.3" font-family="Times,serif" font-size="14.00">pin_DG1 : DigitalInOut</text>
+<text text-anchor="start" x="2867.5" y="-151.3" font-family="Times,serif" font-size="14.00">pin_DG2 : DigitalInOut</text>
+<text text-anchor="start" x="2867.5" y="-136.3" font-family="Times,serif" font-size="14.00">voltage</text>
+<text text-anchor="start" x="2867.5" y="-121.3" font-family="Times,serif" font-size="14.00">voltage_gain</text>
+<text text-anchor="start" x="2867.5" y="-106.3" font-family="Times,serif" font-size="14.00">voltage_gain : int, float</text>
+<polyline fill="none" stroke="black" points="2859.5,-98.5 3047.5,-98.5 "/>
+<text text-anchor="start" x="2867.5" y="-83.3" font-family="Times,serif" font-size="14.00">adc_gain_auto()</text>
+<text text-anchor="start" x="2867.5" y="-68.3" font-family="Times,serif" font-size="14.00">voltage_gain_auto()</text>
+</g>
+<!-- 17&#45;&gt;18 -->
+<g id="edge10" class="edge">
+<title>17&#45;&gt;18</title>
+<path fill="none" stroke="black" d="M2912.12,-294.63C2881.51,-380.56 2840.32,-496.18 2811.59,-576.81"/>
+<polygon fill="none" stroke="black" points="2808.21,-575.88 2808.15,-586.47 2814.8,-578.22 2808.21,-575.88"/>
+</g>
+<!-- 19 -->
+<g id="node20" class="node">
+<title>19</title>
+<polygon fill="none" stroke="black" points="3065.5,-0.5 3065.5,-354.5 3361.5,-354.5 3361.5,-0.5 3065.5,-0.5"/>
+<text text-anchor="middle" x="3213.5" y="-339.3" font-family="Times,serif" font-size="14.00">Tx</text>
+<polyline fill="none" stroke="black" points="3065.5,-331.5 3361.5,-331.5 "/>
+<text text-anchor="start" x="3073.5" y="-316.3" font-family="Times,serif" font-size="14.00">adc_gain</text>
+<text text-anchor="start" x="3073.5" y="-301.3" font-family="Times,serif" font-size="14.00">adc_gain : int, float</text>
+<text text-anchor="start" x="3073.5" y="-286.3" font-family="Times,serif" font-size="14.00">connection</text>
+<text text-anchor="start" x="3073.5" y="-271.3" font-family="Times,serif" font-size="14.00">ctl</text>
+<text text-anchor="start" x="3073.5" y="-256.3" font-family="Times,serif" font-size="14.00">current</text>
+<text text-anchor="start" x="3073.5" y="-241.3" font-family="Times,serif" font-size="14.00">current_adjustable : bool</text>
+<text text-anchor="start" x="3073.5" y="-226.3" font-family="Times,serif" font-size="14.00">mcp_board : MCP23008</text>
+<text text-anchor="start" x="3073.5" y="-211.3" font-family="Times,serif" font-size="14.00">pin0 : DigitalInOut</text>
+<text text-anchor="start" x="3073.5" y="-196.3" font-family="Times,serif" font-size="14.00">pin1 : DigitalInOut</text>
+<text text-anchor="start" x="3073.5" y="-181.3" font-family="Times,serif" font-size="14.00">pin4 : DigitalInOut</text>
+<text text-anchor="start" x="3073.5" y="-166.3" font-family="Times,serif" font-size="14.00">polarity</text>
+<text text-anchor="start" x="3073.5" y="-151.3" font-family="Times,serif" font-size="14.00">polarity : int</text>
+<text text-anchor="start" x="3073.5" y="-136.3" font-family="Times,serif" font-size="14.00">pwr : NoneType</text>
+<text text-anchor="start" x="3073.5" y="-121.3" font-family="Times,serif" font-size="14.00">tx_bat</text>
+<text text-anchor="start" x="3073.5" y="-106.3" font-family="Times,serif" font-size="14.00">voltage_adjustable : bool</text>
+<polyline fill="none" stroke="black" points="3065.5,-98.5 3361.5,-98.5 "/>
+<text text-anchor="start" x="3073.5" y="-83.3" font-family="Times,serif" font-size="14.00">adc_gain_auto()</text>
+<text text-anchor="start" x="3073.5" y="-68.3" font-family="Times,serif" font-size="14.00">current_pulse()</text>
+<text text-anchor="start" x="3073.5" y="-53.3" font-family="Times,serif" font-size="14.00">inject(polarity, injection_duration)</text>
+<text text-anchor="start" x="3073.5" y="-38.3" font-family="Times,serif" font-size="14.00">turn_off()</text>
+<text text-anchor="start" x="3073.5" y="-23.3" font-family="Times,serif" font-size="14.00">turn_on()</text>
+<text text-anchor="start" x="3073.5" y="-8.3" font-family="Times,serif" font-size="14.00">voltage_pulse(voltage, length, polarity)</text>
+</g>
+<!-- 22 -->
+<g id="node23" class="node">
+<title>22</title>
+<polygon fill="none" stroke="black" points="3379.5,-534 3379.5,-813 3675.5,-813 3675.5,-534 3379.5,-534"/>
+<text text-anchor="middle" x="3527.5" y="-797.8" font-family="Times,serif" font-size="14.00">TxAbstract</text>
+<polyline fill="none" stroke="black" points="3379.5,-790 3675.5,-790 "/>
+<text text-anchor="start" x="3387.5" y="-774.8" font-family="Times,serif" font-size="14.00">adc_gain</text>
+<text text-anchor="start" x="3387.5" y="-759.8" font-family="Times,serif" font-size="14.00">board_name</text>
+<text text-anchor="start" x="3387.5" y="-744.8" font-family="Times,serif" font-size="14.00">connection</text>
+<text text-anchor="start" x="3387.5" y="-729.8" font-family="Times,serif" font-size="14.00">ctl</text>
+<text text-anchor="start" x="3387.5" y="-714.8" font-family="Times,serif" font-size="14.00">exec_logger : NoneType, RootLogger</text>
+<text text-anchor="start" x="3387.5" y="-699.8" font-family="Times,serif" font-size="14.00">injection_duration</text>
+<text text-anchor="start" x="3387.5" y="-684.8" font-family="Times,serif" font-size="14.00">injection_duration</text>
+<text text-anchor="start" x="3387.5" y="-669.8" font-family="Times,serif" font-size="14.00">polarity</text>
+<text text-anchor="start" x="3387.5" y="-654.8" font-family="Times,serif" font-size="14.00">pwr</text>
+<text text-anchor="start" x="3387.5" y="-639.8" font-family="Times,serif" font-size="14.00">soh_logger : NoneType, RootLogger</text>
+<text text-anchor="start" x="3387.5" y="-624.8" font-family="Times,serif" font-size="14.00">tx_bat</text>
+<text text-anchor="start" x="3387.5" y="-609.8" font-family="Times,serif" font-size="14.00">tx_sync</text>
+<polyline fill="none" stroke="black" points="3379.5,-602 3675.5,-602 "/>
+<text text-anchor="start" x="3387.5" y="-586.8" font-family="Times,serif" font-size="14.00">adc_gain_auto()</text>
+<text text-anchor="start" x="3387.5" y="-571.8" font-family="Times,serif" font-size="14.00">current_pulse()</text>
+<text text-anchor="start" x="3387.5" y="-556.8" font-family="Times,serif" font-size="14.00">inject(polarity, injection_duration)</text>
+<text text-anchor="start" x="3387.5" y="-541.8" font-family="Times,serif" font-size="14.00">voltage_pulse(voltage, length, polarity)</text>
+</g>
+<!-- 19&#45;&gt;22 -->
+<g id="edge11" class="edge">
+<title>19&#45;&gt;22</title>
+<path fill="none" stroke="black" d="M3325.53,-354.75C3361.06,-410.64 3399.94,-471.81 3434.02,-525.43"/>
+<polygon fill="none" stroke="black" points="3431.13,-527.4 3439.44,-533.97 3437.03,-523.65 3431.13,-527.4"/>
+</g>
+<!-- 20 -->
+<g id="node21" class="node">
+<title>20</title>
+<polygon fill="none" stroke="black" points="3379.5,-83 3379.5,-272 3675.5,-272 3675.5,-83 3379.5,-83"/>
+<text text-anchor="middle" x="3527.5" y="-256.8" font-family="Times,serif" font-size="14.00">Tx</text>
+<polyline fill="none" stroke="black" points="3379.5,-249 3675.5,-249 "/>
+<text text-anchor="start" x="3387.5" y="-233.8" font-family="Times,serif" font-size="14.00">adc_gain</text>
+<text text-anchor="start" x="3387.5" y="-218.8" font-family="Times,serif" font-size="14.00">adc_gain : float</text>
+<text text-anchor="start" x="3387.5" y="-203.8" font-family="Times,serif" font-size="14.00">current</text>
+<text text-anchor="start" x="3387.5" y="-188.8" font-family="Times,serif" font-size="14.00">polarity : int</text>
+<text text-anchor="start" x="3387.5" y="-173.8" font-family="Times,serif" font-size="14.00">tx_bat</text>
+<text text-anchor="start" x="3387.5" y="-158.8" font-family="Times,serif" font-size="14.00">voltage</text>
+<polyline fill="none" stroke="black" points="3379.5,-151 3675.5,-151 "/>
+<text text-anchor="start" x="3387.5" y="-135.8" font-family="Times,serif" font-size="14.00">adc_gain_auto()</text>
+<text text-anchor="start" x="3387.5" y="-120.8" font-family="Times,serif" font-size="14.00">current_pulse()</text>
+<text text-anchor="start" x="3387.5" y="-105.8" font-family="Times,serif" font-size="14.00">inject(state)</text>
+<text text-anchor="start" x="3387.5" y="-90.8" font-family="Times,serif" font-size="14.00">voltage_pulse(voltage, length, polarity)</text>
+</g>
+<!-- 20&#45;&gt;22 -->
+<g id="edge12" class="edge">
+<title>20&#45;&gt;22</title>
+<path fill="none" stroke="black" d="M3527.5,-272.29C3527.5,-343.13 3527.5,-441.77 3527.5,-523.39"/>
+<polygon fill="none" stroke="black" points="3524,-523.77 3527.5,-533.77 3531,-523.77 3524,-523.77"/>
+</g>
+<!-- 21 -->
+<g id="node22" class="node">
+<title>21</title>
+<polygon fill="none" stroke="black" points="3693.5,-0.5 3693.5,-354.5 3989.5,-354.5 3989.5,-0.5 3693.5,-0.5"/>
+<text text-anchor="middle" x="3841.5" y="-339.3" font-family="Times,serif" font-size="14.00">Tx</text>
+<polyline fill="none" stroke="black" points="3693.5,-331.5 3989.5,-331.5 "/>
+<text text-anchor="start" x="3701.5" y="-316.3" font-family="Times,serif" font-size="14.00">adc_gain</text>
+<text text-anchor="start" x="3701.5" y="-301.3" font-family="Times,serif" font-size="14.00">adc_gain : int, float</text>
+<text text-anchor="start" x="3701.5" y="-286.3" font-family="Times,serif" font-size="14.00">ctl</text>
+<text text-anchor="start" x="3701.5" y="-271.3" font-family="Times,serif" font-size="14.00">current</text>
+<text text-anchor="start" x="3701.5" y="-256.3" font-family="Times,serif" font-size="14.00">current_adjustable : bool</text>
+<text text-anchor="start" x="3701.5" y="-241.3" font-family="Times,serif" font-size="14.00">io</text>
+<text text-anchor="start" x="3701.5" y="-226.3" font-family="Times,serif" font-size="14.00">mcp_board : MCP23008</text>
+<text text-anchor="start" x="3701.5" y="-211.3" font-family="Times,serif" font-size="14.00">pin0 : DigitalInOut</text>
+<text text-anchor="start" x="3701.5" y="-196.3" font-family="Times,serif" font-size="14.00">pin1 : DigitalInOut</text>
+<text text-anchor="start" x="3701.5" y="-181.3" font-family="Times,serif" font-size="14.00">pin4 : DigitalInOut</text>
+<text text-anchor="start" x="3701.5" y="-166.3" font-family="Times,serif" font-size="14.00">polarity</text>
+<text text-anchor="start" x="3701.5" y="-151.3" font-family="Times,serif" font-size="14.00">polarity : int</text>
+<text text-anchor="start" x="3701.5" y="-136.3" font-family="Times,serif" font-size="14.00">pwr : NoneType</text>
+<text text-anchor="start" x="3701.5" y="-121.3" font-family="Times,serif" font-size="14.00">tx_bat</text>
+<text text-anchor="start" x="3701.5" y="-106.3" font-family="Times,serif" font-size="14.00">voltage_adjustable : bool</text>
+<polyline fill="none" stroke="black" points="3693.5,-98.5 3989.5,-98.5 "/>
+<text text-anchor="start" x="3701.5" y="-83.3" font-family="Times,serif" font-size="14.00">adc_gain_auto()</text>
+<text text-anchor="start" x="3701.5" y="-68.3" font-family="Times,serif" font-size="14.00">current_pulse()</text>
+<text text-anchor="start" x="3701.5" y="-53.3" font-family="Times,serif" font-size="14.00">inject(polarity, injection_duration)</text>
+<text text-anchor="start" x="3701.5" y="-38.3" font-family="Times,serif" font-size="14.00">turn_off()</text>
+<text text-anchor="start" x="3701.5" y="-23.3" font-family="Times,serif" font-size="14.00">turn_on()</text>
+<text text-anchor="start" x="3701.5" y="-8.3" font-family="Times,serif" font-size="14.00">voltage_pulse(voltage, length, polarity)</text>
+</g>
+<!-- 21&#45;&gt;22 -->
+<g id="edge13" class="edge">
+<title>21&#45;&gt;22</title>
+<path fill="none" stroke="black" d="M3729.47,-354.75C3693.94,-410.64 3655.06,-471.81 3620.98,-525.43"/>
+<polygon fill="none" stroke="black" points="3617.97,-523.65 3615.56,-533.97 3623.87,-527.4 3617.97,-523.65"/>
+</g>
+</g>
 </svg>
diff --git a/uml_diagrams/packages_uml_ohmpi.dot b/uml_diagrams/packages_uml_ohmpi.dot
index 8bb7d66ea4dd84b71a8761a9bc5370e73eaaee6a..d57d3be5340fdd6260e8e1ad79514cddfe78b9ac 100644
--- a/uml_diagrams/packages_uml_ohmpi.dot
+++ b/uml_diagrams/packages_uml_ohmpi.dot
@@ -11,32 +11,31 @@ rankdir=BT
 "7" [label="ohmpi.hardware_components.dummy_mux", shape="box"];
 "8" [label="ohmpi.hardware_components.dummy_rx", shape="box"];
 "9" [label="ohmpi.hardware_components.dummy_tx", shape="box"];
-"10" [label="ohmpi.hardware_components.mb_2024_rev_0_0", shape="box"];
-"11" [label="ohmpi.hardware_components.mux_2023_rev_0_0", shape="box"];
-"12" [label="ohmpi.hardware_components.mux_2024_rev_0_0", shape="box"];
-"13" [label="ohmpi.hardware_components.ohmpi_card_3_15", shape="box"];
+"10" [label="ohmpi.hardware_components.mb_2023_0_X", shape="box"];
+"11" [label="ohmpi.hardware_components.mb_2024_0_2", shape="box"];
+"12" [label="ohmpi.hardware_components.mux_2023_0_X", shape="box"];
+"13" [label="ohmpi.hardware_components.mux_2024_0_X", shape="box"];
 "14" [label="ohmpi.hardware_components.pwr_batt", shape="box"];
 "15" [label="ohmpi.hardware_components.pwr_dps5005", shape="box"];
-"16" [label="ohmpi.hardware_components.raspberry_pi_i2c", shape="box"];
-"17" [label="ohmpi.hardware_components.raspberry_pi_modbus", shape="box"];
-"18" [label="ohmpi.hardware_system", shape="box"];
-"19" [label="ohmpi.http_interface", shape="box"];
-"20" [label="ohmpi.logging_setup", shape="box"];
-"21" [label="ohmpi.mqtt_handler", shape="box"];
-"22" [label="ohmpi.ohmpi", shape="box"];
-"23" [label="ohmpi.plots", shape="box"];
-"24" [label="ohmpi.utils", shape="box"];
-"2" -> "24" [arrowhead="open", arrowtail="none"];
+"16" [label="ohmpi.hardware_components.raspberry_pi", shape="box"];
+"17" [label="ohmpi.hardware_system", shape="box"];
+"18" [label="ohmpi.http_interface", shape="box"];
+"19" [label="ohmpi.logging_setup", shape="box"];
+"20" [label="ohmpi.mqtt_handler", shape="box"];
+"21" [label="ohmpi.ohmpi", shape="box"];
+"22" [label="ohmpi.plots", shape="box"];
+"23" [label="ohmpi.utils", shape="box"];
+"2" -> "23" [arrowhead="open", arrowtail="none"];
 "4" -> "5" [arrowhead="open", arrowtail="none"];
-"5" -> "20" [arrowhead="open", arrowtail="none"];
+"5" -> "19" [arrowhead="open", arrowtail="none"];
+"6" -> "2" [arrowhead="open", arrowtail="none"];
 "6" -> "4" [arrowhead="open", arrowtail="none"];
-"6" -> "22" [arrowhead="open", arrowtail="none"];
 "7" -> "2" [arrowhead="open", arrowtail="none"];
 "7" -> "4" [arrowhead="open", arrowtail="none"];
 "8" -> "4" [arrowhead="open", arrowtail="none"];
-"8" -> "22" [arrowhead="open", arrowtail="none"];
+"8" -> "21" [arrowhead="open", arrowtail="none"];
+"9" -> "2" [arrowhead="open", arrowtail="none"];
 "9" -> "4" [arrowhead="open", arrowtail="none"];
-"9" -> "22" [arrowhead="open", arrowtail="none"];
 "10" -> "2" [arrowhead="open", arrowtail="none"];
 "10" -> "4" [arrowhead="open", arrowtail="none"];
 "11" -> "2" [arrowhead="open", arrowtail="none"];
@@ -49,21 +48,18 @@ rankdir=BT
 "15" -> "2" [arrowhead="open", arrowtail="none"];
 "15" -> "5" [arrowhead="open", arrowtail="none"];
 "16" -> "4" [arrowhead="open", arrowtail="none"];
-"16" -> "24" [arrowhead="open", arrowtail="none"];
+"16" -> "23" [arrowhead="open", arrowtail="none"];
 "17" -> "2" [arrowhead="open", arrowtail="none"];
-"17" -> "4" [arrowhead="open", arrowtail="none"];
-"17" -> "24" [arrowhead="open", arrowtail="none"];
+"17" -> "5" [arrowhead="open", arrowtail="none"];
+"17" -> "19" [arrowhead="open", arrowtail="none"];
+"17" -> "23" [arrowhead="open", arrowtail="none"];
 "18" -> "2" [arrowhead="open", arrowtail="none"];
-"18" -> "5" [arrowhead="open", arrowtail="none"];
-"18" -> "20" [arrowhead="open", arrowtail="none"];
-"18" -> "24" [arrowhead="open", arrowtail="none"];
+"19" -> "1" [arrowhead="open", arrowtail="none"];
 "19" -> "2" [arrowhead="open", arrowtail="none"];
-"20" -> "1" [arrowhead="open", arrowtail="none"];
-"20" -> "2" [arrowhead="open", arrowtail="none"];
-"20" -> "21" [arrowhead="open", arrowtail="none"];
-"22" -> "2" [arrowhead="open", arrowtail="none"];
-"22" -> "18" [arrowhead="open", arrowtail="none"];
-"22" -> "20" [arrowhead="open", arrowtail="none"];
-"22" -> "24" [arrowhead="open", arrowtail="none"];
-"23" -> "24" [arrowhead="open", arrowtail="none"];
+"19" -> "20" [arrowhead="open", arrowtail="none"];
+"21" -> "2" [arrowhead="open", arrowtail="none"];
+"21" -> "17" [arrowhead="open", arrowtail="none"];
+"21" -> "19" [arrowhead="open", arrowtail="none"];
+"21" -> "23" [arrowhead="open", arrowtail="none"];
+"22" -> "23" [arrowhead="open", arrowtail="none"];
 }
diff --git a/uml_diagrams/packages_uml_ohmpi.dot.png b/uml_diagrams/packages_uml_ohmpi.dot.png
index 62de687bf022763495108e836b24be473d3481b8..f69d4ef240878b1c8cd6aa39ccc36c315bb221db 100644
Binary files a/uml_diagrams/packages_uml_ohmpi.dot.png and b/uml_diagrams/packages_uml_ohmpi.dot.png differ