diff --git a/dev/test_mb_2023_4_mux_2023.py b/dev/test_mb_2023_4_mux_2023.py index 9dd195d0bfaa893fa836770444651d26431d5b0a..72cc18ce729df763826f03ee83aa143493c79d11 100644 --- a/dev/test_mb_2023_4_mux_2023.py +++ b/dev/test_mb_2023_4_mux_2023.py @@ -85,10 +85,10 @@ if within_ohmpi: print('Starting test with OhmPi.') k = OhmPi() # k.get_data() - # k.load_sequence(os.path.join(os.path.dirname(__file__), '../sequences/wenner16.txt')) - # k.reset_mux() + k.load_sequence(os.path.join(os.path.dirname(__file__), '../sequences/wenner16.txt')) + k.reset_mux() # k.run_multiple_sequences(sequence_delay=20, nb_meas=3) - # k.run_sequence(injection_duration=0.2) + k.run_sequence(injection_duration=0.2) # k.rs_check(tx_volt=4) # k.test_mux(mux_id=None, activation_time=0.2) # k._hw.switch_mux([A, B, M, N], state='on') diff --git a/doc/build/_sources/source_rst/api.rst.txt b/doc/build/_sources/source_rst/api.rst.txt index 20046317d371518eb69dc758ae4f891d2957c2df..c64a0baed94f49a95d7533067855d524fd96400b 100644 --- a/doc/build/_sources/source_rst/api.rst.txt +++ b/doc/build/_sources/source_rst/api.rst.txt @@ -7,6 +7,7 @@ API reference .. automodule:: ohmpi.ohmpi :members: - +.. automodule:: ohmpi.hardware_system + :members: diff --git a/doc/build/genindex.html b/doc/build/genindex.html index e8a94841cf5906b851fa5b284650a128c0f5d47e..e5d36b6869e2fd541cbfd6c3338fc6201a631348 100644 --- a/doc/build/genindex.html +++ b/doc/build/genindex.html @@ -141,6 +141,8 @@ module <ul> + <li><a href="source_rst/api.html#module-ohmpi.hardware_system">ohmpi.hardware_system</a> +</li> <li><a href="source_rst/api.html#module-ohmpi.ohmpi">ohmpi.ohmpi</a> </li> </ul></li> @@ -152,6 +154,13 @@ <td style="width: 33%; vertical-align: top;"><ul> <li><a href="source_rst/api.html#ohmpi.ohmpi.OhmPi">OhmPi (class in ohmpi.ohmpi)</a> </li> + <li> + ohmpi.hardware_system + + <ul> + <li><a href="source_rst/api.html#module-ohmpi.hardware_system">module</a> +</li> + </ul></li> </ul></td> <td style="width: 33%; vertical-align: top;"><ul> <li> diff --git a/doc/build/objects.inv b/doc/build/objects.inv index 6e4643b28e6620c4b78f85dc982d4170b8b0fd1f..c0227feeb21fa5482bda5ac12869f6440f9b1d7f 100644 Binary files a/doc/build/objects.inv and b/doc/build/objects.inv differ diff --git a/doc/build/py-modindex.html b/doc/build/py-modindex.html index e6d2812c8251e89d82261d13a9f8e499d6b12992..22aae7c957a39038f8f02d73fe01eee2776aeff3 100644 --- a/doc/build/py-modindex.html +++ b/doc/build/py-modindex.html @@ -96,6 +96,11 @@ <td> <code class="xref">ohmpi</code></td><td> <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="source_rst/api.html#module-ohmpi.hardware_system"><code class="xref">ohmpi.hardware_system</code></a></td><td> + <em></em></td></tr> <tr class="cg-1"> <td></td> <td>    diff --git a/doc/build/searchindex.js b/doc/build/searchindex.js index a813d674c9b81717a7cb1ef04ec4388329bbd9ba..5c9994577aaf96273330f55088da18c3e9905bf4 100644 --- a/doc/build/searchindex.js +++ b/doc/build/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["index", "source_rst/Ohmpi", "source_rst/api", "source_rst/archived_version", "source_rst/developing_hardware_components", "source_rst/gallery", "source_rst/hardware", "source_rst/hardware/assembling", "source_rst/hardware/hw_info", "source_rst/hardware/hw_pwr", "source_rst/hardware/hw_rpi", "source_rst/hardware/mb_2023", "source_rst/hardware/mb_2024", "source_rst/hardware/mux_2023", "source_rst/hardware/mux_2024", "source_rst/software", "source_rst/troubleshooting", "source_rst/v1.xx/V1_01", "source_rst/v1.xx/V1_02"], "filenames": ["index.rst", "source_rst/Ohmpi.rst", "source_rst/api.rst", "source_rst/archived_version.rst", "source_rst/developing_hardware_components.rst", "source_rst/gallery.rst", "source_rst/hardware.rst", "source_rst/hardware/assembling.rst", "source_rst/hardware/hw_info.rst", "source_rst/hardware/hw_pwr.rst", "source_rst/hardware/hw_rpi.rst", "source_rst/hardware/mb_2023.rst", "source_rst/hardware/mb_2024.rst", "source_rst/hardware/mux_2023.rst", "source_rst/hardware/mux_2024.rst", "source_rst/software.rst", "source_rst/troubleshooting.rst", "source_rst/v1.xx/V1_01.rst", "source_rst/v1.xx/V1_02.rst"], "titles": ["OHMPI: Open source and open hardware resistivity-meter", "OhmPi project", "API reference", "Archived versions", "Software interface to new hardware components", "Examples of applications", "Hardware", "Assembling the OhmPi", "OhmPi electronic design", "Power supply", "Raspberry Pi configuration", "Measurement board v2023", "Measurement board v2024", "MUX board v2023", "MUX board v2024", "Software and operation", "Troubleshooting", "OhmPi V 1.01 (limited to 32 electrodes)", "OhmPi V 1.02 (limited to 32 electrodes)"], "terms": {"releas": [0, 15], "v2024rc": 0, "date": [0, 17, 18], "nov": 0, "29": [0, 7, 17, 18], "2023": [0, 2], "start": [0, 2, 4, 6, 10, 13, 14, 15, 17, 18], "juli": 0, "2016": 0, "author": [0, 10, 17, 18], "r\u00e9mi": [0, 1, 2], "clement": [0, 1, 2], "nicola": [0, 1, 2], "forquet": [0, 1, 2], "yannick": [0, 1, 2], "fargier": [0, 1, 2], "vivien": [0, 1, 2], "duboi": [0, 1, 2], "h\u00e9l\u00e8ne": [0, 1, 2], "guyard": [0, 1, 2], "olivi": [0, 1, 2], "kaufmann": [0, 1, 2], "guillaum": [0, 1, 2], "blanchi": [0, 1, 2], "arnaud": [0, 1, 2], "watlet": [0, 1, 2], "target": 0, "user": [0, 10, 15, 17, 18], "research": 0, "develop": [0, 1, 4, 10, 11, 17, 18], "statu": 0, "some": [0, 4, 8, 15, 17, 18], "matur": 0, "progress": 0, "offici": 0, "guidelin": 0, "gener": [0, 2, 6, 8, 11, 13, 14, 15, 17, 18], "tutori": 0, "content": [0, 2], "project": [0, 2, 4, 7, 10, 11, 12, 13, 14, 15, 17, 18], "partner": 0, "cite": 0, "introduct": 0, "electron": [0, 1, 6, 7, 10, 11, 12, 13, 14, 15, 17, 18], "design": [0, 4, 6, 15, 17, 18], "measur": [0, 1, 2, 6, 7, 10, 13, 14, 15, 16], "board": [0, 2, 4, 6, 7, 10, 16], "v2023": [0, 6, 8, 15, 16], "v2024": [0, 6, 8, 16], "mux": [0, 2, 6, 7, 17, 18], "power": [0, 2, 6, 7, 11, 13, 14, 17, 18], "suppli": [0, 6, 7, 11, 13, 14, 17, 18], "raspberri": [0, 2, 6, 7, 11, 13, 14, 15], "pi": [0, 2, 6, 7, 11, 15], "configur": [0, 4, 6, 8], "assembl": [0, 1, 6, 10, 11, 12, 13, 14, 15, 17, 18], "softwar": [0, 2, 10, 17, 18], "oper": [0, 4, 7, 8, 10, 11], "system": [0, 4, 10, 11, 17, 18], "architectur": 0, "logger": [0, 1, 17, 18], "file": [0, 2, 4, 6, 10, 11, 17, 18], "interfac": [0, 2], "applic": [0, 1, 4, 6, 8], "api": [0, 15], "refer": [0, 7, 11, 13, 14, 15, 17, 18], "troubleshoot": 0, "issu": 0, "puls": [0, 2, 8, 11, 17, 18], "between": [0, 2, 7, 8, 11, 13, 14, 17, 18], "A": [0, 1, 2, 4, 6, 7, 8, 9, 15, 17, 18], "b": [0, 2, 6, 7, 8, 9], "valu": [0, 2, 8, 11, 13, 14, 17, 18], "given": [0, 2, 8, 15], "i": [0, 1, 2, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 17, 18], "correct": [0, 17, 18], "one": [0, 2, 7, 11, 15, 17, 18], "commun": [0, 1, 8, 15], "compon": [0, 8, 10, 15], "exampl": [0, 7, 11, 13, 14, 15, 17, 18], "new": [0, 10, 15, 16, 17, 18], "archiv": 0, "version": [0, 2, 4, 6, 10, 11, 15, 17, 18], "v": [0, 2, 3, 7, 8, 9, 11, 13, 14, 16], "1": [0, 2, 3, 4, 6, 7, 8, 10, 11, 13, 14, 15], "01": [0, 3, 11, 18], "limit": [0, 3, 11], "32": [0, 3, 7, 10, 11], "electrod": [0, 1, 2, 3, 6, 7, 8, 9, 11, 13, 14, 16], "02": [0, 3, 11, 17], "inra": [1, 2, 5], "reversa": [1, 17, 18], "villeurbann": 1, "franc": 1, "universit\u00e9": 1, "de": 1, "mon": 1, "belgium": 1, "ger": 1, "rro": 1, "univ": 1, "gustav": 1, "eiffel": 1, "ifsttar": [1, 2], "lyon": 1, "ig": [1, 2], "grenobl": 1, "alp": 1, "ilvo": 1, "merelbek": 1, "julien": 1, "ganc": 1, "emil": 1, "gro": 1, "et": [1, 11], "al": 1, "an": [1, 4, 6, 7, 8, 10, 11, 13, 14, 15, 16, 17, 18], "open": [1, 2, 4, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18], "sourc": [1, 4, 9, 10, 17, 18], "data": [1, 2, 8, 11, 15], "dedic": [1, 15], "electr": [1, 11], "resist": [1, 2, 7, 8, 11, 15, 16], "imag": [1, 10], "small": [1, 7, 8, 11, 15, 17, 18], "laboratori": [1, 7, 17, 18], "scale": [1, 8], "hardwarex": 1, "elsevi": 1, "2020": [1, 2], "8": [1, 7, 8, 10, 11, 13, 14, 15, 17, 18], "24": [1, 7, 11, 13, 14, 17, 18], "p": [1, 11, 13, 14], "ff10": 1, "1016": 1, "j": 1, "ohx": 1, "e00122ff": 1, "particip": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "all": [1, 2, 4, 7, 10, 11, 12, 13, 14, 15, 17, 18], "requir": [1, 4, 7, 10, 12, 15, 17, 18], "skill": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "respect": [1, 7, 8, 10, 11, 12, 13, 14, 15, 17, 18], "safeti": [1, 2, 7, 10, 11, 12, 13, 14, 15, 17, 18], "rule": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "must": [1, 2, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18], "profession": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "context": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "peopl": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "compet": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "The": [1, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "team": [1, 4, 7, 10, 11, 12, 13, 14, 15, 17, 18], "cannot": [1, 7, 8, 10, 11, 12, 13, 14, 15, 17, 18], "held": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "respons": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "ani": [1, 2, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18], "materi": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "human": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "damag": [1, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18], "which": [1, 2, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18], "would": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "associ": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "us": [1, 2, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "assembli": [1, 6, 7, 10, 12, 15], "equip": [1, 7, 8, 10, 11, 12, 13, 14, 15, 17, 18], "doe": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "work": [1, 4, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18], "after": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "you": [1, 4, 6, 7, 8, 10, 11, 13, 14, 15, 16, 17, 18], "mai": [1, 2, 10, 15, 16, 17, 18], "redistribut": 1, "modifi": [1, 4, 17, 18], "thi": [1, 2, 4, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18], "document": [1, 2, 6, 15, 17], "make": [1, 4, 8, 13, 14, 15, 17, 18], "product": [1, 11, 13, 14], "under": [1, 2, 7, 17, 18], "term": [1, 4], "cern": [1, 2], "ohl": [1, 2], "v2": [1, 2], "distribut": [1, 8], "without": [1, 2, 8, 13, 14, 16, 17, 18], "express": [1, 4], "OR": 1, "impli": [1, 13, 14], "warranti": 1, "includ": [1, 2, 4, 10, 13, 14, 15, 17, 18], "OF": 1, "merchant": 1, "satisfactori": 1, "qualiti": 1, "AND": 1, "fit": 1, "FOR": 1, "particular": 1, "purpos": [1, 7, 17, 18], "pleas": [1, 7, 15, 17, 18], "see": [1, 2, 8, 15, 16, 17, 18], "condit": 1, "present": [1, 4, 7, 13, 14, 17, 18], "low": [1, 2, 17, 18], "cost": [1, 2, 4, 11, 13, 14, 17, 18], "hardwar": [1, 2, 15, 17, 18], "meter": [1, 2, 7, 17, 18], "provid": [1, 15, 17, 18], "scientif": 1, "robust": [1, 16, 17, 18], "flexibl": 1, "tool": 1, "experi": [1, 15, 16, 17, 18], "call": [1, 7, 8, 10, 13, 14, 15], "basic": [1, 4], "meterfeatur": 1, "current": [1, 2, 6, 8, 9, 11, 15, 16], "inject": [1, 2, 6, 8, 9, 11, 15], "function": [1, 4, 15, 17, 18], "multiplex": [1, 2, 6, 7, 13, 14], "allow": [1, 2, 11, 13, 14, 15, 17, 18], "perform": [1, 2, 4, 10, 17, 18], "automat": [1, 15, 17, 18], "up": [1, 6, 8, 9, 10, 13, 14, 15, 16, 17, 18], "64": [1, 11, 13, 14, 17, 18], "": [1, 2, 11, 13, 14, 15, 16, 17, 18], "philosophi": 1, "fulli": 1, "toolto": 1, "surfac": 1, "anyon": 1, "who": 1, "want": [1, 18], "get": [1, 2, 10, 11, 15, 17, 18], "involv": [1, 15], "welcom": [1, 4], "join": 1, "creat": [2, 4, 8, 10, 15, 17, 18], "januari": 2, "6": [2, 7, 10, 11, 13, 14, 17, 18], "updat": [2, 14, 15], "dec": 2, "depth": 2, "refactor": 2, "licens": 2, "later": 2, "gnu": [2, 17, 18], "public": [2, 17, 18], "v3": 2, "0": [2, 6, 8, 11, 13, 14, 15, 17, 18], "ohmpi": [2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 15, 16], "py": [2, 4, 11, 13, 14, 15, 17, 18], "program": [2, 7, 10, 17, 18], "control": [2, 6, 8, 9, 11, 15, 17, 18], "within": [2, 4, 10, 15, 17, 18], "umon": 2, "fnr": 2, "ulieg": 2, "class": [2, 4, 15], "set": [2, 10, 11, 15, 17, 18], "none": 2, "sequenc": [2, 15, 17, 18], "mqtt": 2, "true": [2, 15], "attribut": [2, 17, 18], "method": [2, 4], "get_deprecated_method": 2, "read_quad": 2, "stop": 2, "static": 2, "append_and_sav": 2, "filenam": 2, "str": 2, "last_measur": 2, "dict": [2, 11], "fw_in_csv": 2, "fw_in_zip": 2, "cmd_id": [2, 15], "append": 2, "save": [2, 10, 17, 18], "last": [2, 18], "paramet": [2, 11, 15], "csv": [2, 17, 18], "taken": [2, 15], "form": 2, "python": [2, 4, 6], "dictionari": [2, 4], "bool": 2, "option": [2, 10, 15, 17, 18], "wether": 2, "full": [2, 17, 18], "waveform": 2, "line": [2, 8, 11, 13, 14, 16, 17, 18], "per": [2, 11, 13, 14, 17, 18], "quadrupol": [2, 15, 17, 18], "As": [2, 8, 17, 18], "read": 2, "have": [2, 4, 8, 10, 11, 13, 14, 15, 16, 17, 18], "differ": [2, 6, 7, 8, 10, 11, 13, 14, 15, 17, 18], "length": [2, 7, 17, 18], "ar": [2, 3, 4, 7, 8, 9, 10, 11, 15, 16, 17, 18], "pad": 2, "nan": 2, "If": [2, 4, 10, 11, 16, 17, 18], "default": [2, 13, 14, 15], "from": [2, 7, 8, 13, 14, 15, 16, 17, 18], "json": [2, 15, 18], "separ": [2, 15], "long": [2, 7, 8, 13, 14], "format": [2, 15], "zip": [2, 15], "spare": 2, "space": [2, 11, 13, 14], "uniqu": 2, "command": [2, 10, 15, 17, 18], "identifi": [2, 13, 14], "download_data": 2, "folder": [2, 10, 17, 18], "download": [2, 15, 17, 18], "easili": [2, 4, 15, 16], "get_data": 2, "survey_nam": 2, "avail": [2, 4, 9, 15, 17, 18], "list": [2, 10], "alreadi": [2, 8], "html": [2, 15], "so": [2, 7, 8, 17, 18], "won": 2, "t": [2, 11, 13, 14, 15, 16], "return": [2, 15, 17, 18], "again": 2, "onli": [2, 4, 8, 9, 13, 14], "interrupt": [2, 15], "acquisit": [2, 15], "load_sequ": [2, 15], "path": [2, 4, 8, 10, 17, 18], "txt": [2, 10, 15, 17, 18], "m": [2, 7, 8, 10, 11, 13, 14, 17, 18], "n": [2, 6, 7, 8, 11, 13, 14, 15, 17, 18], "index": [2, 15], "numpi": [2, 10, 15, 17, 18], "ndarrai": 2, "arrai": [2, 15, 17, 18], "shape": [2, 15], "number": [2, 11, 13, 14, 15, 17, 18], "4": [2, 7, 8, 10, 11, 13, 14, 15, 16, 17, 18], "quit": [2, 16], "remove_data": 2, "remov": 2, "export_path": [2, 18], "raspberrypi": [2, 6, 8, 9, 10], "repeat_sequ": 2, "kwarg": [2, 15], "ident": 2, "run_multiple_sequ": [2, 15], "reset_mux": 2, "switch": [2, 8, 17, 18], "off": [2, 8], "relai": [2, 8, 10, 11, 13, 14, 16, 17, 18], "restart": 2, "rs_check": [2, 15], "tx_volt": 2, "5": [2, 7, 8, 10, 11, 13, 14, 15, 16, 17, 18], "check": [2, 6, 10, 15, 16, 17, 18], "contact": [2, 11, 13, 14, 15, 17, 18], "strategi": [2, 4], "we": [2, 6, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18], "just": [2, 11, 18], "vab": 2, "assum": 2, "12v": [2, 6, 7, 8, 11, 13, 14, 17, 18], "batteri": [2, 6, 7, 11, 17, 18], "comput": [2, 10, 17, 18], "rab": 2, "float": [2, 8], "voltag": [2, 6, 7, 8, 11, 16, 17, 18], "run_invers": 2, "elec_spac": 2, "run": [2, 7, 10, 11, 13, 14, 15, 17, 18], "simpl": [2, 17, 18], "2d": 2, "invers": 2, "resipi": 2, "http": [2, 10, 11, 13, 14, 15, 17, 18], "gitlab": [2, 15, 17, 18], "com": [2, 11, 13, 14, 15, 17, 18], "hkex": 2, "string": [2, 15], "survei": 2, "invert": 2, "extens": 2, "same": [2, 7, 8, 15, 17, 18], "everywher": 2, "addit": [2, 8, 15, 17, 18], "keyword": 2, "argument": [2, 15], "pass": [2, 7, 15], "For": [2, 8, 10, 11, 13, 14, 15, 17, 18], "instanc": [2, 8, 10], "reg_mod": 2, "batch": 2, "2": [2, 4, 7, 8, 10, 11, 13, 14, 15, 17, 18], "time": [2, 8, 10, 13, 14, 15, 17, 18], "laps": 2, "more": [2, 6, 7, 8, 15, 16], "inform": 2, "io": [2, 17, 18], "xzv": 2, "each": [2, 7, 8, 10, 13, 14, 17, 18], "dictionnari": 2, "kei": [2, 11], "x": [2, 13, 14, 17, 18], "z": 2, "centroid": 2, "element": 2, "run_measur": [2, 15], "quad": 2, "nb_stack": [2, 15], "injection_dur": [2, 15, 17, 18], "duty_cycl": 2, "autogain": [2, 15], "constant": 2, "best_tx_injtim": 2, "vab_max": 2, "iab_max": 2, "vmn_max": 2, "vmn_min": 2, "transfer": 2, "iter": 2, "int": 2, "label": 2, "switch_mux_on": [2, 15], "realli": 2, "rout": 2, "stack": [2, 8, 15, 17, 18], "consid": [2, 7], "two": [2, 4, 8, 9, 11, 13, 14, 15, 16, 17, 18], "posit": [2, 7, 17, 18], "neg": [2, 17, 18], "look": 2, "best": [2, 4], "second": [2, 7, 8, 15, 17, 18], "duti": 2, "cycl": [2, 8, 15], "squar": 2, "wave": 2, "defin": [2, 4, 7, 15], "adjust": [2, 11, 17, 18], "otherwis": 2, "either": [2, 6, 10, 17, 18], "vmax": 2, "reach": [2, 16], "maximum": [2, 9, 15, 17, 18], "iab": 2, "exceed": 2, "vmin": 2, "least": 2, "appli": [2, 17, 18], "e": [2, 5, 15, 17, 18], "short": [2, 15], "prior": 2, "ensur": [2, 8, 10, 17, 18], "bound": 2, "can": [2, 6, 7, 8, 9, 10, 15, 16, 17, 18], "adapt": [2, 4, 11, 15, 17, 18], "To": [2, 11, 13, 14, 15, 16, 17, 18], "bypass": 2, "befor": [2, 7, 8, 13, 14, 15, 17, 18], "should": [2, 4, 7, 8, 10, 11, 13, 14, 15, 17, 18], "equal": [2, 17, 18], "recpommand": 2, "config": [2, 4, 11, 15, 17, 18], "spec": 2, "vmn": 2, "minimum": [2, 7], "desir": [2, 15], "todo": [2, 5], "chang": [2, 4, 11, 13, 14, 15, 16], "specifi": [2, 10, 17, 18], "impos": 2, "sequence_delai": [2, 15, 17, 18], "nb_mea": [2, 15], "multipl": [2, 8, 10, 15], "thread": [2, 15], "monitor": [2, 7, 15, 17, 18], "mode": [2, 8], "other": [2, 7, 15, 17, 18], "repeat": [2, 7, 15, 17, 18], "help": [2, 4, 7, 8, 15], "info": 2, "run_sequ": [2, 15], "synchron": [2, 15], "block": [2, 7, 17, 18], "main": [2, 15, 17, 18], "run_sequence_async": [2, 15], "properti": 2, "set_sequ": [2, 15], "acquir": 2, "array_lik": 2, "shutdown": [2, 11], "switch_mux_off": [2, 15], "integ": 2, "repres": [2, 13, 14, 17, 18], "bypass_check": 2, "fals": 2, "r": [2, 17, 18], "test_mux": 2, "activation_tim": 2, "mux_id": 2, "interact": [2, 4, 15], "test": [2, 4, 7, 10, 11, 13, 14, 15, 17, 18], "dure": [2, 10, 17, 18], "activ": [2, 6, 13, 14], "id": [2, 6, 15], "mux_board": 2, "update_set": [2, 15], "nb_electrod": [2, 15, 17, 18], "need": [2, 6, 8, 9, 11, 13, 14, 15, 16, 17, 18], "total": [2, 11, 13, 14, 17, 18], "delai": [2, 17, 18], "compris": 2, "where": [2, 4, 6, 8, 10, 15, 17, 18], "export": [2, 10], "timestamp": 2, "ad": [2, 15, 17, 18], "These": [3, 6, 8, 15, 16, 17, 18], "support": [3, 10], "anymor": [3, 16], "draft": 4, "TO": [4, 14, 16], "BE": [4, 14, 16], "review": [4, 16], "section": [4, 6, 15, 17, 18], "intend": 4, "part": [4, 6, 8, 16, 17, 18], "It": [4, 9, 10, 13, 14, 15, 16, 17, 18], "advic": [4, 16], "practic": [4, 17, 18], "contribut": 4, "howev": [4, 8, 17, 18], "order": [4, 15, 17, 18], "maintain": 4, "track": [4, 17, 18], "promot": 4, "exchang": 4, "reus": 4, "necessari": [4, 7, 10, 13, 14, 17, 18], "contributor": 4, "ideal": 4, "follow": [4, 7, 8, 10, 11, 13, 14, 15, 17, 18], "few": 4, "step": [4, 10, 11, 13, 14, 17, 18], "case": [4, 10, 15, 16, 17, 18], "distinguish": 4, "when": [4, 7, 9, 15, 16, 17, 18], "deal": 4, "compli": 4, "wai": [4, 10, 17, 18], "Such": 4, "typic": [4, 8, 15, 17, 18], "focu": 4, "improv": [4, 18], "exist": [4, 6, 17, 18], "reduc": [4, 8], "rang": [4, 16, 17, 18], "specif": [4, 6, 15, 17, 18], "newli": 4, "expos": 4, "minim": 4, "hardware_system": 4, "type": [4, 10, 13, 14, 17, 18], "introduc": [4, 15, 17, 18], "do": [4, 7, 13, 14, 15], "singl": [4, 15, 17, 18], "also": [4, 8, 9, 10, 15, 17, 18], "discuss": 4, "ohmpi_hardwar": 4, "initi": 4, "veri": [4, 8, 18], "earli": 4, "stage": 4, "investig": 4, "implement": [4, 15], "solut": [4, 17, 18], "readi": 4, "first": [4, 7, 8, 10, 13, 14, 15], "devic": [4, 8, 11, 13, 14], "conceiv": 4, "recommend": [4, 10, 15, 17, 18], "import": [4, 15], "kicad": 4, "both": [4, 17, 18], "schema": 4, "pcb": [4, 11, 13, 14, 17, 18], "share": 4, "alwai": 4, "your": [4, 6, 10, 11, 13, 14, 17, 18], "branch": 4, "copi": [4, 10, 15], "similar": [4, 16], "modul": [4, 6, 8, 17, 18], "store": [4, 15], "hardware_compon": 4, "directori": [4, 10, 15, 17, 18], "In": [4, 8, 10, 11, 13, 14, 16, 17, 18], "base": [4, 10, 13, 14, 15, 17, 18], "relev": [4, 7], "abstract": 4, "abstract_hardware_compon": 4, "name": [4, 13, 14, 15, 17, 18], "accord": [4, 8, 17, 18], "sure": [4, 15, 17, 18], "place": [4, 7, 8, 16, 17, 18], "describ": [4, 7, 10, 11, 17, 18], "hardware_config": 4, "config_xxx": 4, "xxx": 4, "replac": [4, 16, 18], "3": [4, 7, 8, 10, 11, 13, 14, 15, 17, 18], "script": [4, 13, 14, 15], "write": [4, 11, 13, 14, 15, 17, 18], "code": [4, 10, 13, 14, 17, 18], "conduct": [4, 17, 18], "g": [5, 11, 17, 18], "rocherfort": 5, "contain": [6, 7, 10, 15, 17, 18], "build": [6, 13, 14, 17, 18], "compos": [6, 7], "mb": 6, "address": [6, 8, 11, 17, 18], "pwr": 6, "advanc": [6, 15], "ctrl": [6, 17, 18], "combin": [6, 13, 14], "upgrad": [6, 18], "c": [6, 17, 18], "valid": [6, 17, 18], "regul": 6, "dps5005": 6, "o": [6, 7, 11, 13, 14, 15], "instal": [6, 7, 11, 13, 14, 15], "virtual": 6, "environ": 6, "packag": [6, 15], "thonni": [6, 11, 15], "cut": 7, "ribbon": [7, 13, 14], "cabl": [7, 10, 11, 13, 14, 17, 18], "16": [7, 8, 11, 13, 14, 17, 18], "wire": [7, 8, 10, 13, 14, 17, 18], "proper": 7, "about": [7, 8], "5m": [7, 11], "correspond": [7, 17], "crimp": [7, 17, 18], "idc": 7, "connector": [7, 13, 14, 17, 18], "suitabl": [7, 17, 18], "clamp": 7, "pai": [7, 17, 18], "attent": [7, 17, 18], "direct": [7, 15, 17, 18], "unbalanc": 7, "perpendicular": 7, "mount": [7, 11, 13, 14, 17, 18], "possibl": [7, 16, 17, 18], "flush": 7, "9": [7, 10, 11, 13, 14, 17, 18], "spacer": [7, 11, 13, 14], "abov": [7, 17, 18], "below": [7, 8, 10, 15, 17, 18], "profil": 7, "view": [7, 11], "7": [7, 10, 11, 13, 14, 17, 18], "50": [7, 9, 11, 13, 14, 17, 18], "cm": [7, 13, 14, 17, 18], "color": 7, "here": [7, 13, 14, 18], "yellow": 7, "strip": [7, 11, 13, 14, 17, 18], "tin": 7, "end": [7, 17, 18], "screw": [7, 11, 13, 14, 17, 18], "termin": [7, 10, 11, 13, 14, 15, 17, 18], "red": [7, 11, 15, 17, 18], "black": [7, 11, 17, 18], "left": [7, 11], "shown": [7, 17, 18], "pictur": 7, "12": [7, 8, 11, 13, 14, 17, 18], "ii": 7, "gnd": [7, 17, 18], "nois": 7, "often": [7, 8], "heard": 7, "clip": 7, "10": [7, 11, 13, 14, 15, 17, 18], "11": [7, 11, 17, 18], "input": [7, 8, 11, 17, 18], "right": [7, 11], "fix": [7, 11], "13": [7, 11, 13, 14, 17, 18], "connect": [7, 8, 9, 11, 13, 14, 15, 16], "14": [7, 11, 13, 14], "15": [7, 11, 13, 14, 17, 18], "previou": 7, "procedur": 7, "17": [7, 11, 17, 18], "purpl": 7, "its": [7, 10, 13, 14, 15, 17, 18], "18": [7, 11, 17, 18], "third": [7, 15], "19": [7, 11, 17, 18], "fourth": 7, "nylon": 7, "hex": [7, 13, 14], "photograph": 7, "detail": [7, 8, 15, 17], "20": [7, 11, 17, 18], "4th": 7, "togeth": [7, 17, 18], "note": [7, 13, 14, 17, 18], "could": [7, 11, 17, 18], "previous": [7, 10, 17, 18], "21": [7, 11, 17, 18], "tie": 7, "22": [7, 11, 17, 18], "23": [7, 11, 13, 14, 17, 18], "pvc": 7, "plate": 7, "dimens": 7, "200": 7, "mm": [7, 11, 13, 14, 17, 18], "150": [7, 8, 11, 17, 18], "drill": 7, "remain": [7, 17, 18], "metal": 7, "tighten": 7, "25": [7, 11, 13, 14, 17, 18], "rpi": [7, 10, 17, 18], "access": [7, 10, 15, 17, 18], "usb": 7, "port": [7, 11], "mark": [7, 11], "hole": [7, 17, 18], "26": [7, 17, 18], "add": [7, 17, 18], "27": [7, 13, 14, 17, 18], "attach": 7, "washer": 7, "nut": 7, "28": 7, "card": [7, 10, 11, 13, 14], "come": 7, "out": [7, 10, 17, 18], "30": [7, 13, 14, 17, 18], "gpio": [7, 8, 10, 13, 14, 17, 18], "output": [7, 11, 15, 17, 18], "pre": [7, 11], "led": 7, "simpli": [7, 10, 17, 18], "temporari": 7, "modif": [7, 10, 17, 18], "orang": 7, "31": [7, 11, 13, 14], "brown": 7, "blue": [7, 17, 18], "top": [7, 11, 15], "secur": [7, 15], "33": 7, "34": 7, "zoom": [7, 13, 14], "35": [7, 11], "36": [7, 11, 17, 18], "37": [7, 17, 18], "38": [7, 17, 18], "sd": [7, 10, 11, 17, 18], "mous": [7, 10, 17, 18], "keyboard": [7, 10, 17, 18], "hdmi": [7, 10], "39": [7, 11, 13, 14, 17, 18], "deliv": [7, 17, 18], "12vdc": 7, "enjoi": 7, "integr": [8, 11], "mn": [8, 16], "ab": 8, "polar": [8, 17, 18], "half": [8, 15], "explan": 8, "understand": [8, 15], "redirect": 8, "reader": 8, "datasheet": 8, "done": [8, 10, 15, 17, 18], "through": [8, 15, 17, 18], "adc": [8, 11, 16, 17, 18], "analog": [8, 11, 17, 18], "digit": [8, 11, 13, 14, 17, 18], "convert": [8, 11, 17, 18], "ads1115": [8, 11, 16, 17, 18], "bit": [8, 11, 17, 18], "programm": 8, "gain": [8, 11, 15, 17, 18], "pga": 8, "mean": 8, "factor": 8, "digitis": 8, "Its": [8, 17, 18], "vari": 8, "With": [8, 17, 18], "precis": [8, 11, 17, 18], "076": 8, "mv": 8, "beyond": 8, "larger": 8, "our": [8, 17, 18], "divid": [8, 17, 18], "receiv": [8, 15], "mb_2023": 8, "resistor": [8, 11, 13, 14, 16, 17, 18], "bridg": [8, 17, 18], "across": 8, "seri": [8, 17, 18], "300": 8, "ohm": [8, 11, 17, 18], "anoth": [8, 10, 16, 17, 18], "techniqu": 8, "consist": [8, 16, 17, 18], "opamp": 8, "amplifi": [8, 11, 17, 18], "known": [8, 10, 17, 18], "down": [8, 17, 18], "high": [8, 17, 18], "imped": [8, 11, 17, 18], "inde": [8, 17, 18], "leak": 8, "while": 8, "affect": 8, "2024": 8, "mb_2024": 8, "differenti": 8, "model": [8, 10, 11, 17, 18], "ground": [8, 11, 16, 17, 18], "enabl": [8, 9, 15, 17, 18], "u": [8, 9], "much": 8, "higher": [8, 11, 18], "too": 8, "larg": 8, "usual": 8, "accur": [8, 17, 18], "shunt": [8, 11, 16], "ha": [8, 10, 13, 14, 16, 17, 18], "tini": 8, "being": [8, 17, 18], "ina282": [8, 11], "via": [8, 10, 16, 17, 18], "click": [8, 10, 16, 17, 18], "ina": 8, "equival": [8, 11, 17, 18], "solder": [8, 11, 17, 18], "revers": [8, 17, 18], "four": [8, 11], "optic": [8, 11, 16], "mechan": [8, 13, 14, 15, 16, 17, 18], "transit": 8, "mcp2308": 8, "expand": [8, 13, 14], "gpi": 8, "sda": [8, 16], "scl": [8, 16], "i2c": [8, 10, 11, 13, 14, 16], "protocol": [8, 15, 16, 17, 18], "send": 8, "clock": 8, "transmit": 8, "pull": [8, 16], "rest": [8, 16], "5v": [8, 11, 16, 17, 18], "thei": [8, 15, 16, 17, 18], "entri": 8, "mcp23017": [8, 13, 14], "becaus": 8, "mani": 8, "bu": 8, "tcaxxxx": 8, "itself": [8, 15], "rapsberrypi": 8, "now": [9, 17, 18], "actual": [9, 17, 18], "henc": 9, "aliment": 9, "modbu": 9, "quantiti": [10, 17, 18], "micro": [10, 11, 17, 18], "go": [10, 13, 14, 15], "instruct": [10, 15], "well": [10, 15, 17, 18], "websit": [10, 17, 18], "watch": [10, 17, 18], "video": [10, 17, 18], "how": [10, 17, 18], "latest": [10, 17, 18], "stabl": [10, 17, 18], "complet": [10, 11], "raspbian": [10, 17, 18], "visit": 10, "org": [10, 15], "en": 10, "were": [10, 11, 17, 18], "onc": [10, 15, 16, 17, 18], "been": [10, 13, 14, 15, 17, 18], "spi": [10, 17, 18], "remot": [10, 15, 17, 18], "deactiv": [10, 17, 18], "gui": [10, 17, 18], "menu": [10, 17, 18], "failur": [10, 17, 18], "carri": [10, 17, 18], "task": [10, 17, 18], "caus": [10, 16, 17, 18], "shield": [10, 17, 18], "parallel": 10, "interpret": [10, 11, 17, 18], "discret": 10, "util": [10, 15], "protect": 10, "problem": 10, "depend": [10, 15, 17, 18], "libatla": [10, 17, 18], "dev": [10, 17, 18], "librari": [10, 17, 18], "sudo": [10, 17, 18], "apt": [10, 17, 18], "strongli": [10, 17, 18], "gather": [10, 17, 18], "python3": [10, 17, 18], "venv": [10, 17, 18], "bin": [10, 17, 18], "suffici": [10, 17, 18], "meet": [10, 17, 18], "cflag": 10, "fcommon": 10, "pip": [10, 17, 18], "adafruit": [10, 11, 13, 14, 17, 18], "blinka": [10, 17, 18], "panda": [10, 17, 18], "circuitpython": [10, 17, 18], "ads1x15": [10, 17, 18], "tca9548a": [10, 13, 14], "mcp230xx": 10, "gpiozero": 10, "met": [10, 17, 18], "leav": [10, 17, 18], "decid": [10, 17, 18], "setup": [10, 17, 18], "pythonid": [10, 17, 18], "root": [10, 17, 18], "usr": [10, 17, 18], "select": [10, 13, 14, 17, 18], "window": [10, 15, 17, 18], "On": [10, 17, 18], "altern": [10, 17, 18], "button": [10, 17, 18], "appear": [10, 11, 13, 14, 17, 18], "locat": [10, 17, 18], "execut": [10, 15, 17, 18], "find": [10, 17, 18], "home": [10, 15, 17, 18], "tab": [10, 15, 17, 18], "close": [10, 16, 17, 18], "ok": [10, 17, 18], "v1": [11, 17, 18], "0x": 11, "unit": [11, 13, 14, 17, 18], "128": [11, 13, 14], "temperatur": [11, 17, 18], "consumpt": [11, 15, 17, 18], "cpu": [11, 17, 18], "w": [11, 17, 18], "40": [11, 13, 14, 17, 18], "ma": [11, 17, 18], "min": [11, 17, 18], "durat": [11, 15, 17, 18], "80": 11, "mohm": [11, 17, 18], "storag": [11, 17, 18], "resolut": [11, 15, 17, 18], "manufactur": [11, 13, 14, 17, 18], "web": [11, 13, 14], "58": [11, 17, 18], "75": 11, "www": [11, 13, 14, 17, 18], "mouser": [11, 13, 14], "fr": [11, 13, 14, 17, 18], "productdetail": [11, 13, 14], "seeed": 11, "studio": 11, "102110421": 11, "q": [11, 13, 14], "7mvldsj5uaxen3lyyh3sqw": 11, "3d": [11, 13, 14], "lm158n": 11, "amp": [11, 17, 18], "texa": [11, 17, 18], "instrument": [11, 15, 17, 18], "lm358an": [11, 17, 18], "nopb": [11, 17, 18], "lm158j": 11, "x1j7hmvl2zh8vpefml8": 11, "2ffq": 11, "print": [11, 13, 14, 15, 17, 18], "circuit": [11, 13, 14, 15, 17, 18], "asler": [11, 13, 14, 17, 18], "1085": 11, "2fha2pyfaduh": 11, "2fogzutwiq9iz5vjaqfoyugqalgxpeckigrqvf4hn": 11, "252bg": 11, "capacitor": [11, 18], "100nf": [11, 18], "50vdc": [11, 18], "ceram": [11, 18], "kemet": [11, 18], "c320c104k1": [11, 18], "c320c104k1r5ta7303": 11, "c4uyot": 11, "2flq1th4mcyoetma": 11, "kohm": [11, 13, 14, 17, 18], "5w": [11, 17, 18], "te": [11, 13, 14, 17, 18], "h81k0bya": [11, 17, 18], "holsworthi": 11, "2fha2pyfaduhuylh7az": 11, "2fmjfh2xjoums6wztux4som": 11, "252bii": 11, "h81k5bya": [11, 17, 18], "2fha2pyfadugy9twham3ru9hmijohywhbin95knm": 11, "252bx": 11, "2fm": 11, "vishai": [11, 13, 14], "ccf071k50gke36": 11, "dale": 11, "qkeozdl6eqpa6lzrlqfvow": 11, "762": 11, "524": 11, "cmf651m0000fkek143": 11, "ciayqk2gdckzia2levalkg": 11, "42": 11, "ohmit": 11, "41f2r0e": 11, "im6toxqzgoauedprb19mha": 11, "dual": [11, 13, 14, 17, 18], "08": [11, 13, 14], "pitch": [11, 13, 14, 17, 18], "648": [11, 13, 14, 17, 18], "cui": [11, 13, 14], "tb009": [11, 13, 14], "508": [11, 13, 14], "02be": [11, 13, 14], "vlwxofp3u2wcfk5uckwtka": [11, 13, 14], "dc": [11, 13, 14, 17, 18], "24v": [11, 18], "tracopow": [11, 18], "trn": [11, 18], "1215": [11, 18], "traco": [11, 18], "yca": 11, "2faaymw02gquicgqj0ta": 11, "dip": [11, 13, 14], "socket": [11, 13, 14], "72": [11, 18], "mill": 11, "max": 11, "110": [11, 13, 14, 17, 18], "43": [11, 17, 18], "308": 11, "41": [11, 13, 14], "001000": 11, "iggadovctstu": 11, "2fqaur8narg": 11, "mgh": 11, "vip": 11, "gclid": 11, "eaiaiqobchmin_taxbcx8wivq5nvch2qaqfpeayyccabegjk1_d_bw": 11, "aqy211eh": 11, "84": [11, 13, 14], "panason": 11, "industri": 11, "wktuvitrialgiu8hcm7dvq": 11, "449": 11, "796": 11, "preci": [11, 13, 14], "83": 11, "304": 11, "001101": [11, 13, 14], "2fha2pyfadujqkqx4wauig": 11, "2fmgndxmcnv": 11, "2f33nj0gbxroculucynpyong": 11, "mcp23008": 11, "593": 11, "sgaepimzzmskedp9slc0yyv4kpdpmd1hts4slctivmw": 11, "header": [11, 13, 14, 17, 18], "1x10": [11, 17, 18], "samtec": [11, 17, 18], "ssw": [11, 17, 18], "ru5fayqh": 11, "252be0w1orxzibqpw": 11, "smt": 11, "breakout": 11, "soic": 11, "1212": 11, "gurawfaegucaqqfvnvtyeg": 11, "eaiaiqobchmit8zjzr6x8wivgdnvch2vbwvseaqyayabegjqg_d_bw": 11, "ina282aid": 11, "ze4": 11, "2fufuz19ilfayzxocfra": 11, "thd": 11, "1211n": 11, "2fha2pyfadugpyeg4idvm": 11, "2fmsr": 11, "252b7an": 11, "2f0t3ruis9pcaqjlt4": 11, "252bnrpuooeq": 11, "53": [11, 18], "ssq": 11, "120": [11, 13, 14], "d": [11, 17, 18], "252be1bmvd": 11, "252bdzonqg": 11, "pin": [11, 13, 14, 17, 18], "ejector": [11, 13, 14], "blk": [11, 13, 14], "10120550": [11, 13, 14], "conrad": [11, 13, 14], "bkl": [11, 13, 14], "254": [11, 13, 14], "row": [11, 13, 14], "pc": [11, 13, 14], "741435": [11, 13, 14], "searchterm": [11, 13, 14], "searchtyp": [11, 13, 14], "suggest": [11, 13, 14, 17, 18], "searchsuggest": [11, 13, 14], "male": [11, 13, 14], "femal": [11, 13, 14, 17, 18], "hexagonal": 11, "87": [11, 13, 14], "48": [11, 17, 18], "harwin": 11, "r25": 11, "3002002": 11, "w0yvoo0ixfenuv0hsdc4": 11, "2fq": 11, "86": [11, 13, 14], "437": 11, "1108331841001101": 11, "318": 11, "ftmup6kvi2tnqoeziaq": 11, "2fpa": 11, "figur": [11, 15, 17, 18], "show": [11, 17, 18], "schemat": [11, 18], "plug": [11, 17, 18], "plai": 11, "propos": [11, 17, 18], "florsch": [11, 17, 18], "advantag": 11, "signal": [11, 17, 18], "lie": [11, 17, 18], "114": [11, 17, 18], "directli": [11, 17, 18], "realiz": 11, "around": [11, 15], "tdh15": 11, "inpout": 11, "three": [11, 13, 14, 15, 17, 18], "than": [11, 17, 18], "decreas": 11, "don": [11, 15], "forget": [11, 15], "r_shunt": 11, "ohmpi_config": 11, "tow": 11, "dot": 11, "corner": 11, "lm158": 11, "ads115": [11, 17, 18], "3x11": 11, "wurth": 11, "elektronik": 11, "971110321": 11, "305": [11, 13, 14], "apm": [11, 13, 14], "hexseal": [11, 13, 14], "rm3x8mm": [11, 13, 14], "2701": [11, 13, 14], "jjse": [11, 13, 14], "2f12mkns3vxsdryxuhw": [11, 13, 14], "unplug": 11, "bottom": [11, 17, 18], "11mm": 11, "m3": [11, 13, 14], "upper": 11, "i2cdetect": [11, 13, 14], "y": [11, 13, 14], "everyth": 11, "screen": [11, 17, 18], "1kohm": 11, "r2": [11, 17, 18], "220": 11, "r1": [11, 17, 18], "padboard": 11, "spool": 11, "prepar": [11, 13, 14, 17, 18], "sample_measurement_exampl": 11, "result": [11, 17, 18], "channel": [13, 14, 17, 18], "omron": [13, 14], "g5le": [13, 14], "vd": [13, 14], "vdc": [13, 14], "zvn4206a": [13, 14], "mofset": [13, 14], "enough": [13, 14, 17, 18], "512": [13, 14], "own": [13, 14], "0x70": [13, 14], "0x77": [13, 14], "0x71": [13, 14], "0x72": [13, 14], "0x73": [13, 14], "140": [13, 14], "560": [13, 14], "62": [13, 14], "92": [13, 14, 17, 18], "1580994": [13, 14], "tru": [13, 14, 17, 18], "diod": [13, 14], "1n4007": [13, 14], "256": [13, 14], "091": [13, 14], "296": [13, 14], "incorpor": [13, 14, 15], "sgaepimzzmueqxo7l": [13, 14], "2fbpyakboruumren": [13, 14], "56": [13, 14], "776": [13, 14], "205": [13, 14], "46": [13, 14], "103321": [13, 14], "5twgzeq9e7hsylqaljjyrw": [13, 14], "732": [13, 14], "sgaepimzzmskedp9slc0yfx16nydmpxjueeogolbldi": [13, 14], "325": [13, 14], "over": [13, 14, 16], "503811": [13, 14], "mosfet": [13, 14], "nchannel": [13, 14], "471": [13, 14], "576": [13, 14, 17], "vhuuswq2": [13, 14], "252bsz9b": [13, 14], "2ff6fcxt7g": [13, 14], "100k\u03c9": [13, 14], "061": [13, 14], "616": [13, 14], "beyschlag": [13, 14], "mba02040c1003frp00": [13, 14], "mzrxyrlhvdt9crf7zyf": [13, 14], "2f5q": [13, 14], "89": [13, 14], "2717": [13, 14], "sgaepimzzmsyydr3r27av4eqf73yoh": [13, 14], "252baqg": [13, 14], "252bz3hvktao": [13, 14], "10120558": [13, 14], "54": [13, 14], "No": [13, 14], "51": [13, 14], "741727": [13, 14], "10120862": [13, 14], "strain": [13, 14], "relief": [13, 14], "44": [13, 14, 17, 18], "742063": [13, 14], "10120158": [13, 14], "mm\u00b2": [13, 14, 17, 18], "multi": [13, 14, 17, 18], "colour": [13, 14], "1012015810": [13, 14], "127": [13, 14], "008": [13, 14], "1548658": [13, 14], "79": [13, 14], "49": [13, 14], "keyston": [13, 14], "24300": [13, 14], "uwqyq": [13, 14], "2f2czwu0ejpozmzc2a": [13, 14], "745": [13, 14], "846": [13, 14], "614": [13, 14], "25515": [13, 14], "2f2czwuxuhumfr": [13, 14], "252bzuq": [13, 14], "55": [13, 14, 17, 18], "328": [13, 14], "uqd7xcvsscnr3hwd6fta8g": [13, 14], "100": [13, 14, 15, 17, 18], "duplic": [13, 14], "everi": [13, 14, 15], "therefor": [13, 14, 17, 18], "assign": [13, 14], "alloc": [13, 14], "jumper": [13, 14], "them": [13, 14, 15, 17, 18], "definit": [13, 14], "simplifi": [13, 14], "thing": [13, 14, 15], "flat": [13, 14], "pole": [13, 14, 17, 18], "detect": [13, 14], "test_mux_board": [13, 14], "whose": [15, 17, 18], "summar": 15, "cover": 15, "ohmpi_set": 15, "central": 15, "handler": 15, "layer": 15, "excel": 15, "log": 15, "broker": 15, "rotat": 15, "disk": 15, "exec_logg": 15, "data_logg": 15, "plan": 15, "state": 15, "health": 15, "soh": 15, "futur": 15, "By": 15, "written": 15, "consol": 15, "like": [15, 16], "local": 15, "dai": 15, "size": 15, "exce": 15, "sent": 15, "level": 15, "edit": 15, "setup_logg": 15, "custom": 15, "repositori": [15, 17, 18], "prefer": [15, 17, 18], "usernam": 15, "password": 15, "One": [15, 16], "alter": 15, "keep": 15, "bash": 15, "run_http_interfac": 15, "sh": 15, "iot": 15, "messag": 15, "friendli": 15, "graphic": 15, "quick": 15, "easi": 15, "wi": 15, "fi": 15, "point": [15, 17, 18], "ap": 15, "webserv": 15, "serv": [15, 17, 18], "laptop": 15, "mobil": 15, "phone": 15, "upload": 15, "act": 15, "raspap": 15, "runonstart": 15, "141": 15, "8080": 15, "pseudo": 15, "evolut": 15, "appar": 15, "offer": [15, 17, 18], "especi": 15, "suit": 15, "autom": 15, "ipython": 15, "ssh": 15, "putti": 15, "maco": 15, "linux": 15, "found": 15, "entir": [15, 17, 18], "np": 15, "chdir": 15, "object": 15, "k": 15, "load": 15, "manual": [15, 17, 18], "nbr_mea": [15, 17, 18], "n2": 15, "abmn": [15, 17, 18], "wait": 15, "prompt": 15, "immedi": 15, "sleep": 15, "kill": 15, "asynchron": 15, "interv": 15, "risk": 15, "good": 15, "usag": 15, "process": 15, "sensor": 15, "scope": 15, "internet": 15, "network": 15, "auxiliari": 15, "publish": [15, 17], "subscrib": 15, "approach": 15, "mosquitto": 15, "server": 15, "reachabl": 15, "net": 15, "servic": 15, "install_local_mqtt_brok": 15, "examin": 15, "parti": 15, "explor": 15, "reboot": 15, "further": 15, "illustr": [15, 17, 18], "3fzxv121uitwgjwygcz4xw": 15, "cmd": 15, "3fzxv121uitwgjwygcz4yw": 15, "tailor": 15, "made": [15, 17, 18], "dashboard": 15, "browser": 15, "flow": [15, 17, 18], "editor": [15, 17, 18], "node": 15, "complex": 15, "properli": [15, 16], "palett": 15, "manag": [15, 17, 18], "noder": 15, "doc": 15, "guid": 15, "ui": 15, "visual": 15, "cookbook": 15, "due": 16, "fragil": 16, "still": [16, 17, 18], "conductor": 16, "turn": [16, 17, 18], "multimet": 16, "broken": 16, "shoudn": 16, "wa": [16, 17, 18], "burn": 16, "expect": 16, "try": 16, "effect": 16, "voltmet": [16, 17, 18], "sens": 16, "malfunct": 16, "erron": 16, "solv": 16, "most": 16, "100k": 16, "vdd": 16, "stronger": [16, 17, 18], "smaller": [16, 17, 18], "journal": 17, "bug": 17, "explain": 17, "miss": 17, "invit": 17, "commerci": [17, 18], "field": [17, 18], "o1": [17, 18], "youtub": [17, 18], "wjwzhv1v3pk": [17, 18], "noob": [17, 18], "unexpectedli": [17, 18], "boot": [17, 18], "cd": [17, 18], "nano": [17, 18], "At": [17, 18], "op": [17, 18], "dl": [17, 18], "press": [17, 18], "enter": [17, 18], "escap": [17, 18], "studi": [17, 18], "hous": [17, 18], "diagram": [17, 18], "displai": [17, 18], "mimic": [17, 18], "behavior": [17, 18], "soil": [17, 18], "subject": [17, 18], "r11": [17, 18], "r10": [17, 18], "r12": [17, 18], "constitut": [17, 18], "stainless": [17, 18], "steel": [17, 18], "r9": [17, 18], "less": [17, 18], "sum": [17, 18], "000": [17, 18], "intens": [17, 18], "potenti": [17, 18], "calcul": [17, 18], "insert": [17, 18], "1115": [17, 18], "a1": [17, 18], "a0": [17, 18], "increas": [17, 18], "r5": [17, 18], "r8": [17, 18], "r6": [17, 18], "r7": [17, 18], "a2": [17, 18], "a3": [17, 18], "obtain": [17, 18], "ly": [17, 18], "let": [17, 18], "multipli": [17, 18], "reduct": [17, 18], "despit": [17, 18], "calibr": [17, 18], "variou": [17, 18], "disturb": [17, 18], "estim": [17, 18], "mega": [17, 18], "shortcut": [17, 18], "excess": [17, 18], "lithium": [17, 18], "ion": [17, 18], "automobil": [17, 18], "lead": [17, 18], "acid": [17, 18], "strong": [17, 18], "hazard": [17, 18], "fuse": [17, 18], "onto": [17, 18], "ohmmet": [17, 18], "coeffici": [17, 18], "coef_p0": [17, 18], "coef_p1": [17, 18], "coef_p2": [17, 18], "coef_p3": [17, 18], "coef": [17, 18], "po": [17, 18], "p1": [17, 18], "r3": [17, 18], "r4": [17, 18], "p2": [17, 18], "p3": [17, 18], "r_ref": [17, 18], "slope": [17, 18], "convers": [17, 18], "p0": [17, 18], "accuraci": [17, 18], "lm358n": [17, 18], "weaker": 17, "tx": [17, 18], "rememb": [17, 18], "holder": [17, 18], "f": [17, 18], "circul": [17, 18], "fig": [17, 18], "common": [17, 18], "normal": [17, 18], "simultan": [17, 18], "role": [17, 18], "thu": [17, 18], "energ": [17, 18], "next": [17, 18], "featur": [17, 18], "strict": [17, 18], "in1": [17, 18], "in2": [17, 18], "in3": [17, 18], "in4": [17, 18], "5vdc": [17, 18], "5vcc": [17, 18], "mm2": [17, 18], "lastli": [17, 18], "congratul": [17, 18], "construct": [17, 18], "ert": [17, 18], "sever": [17, 18], "ten": [17, 18], "thousand": [17, 18], "stuck": [17, 18], "hand": [17, 18], "cap": [17, 18], "produc": [17, 18], "clean": [17, 18], "distanc": [17, 18], "had": [17, 18], "extra": [17, 18], "final": [17, 18], "horizont": [17, 18], "vertic": [17, 18], "06": [17, 18], "04": [17, 18], "09": [17, 18], "05": [17, 18], "din": [17, 18], "rail": [17, 18], "chosen": [17, 18], "consequ": [17, 18], "incom": [17, 18], "instead": [17, 18], "moreov": [17, 18], "bought": [17, 18], "velleman": [17, 18], "wpm404": [17, 18], "potentiomet": [17, 18], "scienc": [17, 18], "framework": [17, 18], "manuscript": [17, 18], "osf": [17, 18], "dzwb4": [17, 18], "irstea": [17, 18], "unzip": [17, 18], "master": [17, 18], "readm": [17, 18], "assist": [17, 18], "disconnect": [17, 18], "handl": [17, 18], "charg": [17, 18], "capac": [17, 18], "fewer": [17, 18], "bank": [17, 18], "2a": [17, 18], "ll": [17, 18], "insid": [17, 18], "numer": [17, 18], "optim": [17, 18], "the9": [17, 18], "hear": [17, 18], "characterist": [17, 18], "sound": [17, 18], "permut": [17, 18], "repetit": [17, 18], "evolv": [17, 18], "littl": [17, 18], "articl": [17, 18], "sainsmart": [17, 18], "canal": 17, "pour": 17, "arduino": 17, "dsp": 17, "avr": 17, "pic": 17, "arm": 17, "99": [17, 18], "199": [17, 18], "sain": [17, 18], "smart": [17, 18], "101": [17, 18], "70": [17, 18], "103": [17, 18], "018": [17, 18], "1x1": [17, 18], "66": [17, 18], "1568649": [17, 18], "1x0": [17, 18], "71": [17, 18], "1565235": [17, 18], "68": [17, 18], "pro": [17, 18], "897": [17, 18], "1332": [17, 18], "858": [17, 18], "627": [17, 18], "52": [17, 18], "upw50b50rv": [17, 18], "1083": [17, 18], "7ah": [17, 18], "537": [17, 18], "5488": [17, 18], "lr20": [17, 18], "9v": [17, 18], "185": [17, 18], "4686": [17, 18], "ferrul": [17, 18], "500": [17, 18], "piec": [17, 18], "weidmul": [17, 18], "9004330000": [17, 18], "966067": [17, 18], "car": 17, "littelfus": [17, 18], "fhac0002zxj": 17, "96": 17, "trn3": 18, "suppress": 18, "10v": 18, "fast": 18, "decoupl": 18, "prevent": 18, "overh": 18, "toler": 18, "orient": 18, "h": 18, "nf": 18, "tabl": 18, "jason": 18, "ohmpi_param": 18, "desktop": 18, "0251001": 18, "pat1l": 18}, "objects": {"ohmpi": [[2, 0, 0, "-", "ohmpi"]], "ohmpi.ohmpi": [[2, 1, 1, "", "OhmPi"]], "ohmpi.ohmpi.OhmPi": [[2, 2, 1, "", "append_and_save"], [2, 2, 1, "", "download_data"], [2, 2, 1, "", "get_data"], [2, 2, 1, "", "interrupt"], [2, 2, 1, "", "load_sequence"], [2, 2, 1, "", "quit"], [2, 2, 1, "", "remove_data"], [2, 2, 1, "", "repeat_sequence"], [2, 2, 1, "", "reset_mux"], [2, 2, 1, "", "restart"], [2, 2, 1, "", "rs_check"], [2, 2, 1, "", "run_inversion"], [2, 2, 1, "", "run_measurement"], [2, 2, 1, "", "run_multiple_sequences"], [2, 2, 1, "", "run_sequence"], [2, 2, 1, "", "run_sequence_async"], [2, 3, 1, "", "sequence"], [2, 2, 1, "", "set_sequence"], [2, 2, 1, "", "shutdown"], [2, 2, 1, "", "switch_mux_off"], [2, 2, 1, "", "switch_mux_on"], [2, 2, 1, "", "test_mux"], [2, 2, 1, "", "update_settings"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"]}, "titleterms": {"ohmpi": [0, 1, 7, 8, 17, 18], "open": 0, "sourc": 0, "hardwar": [0, 4, 6], "resist": [0, 17, 18], "meter": 0, "summari": 0, "document": 0, "center": 0, "project": 1, "author": 1, "partner": 1, "cite": 1, "introduct": 1, "api": 2, "refer": 2, "archiv": 3, "version": 3, "softwar": [4, 15], "interfac": [4, 15], "new": 4, "compon": [4, 11, 13, 14, 16, 17, 18], "exampl": 5, "applic": [5, 15], "assembl": 7, "electron": 8, "design": 8, "measur": [8, 11, 12, 17, 18], "board": [8, 11, 12, 13, 14, 17, 18], "multiplex": [8, 17, 18], "power": 9, "suppli": 9, "12v": 9, "batteri": 9, "regul": 9, "dps5005": 9, "raspberri": [10, 17, 18], "pi": [10, 17, 18], "configur": [10, 15, 17, 18], "part": [10, 11, 13, 14], "A": [10, 11, 13, 14, 16], "o": [10, 17, 18], "instal": [10, 17, 18], "b": [10, 11, 13, 14, 16, 17, 18], "virtual": [10, 17, 18], "environ": [10, 17, 18], "packag": [10, 17, 18], "c": [10, 11, 13, 14], "activ": [10, 17, 18], "thonni": [10, 17, 18], "python": [10, 15, 17, 18], "id": [10, 17, 18], "v2023": [11, 13], "specif": 11, "assembli": [11, 13, 14, 17, 18], "requir": [11, 13, 14], "list": [11, 13, 14, 17, 18], "descript": [11, 17, 18], "start": 11, "up": 11, "check": 11, "v2024": [12, 14], "mux": [13, 14], "address": [13, 14], "valid": [13, 14], "oper": [15, 17, 18], "system": 15, "architectur": 15, "logger": 15, "file": 15, "web": 15, "mqtt": 15, "troubleshoot": 16, "issu": 16, "puls": 16, "between": 16, "valu": 16, "given": 16, "i": 16, "correct": 16, "one": 16, "commun": 16, "v": [17, 18], "1": [17, 18], "01": 17, "limit": [17, 18], "32": [17, 18], "electrod": [17, 18], "The": [17, 18], "philosophi": [17, 18], "technic": [17, 18], "data": [17, 18], "current": [17, 18], "inject": [17, 18], "card": [17, 18], "connect": [17, 18], "electr": [17, 18], "implement": [17, 18], "first": [17, 18], "four": [17, 18], "instruct": [17, 18], "preliminari": [17, 18], "procedur": [17, 18], "onli": [17, 18], "initi": [17, 18], "startup": [17, 18], "paramet": [17, 18], "complet": [17, 18], "tabl": 17, "titl": 17, "02": 18}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"OHMPI: Open source and open hardware resistivity-meter": [[0, "ohmpi-open-source-and-open-hardware-resistivity-meter"]], "Summary": [[0, null]], "OhmPi Document Center": [[0, null]], "OhmPi project": [[1, "ohmpi-project"]], "Authors:": [[1, "authors"]], "Partners:": [[1, "partners"]], "Citing OhmPi:": [[1, "citing-ohmpi"]], "Introduction :": [[1, "introduction"]], "API reference": [[2, "api-reference"]], "Archived versions": [[3, "archived-versions"]], "Software interface to new hardware components": [[4, "software-interface-to-new-hardware-components"]], "Examples of applications": [[5, "examples-of-applications"]], "Hardware": [[6, "hardware"]], "Assembling the OhmPi": [[7, "assembling-the-ohmpi"]], "OhmPi electronic design": [[8, "ohmpi-electronic-design"]], "Measurement board": [[8, "measurement-board"]], "Multiplexer": [[8, "multiplexer"]], "Power supply": [[9, "power-supply"]], "12V battery": [[9, "v-battery"]], "Regulated power supply (DPS5005)": [[9, "regulated-power-supply-dps5005"]], "Raspberry Pi configuration": [[10, "raspberry-pi-configuration"], [17, "raspberry-pi-configuration"], [18, "raspberry-pi-configuration"]], "PART A: OS installation": [[10, "part-a-os-installation"]], "PART B: Virtual Environment and packages": [[10, "part-b-virtual-environment-and-packages"]], "PART C: Activate virtual environment on Thonny (Python IDE) (on Raspberry Pi)": [[10, "part-c-activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi"]], "Measurement board v2023": [[11, "measurement-board-v2023"]], "Specifications": [[11, "specifications"]], "PART A Assembly of the measurement board": [[11, "part-a-assembly-of-the-measurement-board"]], "Required components": [[11, "required-components"], [13, "required-components"], [14, "required-components"]], "List of components": [[11, "id1"], [11, "id2"], [13, "id1"], [14, "id1"], [18, "id10"]], "Description": [[11, "description"]], "PART B Start-up of the measurement board": [[11, "part-b-start-up-of-the-measurement-board"]], "PART C Check the measurement board": [[11, "part-c-check-the-measurement-board"]], "Measurement board v2024": [[12, "measurement-board-v2024"]], "MUX board v2023": [[13, "mux-board-v2023"]], "PART A Assembly of MUX board": [[13, "part-a-assembly-of-mux-board"], [14, "part-a-assembly-of-mux-board"]], "PART B MUX board address": [[13, "part-b-mux-board-address"], [14, "part-b-mux-board-address"]], "PART C Validation of MUX board": [[13, "part-c-validation-of-mux-board"], [14, "part-c-validation-of-mux-board"]], "MUX board v2024": [[14, "mux-board-v2024"]], "Software and operation": [[15, "software-and-operation"]], "System architecture": [[15, "system-architecture"]], "Loggers": [[15, "loggers"]], "Configuration file": [[15, "configuration-file"]], "Interfaces and applications": [[15, "interfaces-and-applications"]], "Web interface": [[15, "web-interface"]], "Python interface": [[15, "python-interface"]], "MQTT interface": [[15, "mqtt-interface"]], "Troubleshooting": [[16, "troubleshooting"]], "Issue with the pulses between A and B": [[16, "issue-with-the-pulses-between-a-and-b"]], "Values given is not the correct one": [[16, "values-given-is-not-the-correct-one"]], "Communication issue between components": [[16, "communication-issue-between-components"]], "OhmPi V 1.01 (limited to 32 electrodes)": [[17, "ohmpi-v-1-01-limited-to-32-electrodes"]], "The philosophy of Ohmpi": [[17, "the-philosophy-of-ohmpi"], [18, "the-philosophy-of-ohmpi"]], "Technical data": [[17, "technical-data"], [18, "technical-data"]], "OS installation": [[17, "os-installation"], [18, "os-installation"]], "Virtual Environment and packages": [[17, "virtual-environment-and-packages"], [18, "virtual-environment-and-packages"]], "Activate virtual environment on Thonny (Python IDE) (on Raspberry Pi)": [[17, "activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi"], [18, "activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi"]], "Assembly of the measuring/current injection cards, and connection with the Raspberry Pi": [[17, "assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi"], [18, "assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi"]], "Electrical resistivity measurements board": [[17, "electrical-resistivity-measurements-board"], [18, "electrical-resistivity-measurements-board"]], "a) Description": [[17, "a-description"], [18, "a-description"]], "b) Implementation": [[17, "b-implementation"], [18, "b-implementation"]], "Current injection board": [[17, "current-injection-board"], [18, "current-injection-board"]], "First four electrodes resistivity measurement": [[17, "first-four-electrodes-resistivity-measurement"], [18, "first-four-electrodes-resistivity-measurement"]], "Multiplexer implementation": [[17, "multiplexer-implementation"], [18, "multiplexer-implementation"]], "Electrode connection": [[17, "electrode-connection"], [18, "electrode-connection"]], "Operating instruction": [[17, "operating-instruction"], [18, "operating-instruction"]], "Preliminary procedure (Only for the initial operation)": [[17, "preliminary-procedure-only-for-the-initial-operation"], [18, "preliminary-procedure-only-for-the-initial-operation"]], "Startup procedure": [[17, "startup-procedure"], [18, "startup-procedure"]], "Electrical resistivity measurement parameters description": [[17, "electrical-resistivity-measurement-parameters-description"], [18, "electrical-resistivity-measurement-parameters-description"]], "Complete list of components": [[17, "complete-list-of-components"], [18, "complete-list-of-components"]], "Table Title": [[17, "id9"]], "OhmPi V 1.02 (limited to 32 electrodes)": [[18, "ohmpi-v-1-02-limited-to-32-electrodes"]]}, "indexentries": {"ohmpi (class in ohmpi.ohmpi)": [[2, "ohmpi.ohmpi.OhmPi"]], "append_and_save() (ohmpi.ohmpi.ohmpi static method)": [[2, "ohmpi.ohmpi.OhmPi.append_and_save"]], "download_data() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.download_data"]], "get_data() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.get_data"]], "interrupt() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.interrupt"]], "load_sequence() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.load_sequence"]], "module": [[2, "module-ohmpi.ohmpi"]], "ohmpi.ohmpi": [[2, "module-ohmpi.ohmpi"]], "quit() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.quit"]], "remove_data() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.remove_data"]], "repeat_sequence() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.repeat_sequence"]], "reset_mux() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.reset_mux"]], "restart() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.restart"]], "rs_check() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.rs_check"]], "run_inversion() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.run_inversion"]], "run_measurement() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.run_measurement"]], "run_multiple_sequences() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.run_multiple_sequences"]], "run_sequence() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.run_sequence"]], "run_sequence_async() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.run_sequence_async"]], "sequence (ohmpi.ohmpi.ohmpi property)": [[2, "ohmpi.ohmpi.OhmPi.sequence"]], "set_sequence() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.set_sequence"]], "shutdown() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.shutdown"]], "switch_mux_off() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.switch_mux_off"]], "switch_mux_on() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.switch_mux_on"]], "test_mux() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.test_mux"]], "update_settings() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.update_settings"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["index", "source_rst/Ohmpi", "source_rst/api", "source_rst/archived_version", "source_rst/developing_hardware_components", "source_rst/gallery", "source_rst/hardware", "source_rst/hardware/assembling", "source_rst/hardware/hw_info", "source_rst/hardware/hw_pwr", "source_rst/hardware/hw_rpi", "source_rst/hardware/mb_2023", "source_rst/hardware/mb_2024", "source_rst/hardware/mux_2023", "source_rst/hardware/mux_2024", "source_rst/software", "source_rst/troubleshooting", "source_rst/v1.xx/V1_01", "source_rst/v1.xx/V1_02"], "filenames": ["index.rst", "source_rst/Ohmpi.rst", "source_rst/api.rst", "source_rst/archived_version.rst", "source_rst/developing_hardware_components.rst", "source_rst/gallery.rst", "source_rst/hardware.rst", "source_rst/hardware/assembling.rst", "source_rst/hardware/hw_info.rst", "source_rst/hardware/hw_pwr.rst", "source_rst/hardware/hw_rpi.rst", "source_rst/hardware/mb_2023.rst", "source_rst/hardware/mb_2024.rst", "source_rst/hardware/mux_2023.rst", "source_rst/hardware/mux_2024.rst", "source_rst/software.rst", "source_rst/troubleshooting.rst", "source_rst/v1.xx/V1_01.rst", "source_rst/v1.xx/V1_02.rst"], "titles": ["OHMPI: Open source and open hardware resistivity-meter", "OhmPi project", "API reference", "Archived versions", "Software interface to new hardware components", "Examples of applications", "Hardware", "Assembling the OhmPi", "OhmPi electronic design", "Power supply", "Raspberry Pi configuration", "Measurement board v2023", "Measurement board v2024", "MUX board v2023", "MUX board v2024", "Software and operation", "Troubleshooting", "OhmPi V 1.01 (limited to 32 electrodes)", "OhmPi V 1.02 (limited to 32 electrodes)"], "terms": {"releas": [0, 15], "v2024rc": 0, "date": [0, 17, 18], "nov": 0, "29": [0, 7, 17, 18], "2023": [0, 2], "start": [0, 2, 4, 6, 10, 13, 14, 15, 17, 18], "juli": 0, "2016": 0, "author": [0, 10, 17, 18], "r\u00e9mi": [0, 1, 2], "clement": [0, 1, 2], "nicola": [0, 1, 2], "forquet": [0, 1, 2], "yannick": [0, 1, 2], "fargier": [0, 1, 2], "vivien": [0, 1, 2], "duboi": [0, 1, 2], "h\u00e9l\u00e8ne": [0, 1, 2], "guyard": [0, 1, 2], "olivi": [0, 1, 2], "kaufmann": [0, 1, 2], "guillaum": [0, 1, 2], "blanchi": [0, 1, 2], "arnaud": [0, 1, 2], "watlet": [0, 1, 2], "target": 0, "user": [0, 10, 15, 17, 18], "research": 0, "develop": [0, 1, 4, 10, 11, 17, 18], "statu": 0, "some": [0, 4, 8, 15, 17, 18], "matur": 0, "progress": 0, "offici": 0, "guidelin": 0, "gener": [0, 2, 6, 8, 11, 13, 14, 15, 17, 18], "tutori": 0, "content": [0, 2], "project": [0, 2, 4, 7, 10, 11, 12, 13, 14, 15, 17, 18], "partner": 0, "cite": 0, "introduct": 0, "electron": [0, 1, 6, 7, 10, 11, 12, 13, 14, 15, 17, 18], "design": [0, 4, 6, 15, 17, 18], "measur": [0, 1, 2, 6, 7, 10, 13, 14, 15, 16], "board": [0, 2, 4, 6, 7, 10, 16], "v2023": [0, 6, 8, 15, 16], "v2024": [0, 6, 8, 16], "mux": [0, 2, 6, 7, 17, 18], "power": [0, 2, 6, 7, 11, 13, 14, 17, 18], "suppli": [0, 6, 7, 11, 13, 14, 17, 18], "raspberri": [0, 2, 6, 7, 11, 13, 14, 15], "pi": [0, 2, 6, 7, 11, 15], "configur": [0, 4, 6, 8], "assembl": [0, 1, 6, 10, 11, 12, 13, 14, 15, 17, 18], "softwar": [0, 2, 10, 17, 18], "oper": [0, 4, 7, 8, 10, 11], "system": [0, 4, 10, 11, 17, 18], "architectur": 0, "logger": [0, 1, 17, 18], "file": [0, 2, 4, 6, 10, 11, 17, 18], "interfac": [0, 2], "applic": [0, 1, 4, 6, 8], "api": [0, 15], "refer": [0, 7, 11, 13, 14, 15, 17, 18], "troubleshoot": 0, "issu": 0, "puls": [0, 2, 8, 11, 17, 18], "between": [0, 2, 7, 8, 11, 13, 14, 17, 18], "A": [0, 1, 2, 4, 6, 7, 8, 9, 15, 17, 18], "b": [0, 2, 6, 7, 8, 9], "valu": [0, 2, 8, 11, 13, 14, 17, 18], "given": [0, 2, 8, 15], "i": [0, 1, 2, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 17, 18], "correct": [0, 17, 18], "one": [0, 2, 7, 11, 15, 17, 18], "commun": [0, 1, 8, 15], "compon": [0, 8, 10, 15], "exampl": [0, 7, 11, 13, 14, 15, 17, 18], "new": [0, 10, 15, 16, 17, 18], "archiv": 0, "version": [0, 2, 4, 6, 10, 11, 15, 17, 18], "v": [0, 2, 3, 7, 8, 9, 11, 13, 14, 16], "1": [0, 2, 3, 4, 6, 7, 8, 10, 11, 13, 14, 15], "01": [0, 3, 11, 18], "limit": [0, 3, 11], "32": [0, 3, 7, 10, 11], "electrod": [0, 1, 2, 3, 6, 7, 8, 9, 11, 13, 14, 16], "02": [0, 3, 11, 17], "inra": [1, 2, 5], "reversa": [1, 17, 18], "villeurbann": 1, "franc": 1, "universit\u00e9": 1, "de": 1, "mon": 1, "belgium": 1, "ger": 1, "rro": 1, "univ": 1, "gustav": 1, "eiffel": 1, "ifsttar": [1, 2], "lyon": 1, "ig": [1, 2], "grenobl": 1, "alp": 1, "ilvo": 1, "merelbek": 1, "julien": 1, "ganc": 1, "emil": 1, "gro": 1, "et": [1, 11], "al": 1, "an": [1, 4, 6, 7, 8, 10, 11, 13, 14, 15, 16, 17, 18], "open": [1, 2, 4, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18], "sourc": [1, 4, 9, 10, 17, 18], "data": [1, 2, 8, 11, 15], "dedic": [1, 15], "electr": [1, 11], "resist": [1, 2, 7, 8, 11, 15, 16], "imag": [1, 10], "small": [1, 7, 8, 11, 15, 17, 18], "laboratori": [1, 7, 17, 18], "scale": [1, 8], "hardwarex": 1, "elsevi": 1, "2020": [1, 2], "8": [1, 7, 8, 10, 11, 13, 14, 15, 17, 18], "24": [1, 7, 11, 13, 14, 17, 18], "p": [1, 11, 13, 14], "ff10": 1, "1016": 1, "j": 1, "ohx": 1, "e00122ff": 1, "particip": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "all": [1, 2, 4, 7, 10, 11, 12, 13, 14, 15, 17, 18], "requir": [1, 4, 7, 10, 12, 15, 17, 18], "skill": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "respect": [1, 7, 8, 10, 11, 12, 13, 14, 15, 17, 18], "safeti": [1, 2, 7, 10, 11, 12, 13, 14, 15, 17, 18], "rule": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "must": [1, 2, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18], "profession": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "context": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "peopl": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "compet": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "The": [1, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "team": [1, 4, 7, 10, 11, 12, 13, 14, 15, 17, 18], "cannot": [1, 7, 8, 10, 11, 12, 13, 14, 15, 17, 18], "held": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "respons": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "ani": [1, 2, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18], "materi": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "human": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "damag": [1, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18], "which": [1, 2, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18], "would": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "associ": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "us": [1, 2, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "assembli": [1, 6, 7, 10, 12, 15], "equip": [1, 7, 8, 10, 11, 12, 13, 14, 15, 17, 18], "doe": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "work": [1, 4, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18], "after": [1, 7, 10, 11, 12, 13, 14, 15, 17, 18], "you": [1, 4, 6, 7, 8, 10, 11, 13, 14, 15, 16, 17, 18], "mai": [1, 2, 10, 15, 16, 17, 18], "redistribut": 1, "modifi": [1, 4, 17, 18], "thi": [1, 2, 4, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18], "document": [1, 2, 6, 15, 17], "make": [1, 4, 8, 13, 14, 15, 17, 18], "product": [1, 11, 13, 14], "under": [1, 2, 7, 17, 18], "term": [1, 4], "cern": [1, 2], "ohl": [1, 2], "v2": [1, 2], "distribut": [1, 8], "without": [1, 2, 8, 13, 14, 16, 17, 18], "express": [1, 4], "OR": 1, "impli": [1, 13, 14], "warranti": 1, "includ": [1, 2, 4, 10, 13, 14, 15, 17, 18], "OF": 1, "merchant": 1, "satisfactori": 1, "qualiti": 1, "AND": 1, "fit": 1, "FOR": 1, "particular": 1, "purpos": [1, 7, 17, 18], "pleas": [1, 7, 15, 17, 18], "see": [1, 2, 8, 15, 16, 17, 18], "condit": 1, "present": [1, 4, 7, 13, 14, 17, 18], "low": [1, 2, 17, 18], "cost": [1, 2, 4, 11, 13, 14, 17, 18], "hardwar": [1, 2, 15, 17, 18], "meter": [1, 2, 7, 17, 18], "provid": [1, 15, 17, 18], "scientif": 1, "robust": [1, 16, 17, 18], "flexibl": 1, "tool": 1, "experi": [1, 15, 16, 17, 18], "call": [1, 7, 8, 10, 13, 14, 15], "basic": [1, 4], "meterfeatur": 1, "current": [1, 2, 6, 8, 9, 11, 15, 16], "inject": [1, 2, 6, 8, 9, 11, 15], "function": [1, 4, 15, 17, 18], "multiplex": [1, 2, 6, 7, 13, 14], "allow": [1, 2, 11, 13, 14, 15, 17, 18], "perform": [1, 2, 4, 10, 17, 18], "automat": [1, 15, 17, 18], "up": [1, 6, 8, 9, 10, 13, 14, 15, 16, 17, 18], "64": [1, 11, 13, 14, 17, 18], "": [1, 2, 11, 13, 14, 15, 16, 17, 18], "philosophi": 1, "fulli": 1, "toolto": 1, "surfac": 1, "anyon": 1, "who": 1, "want": [1, 18], "get": [1, 2, 10, 11, 15, 17, 18], "involv": [1, 15], "welcom": [1, 4], "join": 1, "creat": [2, 4, 8, 10, 15, 17, 18], "januari": 2, "6": [2, 7, 10, 11, 13, 14, 17, 18], "updat": [2, 14, 15], "dec": 2, "depth": 2, "refactor": 2, "licens": 2, "later": 2, "gnu": [2, 17, 18], "public": [2, 17, 18], "v3": 2, "0": [2, 6, 8, 11, 13, 14, 15, 17, 18], "ohmpi": [2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 15, 16], "py": [2, 4, 11, 13, 14, 15, 17, 18], "program": [2, 7, 10, 17, 18], "control": [2, 6, 8, 9, 11, 15, 17, 18], "within": [2, 4, 10, 15, 17, 18], "umon": 2, "fnr": 2, "ulieg": 2, "class": [2, 4, 15], "set": [2, 10, 11, 15, 17, 18], "none": 2, "sequenc": [2, 15, 17, 18], "mqtt": 2, "true": [2, 15], "attribut": [2, 17, 18], "method": [2, 4], "get_deprecated_method": 2, "read_quad": 2, "stop": 2, "static": 2, "append_and_sav": 2, "filenam": 2, "str": 2, "last_measur": 2, "dict": [2, 11], "fw_in_csv": 2, "fw_in_zip": 2, "cmd_id": [2, 15], "append": 2, "save": [2, 10, 17, 18], "last": [2, 18], "paramet": [2, 11, 15], "csv": [2, 17, 18], "taken": [2, 15], "form": 2, "python": [2, 4, 6], "dictionari": [2, 4], "bool": 2, "option": [2, 10, 15, 17, 18], "wether": 2, "full": [2, 17, 18], "waveform": 2, "line": [2, 8, 11, 13, 14, 16, 17, 18], "per": [2, 11, 13, 14, 17, 18], "quadrupol": [2, 15, 17, 18], "As": [2, 8, 17, 18], "read": 2, "have": [2, 4, 8, 10, 11, 13, 14, 15, 16, 17, 18], "differ": [2, 6, 7, 8, 10, 11, 13, 14, 15, 17, 18], "length": [2, 7, 17, 18], "ar": [2, 3, 4, 7, 8, 9, 10, 11, 15, 16, 17, 18], "pad": 2, "nan": 2, "If": [2, 4, 10, 11, 16, 17, 18], "default": [2, 13, 14, 15], "from": [2, 7, 8, 13, 14, 15, 16, 17, 18], "json": [2, 15, 18], "separ": [2, 15], "long": [2, 7, 8, 13, 14], "format": [2, 15], "zip": [2, 15], "spare": 2, "space": [2, 11, 13, 14], "uniqu": 2, "command": [2, 10, 15, 17, 18], "identifi": [2, 13, 14], "download_data": 2, "folder": [2, 10, 17, 18], "download": [2, 15, 17, 18], "easili": [2, 4, 15, 16], "get_data": 2, "survey_nam": 2, "avail": [2, 4, 9, 15, 17, 18], "list": [2, 10], "alreadi": [2, 8], "html": [2, 15], "so": [2, 7, 8, 17, 18], "won": 2, "t": [2, 11, 13, 14, 15, 16], "return": [2, 15, 17, 18], "again": 2, "onli": [2, 4, 8, 9, 13, 14], "interrupt": [2, 15], "acquisit": [2, 15], "load_sequ": [2, 15], "path": [2, 4, 8, 10, 17, 18], "txt": [2, 10, 15, 17, 18], "m": [2, 7, 8, 10, 11, 13, 14, 17, 18], "n": [2, 6, 7, 8, 11, 13, 14, 15, 17, 18], "index": [2, 15], "numpi": [2, 10, 15, 17, 18], "ndarrai": 2, "arrai": [2, 15, 17, 18], "shape": [2, 15], "number": [2, 11, 13, 14, 15, 17, 18], "4": [2, 7, 8, 10, 11, 13, 14, 15, 16, 17, 18], "quit": [2, 16], "remove_data": 2, "remov": 2, "export_path": [2, 18], "raspberrypi": [2, 6, 8, 9, 10], "repeat_sequ": 2, "kwarg": [2, 15], "ident": 2, "run_multiple_sequ": [2, 15], "reset_mux": 2, "switch": [2, 8, 17, 18], "off": [2, 8], "relai": [2, 8, 10, 11, 13, 14, 16, 17, 18], "restart": 2, "rs_check": [2, 15], "tx_volt": 2, "5": [2, 7, 8, 10, 11, 13, 14, 15, 16, 17, 18], "check": [2, 6, 10, 15, 16, 17, 18], "contact": [2, 11, 13, 14, 15, 17, 18], "strategi": [2, 4], "we": [2, 6, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18], "just": [2, 11, 18], "vab": 2, "assum": 2, "12v": [2, 6, 7, 8, 11, 13, 14, 17, 18], "batteri": [2, 6, 7, 11, 17, 18], "comput": [2, 10, 17, 18], "rab": 2, "float": [2, 8], "voltag": [2, 6, 7, 8, 11, 16, 17, 18], "run_invers": 2, "elec_spac": 2, "run": [2, 7, 10, 11, 13, 14, 15, 17, 18], "simpl": [2, 17, 18], "2d": 2, "invers": 2, "resipi": 2, "http": [2, 10, 11, 13, 14, 15, 17, 18], "gitlab": [2, 15, 17, 18], "com": [2, 11, 13, 14, 15, 17, 18], "hkex": 2, "string": [2, 15], "survei": 2, "invert": 2, "extens": 2, "same": [2, 7, 8, 15, 17, 18], "everywher": 2, "addit": [2, 8, 15, 17, 18], "keyword": 2, "argument": [2, 15], "pass": [2, 7, 15], "For": [2, 8, 10, 11, 13, 14, 15, 17, 18], "instanc": [2, 8, 10], "reg_mod": 2, "batch": 2, "2": [2, 4, 7, 8, 10, 11, 13, 14, 15, 17, 18], "time": [2, 8, 10, 13, 14, 15, 17, 18], "laps": 2, "more": [2, 6, 7, 8, 15, 16], "inform": 2, "io": [2, 17, 18], "xzv": 2, "each": [2, 7, 8, 10, 13, 14, 17, 18], "dictionnari": 2, "kei": [2, 11], "x": [2, 13, 14, 17, 18], "z": 2, "centroid": 2, "element": 2, "run_measur": [2, 15], "quad": 2, "nb_stack": [2, 15], "injection_dur": [2, 15, 17, 18], "duty_cycl": 2, "autogain": [2, 15], "constant": 2, "best_tx_injtim": 2, "vab_max": 2, "iab_max": 2, "vmn_max": 2, "vmn_min": 2, "transfer": 2, "iter": 2, "int": 2, "label": 2, "switch_mux_on": [2, 15], "realli": 2, "rout": 2, "stack": [2, 8, 15, 17, 18], "consid": [2, 7], "two": [2, 4, 8, 9, 11, 13, 14, 15, 16, 17, 18], "posit": [2, 7, 17, 18], "neg": [2, 17, 18], "look": 2, "best": [2, 4], "second": [2, 7, 8, 15, 17, 18], "duti": 2, "cycl": [2, 8, 15], "squar": 2, "wave": 2, "defin": [2, 4, 7, 15], "adjust": [2, 11, 17, 18], "otherwis": 2, "either": [2, 6, 10, 17, 18], "vmax": 2, "reach": [2, 16], "maximum": [2, 9, 15, 17, 18], "iab": 2, "exceed": 2, "vmin": 2, "least": 2, "appli": [2, 17, 18], "e": [2, 5, 15, 17, 18], "short": [2, 15], "prior": 2, "ensur": [2, 8, 10, 17, 18], "bound": 2, "can": [2, 6, 7, 8, 9, 10, 15, 16, 17, 18], "adapt": [2, 4, 11, 15, 17, 18], "To": [2, 11, 13, 14, 15, 16, 17, 18], "bypass": 2, "befor": [2, 7, 8, 13, 14, 15, 17, 18], "should": [2, 4, 7, 8, 10, 11, 13, 14, 15, 17, 18], "equal": [2, 17, 18], "recpommand": 2, "config": [2, 4, 11, 15, 17, 18], "spec": 2, "vmn": 2, "minimum": [2, 7], "desir": [2, 15], "todo": [2, 5], "chang": [2, 4, 11, 13, 14, 15, 16], "specifi": [2, 10, 17, 18], "impos": 2, "sequence_delai": [2, 15, 17, 18], "nb_mea": [2, 15], "multipl": [2, 8, 10, 15], "thread": [2, 15], "monitor": [2, 7, 15, 17, 18], "mode": [2, 8], "other": [2, 7, 15, 17, 18], "repeat": [2, 7, 15, 17, 18], "help": [2, 4, 7, 8, 15], "info": 2, "run_sequ": [2, 15], "synchron": [2, 15], "block": [2, 7, 17, 18], "main": [2, 15, 17, 18], "run_sequence_async": [2, 15], "properti": 2, "set_sequ": [2, 15], "acquir": 2, "array_lik": 2, "shutdown": [2, 11], "switch_mux_off": [2, 15], "integ": 2, "repres": [2, 13, 14, 17, 18], "bypass_check": 2, "fals": 2, "r": [2, 17, 18], "test_mux": 2, "activation_tim": 2, "mux_id": 2, "interact": [2, 4, 15], "test": [2, 4, 7, 10, 11, 13, 14, 15, 17, 18], "dure": [2, 10, 17, 18], "activ": [2, 6, 13, 14], "id": [2, 6, 15], "mux_board": 2, "update_set": [2, 15], "nb_electrod": [2, 15, 17, 18], "need": [2, 6, 8, 9, 11, 13, 14, 15, 16, 17, 18], "total": [2, 11, 13, 14, 17, 18], "delai": [2, 17, 18], "compris": 2, "where": [2, 4, 6, 8, 10, 15, 17, 18], "export": [2, 10], "timestamp": 2, "ad": [2, 15, 17, 18], "These": [3, 6, 8, 15, 16, 17, 18], "support": [3, 10], "anymor": [3, 16], "draft": 4, "TO": [4, 14, 16], "BE": [4, 14, 16], "review": [4, 16], "section": [4, 6, 15, 17, 18], "intend": 4, "part": [4, 6, 8, 16, 17, 18], "It": [4, 9, 10, 13, 14, 15, 16, 17, 18], "advic": [4, 16], "practic": [4, 17, 18], "contribut": 4, "howev": [4, 8, 17, 18], "order": [4, 15, 17, 18], "maintain": 4, "track": [4, 17, 18], "promot": 4, "exchang": 4, "reus": 4, "necessari": [4, 7, 10, 13, 14, 17, 18], "contributor": 4, "ideal": 4, "follow": [4, 7, 8, 10, 11, 13, 14, 15, 17, 18], "few": 4, "step": [4, 10, 11, 13, 14, 17, 18], "case": [4, 10, 15, 16, 17, 18], "distinguish": 4, "when": [4, 7, 9, 15, 16, 17, 18], "deal": 4, "compli": 4, "wai": [4, 10, 17, 18], "Such": 4, "typic": [4, 8, 15, 17, 18], "focu": 4, "improv": [4, 18], "exist": [4, 6, 17, 18], "reduc": [4, 8], "rang": [4, 16, 17, 18], "specif": [4, 6, 15, 17, 18], "newli": 4, "expos": 4, "minim": 4, "hardware_system": 4, "type": [4, 10, 13, 14, 17, 18], "introduc": [4, 15, 17, 18], "do": [4, 7, 13, 14, 15], "singl": [4, 15, 17, 18], "also": [4, 8, 9, 10, 15, 17, 18], "discuss": 4, "ohmpi_hardwar": 4, "initi": 4, "veri": [4, 8, 18], "earli": 4, "stage": 4, "investig": 4, "implement": [4, 15], "solut": [4, 17, 18], "readi": 4, "first": [4, 7, 8, 10, 13, 14, 15], "devic": [4, 8, 11, 13, 14], "conceiv": 4, "recommend": [4, 10, 15, 17, 18], "import": [4, 15], "kicad": 4, "both": [4, 17, 18], "schema": 4, "pcb": [4, 11, 13, 14, 17, 18], "share": 4, "alwai": 4, "your": [4, 6, 10, 11, 13, 14, 17, 18], "branch": 4, "copi": [4, 10, 15], "similar": [4, 16], "modul": [4, 6, 8, 17, 18], "store": [4, 15], "hardware_compon": 4, "directori": [4, 10, 15, 17, 18], "In": [4, 8, 10, 11, 13, 14, 16, 17, 18], "base": [4, 10, 13, 14, 15, 17, 18], "relev": [4, 7], "abstract": 4, "abstract_hardware_compon": 4, "name": [4, 13, 14, 15, 17, 18], "accord": [4, 8, 17, 18], "sure": [4, 15, 17, 18], "place": [4, 7, 8, 16, 17, 18], "describ": [4, 7, 10, 11, 17, 18], "hardware_config": 4, "config_xxx": 4, "xxx": 4, "replac": [4, 16, 18], "3": [4, 7, 8, 10, 11, 13, 14, 15, 17, 18], "script": [4, 13, 14, 15], "write": [4, 11, 13, 14, 15, 17, 18], "code": [4, 10, 13, 14, 17, 18], "conduct": [4, 17, 18], "g": [5, 11, 17, 18], "rocherfort": 5, "contain": [6, 7, 10, 15, 17, 18], "build": [6, 13, 14, 17, 18], "compos": [6, 7], "mb": 6, "address": [6, 8, 11, 17, 18], "pwr": 6, "advanc": [6, 15], "ctrl": [6, 17, 18], "combin": [6, 13, 14], "upgrad": [6, 18], "c": [6, 17, 18], "valid": [6, 17, 18], "regul": 6, "dps5005": 6, "o": [6, 7, 11, 13, 14, 15], "instal": [6, 7, 11, 13, 14, 15], "virtual": 6, "environ": 6, "packag": [6, 15], "thonni": [6, 11, 15], "cut": 7, "ribbon": [7, 13, 14], "cabl": [7, 10, 11, 13, 14, 17, 18], "16": [7, 8, 11, 13, 14, 17, 18], "wire": [7, 8, 10, 13, 14, 17, 18], "proper": 7, "about": [7, 8], "5m": [7, 11], "correspond": [7, 17], "crimp": [7, 17, 18], "idc": 7, "connector": [7, 13, 14, 17, 18], "suitabl": [7, 17, 18], "clamp": 7, "pai": [7, 17, 18], "attent": [7, 17, 18], "direct": [7, 15, 17, 18], "unbalanc": 7, "perpendicular": 7, "mount": [7, 11, 13, 14, 17, 18], "possibl": [7, 16, 17, 18], "flush": 7, "9": [7, 10, 11, 13, 14, 17, 18], "spacer": [7, 11, 13, 14], "abov": [7, 17, 18], "below": [7, 8, 10, 15, 17, 18], "profil": 7, "view": [7, 11], "7": [7, 10, 11, 13, 14, 17, 18], "50": [7, 9, 11, 13, 14, 17, 18], "cm": [7, 13, 14, 17, 18], "color": 7, "here": [7, 13, 14, 18], "yellow": 7, "strip": [7, 11, 13, 14, 17, 18], "tin": 7, "end": [7, 17, 18], "screw": [7, 11, 13, 14, 17, 18], "termin": [7, 10, 11, 13, 14, 15, 17, 18], "red": [7, 11, 15, 17, 18], "black": [7, 11, 17, 18], "left": [7, 11], "shown": [7, 17, 18], "pictur": 7, "12": [7, 8, 11, 13, 14, 17, 18], "ii": 7, "gnd": [7, 17, 18], "nois": 7, "often": [7, 8], "heard": 7, "clip": 7, "10": [7, 11, 13, 14, 15, 17, 18], "11": [7, 11, 17, 18], "input": [7, 8, 11, 17, 18], "right": [7, 11], "fix": [7, 11], "13": [7, 11, 13, 14, 17, 18], "connect": [7, 8, 9, 11, 13, 14, 15, 16], "14": [7, 11, 13, 14], "15": [7, 11, 13, 14, 17, 18], "previou": 7, "procedur": 7, "17": [7, 11, 17, 18], "purpl": 7, "its": [7, 10, 13, 14, 15, 17, 18], "18": [7, 11, 17, 18], "third": [7, 15], "19": [7, 11, 17, 18], "fourth": 7, "nylon": 7, "hex": [7, 13, 14], "photograph": 7, "detail": [7, 8, 15, 17], "20": [7, 11, 17, 18], "4th": 7, "togeth": [7, 17, 18], "note": [7, 13, 14, 17, 18], "could": [7, 11, 17, 18], "previous": [7, 10, 17, 18], "21": [7, 11, 17, 18], "tie": 7, "22": [7, 11, 17, 18], "23": [7, 11, 13, 14, 17, 18], "pvc": 7, "plate": 7, "dimens": 7, "200": 7, "mm": [7, 11, 13, 14, 17, 18], "150": [7, 8, 11, 17, 18], "drill": 7, "remain": [7, 17, 18], "metal": 7, "tighten": 7, "25": [7, 11, 13, 14, 17, 18], "rpi": [7, 10, 17, 18], "access": [7, 10, 15, 17, 18], "usb": 7, "port": [7, 11], "mark": [7, 11], "hole": [7, 17, 18], "26": [7, 17, 18], "add": [7, 17, 18], "27": [7, 13, 14, 17, 18], "attach": 7, "washer": 7, "nut": 7, "28": 7, "card": [7, 10, 11, 13, 14], "come": 7, "out": [7, 10, 17, 18], "30": [7, 13, 14, 17, 18], "gpio": [7, 8, 10, 13, 14, 17, 18], "output": [7, 11, 15, 17, 18], "pre": [7, 11], "led": 7, "simpli": [7, 10, 17, 18], "temporari": 7, "modif": [7, 10, 17, 18], "orang": 7, "31": [7, 11, 13, 14], "brown": 7, "blue": [7, 17, 18], "top": [7, 11, 15], "secur": [7, 15], "33": 7, "34": 7, "zoom": [7, 13, 14], "35": [7, 11], "36": [7, 11, 17, 18], "37": [7, 17, 18], "38": [7, 17, 18], "sd": [7, 10, 11, 17, 18], "mous": [7, 10, 17, 18], "keyboard": [7, 10, 17, 18], "hdmi": [7, 10], "39": [7, 11, 13, 14, 17, 18], "deliv": [7, 17, 18], "12vdc": 7, "enjoi": 7, "integr": [8, 11], "mn": [8, 16], "ab": 8, "polar": [8, 17, 18], "half": [8, 15], "explan": 8, "understand": [8, 15], "redirect": 8, "reader": 8, "datasheet": 8, "done": [8, 10, 15, 17, 18], "through": [8, 15, 17, 18], "adc": [8, 11, 16, 17, 18], "analog": [8, 11, 17, 18], "digit": [8, 11, 13, 14, 17, 18], "convert": [8, 11, 17, 18], "ads1115": [8, 11, 16, 17, 18], "bit": [8, 11, 17, 18], "programm": 8, "gain": [8, 11, 15, 17, 18], "pga": 8, "mean": 8, "factor": 8, "digitis": 8, "Its": [8, 17, 18], "vari": 8, "With": [8, 17, 18], "precis": [8, 11, 17, 18], "076": 8, "mv": 8, "beyond": 8, "larger": 8, "our": [8, 17, 18], "divid": [8, 17, 18], "receiv": [8, 15], "mb_2023": 8, "resistor": [8, 11, 13, 14, 16, 17, 18], "bridg": [8, 17, 18], "across": 8, "seri": [8, 17, 18], "300": 8, "ohm": [8, 11, 17, 18], "anoth": [8, 10, 16, 17, 18], "techniqu": 8, "consist": [8, 16, 17, 18], "opamp": 8, "amplifi": [8, 11, 17, 18], "known": [8, 10, 17, 18], "down": [8, 17, 18], "high": [8, 17, 18], "imped": [8, 11, 17, 18], "inde": [8, 17, 18], "leak": 8, "while": 8, "affect": 8, "2024": 8, "mb_2024": 8, "differenti": 8, "model": [8, 10, 11, 17, 18], "ground": [8, 11, 16, 17, 18], "enabl": [8, 9, 15, 17, 18], "u": [8, 9], "much": 8, "higher": [8, 11, 18], "too": 8, "larg": 8, "usual": 8, "accur": [8, 17, 18], "shunt": [8, 11, 16], "ha": [8, 10, 13, 14, 16, 17, 18], "tini": 8, "being": [8, 17, 18], "ina282": [8, 11], "via": [8, 10, 16, 17, 18], "click": [8, 10, 16, 17, 18], "ina": 8, "equival": [8, 11, 17, 18], "solder": [8, 11, 17, 18], "revers": [8, 17, 18], "four": [8, 11], "optic": [8, 11, 16], "mechan": [8, 13, 14, 15, 16, 17, 18], "transit": 8, "mcp2308": 8, "expand": [8, 13, 14], "gpi": 8, "sda": [8, 16], "scl": [8, 16], "i2c": [8, 10, 11, 13, 14, 16], "protocol": [8, 15, 16, 17, 18], "send": 8, "clock": 8, "transmit": 8, "pull": [8, 16], "rest": [8, 16], "5v": [8, 11, 16, 17, 18], "thei": [8, 15, 16, 17, 18], "entri": 8, "mcp23017": [8, 13, 14], "becaus": 8, "mani": 8, "bu": 8, "tcaxxxx": 8, "itself": [8, 15], "rapsberrypi": 8, "now": [9, 17, 18], "actual": [9, 17, 18], "henc": 9, "aliment": 9, "modbu": 9, "quantiti": [10, 17, 18], "micro": [10, 11, 17, 18], "go": [10, 13, 14, 15], "instruct": [10, 15], "well": [10, 15, 17, 18], "websit": [10, 17, 18], "watch": [10, 17, 18], "video": [10, 17, 18], "how": [10, 17, 18], "latest": [10, 17, 18], "stabl": [10, 17, 18], "complet": [10, 11], "raspbian": [10, 17, 18], "visit": 10, "org": [10, 15], "en": 10, "were": [10, 11, 17, 18], "onc": [10, 15, 16, 17, 18], "been": [10, 13, 14, 15, 17, 18], "spi": [10, 17, 18], "remot": [10, 15, 17, 18], "deactiv": [10, 17, 18], "gui": [10, 17, 18], "menu": [10, 17, 18], "failur": [10, 17, 18], "carri": [10, 17, 18], "task": [10, 17, 18], "caus": [10, 16, 17, 18], "shield": [10, 17, 18], "parallel": 10, "interpret": [10, 11, 17, 18], "discret": 10, "util": [10, 15], "protect": 10, "problem": 10, "depend": [10, 15, 17, 18], "libatla": [10, 17, 18], "dev": [10, 17, 18], "librari": [10, 17, 18], "sudo": [10, 17, 18], "apt": [10, 17, 18], "strongli": [10, 17, 18], "gather": [10, 17, 18], "python3": [10, 17, 18], "venv": [10, 17, 18], "bin": [10, 17, 18], "suffici": [10, 17, 18], "meet": [10, 17, 18], "cflag": 10, "fcommon": 10, "pip": [10, 17, 18], "adafruit": [10, 11, 13, 14, 17, 18], "blinka": [10, 17, 18], "panda": [10, 17, 18], "circuitpython": [10, 17, 18], "ads1x15": [10, 17, 18], "tca9548a": [10, 13, 14], "mcp230xx": 10, "gpiozero": 10, "met": [10, 17, 18], "leav": [10, 17, 18], "decid": [10, 17, 18], "setup": [10, 17, 18], "pythonid": [10, 17, 18], "root": [10, 17, 18], "usr": [10, 17, 18], "select": [10, 13, 14, 17, 18], "window": [10, 15, 17, 18], "On": [10, 17, 18], "altern": [10, 17, 18], "button": [10, 17, 18], "appear": [10, 11, 13, 14, 17, 18], "locat": [10, 17, 18], "execut": [10, 15, 17, 18], "find": [10, 17, 18], "home": [10, 15, 17, 18], "tab": [10, 15, 17, 18], "close": [10, 16, 17, 18], "ok": [10, 17, 18], "v1": [11, 17, 18], "0x": 11, "unit": [11, 13, 14, 17, 18], "128": [11, 13, 14], "temperatur": [11, 17, 18], "consumpt": [11, 15, 17, 18], "cpu": [11, 17, 18], "w": [11, 17, 18], "40": [11, 13, 14, 17, 18], "ma": [11, 17, 18], "min": [11, 17, 18], "durat": [11, 15, 17, 18], "80": 11, "mohm": [11, 17, 18], "storag": [11, 17, 18], "resolut": [11, 15, 17, 18], "manufactur": [11, 13, 14, 17, 18], "web": [11, 13, 14], "58": [11, 17, 18], "75": 11, "www": [11, 13, 14, 17, 18], "mouser": [11, 13, 14], "fr": [11, 13, 14, 17, 18], "productdetail": [11, 13, 14], "seeed": 11, "studio": 11, "102110421": 11, "q": [11, 13, 14], "7mvldsj5uaxen3lyyh3sqw": 11, "3d": [11, 13, 14], "lm158n": 11, "amp": [11, 17, 18], "texa": [11, 17, 18], "instrument": [11, 15, 17, 18], "lm358an": [11, 17, 18], "nopb": [11, 17, 18], "lm158j": 11, "x1j7hmvl2zh8vpefml8": 11, "2ffq": 11, "print": [11, 13, 14, 15, 17, 18], "circuit": [11, 13, 14, 15, 17, 18], "asler": [11, 13, 14, 17, 18], "1085": 11, "2fha2pyfaduh": 11, "2fogzutwiq9iz5vjaqfoyugqalgxpeckigrqvf4hn": 11, "252bg": 11, "capacitor": [11, 18], "100nf": [11, 18], "50vdc": [11, 18], "ceram": [11, 18], "kemet": [11, 18], "c320c104k1": [11, 18], "c320c104k1r5ta7303": 11, "c4uyot": 11, "2flq1th4mcyoetma": 11, "kohm": [11, 13, 14, 17, 18], "5w": [11, 17, 18], "te": [11, 13, 14, 17, 18], "h81k0bya": [11, 17, 18], "holsworthi": 11, "2fha2pyfaduhuylh7az": 11, "2fmjfh2xjoums6wztux4som": 11, "252bii": 11, "h81k5bya": [11, 17, 18], "2fha2pyfadugy9twham3ru9hmijohywhbin95knm": 11, "252bx": 11, "2fm": 11, "vishai": [11, 13, 14], "ccf071k50gke36": 11, "dale": 11, "qkeozdl6eqpa6lzrlqfvow": 11, "762": 11, "524": 11, "cmf651m0000fkek143": 11, "ciayqk2gdckzia2levalkg": 11, "42": 11, "ohmit": 11, "41f2r0e": 11, "im6toxqzgoauedprb19mha": 11, "dual": [11, 13, 14, 17, 18], "08": [11, 13, 14], "pitch": [11, 13, 14, 17, 18], "648": [11, 13, 14, 17, 18], "cui": [11, 13, 14], "tb009": [11, 13, 14], "508": [11, 13, 14], "02be": [11, 13, 14], "vlwxofp3u2wcfk5uckwtka": [11, 13, 14], "dc": [11, 13, 14, 17, 18], "24v": [11, 18], "tracopow": [11, 18], "trn": [11, 18], "1215": [11, 18], "traco": [11, 18], "yca": 11, "2faaymw02gquicgqj0ta": 11, "dip": [11, 13, 14], "socket": [11, 13, 14], "72": [11, 18], "mill": 11, "max": 11, "110": [11, 13, 14, 17, 18], "43": [11, 17, 18], "308": 11, "41": [11, 13, 14], "001000": 11, "iggadovctstu": 11, "2fqaur8narg": 11, "mgh": 11, "vip": 11, "gclid": 11, "eaiaiqobchmin_taxbcx8wivq5nvch2qaqfpeayyccabegjk1_d_bw": 11, "aqy211eh": 11, "84": [11, 13, 14], "panason": 11, "industri": 11, "wktuvitrialgiu8hcm7dvq": 11, "449": 11, "796": 11, "preci": [11, 13, 14], "83": 11, "304": 11, "001101": [11, 13, 14], "2fha2pyfadujqkqx4wauig": 11, "2fmgndxmcnv": 11, "2f33nj0gbxroculucynpyong": 11, "mcp23008": 11, "593": 11, "sgaepimzzmskedp9slc0yyv4kpdpmd1hts4slctivmw": 11, "header": [11, 13, 14, 17, 18], "1x10": [11, 17, 18], "samtec": [11, 17, 18], "ssw": [11, 17, 18], "ru5fayqh": 11, "252be0w1orxzibqpw": 11, "smt": 11, "breakout": 11, "soic": 11, "1212": 11, "gurawfaegucaqqfvnvtyeg": 11, "eaiaiqobchmit8zjzr6x8wivgdnvch2vbwvseaqyayabegjqg_d_bw": 11, "ina282aid": 11, "ze4": 11, "2fufuz19ilfayzxocfra": 11, "thd": 11, "1211n": 11, "2fha2pyfadugpyeg4idvm": 11, "2fmsr": 11, "252b7an": 11, "2f0t3ruis9pcaqjlt4": 11, "252bnrpuooeq": 11, "53": [11, 18], "ssq": 11, "120": [11, 13, 14], "d": [11, 17, 18], "252be1bmvd": 11, "252bdzonqg": 11, "pin": [11, 13, 14, 17, 18], "ejector": [11, 13, 14], "blk": [11, 13, 14], "10120550": [11, 13, 14], "conrad": [11, 13, 14], "bkl": [11, 13, 14], "254": [11, 13, 14], "row": [11, 13, 14], "pc": [11, 13, 14], "741435": [11, 13, 14], "searchterm": [11, 13, 14], "searchtyp": [11, 13, 14], "suggest": [11, 13, 14, 17, 18], "searchsuggest": [11, 13, 14], "male": [11, 13, 14], "femal": [11, 13, 14, 17, 18], "hexagonal": 11, "87": [11, 13, 14], "48": [11, 17, 18], "harwin": 11, "r25": 11, "3002002": 11, "w0yvoo0ixfenuv0hsdc4": 11, "2fq": 11, "86": [11, 13, 14], "437": 11, "1108331841001101": 11, "318": 11, "ftmup6kvi2tnqoeziaq": 11, "2fpa": 11, "figur": [11, 15, 17, 18], "show": [11, 17, 18], "schemat": [11, 18], "plug": [11, 17, 18], "plai": 11, "propos": [11, 17, 18], "florsch": [11, 17, 18], "advantag": 11, "signal": [11, 17, 18], "lie": [11, 17, 18], "114": [11, 17, 18], "directli": [11, 17, 18], "realiz": 11, "around": [11, 15], "tdh15": 11, "inpout": 11, "three": [11, 13, 14, 15, 17, 18], "than": [11, 17, 18], "decreas": 11, "don": [11, 15], "forget": [11, 15], "r_shunt": 11, "ohmpi_config": 11, "tow": 11, "dot": 11, "corner": 11, "lm158": 11, "ads115": [11, 17, 18], "3x11": 11, "wurth": 11, "elektronik": 11, "971110321": 11, "305": [11, 13, 14], "apm": [11, 13, 14], "hexseal": [11, 13, 14], "rm3x8mm": [11, 13, 14], "2701": [11, 13, 14], "jjse": [11, 13, 14], "2f12mkns3vxsdryxuhw": [11, 13, 14], "unplug": 11, "bottom": [11, 17, 18], "11mm": 11, "m3": [11, 13, 14], "upper": 11, "i2cdetect": [11, 13, 14], "y": [11, 13, 14], "everyth": 11, "screen": [11, 17, 18], "1kohm": 11, "r2": [11, 17, 18], "220": 11, "r1": [11, 17, 18], "padboard": 11, "spool": 11, "prepar": [11, 13, 14, 17, 18], "sample_measurement_exampl": 11, "result": [11, 17, 18], "channel": [13, 14, 17, 18], "omron": [13, 14], "g5le": [13, 14], "vd": [13, 14], "vdc": [13, 14], "zvn4206a": [13, 14], "mofset": [13, 14], "enough": [13, 14, 17, 18], "512": [13, 14], "own": [13, 14], "0x70": [13, 14], "0x77": [13, 14], "0x71": [13, 14], "0x72": [13, 14], "0x73": [13, 14], "140": [13, 14], "560": [13, 14], "62": [13, 14], "92": [13, 14, 17, 18], "1580994": [13, 14], "tru": [13, 14, 17, 18], "diod": [13, 14], "1n4007": [13, 14], "256": [13, 14], "091": [13, 14], "296": [13, 14], "incorpor": [13, 14, 15], "sgaepimzzmueqxo7l": [13, 14], "2fbpyakboruumren": [13, 14], "56": [13, 14], "776": [13, 14], "205": [13, 14], "46": [13, 14], "103321": [13, 14], "5twgzeq9e7hsylqaljjyrw": [13, 14], "732": [13, 14], "sgaepimzzmskedp9slc0yfx16nydmpxjueeogolbldi": [13, 14], "325": [13, 14], "over": [13, 14, 16], "503811": [13, 14], "mosfet": [13, 14], "nchannel": [13, 14], "471": [13, 14], "576": [13, 14, 17], "vhuuswq2": [13, 14], "252bsz9b": [13, 14], "2ff6fcxt7g": [13, 14], "100k\u03c9": [13, 14], "061": [13, 14], "616": [13, 14], "beyschlag": [13, 14], "mba02040c1003frp00": [13, 14], "mzrxyrlhvdt9crf7zyf": [13, 14], "2f5q": [13, 14], "89": [13, 14], "2717": [13, 14], "sgaepimzzmsyydr3r27av4eqf73yoh": [13, 14], "252baqg": [13, 14], "252bz3hvktao": [13, 14], "10120558": [13, 14], "54": [13, 14], "No": [13, 14], "51": [13, 14], "741727": [13, 14], "10120862": [13, 14], "strain": [13, 14], "relief": [13, 14], "44": [13, 14, 17, 18], "742063": [13, 14], "10120158": [13, 14], "mm\u00b2": [13, 14, 17, 18], "multi": [13, 14, 17, 18], "colour": [13, 14], "1012015810": [13, 14], "127": [13, 14], "008": [13, 14], "1548658": [13, 14], "79": [13, 14], "49": [13, 14], "keyston": [13, 14], "24300": [13, 14], "uwqyq": [13, 14], "2f2czwu0ejpozmzc2a": [13, 14], "745": [13, 14], "846": [13, 14], "614": [13, 14], "25515": [13, 14], "2f2czwuxuhumfr": [13, 14], "252bzuq": [13, 14], "55": [13, 14, 17, 18], "328": [13, 14], "uqd7xcvsscnr3hwd6fta8g": [13, 14], "100": [13, 14, 15, 17, 18], "duplic": [13, 14], "everi": [13, 14, 15], "therefor": [13, 14, 17, 18], "assign": [13, 14], "alloc": [13, 14], "jumper": [13, 14], "them": [13, 14, 15, 17, 18], "definit": [13, 14], "simplifi": [13, 14], "thing": [13, 14, 15], "flat": [13, 14], "pole": [13, 14, 17, 18], "detect": [13, 14], "test_mux_board": [13, 14], "whose": [15, 17, 18], "summar": 15, "cover": 15, "ohmpi_set": 15, "central": 15, "handler": 15, "layer": 15, "excel": 15, "log": 15, "broker": 15, "rotat": 15, "disk": 15, "exec_logg": 15, "data_logg": 15, "plan": 15, "state": 15, "health": 15, "soh": 15, "futur": 15, "By": 15, "written": 15, "consol": 15, "like": [15, 16], "local": 15, "dai": 15, "size": 15, "exce": 15, "sent": 15, "level": 15, "edit": 15, "setup_logg": 15, "custom": 15, "repositori": [15, 17, 18], "prefer": [15, 17, 18], "usernam": 15, "password": 15, "One": [15, 16], "alter": 15, "keep": 15, "bash": 15, "run_http_interfac": 15, "sh": 15, "iot": 15, "messag": 15, "friendli": 15, "graphic": 15, "quick": 15, "easi": 15, "wi": 15, "fi": 15, "point": [15, 17, 18], "ap": 15, "webserv": 15, "serv": [15, 17, 18], "laptop": 15, "mobil": 15, "phone": 15, "upload": 15, "act": 15, "raspap": 15, "runonstart": 15, "141": 15, "8080": 15, "pseudo": 15, "evolut": 15, "appar": 15, "offer": [15, 17, 18], "especi": 15, "suit": 15, "autom": 15, "ipython": 15, "ssh": 15, "putti": 15, "maco": 15, "linux": 15, "found": 15, "entir": [15, 17, 18], "np": 15, "chdir": 15, "object": 15, "k": 15, "load": 15, "manual": [15, 17, 18], "nbr_mea": [15, 17, 18], "n2": 15, "abmn": [15, 17, 18], "wait": 15, "prompt": 15, "immedi": 15, "sleep": 15, "kill": 15, "asynchron": 15, "interv": 15, "risk": 15, "good": 15, "usag": 15, "process": 15, "sensor": 15, "scope": 15, "internet": 15, "network": 15, "auxiliari": 15, "publish": [15, 17], "subscrib": 15, "approach": 15, "mosquitto": 15, "server": 15, "reachabl": 15, "net": 15, "servic": 15, "install_local_mqtt_brok": 15, "examin": 15, "parti": 15, "explor": 15, "reboot": 15, "further": 15, "illustr": [15, 17, 18], "3fzxv121uitwgjwygcz4xw": 15, "cmd": 15, "3fzxv121uitwgjwygcz4yw": 15, "tailor": 15, "made": [15, 17, 18], "dashboard": 15, "browser": 15, "flow": [15, 17, 18], "editor": [15, 17, 18], "node": 15, "complex": 15, "properli": [15, 16], "palett": 15, "manag": [15, 17, 18], "noder": 15, "doc": 15, "guid": 15, "ui": 15, "visual": 15, "cookbook": 15, "due": 16, "fragil": 16, "still": [16, 17, 18], "conductor": 16, "turn": [16, 17, 18], "multimet": 16, "broken": 16, "shoudn": 16, "wa": [16, 17, 18], "burn": 16, "expect": 16, "try": 16, "effect": 16, "voltmet": [16, 17, 18], "sens": 16, "malfunct": 16, "erron": 16, "solv": 16, "most": 16, "100k": 16, "vdd": 16, "stronger": [16, 17, 18], "smaller": [16, 17, 18], "journal": 17, "bug": 17, "explain": 17, "miss": 17, "invit": 17, "commerci": [17, 18], "field": [17, 18], "o1": [17, 18], "youtub": [17, 18], "wjwzhv1v3pk": [17, 18], "noob": [17, 18], "unexpectedli": [17, 18], "boot": [17, 18], "cd": [17, 18], "nano": [17, 18], "At": [17, 18], "op": [17, 18], "dl": [17, 18], "press": [17, 18], "enter": [17, 18], "escap": [17, 18], "studi": [17, 18], "hous": [17, 18], "diagram": [17, 18], "displai": [17, 18], "mimic": [17, 18], "behavior": [17, 18], "soil": [17, 18], "subject": [17, 18], "r11": [17, 18], "r10": [17, 18], "r12": [17, 18], "constitut": [17, 18], "stainless": [17, 18], "steel": [17, 18], "r9": [17, 18], "less": [17, 18], "sum": [17, 18], "000": [17, 18], "intens": [17, 18], "potenti": [17, 18], "calcul": [17, 18], "insert": [17, 18], "1115": [17, 18], "a1": [17, 18], "a0": [17, 18], "increas": [17, 18], "r5": [17, 18], "r8": [17, 18], "r6": [17, 18], "r7": [17, 18], "a2": [17, 18], "a3": [17, 18], "obtain": [17, 18], "ly": [17, 18], "let": [17, 18], "multipli": [17, 18], "reduct": [17, 18], "despit": [17, 18], "calibr": [17, 18], "variou": [17, 18], "disturb": [17, 18], "estim": [17, 18], "mega": [17, 18], "shortcut": [17, 18], "excess": [17, 18], "lithium": [17, 18], "ion": [17, 18], "automobil": [17, 18], "lead": [17, 18], "acid": [17, 18], "strong": [17, 18], "hazard": [17, 18], "fuse": [17, 18], "onto": [17, 18], "ohmmet": [17, 18], "coeffici": [17, 18], "coef_p0": [17, 18], "coef_p1": [17, 18], "coef_p2": [17, 18], "coef_p3": [17, 18], "coef": [17, 18], "po": [17, 18], "p1": [17, 18], "r3": [17, 18], "r4": [17, 18], "p2": [17, 18], "p3": [17, 18], "r_ref": [17, 18], "slope": [17, 18], "convers": [17, 18], "p0": [17, 18], "accuraci": [17, 18], "lm358n": [17, 18], "weaker": 17, "tx": [17, 18], "rememb": [17, 18], "holder": [17, 18], "f": [17, 18], "circul": [17, 18], "fig": [17, 18], "common": [17, 18], "normal": [17, 18], "simultan": [17, 18], "role": [17, 18], "thu": [17, 18], "energ": [17, 18], "next": [17, 18], "featur": [17, 18], "strict": [17, 18], "in1": [17, 18], "in2": [17, 18], "in3": [17, 18], "in4": [17, 18], "5vdc": [17, 18], "5vcc": [17, 18], "mm2": [17, 18], "lastli": [17, 18], "congratul": [17, 18], "construct": [17, 18], "ert": [17, 18], "sever": [17, 18], "ten": [17, 18], "thousand": [17, 18], "stuck": [17, 18], "hand": [17, 18], "cap": [17, 18], "produc": [17, 18], "clean": [17, 18], "distanc": [17, 18], "had": [17, 18], "extra": [17, 18], "final": [17, 18], "horizont": [17, 18], "vertic": [17, 18], "06": [17, 18], "04": [17, 18], "09": [17, 18], "05": [17, 18], "din": [17, 18], "rail": [17, 18], "chosen": [17, 18], "consequ": [17, 18], "incom": [17, 18], "instead": [17, 18], "moreov": [17, 18], "bought": [17, 18], "velleman": [17, 18], "wpm404": [17, 18], "potentiomet": [17, 18], "scienc": [17, 18], "framework": [17, 18], "manuscript": [17, 18], "osf": [17, 18], "dzwb4": [17, 18], "irstea": [17, 18], "unzip": [17, 18], "master": [17, 18], "readm": [17, 18], "assist": [17, 18], "disconnect": [17, 18], "handl": [17, 18], "charg": [17, 18], "capac": [17, 18], "fewer": [17, 18], "bank": [17, 18], "2a": [17, 18], "ll": [17, 18], "insid": [17, 18], "numer": [17, 18], "optim": [17, 18], "the9": [17, 18], "hear": [17, 18], "characterist": [17, 18], "sound": [17, 18], "permut": [17, 18], "repetit": [17, 18], "evolv": [17, 18], "littl": [17, 18], "articl": [17, 18], "sainsmart": [17, 18], "canal": 17, "pour": 17, "arduino": 17, "dsp": 17, "avr": 17, "pic": 17, "arm": 17, "99": [17, 18], "199": [17, 18], "sain": [17, 18], "smart": [17, 18], "101": [17, 18], "70": [17, 18], "103": [17, 18], "018": [17, 18], "1x1": [17, 18], "66": [17, 18], "1568649": [17, 18], "1x0": [17, 18], "71": [17, 18], "1565235": [17, 18], "68": [17, 18], "pro": [17, 18], "897": [17, 18], "1332": [17, 18], "858": [17, 18], "627": [17, 18], "52": [17, 18], "upw50b50rv": [17, 18], "1083": [17, 18], "7ah": [17, 18], "537": [17, 18], "5488": [17, 18], "lr20": [17, 18], "9v": [17, 18], "185": [17, 18], "4686": [17, 18], "ferrul": [17, 18], "500": [17, 18], "piec": [17, 18], "weidmul": [17, 18], "9004330000": [17, 18], "966067": [17, 18], "car": 17, "littelfus": [17, 18], "fhac0002zxj": 17, "96": 17, "trn3": 18, "suppress": 18, "10v": 18, "fast": 18, "decoupl": 18, "prevent": 18, "overh": 18, "toler": 18, "orient": 18, "h": 18, "nf": 18, "tabl": 18, "jason": 18, "ohmpi_param": 18, "desktop": 18, "0251001": 18, "pat1l": 18}, "objects": {"ohmpi": [[2, 0, 0, "-", "hardware_system"], [2, 0, 0, "-", "ohmpi"]], "ohmpi.ohmpi": [[2, 1, 1, "", "OhmPi"]], "ohmpi.ohmpi.OhmPi": [[2, 2, 1, "", "append_and_save"], [2, 2, 1, "", "download_data"], [2, 2, 1, "", "get_data"], [2, 2, 1, "", "interrupt"], [2, 2, 1, "", "load_sequence"], [2, 2, 1, "", "quit"], [2, 2, 1, "", "remove_data"], [2, 2, 1, "", "repeat_sequence"], [2, 2, 1, "", "reset_mux"], [2, 2, 1, "", "restart"], [2, 2, 1, "", "rs_check"], [2, 2, 1, "", "run_inversion"], [2, 2, 1, "", "run_measurement"], [2, 2, 1, "", "run_multiple_sequences"], [2, 2, 1, "", "run_sequence"], [2, 2, 1, "", "run_sequence_async"], [2, 3, 1, "", "sequence"], [2, 2, 1, "", "set_sequence"], [2, 2, 1, "", "shutdown"], [2, 2, 1, "", "switch_mux_off"], [2, 2, 1, "", "switch_mux_on"], [2, 2, 1, "", "test_mux"], [2, 2, 1, "", "update_settings"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"]}, "titleterms": {"ohmpi": [0, 1, 7, 8, 17, 18], "open": 0, "sourc": 0, "hardwar": [0, 4, 6], "resist": [0, 17, 18], "meter": 0, "summari": 0, "document": 0, "center": 0, "project": 1, "author": 1, "partner": 1, "cite": 1, "introduct": 1, "api": 2, "refer": 2, "archiv": 3, "version": 3, "softwar": [4, 15], "interfac": [4, 15], "new": 4, "compon": [4, 11, 13, 14, 16, 17, 18], "exampl": 5, "applic": [5, 15], "assembl": 7, "electron": 8, "design": 8, "measur": [8, 11, 12, 17, 18], "board": [8, 11, 12, 13, 14, 17, 18], "multiplex": [8, 17, 18], "power": 9, "suppli": 9, "12v": 9, "batteri": 9, "regul": 9, "dps5005": 9, "raspberri": [10, 17, 18], "pi": [10, 17, 18], "configur": [10, 15, 17, 18], "part": [10, 11, 13, 14], "A": [10, 11, 13, 14, 16], "o": [10, 17, 18], "instal": [10, 17, 18], "b": [10, 11, 13, 14, 16, 17, 18], "virtual": [10, 17, 18], "environ": [10, 17, 18], "packag": [10, 17, 18], "c": [10, 11, 13, 14], "activ": [10, 17, 18], "thonni": [10, 17, 18], "python": [10, 15, 17, 18], "id": [10, 17, 18], "v2023": [11, 13], "specif": 11, "assembli": [11, 13, 14, 17, 18], "requir": [11, 13, 14], "list": [11, 13, 14, 17, 18], "descript": [11, 17, 18], "start": 11, "up": 11, "check": 11, "v2024": [12, 14], "mux": [13, 14], "address": [13, 14], "valid": [13, 14], "oper": [15, 17, 18], "system": 15, "architectur": 15, "logger": 15, "file": 15, "web": 15, "mqtt": 15, "troubleshoot": 16, "issu": 16, "puls": 16, "between": 16, "valu": 16, "given": 16, "i": 16, "correct": 16, "one": 16, "commun": 16, "v": [17, 18], "1": [17, 18], "01": 17, "limit": [17, 18], "32": [17, 18], "electrod": [17, 18], "The": [17, 18], "philosophi": [17, 18], "technic": [17, 18], "data": [17, 18], "current": [17, 18], "inject": [17, 18], "card": [17, 18], "connect": [17, 18], "electr": [17, 18], "implement": [17, 18], "first": [17, 18], "four": [17, 18], "instruct": [17, 18], "preliminari": [17, 18], "procedur": [17, 18], "onli": [17, 18], "initi": [17, 18], "startup": [17, 18], "paramet": [17, 18], "complet": [17, 18], "tabl": 17, "titl": 17, "02": 18}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"OHMPI: Open source and open hardware resistivity-meter": [[0, "ohmpi-open-source-and-open-hardware-resistivity-meter"]], "Summary": [[0, null]], "OhmPi Document Center": [[0, null]], "OhmPi project": [[1, "ohmpi-project"]], "Authors:": [[1, "authors"]], "Partners:": [[1, "partners"]], "Citing OhmPi:": [[1, "citing-ohmpi"]], "Introduction :": [[1, "introduction"]], "API reference": [[2, "api-reference"]], "Archived versions": [[3, "archived-versions"]], "Software interface to new hardware components": [[4, "software-interface-to-new-hardware-components"]], "Examples of applications": [[5, "examples-of-applications"]], "Hardware": [[6, "hardware"]], "Assembling the OhmPi": [[7, "assembling-the-ohmpi"]], "OhmPi electronic design": [[8, "ohmpi-electronic-design"]], "Measurement board": [[8, "measurement-board"]], "Multiplexer": [[8, "multiplexer"]], "Power supply": [[9, "power-supply"]], "12V battery": [[9, "v-battery"]], "Regulated power supply (DPS5005)": [[9, "regulated-power-supply-dps5005"]], "Raspberry Pi configuration": [[10, "raspberry-pi-configuration"], [17, "raspberry-pi-configuration"], [18, "raspberry-pi-configuration"]], "PART A: OS installation": [[10, "part-a-os-installation"]], "PART B: Virtual Environment and packages": [[10, "part-b-virtual-environment-and-packages"]], "PART C: Activate virtual environment on Thonny (Python IDE) (on Raspberry Pi)": [[10, "part-c-activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi"]], "Measurement board v2023": [[11, "measurement-board-v2023"]], "Specifications": [[11, "specifications"]], "PART A Assembly of the measurement board": [[11, "part-a-assembly-of-the-measurement-board"]], "Required components": [[11, "required-components"], [13, "required-components"], [14, "required-components"]], "List of components": [[11, "id1"], [11, "id2"], [13, "id1"], [14, "id1"], [18, "id10"]], "Description": [[11, "description"]], "PART B Start-up of the measurement board": [[11, "part-b-start-up-of-the-measurement-board"]], "PART C Check the measurement board": [[11, "part-c-check-the-measurement-board"]], "Measurement board v2024": [[12, "measurement-board-v2024"]], "MUX board v2023": [[13, "mux-board-v2023"]], "PART A Assembly of MUX board": [[13, "part-a-assembly-of-mux-board"], [14, "part-a-assembly-of-mux-board"]], "PART B MUX board address": [[13, "part-b-mux-board-address"], [14, "part-b-mux-board-address"]], "PART C Validation of MUX board": [[13, "part-c-validation-of-mux-board"], [14, "part-c-validation-of-mux-board"]], "MUX board v2024": [[14, "mux-board-v2024"]], "Software and operation": [[15, "software-and-operation"]], "System architecture": [[15, "system-architecture"]], "Loggers": [[15, "loggers"]], "Configuration file": [[15, "configuration-file"]], "Interfaces and applications": [[15, "interfaces-and-applications"]], "Web interface": [[15, "web-interface"]], "Python interface": [[15, "python-interface"]], "MQTT interface": [[15, "mqtt-interface"]], "Troubleshooting": [[16, "troubleshooting"]], "Issue with the pulses between A and B": [[16, "issue-with-the-pulses-between-a-and-b"]], "Values given is not the correct one": [[16, "values-given-is-not-the-correct-one"]], "Communication issue between components": [[16, "communication-issue-between-components"]], "OhmPi V 1.01 (limited to 32 electrodes)": [[17, "ohmpi-v-1-01-limited-to-32-electrodes"]], "The philosophy of Ohmpi": [[17, "the-philosophy-of-ohmpi"], [18, "the-philosophy-of-ohmpi"]], "Technical data": [[17, "technical-data"], [18, "technical-data"]], "OS installation": [[17, "os-installation"], [18, "os-installation"]], "Virtual Environment and packages": [[17, "virtual-environment-and-packages"], [18, "virtual-environment-and-packages"]], "Activate virtual environment on Thonny (Python IDE) (on Raspberry Pi)": [[17, "activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi"], [18, "activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi"]], "Assembly of the measuring/current injection cards, and connection with the Raspberry Pi": [[17, "assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi"], [18, "assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi"]], "Electrical resistivity measurements board": [[17, "electrical-resistivity-measurements-board"], [18, "electrical-resistivity-measurements-board"]], "a) Description": [[17, "a-description"], [18, "a-description"]], "b) Implementation": [[17, "b-implementation"], [18, "b-implementation"]], "Current injection board": [[17, "current-injection-board"], [18, "current-injection-board"]], "First four electrodes resistivity measurement": [[17, "first-four-electrodes-resistivity-measurement"], [18, "first-four-electrodes-resistivity-measurement"]], "Multiplexer implementation": [[17, "multiplexer-implementation"], [18, "multiplexer-implementation"]], "Electrode connection": [[17, "electrode-connection"], [18, "electrode-connection"]], "Operating instruction": [[17, "operating-instruction"], [18, "operating-instruction"]], "Preliminary procedure (Only for the initial operation)": [[17, "preliminary-procedure-only-for-the-initial-operation"], [18, "preliminary-procedure-only-for-the-initial-operation"]], "Startup procedure": [[17, "startup-procedure"], [18, "startup-procedure"]], "Electrical resistivity measurement parameters description": [[17, "electrical-resistivity-measurement-parameters-description"], [18, "electrical-resistivity-measurement-parameters-description"]], "Complete list of components": [[17, "complete-list-of-components"], [18, "complete-list-of-components"]], "Table Title": [[17, "id9"]], "OhmPi V 1.02 (limited to 32 electrodes)": [[18, "ohmpi-v-1-02-limited-to-32-electrodes"]]}, "indexentries": {"ohmpi (class in ohmpi.ohmpi)": [[2, "ohmpi.ohmpi.OhmPi"]], "append_and_save() (ohmpi.ohmpi.ohmpi static method)": [[2, "ohmpi.ohmpi.OhmPi.append_and_save"]], "download_data() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.download_data"]], "get_data() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.get_data"]], "interrupt() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.interrupt"]], "load_sequence() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.load_sequence"]], "module": [[2, "module-ohmpi.hardware_system"], [2, "module-ohmpi.ohmpi"]], "ohmpi.hardware_system": [[2, "module-ohmpi.hardware_system"]], "ohmpi.ohmpi": [[2, "module-ohmpi.ohmpi"]], "quit() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.quit"]], "remove_data() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.remove_data"]], "repeat_sequence() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.repeat_sequence"]], "reset_mux() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.reset_mux"]], "restart() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.restart"]], "rs_check() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.rs_check"]], "run_inversion() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.run_inversion"]], "run_measurement() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.run_measurement"]], "run_multiple_sequences() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.run_multiple_sequences"]], "run_sequence() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.run_sequence"]], "run_sequence_async() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.run_sequence_async"]], "sequence (ohmpi.ohmpi.ohmpi property)": [[2, "ohmpi.ohmpi.OhmPi.sequence"]], "set_sequence() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.set_sequence"]], "shutdown() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.shutdown"]], "switch_mux_off() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.switch_mux_off"]], "switch_mux_on() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.switch_mux_on"]], "test_mux() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.test_mux"]], "update_settings() (ohmpi.ohmpi.ohmpi method)": [[2, "ohmpi.ohmpi.OhmPi.update_settings"]]}}) \ No newline at end of file diff --git a/doc/build/source_rst/api.html b/doc/build/source_rst/api.html index 8ea0c6af402c3520bbf44a7695884fb7019da71b..988bae7347741f50ac4b593b354d0d83d969249d 100644 --- a/doc/build/source_rst/api.html +++ b/doc/build/source_rst/api.html @@ -646,7 +646,7 @@ Parameters can be: </dd></dl> -</section> +<span class="target" id="module-ohmpi.hardware_system"></span></section> </div> diff --git a/doc/source/source_rst/api.rst b/doc/source/source_rst/api.rst index 20046317d371518eb69dc758ae4f891d2957c2df..447c042cd38bc9135b1492871fe15d32fd4184de 100644 --- a/doc/source/source_rst/api.rst +++ b/doc/source/source_rst/api.rst @@ -8,5 +8,3 @@ API reference :members: - - diff --git a/ohmpi/config.py b/ohmpi/config.py index 40665972ec78fcbb165cf92d2b3b5fb2fe617836..49e24ecf21e05b67d55dbc77de65e46ae3c216aa 100644 --- a/ohmpi/config.py +++ b/ohmpi/config.py @@ -21,57 +21,38 @@ r_shunt = 2. HARDWARE_CONFIG = { 'ctl': {'model': 'raspberry_pi'}, 'pwr': {'model': 'pwr_batt', 'voltage': 12., 'interface_name': 'none'}, - 'tx': {'model': 'mb_2023_0_X', + 'tx': {'model': 'mb_2024_0_2', 'voltage_max': 50., # Maximum voltage supported by the TX board [V] 'current_max': 4.80/(50*r_shunt), # Maximum voltage read by the current ADC on the TX board [A] 'r_shunt': r_shunt, # Shunt resistance in Ohms 'interface_name': 'i2c' }, - 'rx': {'model': 'mb_2023_0_X', - 'coef_p2': 2.50, # slope for conversion for ADS, measurement in V/V - 'sampling_rate': 50., # number of samples per second - 'interface_name': 'i2c', + 'rx': {'model': 'mb_2024_0_2', + 'latency': 0.010, # latency in seconds in continuous mode + 'sampling_rate': 50, # number of samples per second + 'interface_name': 'i2c' }, - 'mux': # default properties given in config are system properties that will be - # overwritten by properties defined in each the board dict below. - # if defined in board specs, values out of specs will be bounded to remain in specs - # omitted properties in config will be set to board specs default values if they exist - {'boards': - {'mux_A': - {'model': 'mux_2023_0_X', - 'mux_tca_address': 0x70, - 'roles': {'A': 'X'}, - 'cabling': {(i, j): ('mux_A', i) for j in ['A'] for i in range(1, 65)}, - 'voltage_max': 12.}, - 'mux_B': - {'model': 'mux_2023_0_X', - 'mux_tca_address': 0x71, - 'roles': {'B': 'X'}, - 'cabling': {(i, j): ('mux_B', i) for j in ['B'] for i in range(1, 65)}, - 'voltage_max': 12.}, - 'mux_M': - {'model': 'mux_2023_0_X', - 'mux_tca_address': 0x72, - 'roles': {'M': 'X'}, - 'cabling': {(i, j): ('mux_M', i) for j in ['M'] for i in range(1, 65)}, - 'voltage_max': 12.}, - 'mux_N': - {'model': 'mux_2023_0_X', - 'mux_tca_address': 0x73, - 'roles': {'N': 'X'}, - 'cabling': {(i, j): ('mux_N', i) for j in ['N'] for i in range(1, 65)}, - 'voltage_max': 12.}, + 'mux': {'boards': + {'mux_00': + {'model': 'mux_2024_0_X', + 'tca_address': None, + 'tca_channel': 0, + 'addr2': 'down', + 'addr1': 'down', + 'roles': {'A': 'X', 'B': 'Y', 'M': 'XX', 'N': 'YY'}, + 'cabling': {(i+0, j): ('mux_00', i) for j in ['A', 'B', 'M', 'N'] for i in range(1, 9)}, + 'voltage_max': 12.} }, - 'default': {'interface_name': 'i2c', - 'voltage_max': 12., + 'default': {'interface_name': 'i2c_ext', + 'voltage_max': 100., 'current_max': 3.} - } -} + } + } # SET THE LOGGING LEVELS, MQTT BROKERS AND MQTT OPTIONS ACCORDING TO YOUR NEEDS # Execution logging configuration EXEC_LOGGING_CONFIG = { - 'logging_level': logging.INFO, # TODO: set logging level back to INFO + 'logging_level': logging.INFO, 'log_file_logging_level': logging.DEBUG, 'logging_to_console': True, 'file_name': f'exec{logging_suffix}.log', @@ -95,8 +76,8 @@ DATA_LOGGING_CONFIG = { # State of Health logging configuration (For a future release) SOH_LOGGING_CONFIG = { 'logging_level': logging.INFO, - 'logging_to_console': True, 'log_file_logging_level': logging.DEBUG, + 'logging_to_console': True, 'file_name': f'soh{logging_suffix}.log', 'max_bytes': 16777216, 'backup_count': 1024, diff --git a/ohmpi/ohmpi.py b/ohmpi/ohmpi.py index 097cbada55f6933a6fbdb09da029e07c6b14d0c2..7dafe9f72649c82f82d431bcf8f59fd5c6145e17 100644 --- a/ohmpi/ohmpi.py +++ b/ohmpi/ohmpi.py @@ -82,7 +82,8 @@ class OhmPi(object): self.update_settings(os.path.join(os.path.split(os.path.dirname(__file__))[0],'settings/default.json')) # read in acquisition settings - self.update_settings(settings) + if settings is not None: + self.update_settings(settings) self.exec_logger.debug('Initialized with settings:' + str(self.settings)) # read quadrupole sequence @@ -189,7 +190,7 @@ class OhmPi(object): fw_filename = filename.replace('.csv', '_fw.csv') if not os.path.exists(fw_filename): # new file, write headers first with open(fw_filename, 'w') as f: - f.write('A,B,M,N,t,pulse,polarity,current,voltage\n') + f.write('A,B,M,N,t,current,voltage\n') # write full data with open(fw_filename, 'a') as f: dd = last_measurement['full_waveform'] @@ -198,7 +199,7 @@ class OhmPi(object): mm = np.repeat(last_measurement['M'], dd.shape[0]) nn = np.repeat(last_measurement['N'], dd.shape[0]) fwdata = np.c_[aa, bb, mm, nn, dd] - np.savetxt(f, fwdata, fmt=['%d', '%d', '%d', '%d', '%.3f', '%.3f', '%.3f']) + np.savetxt(f, fwdata, delimiter=',', fmt=['%d', '%d', '%d', '%d', '%.3f', '%.3f', '%.3f']) if fw_in_csv: d = last_measurement['full_waveform'] @@ -712,42 +713,48 @@ class OhmPi(object): # file management if fw_in_csv: # make sure we have the same number of columns - with open(filename, '.csv', 'r') as f: + with open(filename, 'r') as f: x = f.readlines() # get column of start of full-waveform icol = 0 for i, col in enumerate(x[0].split(',')): - if col == 't1': + if col == 'i0': icol = i break # get longest possible line max_length = np.max([len(row.split(',')) for row in x]) - icol - nreadings = max_length // 5 - print('-----', nreadings, max_length) + nreadings = max_length // 3 # create padding array for full-waveform # TODO test this! - with open(filename, '.csv', 'w') as f: + with open(filename, 'w') as f: # write back headers xs = x[0].split(',') f.write(','.join(xs[:icol])) - for col in ['t','s','p','v','i']: - f.write(','.join([col + str(j+1) for j in range(nreadings)])) - f.write('\n') + f.write(',') + for i, col in enumerate(['t', 'i','v']): + f.write(','.join([col + str(j) for j in range(nreadings)])) + if col == 'v': + f.write('\n') + else: + f.write(',') + # write back rows for i, row in enumerate(x[1:]): xs = row.split(',') f.write(','.join(xs[:icol])) + f.write(',') fw = np.array(xs[icol:]) - fw_pad = fw.reshape((5, -1)) - fw_padded = np.zeros((max_length, 5)) + fw_pad = fw.reshape((3, -1)).T + fw_padded = np.zeros((nreadings, 3), dtype=fw_pad.dtype) fw_padded[:fw_pad.shape[0], :] = fw_pad - f.write(','.join(fw_padded.flatten()) + '\n') + f.write(','.join(fw_padded.T.flatten()).replace('\n', '') + '\n') if fw_in_zip: - with ZipFile(filename.replace('.csv', '_fw.zip'), 'w') as myzip: - myzip.write(filename.replace('.csv', '_fw.csv')) - os.remove(filename.replace('.csv', '_fw.csv')) + fwfilename = filename.replace('.csv', '_fw') + with ZipFile(fwfilename + '.zip', 'w') as myzip: + myzip.write(fwfilename + '.csv', os.path.basename(fwfilename) + '.csv') + os.remove(fwfilename + '.csv') # reset to idle if we didn't interrupt the sequence if self.status != 'stopping': diff --git a/settings/default.json b/settings/default.json index 89f24ac1746e11b84a935acab9deb2ac42da5144..a0178639f1a9f15c93c2345546aabf3cba6f526f 100644 --- a/settings/default.json +++ b/settings/default.json @@ -7,7 +7,7 @@ "tx_volt": 5, "duty_cycle": 0.5, "strategy": "constant", - "fw_in_csv": false, + "fw_in_csv": true, "fw_in_zip": true, "export_path": "data/measurements.csv" } \ No newline at end of file