From 1e8e6fe51a5b1804043b0c0a74e788002105d12c Mon Sep 17 00:00:00 2001
From: "remi.clement" <remi.clement@inrae.fr>
Date: Tue, 28 Nov 2023 11:04:56 +0100
Subject: [PATCH] update V1.02

---
 doc/build/doctrees/environment.pickle         | Bin 70912 -> 70786 bytes
 doc/build/doctrees/index.doctree              | Bin 8005 -> 8057 bytes
 .../V2023.x.x/V2023_step_02.doctree           | Bin 98750 -> 103294 bytes
 .../V2023.x.x/V2023_step_03.doctree           | Bin 39110 -> 70901 bytes
 .../developing_hardware_components.doctree    | Bin 0 -> 10104 bytes
 .../doctrees/source_rst/v1.xx/V1_01.doctree   | Bin 87301 -> 110558 bytes
 .../doctrees/source_rst/v1.xx/V1_02.doctree   | Bin 90286 -> 114606 bytes
 doc/build/html/_sources/index.rst.txt         |   1 +
 .../V2023.x.x/V2023_step_02.rst.txt           |   2 +-
 .../V2023.x.x/V2023_step_03.rst.txt           |   2 +-
 .../developing_hardware_components.rst.txt}   |   0
 .../_sources/source_rst/v1.xx/V1_01.rst.txt   |   2 +-
 .../_sources/source_rst/v1.xx/V1_02.rst.txt   |  30 +--
 .../html/developing_hardware_components.html  |   2 +
 doc/build/html/genindex.html                  |   1 +
 doc/build/html/index.html                     |   2 +
 doc/build/html/objects.inv                    | Bin 571 -> 571 bytes
 doc/build/html/py-modindex.html               |   1 +
 doc/build/html/search.html                    |   1 +
 doc/build/html/searchindex.js                 |   2 +-
 .../source_rst/V2023.x.x/V2023_step_02.html   |  40 ++++
 .../source_rst/V2023.x.x/V2023_step_03.html   | 174 ++++++++++++++++
 .../html/source_rst/V2024.x.x/V2024.html      |   1 +
 .../developing_hardware_components.html       | 144 +++++++++++++
 doc/build/html/source_rst/v1.xx/V1_01.html    | 162 ++++++++++++++
 doc/build/html/source_rst/v1.xx/V1_02.html    | 197 ++++++++++++++++--
 doc/source/index.rst                          |   1 +
 .../source_rst/V2023.x.x/V2023_step_02.rst    |   2 +-
 .../source_rst/V2023.x.x/V2023_step_03.rst    |   2 +-
 .../developing_hardware_components.rst        |  46 ++++
 doc/source/source_rst/v1.xx/V1_01.rst         |   2 +-
 doc/source/source_rst/v1.xx/V1_02.rst         |  30 +--
 32 files changed, 796 insertions(+), 51 deletions(-)
 create mode 100644 doc/build/doctrees/source_rst/developing_hardware_components.doctree
 rename doc/{source/developing_hardware_components.rst => build/html/_sources/source_rst/developing_hardware_components.rst.txt} (100%)
 create mode 100644 doc/build/html/source_rst/developing_hardware_components.html
 create mode 100644 doc/source/source_rst/developing_hardware_components.rst

diff --git a/doc/build/doctrees/environment.pickle b/doc/build/doctrees/environment.pickle
index fc06bd3fd53069e9c17089c9ccf70e9300d54479..d8334135f0ed4c5adc033502222c9b37045fc315 100644
GIT binary patch
literal 70786
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

literal 70912
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

diff --git a/doc/build/doctrees/index.doctree b/doc/build/doctrees/index.doctree
index e5db6f599715ceca5ab03251834caf6409b382b6..95cb54e02f92af0201de828886c5f1231e683780 100644
GIT binary patch
delta 134
zcmX?V_tTE0fpu!$MizZB9lsvU;{4L0<ka}0;u8Io)Uwo^{DRE9^!SX#qLlK)qSW~0
z{M>^4ywtps;>iYLCQMm2n-j&FnYpW(7#Mo^Qj3c6izaWB6yD4vb&Odx6eyS#1SE=k
hIP(&7Q%fofQj4e5PRRmEbQWhw0+~UZ-^xZX0syLkE`9(2

delta 72
zcmexqchruhfpx0YMizas$w^{{n`ekMFf&$emXvzTtQyS3z>pOHB#L`D^AdAYODYRe
Xi>K61$pT4q7H3ETnE{&><sujXQj!+_

diff --git a/doc/build/doctrees/source_rst/V2023.x.x/V2023_step_02.doctree b/doc/build/doctrees/source_rst/V2023.x.x/V2023_step_02.doctree
index a31a2a4a70f6ed4b0dad4a3ddf2122af9c00323c..72f991a7a58907d9b43deabcbea6fa60799b27d3 100644
GIT binary patch
delta 4648
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

delta 3790
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

diff --git a/doc/build/doctrees/source_rst/V2023.x.x/V2023_step_03.doctree b/doc/build/doctrees/source_rst/V2023.x.x/V2023_step_03.doctree
index 136c7da98b05ccab8ffb45ec739be033a8b58e63..effb95c67c42d018fc570322ba67fb9bdf154911 100644
GIT binary patch
literal 70901
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

delta 7736
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
UK0!7By2NKxmbij@5>fvD04@LnnE(I)

diff --git a/doc/build/doctrees/source_rst/developing_hardware_components.doctree b/doc/build/doctrees/source_rst/developing_hardware_components.doctree
new file mode 100644
index 0000000000000000000000000000000000000000..115d0129a2d1ca304d5c08d0fb80afe6f947d5f4
GIT binary patch
literal 10104
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
SCJ5kE2@a#?R#JUA9Q*^h_M`Ox

literal 0
HcmV?d00001

diff --git a/doc/build/doctrees/source_rst/v1.xx/V1_01.doctree b/doc/build/doctrees/source_rst/v1.xx/V1_01.doctree
index 1322858b88f4bd093f11f25f6d831a74a4b0289c..58b3cec9414e338bb08a07b9037e4811b8ae4bba 100644
GIT binary patch
delta 10033
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

delta 918
zcmcb2pRIKjYr_;qKBo5}TLl;=I#2$)mTP;$LdHK#Oz#A@$1P!e%*=jLkbxoVnBa7e
z6^t8Y4uUxQfJA8zXI^4%YDr~5YVnlXDH>TP1*eOyWX$CQspu@tPy~qqbxl~wxPfV(
z;B==|jN#K4uVVbf_6MlIn`8Ry)r?mdL#8KsFzPc)X9Z3V^kkHu?!BH-aQdY+jPgwW
zLX#KRN-zZoO%Ghh=rKKXEn@;>0Zer+T(uBWmeBP0^^8&w4I*surAb*3O)D6?Vd^_@
zs;^H2t7l-)Yy|ltgEfOKgFP0=Fo6m56a^IJC*`E(7AurzmSiX>B^Q_JmLvj2loV1j
zi&B$IGRsmG3KB~)thl0Gi;D8{6^vpP{PGowOOrDc(lT>W74nOqD)WmftrXOY^Gl18
zQ}w}AeQJDBafyDJp<YFWeokg_i5}2+b-gJdM`VcgRH54as9_G=_D2nK$+Q1a!wiHA
z)POF*;(|vFGxeslPJx7pbk;I(K-NoVEfxaCd{R~rD<Z&pQuOo`;I6W=QV0QsjY3Ff
zNlq%4f`Wn-C<v?+V15G&m1m}uWE5K|7#rv)n4@BI1F(vW)Wnq3BHg0=a-cFpE-p}j
z)Pq8VKDI%;o*|vJ1?b`8q{Iw)VB(nk%Rx@KG($Tp5a@lN94Ig{WHWRoJ4(oaQZA<h
zOAiYuLrm#m3w8~24RW2*!;+Jkmpa9lkEw?Z66jMhbU;S<gY-&gO#$YG44DjOkTDr@
Le$ywcXY>OAzsfK!

diff --git a/doc/build/doctrees/source_rst/v1.xx/V1_02.doctree b/doc/build/doctrees/source_rst/v1.xx/V1_02.doctree
index aa197d0ba2b8b70ae1f4d0393a37d6ff6b55cdff..266ee95ac39e61c8ac36c9455adf5ee9f3c661f1 100644
GIT binary patch
delta 11212
zcmbuFdvFuS9mjpLY;0p}u(ABW)}3*M?HHZz^sp_GOfbR}*H3I=AVA=d4<y%mL=PUB
zq$D%sO@>KNjb@UTCX;lUqzw(@$v{KPqeGfM($Iv2wnGx9c@7!UOv5BC4S96$PJ4T+
zl`Xqv7`R>izMtRjeRog0t2=V0;K+A{#ybms^59Y9>n!z+^p-7DQ&PgR%+A2BL{wa{
zf?-)3_!|iBvPo<C+b7T2f>iZG(+0e0tO22uR{Oga({ov)B=e>vl4IjVqgf6#Z|XKw
zKb1AmCPg-1Hde_|6I(hArf0H7Nk_L;OMkrOqOnd6Ji6^lf$90_0xP9gcFvbx6)zea
zK`>BOPQJ3Uq{Z}FcEPuYnkB=b&yCl~<Zln{wK5A0d3jl5ZM%7P?_S&FJ-=UPFgD5Y
z@1LqPn*N$KShBqIJ&8Vh&DbmlT3)JOVEQ<F;GJ*OOl~`GqKr%A$UEOyU2OU=dn7e=
z-Q*W<8z`eyj-;kuTi9?ZYb0#x)Mu^K{1y<Lu8^iaGf#H>^WVh{CuY(~W!IjP-u-H6
z&Zw`|fl&2zr_oS;>V-jSva#XSnaIb=mr`Yvu@W@tSW6QXDKK5m8lHN)m8v^-yoIWz
zj16)yD6g;>{J)T>WZm@@eSuh<3GZZl;b0^j5<~G=(m!u&(r-GL?W4PscO~ygw)mHf
zcT`9ZFJl)q_?P?5{S5|C<E+TbOYBI6^QkrS%?W>-{|Kn;u1KBEr`+?`{QniLI)<Fd
zUwp72?iYozq?Bw`n^oX1lp8Mzjmuk$J+McxL%JH&k3$vGd*!yagLEvMi26j^j&N|>
z1h^+Q`5(s0@Y^^$>x=D9`pvx*=+MCm>GSGkhWjg0Pn1%0Q{g}&xI>J>6tIZ+zf|~T
z<39s;CyjUtL+}ecVUQ^zMwvt?5Qn6US_C{v0#9JTwi0hRE=&MNV;W6gg-{nr)OieL
zEA1CTiJgKk4xVjVC-F*z`;^3eg5g%w=y6PpiHbYLs2K8zu-DTDq>gN%t}k!U-^RSk
zv=b7)*pfefPla^m*Gr2J$oE+pcZ&<C4rygY2~{oqh%=S6!5m6)L0b|ve0l1wTPPb&
zZ&m5bDixn=C?3ke6;gV#C|By0Os%5>Dh=QgNpH>~-7q`pty!cYy_9Y#9u{H|FfgP0
zV0K*%YQ%k6NOxl-$|T>tVn|U+rMhnXJPYBckf1u#RGE6bjN-O5X>DSL0u0aC86h;r
zIGCaE9x(Vv5|PM+*4kOcqJEsp(u&`yt@y3tpt)|myAq5H_0fiT_?Il&H}qQCZ0ux_
zjcNhq{xpmJ6HHIfsLx+4KY_3(MBZX$Xsb=9TXoi@JD{sU4XGnR)fi~&tnO+$#jIjc
za-K}i!sOU67%`6sfzU`$h{hSd-RkiRp^!Mi@b*z=Sey{F5s)hkrCvv-9#B*FE>>o5
zE!7FfFStTNKPeP3VPk>a$-3Q8oGu~2eiCpy252he-EP)xhXhzeh(}0-gdy5W<om@a
zHw<F*RS5MQiF!5z#dEy1gR}CSLqqAR5b7+6Is;Ldn?1Eo%|ch&L8d=EmYC3<=`%#2
zgddU#-%}G#DIS`^BYm3rdySM{)k|sG*r78~EuhScs)*@VR;5foHFFMm3n{l?^4a@$
z6N$P3LpjRqoR#A{fq%T!(?0?|%&bP88zqq=5Q+JC(_){nV?t#3jXV<!+L;y?#{^qp
zg6tonG`q<(F*Qx3N}ho;xc3k#eLydz8w+?h+ujbFk}jd#Pm+Mg=LC3>1RTQvjxz7?
zdd4%@KQuVdJ>W&RJ);`6>2(r$4ntbz@vipHcBl4e(aH#NiG+LvA((gF)zCYRb*b+0
zoZh}^KS#-mOvEfGFe$UZV9MbjO-k$aQsAK7&30%DsB{VCc98)4oB(|!pa%oY-9aCT
z+>Rj?2VHiD3l2=#L8Xj3b{h%V10k4$``MvrAQTtJ7+)ajO9bM~j<66NV_G7D?}x&!
zKxh|pYeERc1Mz*#UdEx#%el%>(;hW}#ZbLJ-`_CcHxEevC~v|RAStz($z0waC3|>8
zFJ+|P)YceYCZo=hQB!2pTly$4j=EwKXd99)p+0>{0<K_yT8e{ifh!~|ttJM4akVn|
zlP1ikj)iN%eiJNKV`4nU@OycUM}C0t%Sn8zieFZpV{Um!=}Ns6d^y?Kc5QW|7EtC*
zq<nM^@(3vpV)CZK5g`~CeekZrB5J|CB;o*uaFmUVY_Re?_+qnLzi&kk*Nkd}JWL`V
zgGkJ+%}ZA&z&<$Ui;8=gxEKuvLZH~<U|rT=kckB1KEF1TW)q5<aFT4o3AG8w6-Vh>
zO562;D<r%?3eRK0#sZFQcWQ>FO9=2O3HSs9&_*Zg(jH1`0m<`gh>@OGqm1-)!<!0+
zN0_1ELCw*05h3bGL^XzJF6wl5Sb2v-TlJy}gyBgH3o)3BgZ0B=44lP;qhQO}8}<ho
z@GZB2X|sa=c?)dk%t0vaIx_8mnzpwly;pETCgs#Q=O=|CCX}7)bm^UwODOYx5^y^P
zpp6dJsU=qnNd5>ZmoT}j+}q7~!eBGyiwAatZwlBAq8>q?Bcab?(B`7GoqR91YEu`a
zp$ddKOJdGI4CZBT9r6+^Rb)3~nNH3Wf>M4+rhHFLIi>grR-EHCXuq#_@){|<s+WTA
z888R!+5}FQQ0_&w#3U-KRd)>P7?K~#E^YLy1tf1F<rYl-zc_gl3B3V>s!qBxom47N
z+eS&u2*hAc-dL$Q33dt@lQHXOD9LUzNlZ-=sm<|y_z)?5Krf{m@;h10IprGVeUcPE
zK5Oxdr1%&n{$E^sorIplplv1Vhc>vlRW5FL6wW|>73$n267>;8Vb0k~`}!TO&H<*Y
zf5;k!P`nahi|UB6UQnm*3+mEdO*hYIQd+N<0<XXm6E;A(MtNPN*q$M_v)aQlU%p1-
zK2qF+iQS95;$9)f^n_yZXd<Zp)g#L%2<#)l+c9wZ=5`I(1_p;#!M>?C7gi$NZ6t0F
z#9^LU=5?(e;dx&BUf0S9_9zKUsjwt;YPu7YqonkRUJ6#3JkM%-RkeUJzf8){&Ots!
z%HP7|%|%^f!p<nz7Qq{eDo`uFBr#Vo4Cn;cshxYN1tc$BLJaicCF&la4)elQE+19y
z5aM7(xsT}({IF3(J%TSM;jJos*^(SjJP#>dsh6tfBf515I4!}}9pKmF%;V+JIRPRh
zAcz5SuNm(p5eG0tbCJu@VRbn>wdVn<K)3NQiFpiSFpt*LtJ40g4Nu7XHSfNN$gF1i
zhV2~F;vUtO{W;@M@{?rp6Ke9~xjei;O3&-1V19w69~zoU0cE~S$}i19Zm1^)z;~ED
zw|})H!c?zr8<f7&%|(2t%jyJ2T5vX?3e*vf#8@E)^Do%82K;md&X5^TG!Tq1UTyQH
zoKCjN$CDh`!HGUGrg=Fh4QkX7*{FWCQ9r29F*kRS(lNah%uNT!>UMK#3FW?n1l%?!
zK#~MJi~-t8Hgxx_?qA>6*F6la(O03i{E9?9oq=+5oYUdpz#k2zt3s$hkf>7-h55YS
z);$5XE75=tY|JyQP9J6hv*puF#ca*%IqOj4-mga|U()4r3wG}HuG-AEb2<MXvWNfD
zOTmn8XC2zZOf8@`ls6Dlva~^&Pip2I@@1sF36pnKfyEtoc|qP04h{@-d%QiPJ>E^w
zwP`*@?YogoumVfaT;y(V=i0$GA2Lw|!gxu{I*7r>L0ie1L=61+z;cYX(bQKVWSm6a
zsv<)TIcDpFr1U<$R9TN|yEd>Mwd<CYPmtondT~{1tC6aaPPZAQ({)CJ+8Da6q_4;8
z?e1H%exw`TD18;`*BO$3QqQOP1)SXlCIZh6b$R(dNXw{2z`v2e3lNCi`%R4=0UR?2
zlmixy3$0;X+~}B(;W-QA5u-vdpdIhcA`&&=D%pT9)dpOFPEEISC^wVS!>mjXRXU?n
z7E-*F5Nk6tW7}~9DRyJx#)97N{%$Y4{pk|w^#}<V!T@b09*3Rt@SL+(n>+d{gc>JN
zyC4d4u%~vl$F|x7Uib;^7NcNU3Vuvy;$g<_)b@-sM4*HZkO}Wq6CN<ja|@hmYSRN;
zA>k9G@GvF>zW}wf9hx{@LV)8W;Dro;OMf_4pq3Ee&m`ba7y!H!6%~A8<y8}Cp1um9
zJ|<BgWTJ)#7>AX&qy1Qk7gZtDHzevSh=LA+|Cbh?Q{GqtmuBgZrKqz|ep&7rP^Z39
zC;Dmmox8@Z$%Dqg82HUW@Hc_$a$k62Phc$Wk6CvGc8j5;ARV<-E*vkF-+)qn+ELz?
zI<{z#nxAjDg+68;ras7@=ce=W#@p#s(I|Dao|g+O_$P6&I3xtcI9Mmg<Tw1r-E`{0
zC>1P|BkoW58|6Bn8rncTZ(!+^VIw6JjW3hs&We<<k@})=0u*{nQkyqXZyL_hDgI`P
zGn}Epv^A&ZZ>1Kceta`U8&1*EJJ;73PSdGHTd1|Es?F4P!{5`v?`XjlhKqEH-b&Tg
op8`;DBZiHzPxAYQy+UHgxQck%a4oIAN~)`~tNp3%+o^&70{z{m7ytkO

delta 1635
zcmchXacCP=9LMu+Nw(yAwYfkYO_#pLg_tf)F14&KpjfaVR!dvi*l0(ZrdMBLlPh<Z
zc15%)vOk0{ly`D&D1#{?2y^w6)VZ1o)hYOg)=tEtgNUMtbeqD24(7Y0OYS;F|MHJq
z?tb_AzTfx#-tTv3Z`sd&WV7aNFZC{3zYK%l@hF#VbUMRfIGK7fC-Siv)J7w}0OmPk
z2#-eBTz*N&iAg>#N^)c-8a{SR>+ZVZXI?Xb9f$vL?b{CG;9-yUz>yA$Ic0*M9r@Me
z+YW1)(H@F9Z3555oAG7-TUX!?`0e<08}o(<UgB@K!rMVy<h}Tlc%yb@@>+noXcTC_
zop1p<T36toP6V{z3qzev7Rq8Vp{JIID7vGLY8xfDmAPbM+E#W0+F$^0ly+lor9q2-
z{AUC6wTYEi1AsP^Ks)`_!wzQ6$h`BNAJE-~l)>-6XkxxGBKXm(UVMC&!xJ0pbfk{r
zyEgn9x_ZOGyk)}Uo3CTI>ANF(lWwbvwfN2Zt<;gR_f7(>on1CAkW7qE@pxgiTRr0g
zm+6+esQC0fVA{s48|mV%AP50^Z=F&>5VRDBI{@^nc@EIUz#`bBs7bcC_g(PAj-9=%
z#gcxIRU4PUV(S6@VL!R#3XW_d!^?Biyrev%+?(!Y)%7KiY1E15bEsX95!Iph!8vL_
ztL{1v5~_3_T(`>v=y#}3eE`;|&snwi0^q36SbXhnuj(lQmwM&`XluPhAmm98TghK5
z+JW|<5c2kq<i^vVvTFN>;1Sio492LRxAZ^O^ek0o)kq1n{KFE7+7fT7D+d9m-Z}_;
zdg7XJ{_k_6iqK*SF6i4uHe^RTkCL12+kwK|peT@|$VhNDB_rrdN;93ZemFijkrMf&
zoSNa`bV5ck=SZI@W(C-F6b=Yb$|VsQ_$eL=A|dB>R1oK4aBIK}Jyad_$W%&_VJD2n
zxvntD5(q207t~x>Fk2|+U#XcW=U@GAHu|@G)NGXVFIT(eUyYRWC&S8drCK3R+Uu^I
z?!3oM`ei&lWUE)NAd;r6c_ZJs$Mh`;lQ1b{riCn@l_e*HFs7F!2Dk0E@@6(QAtNaU
z@8d$S$NcNzDg@#a6TH|d&I_}Ii#naRtMotS)>AiCa#zbjdOGCB7Y}&xV87FyL;KQ$
zq$(t;*GTVj{9<#f-j0rktOct+T}r|JMBkyl;Xb8col0eS<?%gK!CpNO1%>n_wi>oU
OpPAaQ45(uzFz^?cR4sD=

diff --git a/doc/build/html/_sources/index.rst.txt b/doc/build/html/_sources/index.rst.txt
index eadff7d2..69402149 100644
--- a/doc/build/html/_sources/index.rst.txt
+++ b/doc/build/html/_sources/index.rst.txt
@@ -39,6 +39,7 @@ Contents:
    source_rst/V2023.x.x/V2023
    source_rst/V2024.x.x/V2024
    source_rst/api
+   source_rst/developing_hardware_components.rst
   
 
   
diff --git a/doc/build/html/_sources/source_rst/V2023.x.x/V2023_step_02.rst.txt b/doc/build/html/_sources/source_rst/V2023.x.x/V2023_step_02.rst.txt
index ca79eaeb..03554807 100644
--- a/doc/build/html/_sources/source_rst/V2023.x.x/V2023_step_02.rst.txt
+++ b/doc/build/html/_sources/source_rst/V2023.x.x/V2023_step_02.rst.txt
@@ -301,7 +301,7 @@ which allows to realize precise current measurement around a shunt resistor. The
 +------------------------------------------------------------------------+
 
 .. csv-table:: List of components
-   :file: step_n_2/b/test_2_xx.csv
+   :file: ../../img/v2023.x.x/step_n_2/b/test_2_xx.csv
    :widths: 30, 70, 70, 70, 70, 35, 35
    :header-rows: 1
 
diff --git a/doc/build/html/_sources/source_rst/V2023.x.x/V2023_step_03.rst.txt b/doc/build/html/_sources/source_rst/V2023.x.x/V2023_step_03.rst.txt
index c268d128..f77e9b5e 100644
--- a/doc/build/html/_sources/source_rst/V2023.x.x/V2023_step_03.rst.txt
+++ b/doc/build/html/_sources/source_rst/V2023.x.x/V2023_step_03.rst.txt
@@ -30,7 +30,7 @@ Required components
 
 
 .. csv-table:: List of components
-   :file: step_n_3/a/MUX_board_list_2_xx.csv
+   :file: ../../img/v2023.x.x/step_n_3/a/MUX_board_list_2_xx.csv
    :widths: 30, 70, 70, 70, 70, 35, 35
    :header-rows: 1 
    
diff --git a/doc/source/developing_hardware_components.rst b/doc/build/html/_sources/source_rst/developing_hardware_components.rst.txt
similarity index 100%
rename from doc/source/developing_hardware_components.rst
rename to doc/build/html/_sources/source_rst/developing_hardware_components.rst.txt
diff --git a/doc/build/html/_sources/source_rst/v1.xx/V1_01.rst.txt b/doc/build/html/_sources/source_rst/v1.xx/V1_01.rst.txt
index 3c8d9594..1829d683 100644
--- a/doc/build/html/_sources/source_rst/v1.xx/V1_01.rst.txt
+++ b/doc/build/html/_sources/source_rst/v1.xx/V1_01.rst.txt
@@ -524,7 +524,7 @@ Complete list of components
 
 
 .. csv-table:: Table Title
-   :file: list.csv
+   :file: ../../bom_list/list.csv
    :widths: 30, 70, 70, 70, 70,70
    :header-rows: 1
 
diff --git a/doc/build/html/_sources/source_rst/v1.xx/V1_02.rst.txt b/doc/build/html/_sources/source_rst/v1.xx/V1_02.rst.txt
index 6dad02c8..a486b855 100644
--- a/doc/build/html/_sources/source_rst/v1.xx/V1_02.rst.txt
+++ b/doc/build/html/_sources/source_rst/v1.xx/V1_02.rst.txt
@@ -64,7 +64,7 @@ For this step, the installation instructions are well described on the Raspberry
 .. note:: 
      All the development tests were performed on Raspberry Pi 3 Model B, we used the following version of Raspbian:
 
-     .. figure:: raspbian_version.jpg
+     .. figure:: ../../img/raspbian_version.jpg
        :width: 800px
        :align: center
        :height: 400px
@@ -164,7 +164,7 @@ If you decided to use a virtual environment, it is necessary to setup Thonny Pyt
 
 2- Thonny opens, Python runs on the root (Python 3.7.3 (/usr/bin/python3))
 
-.. figure:: thonny_first_interface.jpg
+.. figure:: ../../img/thonny_first_interface.jpg
        :width: 600px
        :align: center
        :height: 450px
@@ -173,7 +173,7 @@ If you decided to use a virtual environment, it is necessary to setup Thonny Pyt
 
 3-Click on **Run>select interpreter**, a new window opens click on interpret
 
-.. figure:: thonny_option.jpg
+.. figure:: ../../img/thonny_option.jpg
        :width: 600px
        :align: center
        :height: 450px
@@ -182,7 +182,7 @@ If you decided to use a virtual environment, it is necessary to setup Thonny Pyt
 
 4-On the new open windows select **alternative Python3 or virtual environment**
 
-.. figure:: thonny_interpreter.jpg
+.. figure:: ../../img/thonny_interpreter.jpg
        :width: 600px
        :align: center
        :height: 450px
@@ -195,7 +195,7 @@ If you decided to use a virtual environment, it is necessary to setup Thonny Pyt
 
 7- In the **known interpreter** tab the path of the virtual environment should appear
 
-.. figure:: thonny_interpreter_folder.jpg
+.. figure:: ../../img/thonny_interpreter_folder.jpg
        :width: 600px
        :align: center
        :height: 450px
@@ -253,7 +253,7 @@ We also added 4 capacitors on the +12v inputs of the fast operational amplifiers
 between each power supply terminal and ground. The last point, we have added a four very high resistances of 10 MOhm, between the ground and 
 the signal input on the operational amplifiers. This prevents the operational amplifiers from overheating.
 
-.. figure:: schema_measurement_board1_02.png
+.. figure:: ../../img/v1.xx/schema_measurement_board1_02.png
    :width: 800px
    :align: center
    :height: 400px
@@ -317,7 +317,7 @@ Once all the components have been soldered together, the measurement board can b
 battery terminal, according to Figure 9. Between the battery and the TX+ terminal of the measurement board, remember to 
 place a fuse holder with a 1.5-A fuse for safety purposes.
 
-.. figure:: measurement_board1-02.jpg
+.. figure:: ../../img/v1.xx/measurement_board1-02.jpg
    :width: 800px
    :align: center
    :height: 700px
@@ -326,7 +326,7 @@ place a fuse holder with a 1.5-A fuse for safety purposes.
 
    Measurement circuit board assembly: a) printed circuit board, b) adding the 1-KOhm resistors ± 1%, c)adding the 1.5-KOhm resistors ± 1%, d) adding the black female 1 x 10 header and the 7-blue screw terminal block(2 pin, 3.5-mm pitch), e) adding the 50-ohm reference resistor ± 0.1%, and f) adding the ADS1115 and the LM358N low-power dual operational amplifiers
    
-.. figure:: measurement_board-2-V1-02.jpg
+.. figure:: ../../img/v1.xx/measurement_board-2-V1-02.jpg
    :width: 800px
    :align: center
    :height: 700px
@@ -350,7 +350,7 @@ the polarity at electrodes A and B. Thus, when relays 3 and 4 are energized by t
 the positive battery pole is connected to electrode A and the negative pole to electrode B. When not energized, 
 they remain in the normally closed position. This set-up offers a simple and robust solution to inject current.
 
-.. figure:: current_board.jpg
+.. figure:: ../../img/v1.xx/current_board.jpg
    :width: 800px
    :align: center
    :height: 400px
@@ -367,7 +367,7 @@ the relay card’s 4 channels respectively to the GND pin and 5Vcc of the Raspbe
 shown in the diagram, using 1-mm2 cables (red and black in Fig. 10). Lastly, connect the inputs of relay 1 and 2 respectively
 to terminals B and A of the measurement board.   
 
-.. figure:: installation_current_board_1_02.jpg
+.. figure:: ../../img/v1.xx/installation_current_board_1_02.jpg
    :width: 800px
    :align: center
    :height: 700px
@@ -404,7 +404,7 @@ configuration enables making smaller multiplexers (8 or 16 electrodes only). On
 which is entirely possible, a GPIO channel multiplier will have to be used. 
 To prepare the multiplexer, the channels of the two relay boards must be connected according to the wiring diagram shown below.
 
-.. figure:: multiplexer_implementation.jpg
+.. figure:: ../../img/v1.xx/multiplexer_implementation.jpg
    :width: 800px
    :align: center
    :height: 500px
@@ -423,7 +423,7 @@ Once the operation has been completed, the 16 control pins of each 16-channel re
 for activating each relay (Fig. 12). However, we will be activating several relays with a single GPIO (to limit the number of GPIOs used on Raspberry Pi,
 see Section 2.4). To execute this step, it will be necessary to follow the protocol presented in Figure.
  
- .. figure:: connection.jpg
+ .. figure:: ../../img/v1.xx/connection.jpg
    :width: 800px
    :align: center
    :height: 400px
@@ -465,7 +465,7 @@ At this point, all that remains is to connect the electrodes of each multiplexer
 According to the chosen multiplexer configuration, all the relays of each multiplexer will be connected to an electrode and, consequently, each electrode will have four incoming 
 connections. Instead of having four cables connecting an electrode terminal to each multiplexer, we recommend using the cable assembly shown in the following Figure.
 
-.. figure:: cable.jpg
+.. figure:: ../../img/v1.xx/cable.jpg
    :width: 800px
    :align: center
    :height: 300px
@@ -478,7 +478,7 @@ the next figure provides an example of multiplexer relay connections for electro
 must be connected to electrode no. 1 of MUX N, which in turn must be connected to electrode no. 1 of MUX M. Lastly, electrode no. 1 of MUX M is connected to the terminal block. 
 This operation must be repeated for all 32 electrodes.
 
-.. figure:: electrode_cable.jpg
+.. figure:: ../../img/v1.xx/electrode_cable.jpg
    :width: 800px
    :align: center
    :height: 800px
@@ -539,7 +539,7 @@ Complete list of components
 
 
 .. csv-table:: List of components
-   :file: list - 1_02.csv
+   :file: ../../bom_list/list - 1_02.csv
    :widths: 30, 70, 70, 70, 70,70
    :header-rows: 1
 
diff --git a/doc/build/html/developing_hardware_components.html b/doc/build/html/developing_hardware_components.html
index e28d5865..ed12e565 100644
--- a/doc/build/html/developing_hardware_components.html
+++ b/doc/build/html/developing_hardware_components.html
@@ -44,6 +44,8 @@
 <li class="toctree-l1"><a class="reference internal" href="source_rst/Ohmpi.html">OhmPi project</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source_rst/v1.xx/V1_01.html">OhmPi V 1.01 (limited to 32 electrodes)</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source_rst/v1.xx/V1_02.html">OhmPi V 1.02 (limited to 32 electrodes)</a></li>
+<li class="toctree-l1"><a class="reference internal" href="source_rst/V2023.x.x/V2023.html">OhmPi V2023 (64 electrodes and 12V)</a></li>
+<li class="toctree-l1"><a class="reference internal" href="source_rst/V2024.x.x/V2024.html">OhmPi V2023 (64 electrodes and 12V)</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source_rst/api.html">API reference</a></li>
 </ul>
 
diff --git a/doc/build/html/genindex.html b/doc/build/html/genindex.html
index 789d4a25..b092dc4d 100644
--- a/doc/build/html/genindex.html
+++ b/doc/build/html/genindex.html
@@ -46,6 +46,7 @@
 <li class="toctree-l1"><a class="reference internal" href="source_rst/V2023.x.x/V2023.html">OhmPi V2023 (64 electrodes and 12V)</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source_rst/V2024.x.x/V2024.html">OhmPi V2023 (64 electrodes and 12V)</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source_rst/api.html">API reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="source_rst/developing_hardware_components.html">Software interface to new hardware components</a></li>
 </ul>
 
         </div>
diff --git a/doc/build/html/index.html b/doc/build/html/index.html
index d599edb2..0710a34a 100644
--- a/doc/build/html/index.html
+++ b/doc/build/html/index.html
@@ -48,6 +48,7 @@
 <li class="toctree-l1"><a class="reference internal" href="source_rst/V2023.x.x/V2023.html">OhmPi V2023 (64 electrodes and 12V)</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source_rst/V2024.x.x/V2024.html">OhmPi V2023 (64 electrodes and 12V)</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source_rst/api.html">API reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="source_rst/developing_hardware_components.html">Software interface to new hardware components</a></li>
 </ul>
 
         </div>
@@ -155,6 +156,7 @@
 <li class="toctree-l1"><a class="reference internal" href="source_rst/api.html">API reference</a><ul class="simple">
 </ul>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="source_rst/developing_hardware_components.html">Software interface to new hardware components</a></li>
 </ul>
 </div>
 </section>
diff --git a/doc/build/html/objects.inv b/doc/build/html/objects.inv
index 563884303f8ca27ef05f71cc6597eab4f03aef54..3a79775be92018ddb7d39dabeed8654e352c3648 100644
GIT binary patch
delta 463
zcmV;=0Wki%1iJ)~c7KlAFc8P@JjF=c!|s8UIME(*>!DIPAfoPvdW%dv5LfYsY{SA^
z^%?qPYj7wI%g552lbQeg?7zpO8lgGpO(7Ipwg@AzYH4b$jCEhB=1Jp3dl!PkFEAV|
zP;$v|4c4)ur88_{n8N<=E*-|(<=~LURJ~1#GNwN!<+y;UMt|7>fl3By``u8(-l#z^
zXt{NK#ocBo(4iUleVl-6AMOI7`XrnsY$J+Zk(C?QDA`wAq^55A!tgI>o<h8&3minw
zO?S3NXFra0HZ-F2?i=+RYZvQZ$%tghI$4L+nMy}lam^sRf6M_}U)v~#c4u))ULP)y
zD(g^Jqx5sceSdc6#q;+P<ljFj6!4Q;JwszQ;5P%cl5@UT8tS-`*XiUYI_c9%0TZNl
zX;7eaFjKyrt|POXkXav@dF0El&!Y01P<bDf7eK8=G4mbj8Vt96%*_8)xx|XH{;PB7
z*$&^&4fs}${VSfML0R|S2g4P%N^`lW_RqblmC#E1J4mx<%3c<AKB>9e4G%8;z?f4%
zSeychZ-=pRki<J$rODd6k)H4UD5K{Wq>0zuw_I?CY>UfC<lVz*3b{%lA1LG!<sIYJ
F_ec3b??(Ut

delta 463
zcmV;=0Wki%1iJ)~c7JZ$Fbv1<ehLEHp*_TnWn%~5b{Nncf*AWKb~6-<i8WXskd!oe
zt3AV>Y;xqZa@HixZj#79e-uecwL){y`%);j=@6!1)y6bf8|xmZ=4tCh_aPW3A7PR(
z++wFRm+QKvhCNe*b)$q<5~Z_X9V?k?V3NUQ&qHANrdF;u0DqSb&5AY%PJzT{I7;AE
zlB`j3$#8d|baaVb&pDokh_il~yt)m^L>`OBc{M9xp-~Q(1u7Y+e*Z!>Xt{NK%iVq=
z(C3!;8oUA5-aHsW^m(XbNF%adkyU%wDmhkLq^4=d!f-YeFW4)(#w6<6;?UCQ?x(h)
z46Ueq=Z*S>jem>vPh?8+beHbJ>P(~)uQ+Cq-F+$mJ0II9hW1e6j6B_6Al25PuBX}i
zh)3_C7T>>AApiW%poFi~>LnVp2cL|eAGzY|jiHV!d7VyfqLVS5lrTqXHwJ|tSXe4Q
zPS=t7O~`zV%sukQ&-bE=n^46VRg^%jMX~e~>RJrlK1gL2FHtVBBCr3N9C~)bkAD_?
zu4eufuh5`uM(<;rr902g&QDt8G0G0I)NAfKF1SP1|5Q1NGQEGBLatKCKNNC_@)ujm
F?pF&8=j;Fg

diff --git a/doc/build/html/py-modindex.html b/doc/build/html/py-modindex.html
index ff96db77..16a9f551 100644
--- a/doc/build/html/py-modindex.html
+++ b/doc/build/html/py-modindex.html
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="source_rst/V2023.x.x/V2023.html">OhmPi V2023 (64 electrodes and 12V)</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source_rst/V2024.x.x/V2024.html">OhmPi V2023 (64 electrodes and 12V)</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source_rst/api.html">API reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="source_rst/developing_hardware_components.html">Software interface to new hardware components</a></li>
 </ul>
 
         </div>
diff --git a/doc/build/html/search.html b/doc/build/html/search.html
index 3e55a587..860e74ff 100644
--- a/doc/build/html/search.html
+++ b/doc/build/html/search.html
@@ -49,6 +49,7 @@
 <li class="toctree-l1"><a class="reference internal" href="source_rst/V2023.x.x/V2023.html">OhmPi V2023 (64 electrodes and 12V)</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source_rst/V2024.x.x/V2024.html">OhmPi V2023 (64 electrodes and 12V)</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source_rst/api.html">API reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="source_rst/developing_hardware_components.html">Software interface to new hardware components</a></li>
 </ul>
 
         </div>
diff --git a/doc/build/html/searchindex.js b/doc/build/html/searchindex.js
index 1512b690..c21c7d27 100644
--- a/doc/build/html/searchindex.js
+++ b/doc/build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["developing_hardware_components", "index", "source_rst/Ohmpi", "source_rst/V2023.x.x/V2023", "source_rst/V2023.x.x/V2023_step_01", "source_rst/V2023.x.x/V2023_step_02", "source_rst/V2023.x.x/V2023_step_03", "source_rst/V2023.x.x/V2023_step_04", "source_rst/V2024.x.x/V2024", "source_rst/api", "source_rst/v1.xx/V1_01", "source_rst/v1.xx/V1_02"], "filenames": ["developing_hardware_components.rst", "index.rst", "source_rst\\Ohmpi.rst", "source_rst\\V2023.x.x\\V2023.rst", "source_rst\\V2023.x.x\\V2023_step_01.rst", "source_rst\\V2023.x.x\\V2023_step_02.rst", "source_rst\\V2023.x.x\\V2023_step_03.rst", "source_rst\\V2023.x.x\\V2023_step_04.rst", "source_rst\\V2024.x.x\\V2024.rst", "source_rst\\api.rst", "source_rst\\v1.xx\\V1_01.rst", "source_rst\\v1.xx\\V1_02.rst"], "titles": ["Software interface to new hardware components", "OHMPI: Open source and open hardware resistivity-meter", "OhmPi project", "OhmPi V2023 (64 electrodes and 12V)", "<strong>STEP n\u00b01</strong> : Raspberry Pi  configuration", "<strong>STEP n\u00b02</strong>: Measurement board", "<strong>STEP n\u00b03:</strong> MUX board", "<strong>STEP n\u00b04:</strong> assemble the OhmPi", "OhmPi V2023 (64 electrodes and 12V)", "API reference", "OhmPi V 1.01 (limited to 32 electrodes)", "OhmPi V 1.02 (limited to 32 electrodes)"], "terms": {"r\u00e9mi": [1, 2], "clement": [1, 2], "vivien": [1, 2], "duboi": [1, 2], "nicola": [1, 2], "forquet": [1, 2], "inra": 2, "reversa": [2, 10, 11], "villeurbann": 2, "franc": 2, "yannick": [1, 2], "fargier": [1, 2], "ger": 2, "rro": 2, "univ": 2, "gustav": 2, "eiffel": 2, "ifsttar": 2, "lyon": 2, "h\u00e9l\u00e8ne": [1, 2], "guyard": [1, 2], "ig": 2, "grenobl": 2, "universit\u00e9": 2, "alp": 2, "olivi": [1, 2], "kaufmann": [1, 2], "arnaud": [1, 2], "watlet": [1, 2], "de": 2, "mon": 2, "belgium": 2, "guillaum": [1, 2], "blanchi": [1, 2], "ilvo": 2, "merelbek": 2, "julien": 2, "ganc": 2, "emil": 2, "gro": 2, "et": [2, 5], "al": 2, "an": [0, 2, 4, 5, 6, 7, 10, 11], "open": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11], "sourc": [0, 2, 4, 10, 11], "data": [1, 2, 3, 8], "logger": [2, 10, 11], "dedic": [2, 3, 8], "applic": [0, 2], "electr": [2, 5], "resist": [2, 3, 5, 7, 8], "imag": [2, 4], "small": [2, 3, 5, 7, 8, 10, 11], "laboratori": [2, 3, 7, 8, 10, 11], "scale": 2, "hardwarex": 2, "elsevi": 2, "2020": 2, "8": [2, 3, 4, 5, 6, 7, 8, 10, 11], "24": [2, 5, 7, 10, 11], "p": [2, 5], "ff10": 2, "1016": 2, "j": 2, "ohx": 2, "e00122ff": 2, "particip": [2, 3, 4, 5, 6, 7, 8, 10, 11], "all": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11], "requir": [0, 2, 3, 4, 7, 8, 10, 11], "skill": [2, 3, 4, 5, 6, 7, 8, 10, 11], "electron": [2, 3, 4, 5, 6, 7, 8, 10, 11], "respect": [2, 3, 4, 5, 6, 7, 8, 10, 11], "safeti": [2, 3, 4, 5, 6, 7, 8, 10, 11], "rule": [2, 3, 4, 5, 6, 7, 8, 10, 11], "must": [2, 3, 4, 5, 6, 7, 8, 10, 11], "assembl": [1, 2, 3, 4, 8], "profession": [2, 3, 4, 5, 6, 7, 8, 10, 11], "context": [2, 3, 4, 5, 6, 7, 8, 10, 11], "peopl": [2, 3, 4, 5, 6, 7, 8, 10, 11], "compet": [2, 3, 4, 5, 6, 7, 8, 10, 11], "The": [0, 1, 2, 4, 5, 6, 7], "team": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11], "cannot": [2, 3, 4, 5, 6, 7, 8, 10, 11], "held": [2, 3, 4, 5, 6, 7, 8, 10, 11], "respons": [2, 3, 4, 5, 6, 7, 8, 10, 11], "ani": [2, 3, 4, 5, 6, 7, 8, 10, 11], "materi": [2, 3, 4, 5, 6, 7, 8, 10, 11], "human": [2, 3, 4, 5, 6, 7, 8, 10, 11], "damag": [2, 3, 4, 5, 6, 7, 8, 10, 11], "which": [2, 3, 4, 5, 6, 7, 8, 10, 11], "would": [2, 3, 4, 5, 6, 7, 8, 10, 11], "associ": [2, 3, 4, 5, 6, 7, 8, 10, 11], "us": [2, 3, 4, 5, 6, 7, 8, 10, 11], "equip": [2, 3, 4, 5, 6, 7, 8, 10, 11], "doe": [2, 3, 4, 5, 6, 7, 8, 10, 11], "work": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11], "after": [2, 3, 4, 5, 6, 7, 8, 10, 11], "you": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11], "mai": [2, 3, 4, 8, 10, 11], "redistribut": 2, "modifi": [0, 2, 10, 11], "thi": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11], "document": [2, 3, 8, 10], "make": [0, 2, 3, 6, 8, 10, 11], "product": [2, 5], "under": [2, 7, 10, 11], "term": [0, 2], "cern": 2, "ohl": 2, "v2": 2, "http": [3, 4, 5, 8, 10, 11], "ch": [], "distribut": 2, "without": [2, 6, 10, 11], "express": [0, 2], "OR": 2, "impli": [2, 6], "warranti": 2, "includ": [0, 2, 3, 4, 6, 8, 10, 11], "OF": 2, "merchant": 2, "satisfactori": 2, "qualiti": 2, "AND": 2, "fit": 2, "FOR": 2, "A": [0, 2, 3, 7, 8, 10, 11], "particular": 2, "purpos": [2, 7, 10, 11], "pleas": [2, 3, 7, 8, 10, 11], "see": [2, 3, 8, 10, 11], "condit": 2, "present": [0, 2, 6, 7, 10, 11], "develop": [0, 1, 2, 3, 4, 5, 8, 10, 11], "low": [2, 3, 8, 10, 11], "cost": [0, 2, 5, 11], "hardwar": [2, 10, 11], "meter": [2, 3, 7, 8, 10, 11], "provid": [2, 3, 8, 10, 11], "scientif": 2, "commun": [2, 3, 8], "robust": [2, 3, 8, 10, 11], "flexibl": 2, "tool": [2, 3, 8], "experi": [2, 3, 8, 10, 11], "call": [2, 3, 4, 6, 7, 8], "basic": [0, 2], "meterfeatur": 2, "current": [1, 2, 3, 5, 8], "inject": [1, 2, 3, 8], "measur": [1, 2, 3, 4, 6, 7, 8], "function": [0, 2, 3, 8, 10, 11], "multiplex": [1, 2, 3, 6, 7, 8], "allow": [2, 3, 5, 6, 8, 10, 11], "perform": [0, 2, 4, 10, 11], "automat": [2, 3, 8, 10, 11], "up": [2, 3, 4, 6, 8, 10, 11], "64": [1, 2, 6, 10, 11], "electrod": [1, 2, 5, 6, 7], "s": [2, 3, 5, 6, 8, 10, 11], "philosophi": [1, 2], "fulli": 2, "toolto": 2, "surfac": 2, "anyon": 2, "who": 2, "want": [2, 11], "get": [2, 3, 4, 5, 8, 10, 11], "involv": [2, 3, 8], "welcom": [0, 2], "join": 2, "ohmpi": [0, 4, 5, 6], "project": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "compon": [1, 3, 4, 8], "quantiti": 4, "4": [3, 4, 5, 6, 8, 10, 11], "model": [4, 5, 10, 11], "micro": [3, 4, 8, 10, 11], "sd": [3, 4, 7, 8, 10, 11], "32": [1, 3, 4, 7, 8], "go": [3, 4, 6, 8], "hdmi": [4, 7], "cabl": [4, 5, 6, 7, 10, 11], "comput": [4, 10, 11], "mous": [4, 7, 10, 11], "keyboard": [4, 7, 10, 11], "first": [0, 3, 4, 6, 7, 8], "start": [0, 1, 3, 4, 6, 8, 10, 11], "board": [0, 3, 4, 7, 8], "oper": [0, 1, 4, 5, 7], "system": [0, 4, 10, 11], "For": [3, 4, 5, 6, 8, 10, 11], "instruct": [1, 3, 4, 8], "ar": [0, 3, 4, 5, 7, 8, 10, 11], "well": [3, 4, 8, 10, 11], "describ": [0, 4, 5, 7, 10, 11], "websit": [4, 10, 11], "watch": [4, 10, 11], "video": [4, 10, 11], "how": [4, 10, 11], "set": [3, 4, 5, 8, 10, 11], "your": [0, 4, 5, 6, 10, 11], "author": [1, 4, 10, 11], "recommend": [0, 3, 4, 8, 10, 11], "latest": [4, 10, 11], "stabl": [4, 10, 11], "complet": [1, 3, 4, 5, 8], "version": [0, 3, 4, 5, 8, 10, 11], "previous": [4, 7, 10, 11], "raspbian": [4, 10, 11], "can": [3, 4, 7, 8, 10, 11], "visit": 4, "raspberrypi": 4, "org": [3, 4, 8], "en": 4, "test": [0, 3, 4, 5, 6, 7, 8, 10, 11], "were": [4, 5, 10, 11], "3": [0, 3, 4, 5, 7, 8, 10, 11], "we": [3, 4, 5, 6, 8, 10, 11], "follow": [0, 3, 4, 5, 6, 7, 8, 10, 11], "onc": [3, 4, 8, 10, 11], "ha": [3, 4, 6, 8, 10, 11], "been": [3, 4, 6, 8, 10, 11], "wire": [4, 6, 7, 10, 11], "spi": [4, 10, 11], "gpio": [4, 6, 7, 10, 11], "remot": [3, 4, 8, 10, 11], "option": [3, 4, 8, 10, 11], "deactiv": [4, 10, 11], "i2c": [4, 5, 6], "via": [4, 10, 11], "gui": [4, 10, 11], "menu": [4, 10, 11], "failur": [4, 10, 11], "carri": [4, 10, 11], "out": [4, 7, 10, 11], "task": [4, 10, 11], "caus": [4, 10, 11], "relai": [4, 5, 6, 10, 11], "shield": [4, 10, 11], "card": [1, 3, 4, 6, 7, 8], "dure": [4, 10, 11], "wai": [0, 4, 10, 11], "have": [0, 3, 4, 5, 6, 8, 10, 11], "multipl": [3, 4, 8], "parallel": 4, "instanc": 4, "interpret": [4, 5, 10, 11], "each": [4, 6, 7, 10, 11], "differ": [3, 4, 5, 6, 7, 8, 10, 11], "contain": [3, 4, 7, 8, 10, 11], "discret": 4, "copi": [0, 3, 4, 8], "its": [3, 4, 6, 7, 8, 10, 11], "support": 4, "util": [3, 4, 8], "It": [0, 3, 4, 6, 8, 10, 11], "also": [0, 3, 4, 8, 10, 11], "protect": 4, "case": [0, 3, 4, 8, 10, 11], "problem": 4, "depend": [3, 4, 8, 10, 11], "specifi": [4, 10, 11], "txt": [3, 4, 8, 10, 11], "below": [3, 4, 7, 8, 10, 11], "should": [0, 3, 4, 5, 6, 7, 8, 10, 11], "type": [0, 3, 4, 6, 8, 10, 11], "termin": [3, 4, 5, 6, 7, 8, 10, 11], "necessari": [0, 4, 6, 7, 10, 11], "ensur": [4, 10, 11], "libatla": [4, 10, 11], "base": [0, 3, 4, 6, 8, 10, 11], "dev": [4, 10, 11], "librari": [4, 10, 11], "sudo": [4, 10, 11], "apt": [4, 10, 11], "strongli": [4, 10, 11], "user": [1, 3, 4, 8, 10, 11], "creat": [0, 3, 4, 8, 10, 11], "run": [3, 4, 5, 6, 7, 8, 10, 11], "code": [0, 4, 6, 10, 11], "done": [3, 4, 8, 10, 11], "either": [4, 10, 11], "directori": [0, 3, 4, 8, 10, 11], "gather": [4, 10, 11], "within": [0, 3, 4, 8, 10, 11], "python3": [4, 10, 11], "m": [4, 5, 6, 7, 10, 11], "venv": [4, 10, 11], "command": [3, 4, 8, 10, 11], "bin": [4, 10, 11], "suffici": [4, 10, 11], "meet": [4, 10, 11], "export": 4, "cflag": 4, "fcommon": 4, "pip": [4, 10, 11], "rpi": [4, 7, 10, 11], "adafruit": [4, 5, 6, 10, 11], "blinka": [4, 10, 11], "numpi": [3, 4, 8, 10, 11], "panda": [4, 10, 11], "circuitpython": [4, 10, 11], "ads1x15": [4, 10, 11], "tca9548a": [4, 6], "mcp230xx": 4, "gpiozero": 4, "check": [3, 4, 8, 10, 11], "met": [4, 10, 11], "list": [1, 4], "leav": [4, 10, 11], "simpli": [4, 7, 10, 11], "If": [0, 4, 5, 10, 11], "decid": [4, 10, 11], "setup": [4, 10, 11], "time": [3, 4, 6, 8, 10, 11], "softwar": [1, 4, 10, 11], "click": [4, 10, 11], "access": [3, 4, 7, 8, 10, 11], "program": [4, 7, 10, 11], "pythonid": [4, 10, 11], "2": [0, 3, 4, 6, 7, 8, 10, 11], "root": [4, 10, 11], "7": [4, 5, 6, 7, 10, 11], "usr": [4, 10, 11], "select": [4, 6, 10, 11], "new": [3, 4, 8, 10, 11], "window": [3, 4, 8, 10, 11], "On": [4, 10, 11], "altern": [4, 10, 11], "5": [3, 4, 5, 6, 7, 8, 10, 11], "button": [4, 10, 11], "appear": [4, 5, 6, 10, 11], "locat": [4, 10, 11], "anoth": [4, 10, 11], "execut": [3, 4, 8, 10, 11], "6": [4, 5, 6, 7, 10, 11], "find": [4, 10, 11], "folder": [4, 10, 11], "where": [0, 3, 4, 8, 10, 11], "file": [0, 4, 5, 10, 11], "home": [3, 4, 8, 10, 11], "In": [0, 3, 4, 5, 6, 8, 10, 11], "known": [4, 10, 11], "tab": [3, 4, 8, 10, 11], "path": [0, 4, 10, 11], "close": [4, 10, 11], "ok": [4, 10, 11], "9": [3, 4, 5, 6, 7, 8, 10, 11], "save": [4, 10, 11], "modif": [4, 7, 10, 11], "number": [3, 5, 8, 10, 11], "per": [5, 10, 11], "unit": [3, 5, 8, 10, 11], "total": [5, 10, 11], "manufactur": [5, 6], "refer": [1, 3, 5, 7, 8, 10, 11], "web": 5, "raspberri": [1, 3, 5, 6, 7, 8], "pi": [1, 3, 5, 7, 8], "1": [0, 1, 3, 5, 6, 7, 8], "58": 5, "75": 5, "www": [5, 10, 11], "mouser": 5, "fr": [5, 10, 11], "productdetail": 5, "seeed": 5, "studio": 5, "102110421": 5, "qs": 5, "7mvldsj5uaxen3lyyh3sqw": 5, "3d": 5, "lm158n": 5, "amp": 5, "o": [3, 5, 8, 10, 11], "14": [5, 6, 7], "texa": 5, "instrument": [3, 5, 8], "lm358an": 5, "nopb": 5, "lm158j": 5, "x1j7hmvl2zh8vpefml8": 5, "2ffq": 5, "print": [3, 5, 8, 10, 11], "circuit": [3, 5, 8, 10, 11], "12": [3, 5, 6, 7, 8, 10, 11], "asler": 5, "ads1115": [5, 10, 11], "11": [5, 7, 10, 11], "23": [5, 7, 10, 11], "1085": 5, "2fha2pyfaduh": 5, "2fogzutwiq9iz5vjaqfoyugqalgxpeckigrqvf4hn": 5, "252bg": 5, "capacitor": [5, 11], "100nf": [5, 11], "50vdc": [5, 11], "10": [3, 5, 6, 7, 8, 10, 11], "ceram": [5, 11], "0": [3, 5, 8, 10, 11], "kemet": 5, "c320c104k1": 5, "c320c104k1r5ta7303": 5, "c4uyot": 5, "2flq1th4mcyoetma": 5, "resistor": [5, 6, 10, 11], "kohm": [5, 6, 10, 11], "5w": 5, "te": 5, "connect": [1, 3, 5, 6, 7, 8], "h81k0bya": 5, "holsworthi": 5, "2fha2pyfaduhuylh7az": 5, "2fmjfh2xjoums6wztux4som": 5, "252bii": 5, "h81k5bya": 5, "2fha2pyfadugy9twham3ru9hmijohywhbin95knm": 5, "252bx": 5, "2fm": 5, "vishai": 5, "ccf071k50gke36": 5, "dale": 5, "qkeozdl6eqpa6lzrlqfvow": 5, "mohm": [3, 5, 8, 10, 11], "762": 5, "524": 5, "cmf651m0000fkek143": 5, "ciayqk2gdckzia2levalkg": 5, "ohm": [3, 5, 8, 10, 11], "shunt": 5, "42": 5, "ohmit": 5, "41f2r0e": 5, "im6toxqzgoauedprb19mha": 5, "dual": [5, 6, 10, 11], "screw": [5, 6, 7, 10, 11], "08": 5, "mm": [5, 7, 10, 11], "pitch": [5, 10, 11], "648": 5, "cui": 5, "devic": [0, 5], "tb009": 5, "508": 5, "02be": 5, "vlwxofp3u2wcfk5uckwtka": 5, "dc": [5, 10, 11], "convert": [5, 10, 11], "24v": 5, "15": [5, 7, 10, 11], "31": [5, 7], "16": [5, 6, 7, 10, 11], "tracopow": 5, "trn": 5, "1215": [5, 11], "traco": [5, 11], "power": [3, 5, 6, 7, 8, 10, 11], "yca": 5, "2faaymw02gquicgqj0ta": 5, "dip": [5, 6], "line": [5, 6, 10, 11], "socket": [5, 6], "72": 5, "mill": 5, "max": 5, "110": 5, "43": [5, 10, 11], "308": 5, "41": 5, "001000": 5, "iggadovctstu": 5, "2fqaur8narg": 5, "mgh": 5, "vip": 5, "gclid": 5, "eaiaiqobchmin_taxbcx8wivq5nvch2qaqfpeayyccabegjk1_d_bw": 5, "aqy211eh": 5, "84": 5, "36": [5, 7, 10, 11], "panason": 5, "industri": 5, "wktuvitrialgiu8hcm7dvq": 5, "449": 5, "796": 5, "preci": 5, "83": 5, "304": 5, "001101": 5, "2fha2pyfadujqkqx4wauig": 5, "2fmgndxmcnv": 5, "2f33nj0gbxroculucynpyong": 5, "mcp23008": 5, "593": 5, "sgaepimzzmskedp9slc0yyv4kpdpmd1hts4slctivmw": 5, "header": [5, 6, 10, 11], "1x10": 5, "samtec": 5, "ssw": 5, "02": [1, 5], "g": [5, 10, 11], "ru5fayqh": 5, "252be0w1orxzibqpw": 5, "smt": 5, "breakout": 5, "pcb": [0, 5, 6, 10, 11], "soic": 5, "1212": 5, "gurawfaegucaqqfvnvtyeg": 5, "eaiaiqobchmit8zjzr6x8wivgdnvch2vbwvseaqyayabegjqg_d_bw": 5, "ina282aid": 5, "ze4": 5, "2fufuz19ilfayzxocfra": 5, "thd": 5, "1211n": 5, "39": [5, 7, 10, 11], "2fha2pyfadugpyeg4idvm": 5, "2fmsr": 5, "252b7an": 5, "2f0t3ruis9pcaqjlt4": 5, "252bnrpuooeq": 5, "20": [5, 7, 10, 11], "53": 5, "ssq": 5, "120": 5, "d": [5, 10, 11], "252be1bmvd": 5, "252bdzonqg": 5, "pin": [5, 6, 10, 11], "strip": [5, 6, 7, 10, 11], "ejector": 5, "35": [5, 7], "blk": 5, "10120550": 5, "conrad": 5, "com": [3, 5, 8, 10, 11], "bkl": 5, "contact": [3, 5, 6, 8, 10, 11], "space": 5, "254": 5, "row": 5, "pc": 5, "741435": 5, "searchterm": 5, "searchtyp": 5, "suggest": [5, 6, 10, 11], "searchsuggest": 5, "male": [5, 6], "femal": [5, 10, 11], "spacer": [5, 7], "5m": [5, 7], "hexagonal": 5, "87": 5, "48": 5, "harwin": 5, "r25": 5, "3002002": 5, "w0yvoo0ixfenuv0hsdc4": 5, "2fq": 5, "86": 5, "437": 5, "1108331841001101": 5, "318": 5, "ftmup6kvi2tnqoeziaq": 5, "2fpa": 5, "figur": [3, 5, 8, 10, 11], "show": [5, 10, 11], "gener": [1, 3, 5, 6, 8, 10, 11], "schemat": [5, 11], "plug": [5, 10, 11], "plai": 5, "To": [3, 5, 6, 8, 10, 11], "two": [0, 3, 5, 6, 8, 10, 11], "one": [3, 5, 7, 8, 10, 11], "voltag": [3, 5, 7, 8, 10, 11], "propos": [5, 10, 11], "florsch": [5, 10, 11], "bit": [5, 10, 11], "adc": [5, 10, 11], "analog": [5, 10, 11], "digit": [5, 6, 10, 11], "adapt": [0, 3, 5, 8, 10, 11], "gain": [3, 5, 8, 10, 11], "advantag": 5, "input": [3, 5, 7, 8, 10, 11], "signal": [5, 10, 11], "valu": [5, 6, 10, 11], "could": [5, 7, 10, 11], "lie": [5, 10, 11], "between": [5, 6, 7, 10, 11], "114": [5, 10, 11], "v": [1, 3, 5, 7, 8], "directli": [5, 10, 11], "integr": 5, "ina282": 5, "realiz": 5, "precis": [5, 10, 11], "around": [3, 5, 8], "instal": [3, 5, 6, 7, 8], "solder": [5, 10, 11], "optic": 5, "suppli": [5, 6, 7, 10, 11], "12v": [1, 5, 6, 7, 11], "5v": [5, 10, 11], "tdh15": 5, "four": [3, 5, 8], "inpout": 5, "output": [3, 5, 7, 8, 10, 11], "three": [3, 5, 6, 8, 10, 11], "limit": [1, 3, 5, 8], "ma": [3, 5, 8, 10, 11], "higher": [5, 11], "than": [5, 10, 11], "just": [5, 11], "decreas": 5, "don": [3, 5, 8], "t": [3, 5, 8], "forget": [3, 5, 8], "chang": [0, 3, 5, 8], "config": [0, 3, 5, 8, 10, 11], "py": [0, 3, 5, 6, 8, 10, 11], "kei": 5, "r_shunt": 5, "ohmpi_config": 5, "dict": 5, "pre": [5, 7], "adjust": [5, 10, 11], "13": [5, 7, 10, 11], "17": [5, 7, 10, 11], "18": [3, 5, 7, 8, 10, 11], "19": [5, 7, 10, 11], "view": [5, 7], "fix": [5, 7], "dot": 5, "mark": [5, 7], "top": [3, 5, 7, 8], "left": [5, 7], "corner": 5, "21": [5, 7, 10, 11], "mount": [5, 6, 7, 10, 11], "22": [5, 7, 10, 11], "lm158": 5, "amplifi": [5, 10, 11], "ads115": [5, 10, 11], "right": [5, 7], "3x11": [], "wurth": [], "elektronik": [], "971110321": [], "305": [], "apm": [], "hexseal": [], "rm3x8mm": [], "2701": [], "jjse": [], "2f12mkns3vxsdryxuhw": [], "shutdown": 5, "unplug": 5, "bottom": [5, 10, 11], "11mm": 5, "m3": 5, "upper": 5, "port": [5, 7], "write": [0, 3, 5, 6, 8, 10, 11], "i2cdetect": [5, 6], "y": [5, 6], "everyth": 5, "address": [3, 5, 10, 11], "screen": [5, 10, 11], "equival": [5, 10, 11], "need": [3, 5, 6, 8, 10, 11], "1kohm": 5, "r2": [5, 10, 11], "220": 5, "r1": [5, 10, 11], "padboard": 5, "spool": 5, "prepar": [5, 6, 10, 11], "batteri": [3, 5, 7, 8, 10, 11], "red": [3, 5, 7, 8, 10, 11], "black": [5, 7, 10, 11], "ground": [5, 10, 11], "thonni": [3, 5, 8], "sample_measurement_exampl": 5, "exampl": [3, 5, 6, 7, 8, 10, 11], "result": [5, 10, 11], "channel": [6, 10, 11], "mechan": [3, 6, 8, 10, 11], "omron": 6, "g5le": 6, "vd": 6, "vdc": 6, "combin": 6, "zvn4206a": 6, "mofset": 6, "onli": [0, 6], "30": [6, 7, 10, 11], "enough": [6, 10, 11], "activ": [3, 6], "repres": [6, 10, 11], "512": 6, "expand": 6, "mcp23017": 6, "from": [3, 6, 7, 8, 10, 11], "128": [3, 6, 8], "own": 6, "0x70": 6, "0x77": 6, "0x71": 6, "0x72": 6, "0x73": 6, "140": [], "560": [], "62": [], "92": [], "1580994": [], "tru": [], "diod": 6, "1n4007": 6, "256": [], "091": [], "296": [], "incorpor": [3, 8], "sgaepimzzmueqxo7l": [], "2fbpyakboruumren": [], "56": [], "776": [], "205": [], "46": [], "103321": [], "5twgzeq9e7hsylqaljjyrw": [], "i": [3, 7, 8, 10, 11], "40": [3, 8, 10, 11], "732": [], "sgaepimzzmskedp9slc0yfx16nydmpxjueeogolbldi": [], "27": [7, 10, 11], "325": [], "over": [], "503811": [], "mosfet": 6, "nchannel": [], "471": [], "576": [], "vhuuswq2": [], "252bsz9b": [], "2ff6fcxt7g": [], "100k\u03c9": [], "061": [], "616": [], "beyschlag": [], "mba02040c1003frp00": [], "mzrxyrlhvdt9crf7zyf": [], "2f5q": [], "89": [], "2717": [], "sgaepimzzmsyydr3r27av4eqf73yoh": [], "252baqg": [], "252bz3hvktao": [], "10120558": [], "54": [], "No": [], "51": [], "741727": [], "10120862": [], "connector": [6, 7, 10, 11], "strain": [], "relief": [], "44": [], "742063": [], "10120158": [], "ribbon": 7, "x": [10, 11], "mm\u00b2": [10, 11], "multi": [3, 8, 10, 11], "colour": [], "1012015810": [], "127": [], "008": [], "1548658": [], "hex": 7, "25": [3, 7, 8, 10, 11], "79": [], "49": [], "keyston": [], "24300": [], "uwqyq": [], "2f2czwu0ejpozmzc2a": [], "745": [], "846": [], "614": [], "25515": [], "2f2czwuxuhumfr": [], "252bzuq": [], "55": [], "328": [], "uqd7xcvsscnr3hwd6fta8g": [], "100": [3, 6, 8, 10, 11], "duplic": 6, "everi": [3, 6, 8], "build": [6, 10, 11], "therefor": [6, 10, 11], "identifi": 6, "assign": 6, "alloc": 6, "here": [6, 7, 11], "default": [3, 6, 8], "jumper": 6, "note": [6, 7, 10, 11], "name": [0, 3, 6, 8, 10, 11], "zoom": [6, 7], "befor": [3, 6, 7, 8, 10, 11], "them": [3, 6, 8, 10, 11], "definit": 6, "simplifi": 6, "thing": [3, 6, 8], "do": [0, 3, 6, 7, 8], "50": [3, 6, 7, 8, 10, 11], "cm": [6, 7, 10, 11], "long": [6, 7], "flat": 6, "pole": [6, 10, 11], "detect": 6, "script": [0, 3, 6, 8], "test_mux_board": 6, "cut": 7, "compos": 7, "proper": 7, "length": [7, 10, 11], "about": 7, "correspond": [7, 10], "crimp": 7, "idc": 7, "suitabl": [3, 7, 8, 10, 11], "clamp": 7, "pai": [7, 10, 11], "attent": [7, 10, 11], "direct": [3, 7, 8, 10, 11], "unbalanc": 7, "perpendicular": 7, "possibl": [7, 10, 11], "same": [3, 7, 8, 10, 11], "flush": 7, "posit": [7, 10, 11], "abov": [7, 10, 11], "mux": [3, 7, 10, 11], "profil": 7, "color": 7, "yellow": 7, "tin": 7, "end": [7, 10, 11], "shown": [7, 10, 11], "pictur": 7, "ii": 7, "gnd": [7, 10, 11], "nois": 7, "often": 7, "heard": 7, "when": [0, 3, 7, 8, 10, 11], "clip": 7, "place": [0, 7, 10, 11], "second": [3, 7, 8, 10, 11], "b": [3, 7], "help": [0, 3, 7, 8], "previou": [3, 7, 8], "procedur": 7, "repeat": [3, 7, 8, 10, 11], "other": [3, 7, 8, 10, 11], "purpl": 7, "relev": [0, 7], "defin": [0, 3, 7, 8], "third": [3, 7, 8], "fourth": 7, "nylon": 7, "photograph": 7, "more": [3, 7, 8], "detail": [3, 7, 8, 10], "4th": 7, "togeth": [7, 10, 11], "tie": 7, "pvc": 7, "plate": 7, "minimum": 7, "dimens": 7, "200": 7, "150": [3, 7, 8, 10, 11], "drill": 7, "remain": [7, 10, 11], "metal": 7, "tighten": 7, "so": [7, 10, 11], "usb": 7, "hole": [7, 10, 11], "26": [7, 10, 11], "add": [7, 10, 11], "attach": 7, "washer": 7, "nut": 7, "28": [1, 7], "29": 7, "come": 7, "pass": [3, 7, 8], "brown": 7, "blue": [7, 10, 11], "block": [7, 10, 11], "secur": [3, 7, 8], "33": 7, "34": 7, "37": 7, "38": 7, "os": [3, 7, 8], "monitor": [3, 7, 8, 10, 11], "deliv": [7, 10, 11], "12vdc": 7, "enjoi": 7, "publish": [3, 8, 10], "journal": 10, "howev": [0, 10, 11], "correct": [10, 11], "bug": 10, "exist": [0, 10, 11], "explain": 10, "miss": 10, "point": [3, 8, 10, 11], "invit": 10, "v1": [3, 8, 10, 11], "offer": [3, 8, 10, 11], "commerci": [10, 11], "avail": [0, 3, 8, 10, 11], "field": [3, 8, 10, 11], "specif": [0, 10, 11], "temperatur": [3, 8, 10, 11], "c": [3, 8, 10, 11], "consumpt": [3, 8, 10, 11], "cpu": [3, 8, 10, 11], "control": [3, 8, 10, 11], "w": [3, 8, 10, 11], "min": [3, 8, 10, 11], "puls": [3, 8, 10, 11], "durat": [3, 8, 10, 11], "ms": [3, 8, 10, 11], "imped": [3, 8, 10, 11], "storag": [3, 8, 10, 11], "resolut": [3, 8, 10, 11], "o1": [10, 11], "step": [0, 10, 11], "youtub": [10, 11], "wjwzhv1v3pk": [10, 11], "noob": [10, 11], "simpl": [10, 11], "sure": [0, 3, 8, 10, 11], "unexpectedli": [10, 11], "boot": [10, 11], "cd": [10, 11], "gnu": [10, 11], "nano": [10, 11], "editor": [3, 8, 10, 11], "At": [10, 11], "op": [10, 11], "dl": [10, 11], "press": [10, 11], "ctrl": [10, 11], "enter": [10, 11], "escap": [10, 11], "return": [3, 8, 10, 11], "wa": [10, 11], "introduc": [0, 3, 8, 10, 11], "Its": [10, 11], "studi": [10, 11], "hous": [10, 11], "design": [0, 3, 8, 10, 11], "diagram": [10, 11], "displai": [10, 11], "mimic": [10, 11], "behavior": [10, 11], "soil": [10, 11], "subject": [10, 11], "r11": [10, 11], "r10": [10, 11], "r12": [10, 11], "constitut": [10, 11], "thei": [3, 8, 10, 11], "typic": [0, 3, 8, 10, 11], "made": [3, 8, 10, 11], "stainless": [10, 11], "steel": [10, 11], "seri": [10, 11], "part": [0, 3, 10, 11], "r9": [10, 11], "ad": [3, 8, 10, 11], "flow": [3, 8, 10, 11], "order": [0, 3, 8, 10, 11], "less": [10, 11], "sum": [10, 11], "inde": [10, 11], "000": [10, 11], "intens": [10, 11], "potenti": [10, 11], "calcul": [10, 11], "insert": [10, 11], "1115": [10, 11], "our": [3, 8, 10, 11], "a1": [10, 11], "a0": [10, 11], "increas": [10, 11], "track": [0, 10, 11], "divid": [10, 11], "bridg": [10, 11], "r5": [10, 11], "r8": [10, 11], "r6": [10, 11], "r7": [10, 11], "accord": [0, 10, 11], "n": [3, 8, 10, 11], "a2": [10, 11], "a3": [10, 11], "obtain": [10, 11], "ly": [10, 11], "rang": [0, 10, 11], "let": [10, 11], "equal": [10, 11], "multipli": [10, 11], "reduct": [10, 11], "section": [0, 3, 8, 10, 11], "despit": [10, 11], "high": [10, 11], "e": [3, 8, 10, 11], "accur": [10, 11], "still": [10, 11], "calibr": [10, 11], "voltmet": [10, 11], "variou": [10, 11], "These": [3, 8, 10, 11], "serv": [3, 8, 10, 11], "With": [10, 11], "disturb": [10, 11], "being": [10, 11], "estim": [10, 11], "mega": [10, 11], "shortcut": [10, 11], "excess": [10, 11], "whose": [3, 8, 10, 11], "lithium": [10, 11], "ion": [10, 11], "automobil": [10, 11], "lead": [10, 11], "acid": [10, 11], "strong": [10, 11], "hazard": [10, 11], "fuse": [10, 11], "repositori": [3, 8, 10, 11], "onto": [10, 11], "illustr": [3, 8, 10, 11], "ohmmet": [10, 11], "coeffici": [10, 11], "coef_p0": [10, 11], "coef_p1": [10, 11], "coef_p2": [10, 11], "coef_p3": [10, 11], "coef": [10, 11], "po": [10, 11], "p1": [10, 11], "r3": [10, 11], "r4": [10, 11], "p2": [10, 11], "p3": [10, 11], "r_ref": [10, 11], "slope": [10, 11], "convers": [10, 11], "p0": [10, 11], "accuraci": [10, 11], "both": [0, 10, 11], "addit": [3, 8, 10, 11], "lm358n": [10, 11], "appli": [10, 11], "prefer": [3, 8, 10, 11], "weaker": 10, "stronger": [10, 11], "tx": [10, 11], "rememb": [10, 11], "holder": [10, 11], "f": [10, 11], "consist": [10, 11], "circul": [10, 11], "through": [3, 8, 10, 11], "fig": [10, 11], "modul": [0, 10, 11], "switch": [10, 11], "common": [10, 11], "neg": [10, 11], "normal": [10, 11], "simultan": [10, 11], "role": [10, 11], "revers": [10, 11], "polar": [10, 11], "thu": [10, 11], "energ": [10, 11], "solut": [0, 10, 11], "manag": [3, 8, 10, 11], "next": [10, 11], "featur": [10, 11], "strict": [10, 11], "in1": [10, 11], "in2": [10, 11], "in3": [10, 11], "in4": [10, 11], "5vdc": [10, 11], "5vcc": [10, 11], "now": [10, 11], "mm2": [10, 11], "lastli": [10, 11], "congratul": [10, 11], "construct": [10, 11], "valid": [3, 10, 11], "conduct": [0, 10, 11], "manual": [3, 8, 10, 11], "practic": [0, 10, 11], "ert": [10, 11], "sever": [10, 11], "ten": [10, 11], "thousand": [10, 11], "arrai": [3, 8, 10, 11], "stuck": [10, 11], "enabl": [3, 8, 10, 11], "smaller": [10, 11], "hand": [10, 11], "entir": [3, 8, 10, 11], "cap": [10, 11], "produc": [10, 11], "clean": [10, 11], "distanc": [10, 11], "had": [10, 11], "extra": [10, 11], "As": [10, 11], "final": [10, 11], "actual": [10, 11], "singl": [0, 3, 8, 10, 11], "protocol": [3, 8, 10, 11], "horizont": [10, 11], "vertic": [10, 11], "06": [10, 11], "04": [10, 11], "09": [10, 11], "05": [10, 11], "din": [10, 11], "rail": [10, 11], "chosen": [10, 11], "consequ": [10, 11], "incom": [10, 11], "instead": [10, 11], "moreov": [10, 11], "turn": [10, 11], "bought": [10, 11], "down": [10, 11], "velleman": [10, 11], "wpm404": [10, 11], "potentiomet": [10, 11], "download": [3, 8, 10, 11], "scienc": [10, 11], "framework": [10, 11], "manuscript": [10, 11], "osf": [10, 11], "io": [10, 11], "dzwb4": [10, 11], "gitlab": [3, 8, 10, 11], "irstea": [10, 11], "unzip": [10, 11], "master": [10, 11], "readm": [10, 11], "assist": [10, 11], "disconnect": [10, 11], "handl": [3, 8, 10, 11], "charg": [10, 11], "full": [10, 11], "capac": [10, 11], "fewer": [10, 11], "bank": [10, 11], "2a": [10, 11], "ll": [10, 11], "insid": [10, 11], "abmn": [3, 8, 10, 11], "quadrupol": [3, 8, 10, 11], "numer": [10, 11], "some": [0, 1, 3, 8, 10, 11], "main": [3, 8, 10, 11], "optim": [10, 11], "attribut": [10, 11], "stack": [3, 8, 10, 11], "the9": [10, 11], "hear": [10, 11], "characterist": [10, 11], "sound": [10, 11], "permut": [10, 11], "csv": [10, 11], "nb_electrod": [3, 8, 10, 11], "maximum": [3, 8, 10, 11], "injection_dur": [3, 8, 10, 11], "nbr_mea": [3, 8, 10, 11], "sequenc": [3, 8, 10, 11], "sequence_delai": [3, 8, 10, 11], "delai": [10, 11], "repetit": [10, 11], "evolv": [10, 11], "littl": [10, 11], "public": [10, 11], "articl": [10, 11], "date": [1, 10, 11], "sainsmart": [], "canal": [], "pour": [], "arduino": [], "dsp": [], "avr": [], "pic": [], "arm": [], "99": [], "199": [], "sain": [], "smart": [], "101": [], "70": [], "103": [], "018": [], "1x1": [], "66": [], "1568649": [], "1x0": [], "71": [], "1565235": [], "68": [], "rs": [], "pro": [], "897": [], "1332": [], "858": [], "627": [], "52": [], "upw50b50rv": [], "1083": [], "7ah": [], "537": [], "5488": [], "lr20": [], "9v": [], "185": [], "4686": [], "ferrul": [], "500": [], "piec": [], "weidmul": [], "9004330000": [], "966067": [], "car": [], "littelfus": [], "fhac0002zxj": [], "96": [], "improv": [0, 3, 8, 11], "upgrad": [3, 8, 11], "01": [1, 3, 8, 11], "replac": [0, 11], "trn3": 11, "suppress": 11, "10v": 11, "fast": 11, "decoupl": 11, "last": 11, "veri": [0, 11], "prevent": 11, "overh": 11, "toler": 11, "orient": 11, "h": 11, "nf": 11, "tabl": [10, 11], "jason": 11, "ohmpi_param": 11, "json": [3, 8, 11], "export_path": 11, "desktop": 11, "0251001": [], "pat1l": [], "box": [3, 8], "mani": [3, 8], "dii": [3, 8], "laps": [3, 8], "seek": [3, 8], "share": [0, 3, 8], "wish": [3, 8], "2023": [1, 3, 8], "stop": [3, 8], "0x": [3, 8], "effort": [3, 8], "paramet": [3, 8], "80": [3, 8], "virtual": 3, "environ": 3, "packag": [3, 8], "id": [3, 8], "summar": [3, 8], "cover": [3, 8], "acquisit": [3, 8], "separ": [3, 8], "ohmpi_set": [3, 8], "central": [3, 8], "class": [0, 3, 8], "interact": [0, 3, 8], "handler": [3, 8], "layer": [3, 8], "releas": [1, 3, 8], "excel": [3, 8], "log": [3, 8], "implement": [0, 1, 3, 8], "broker": [3, 8], "zip": [3, 8], "rotat": [3, 8], "disk": [3, 8], "exec_logg": [3, 8], "data_logg": [3, 8], "plan": [3, 8], "state": [3, 8], "health": [3, 8], "soh": [3, 8], "futur": [3, 8], "By": [3, 8], "written": [3, 8], "consol": [3, 8], "like": [3, 8], "store": [0, 3, 8], "local": [3, 8], "dai": [3, 8], "size": [3, 8], "exce": [3, 8], "sent": [3, 8], "level": [3, 8], "advanc": [3, 8], "edit": [3, 8], "setup_logg": [3, 8], "custom": [3, 8], "desir": [3, 8], "usernam": [3, 8], "password": [3, 8], "One": [3, 8], "understand": [3, 8], "alter": [3, 8], "keep": [3, 8], "bash": [3, 8], "run_http_interfac": [3, 8], "sh": [3, 8], "api": [1, 3, 8], "import": [0, 3, 8], "iot": [3, 8], "messag": [3, 8], "friendli": [3, 8], "graphic": [3, 8], "quick": [3, 8], "easi": [3, 8], "wi": [3, 8], "fi": [3, 8], "ap": [3, 8], "webserv": [3, 8], "index": [3, 8], "html": [3, 8], "laptop": [3, 8], "mobil": [3, 8], "phone": [3, 8], "upload": [3, 8], "act": [3, 8], "raspap": [3, 8], "runonstart": [3, 8], "itself": [3, 8], "141": [3, 8], "8080": [3, 8], "pseudo": [3, 8], "evolut": [3, 8], "appar": [3, 8], "especi": [3, 8], "suit": [3, 8], "autom": [3, 8], "ipython": [3, 8], "ssh": [3, 8], "putti": [3, 8], "maco": [3, 8], "linux": [3, 8], "found": [3, 8], "np": [3, 8], "chdir": [3, 8], "object": [3, 8], "k": [3, 8], "load": [3, 8], "nb_stack": [3, 8], "half": [3, 8], "cycl": [3, 8], "updat": [3, 8], "update_set": [3, 8], "shape": [3, 8], "set_sequ": [3, 8], "n2": [3, 8], "string": [3, 8], "load_sequ": [3, 8], "rs_check": [3, 8], "synchron": [3, 8], "wait": [3, 8], "prompt": [3, 8], "run_sequ": [3, 8], "run_sequence_async": [3, 8], "thread": [3, 8], "immedi": [3, 8], "sleep": [3, 8], "interrupt": [3, 8], "kill": [3, 8], "asynchron": [3, 8], "given": [3, 8], "interv": [3, 8], "nb_mea": [3, 8], "run_multiple_sequ": [3, 8], "taken": [3, 8], "switch_mux_on": [3, 8], "run_measur": [3, 8], "switch_mux_off": [3, 8], "risk": [3, 8], "short": [3, 8], "argument": [3, 8], "autogain": [3, 8], "true": [3, 8], "good": [3, 8], "usag": [3, 8], "process": [3, 8], "sensor": [3, 8], "scope": [3, 8], "internet": [3, 8], "network": [3, 8], "auxiliari": [3, 8], "subscrib": [3, 8], "approach": [3, 8], "mosquitto": [3, 8], "server": [3, 8], "reachabl": [3, 8], "net": [3, 8], "servic": [3, 8], "install_local_mqtt_brok": [3, 8], "examin": [3, 8], "easili": [0, 3, 8], "parti": [3, 8], "explor": [3, 8], "receiv": [3, 8], "reboot": [3, 8], "further": [3, 8], "format": [3, 8], "kwarg": [3, 8], "cmd_id": [3, 8], "3fzxv121uitwgjwygcz4xw": [3, 8], "cmd": [3, 8], "3fzxv121uitwgjwygcz4yw": [3, 8], "tailor": [3, 8], "dashboard": [3, 8], "browser": [3, 8], "node": [3, 8], "complex": [3, 8], "properli": [3, 8], "palett": [3, 8], "noder": [3, 8], "doc": [3, 8], "guid": [3, 8], "ui": [3, 8], "visual": [3, 8], "cookbook": [3, 8], "draft": 0, "TO": 0, "BE": 0, "review": 0, "intend": 0, "advic": 0, "best": 0, "contribut": 0, "maintain": 0, "promot": 0, "exchang": 0, "reus": 0, "contributor": 0, "ideal": 0, "few": 0, "distinguish": 0, "deal": 0, "compli": 0, "Such": 0, "focu": 0, "reduc": 0, "newli": 0, "expos": 0, "minim": 0, "hardware_system": 0, "discuss": 0, "ohmpi_hardwar": 0, "initi": 0, "earli": 0, "stage": 0, "investig": 0, "strategi": 0, "readi": 0, "conceiv": 0, "kicad": 0, "schema": 0, "alwai": 0, "branch": 0, "python": 0, "similar": 0, "hardware_compon": 0, "abstract": 0, "abstract_hardware_compon": 0, "method": 0, "configur": [0, 1], "hardware_config": 0, "dictionari": 0, "config_xxx": 0, "xxx": 0, "nov": 1, "juli": 1, "2016": 1, "target": 1, "research": 1, "statu": 1, "matur": 1, "progress": 1, "offici": 1, "guidelin": 1, "tutori": 1, "content": 1, "partner": 1, "cite": 1, "introduct": 1, "technic": 1, "v2023": 1, "tow": 5, "led": 7, "consid": 7, "temporari": 7, "orang": 7}, "objects": {"": [[9, 0, 0, "-", "ohmpi"]]}, "objtypes": {"0": "py:module"}, "objnames": {"0": ["py", "module", "Python module"]}, "titleterms": {"ohmpi": [1, 2, 3, 7, 8, 10, 11], "project": 2, "author": 2, "partner": 2, "cite": 2, "introduct": 2, "step": [3, 4, 5, 6, 7, 8], "n": [4, 5, 6, 7], "1": [4, 10, 11], "raspberri": [4, 10, 11], "pi": [4, 10, 11], "configur": [3, 4, 8, 10, 11], "part": [4, 5, 6], "A": [4, 5, 6], "os": [4, 10, 11], "instal": [4, 10, 11], "b": [4, 5, 6, 10, 11], "virtual": [4, 10, 11], "environ": [4, 10, 11], "packag": [4, 10, 11], "c": [4, 5, 6], "activ": [4, 10, 11], "thonni": [4, 10, 11], "python": [3, 4, 8, 10, 11], "id": [4, 10, 11], "2": 5, "measur": [5, 10, 11], "board": [5, 6, 10, 11], "assembl": [5, 6, 7, 10, 11], "requir": [5, 6], "compon": [0, 5, 6, 10, 11], "list": [5, 10, 11], "descript": [5, 10, 11], "start": 5, "up": 5, "check": 5, "3": 6, "mux": 6, "address": 6, "valid": 6, "4": 7, "v": [10, 11], "01": 10, "limit": [10, 11], "32": [10, 11], "electrod": [3, 8, 10, 11], "The": [3, 8, 10, 11], "philosophi": [3, 8, 10, 11], "technic": [10, 11], "data": [10, 11], "current": [10, 11], "inject": [10, 11], "card": [10, 11], "connect": [10, 11], "electr": [10, 11], "resist": [1, 10, 11], "implement": [10, 11], "first": [10, 11], "four": [10, 11], "multiplex": [10, 11], "oper": [3, 8, 10, 11], "instruct": [10, 11], "preliminari": [10, 11], "procedur": [10, 11], "onli": [10, 11], "initi": [10, 11], "startup": [10, 11], "paramet": [10, 11], "complet": [10, 11], "tabl": [], "titl": [], "02": 11, "v2023": [3, 8], "64": [3, 8], "12v": [3, 8], "hardwar": [0, 1, 3, 8], "specif": [3, 8], "build": [3, 8], "an": [3, 8], "softwar": [0, 3, 8], "system": [3, 8], "architectur": [3, 8], "logger": [3, 8], "file": [3, 8], "interfac": [0, 3, 8], "applic": [3, 8], "web": [3, 8], "mqtt": [3, 8], "api": 9, "refer": 9, "new": 0, "open": 1, "sourc": 1, "meter": 1, "summari": 1, "document": 1, "center": 1}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "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": 56}})
\ No newline at end of file
+Search.setIndex({"docnames": ["index", "source_rst/Ohmpi", "source_rst/V2023.x.x/V2023", "source_rst/V2023.x.x/V2023_step_01", "source_rst/V2023.x.x/V2023_step_02", "source_rst/V2023.x.x/V2023_step_03", "source_rst/V2023.x.x/V2023_step_04", "source_rst/V2024.x.x/V2024", "source_rst/api", "source_rst/developing_hardware_components", "source_rst/v1.xx/V1_01", "source_rst/v1.xx/V1_02"], "filenames": ["index.rst", "source_rst\\Ohmpi.rst", "source_rst\\V2023.x.x\\V2023.rst", "source_rst\\V2023.x.x\\V2023_step_01.rst", "source_rst\\V2023.x.x\\V2023_step_02.rst", "source_rst\\V2023.x.x\\V2023_step_03.rst", "source_rst\\V2023.x.x\\V2023_step_04.rst", "source_rst\\V2024.x.x\\V2024.rst", "source_rst\\api.rst", "source_rst\\developing_hardware_components.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", "OhmPi V2023 (64 electrodes and 12V)", "<strong>STEP n\u00b01</strong> : Raspberry Pi  configuration", "<strong>STEP n\u00b02</strong>: Measurement board", "<strong>STEP n\u00b03:</strong> MUX board", "<strong>STEP n\u00b04:</strong> assemble the OhmPi", "OhmPi V2023 (64 electrodes and 12V)", "API reference", "Software interface to new hardware components", "OhmPi V 1.01 (limited to 32 electrodes)", "OhmPi V 1.02 (limited to 32 electrodes)"], "terms": {"r\u00e9mi": [0, 1], "clement": [0, 1], "vivien": [0, 1], "duboi": [0, 1], "nicola": [0, 1], "forquet": [0, 1], "inra": 1, "reversa": [1, 10, 11], "villeurbann": 1, "franc": 1, "yannick": [0, 1], "fargier": [0, 1], "ger": 1, "rro": 1, "univ": 1, "gustav": 1, "eiffel": 1, "ifsttar": 1, "lyon": 1, "h\u00e9l\u00e8ne": [0, 1], "guyard": [0, 1], "ig": 1, "grenobl": 1, "universit\u00e9": 1, "alp": 1, "olivi": [0, 1], "kaufmann": [0, 1], "arnaud": [0, 1], "watlet": [0, 1], "de": 1, "mon": 1, "belgium": 1, "guillaum": [0, 1], "blanchi": [0, 1], "ilvo": 1, "merelbek": 1, "julien": 1, "ganc": 1, "emil": 1, "gro": 1, "et": [1, 4], "al": 1, "an": [1, 3, 4, 5, 6, 9, 10, 11], "open": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "sourc": [1, 3, 9, 10, 11], "data": [0, 1, 2, 7], "logger": [1, 10, 11], "dedic": [1, 2, 7], "applic": [1, 9], "electr": [1, 4], "resist": [1, 2, 4, 6, 7], "imag": [1, 3], "small": [1, 2, 4, 6, 7, 10, 11], "laboratori": [1, 2, 6, 7, 10, 11], "scale": 1, "hardwarex": 1, "elsevi": 1, "2020": 1, "8": [1, 2, 3, 4, 5, 6, 7, 10, 11], "24": [1, 4, 5, 6, 10, 11], "p": [1, 4, 5], "ff10": 1, "1016": 1, "j": 1, "ohx": 1, "e00122ff": 1, "particip": [1, 2, 3, 4, 5, 6, 7, 10, 11], "all": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "requir": [1, 2, 3, 6, 7, 9, 10, 11], "skill": [1, 2, 3, 4, 5, 6, 7, 10, 11], "electron": [1, 2, 3, 4, 5, 6, 7, 10, 11], "respect": [1, 2, 3, 4, 5, 6, 7, 10, 11], "safeti": [1, 2, 3, 4, 5, 6, 7, 10, 11], "rule": [1, 2, 3, 4, 5, 6, 7, 10, 11], "must": [1, 2, 3, 4, 5, 6, 7, 10, 11], "assembl": [0, 1, 2, 3, 7], "profession": [1, 2, 3, 4, 5, 6, 7, 10, 11], "context": [1, 2, 3, 4, 5, 6, 7, 10, 11], "peopl": [1, 2, 3, 4, 5, 6, 7, 10, 11], "compet": [1, 2, 3, 4, 5, 6, 7, 10, 11], "The": [0, 1, 3, 4, 5, 6, 9], "team": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "cannot": [1, 2, 3, 4, 5, 6, 7, 10, 11], "held": [1, 2, 3, 4, 5, 6, 7, 10, 11], "respons": [1, 2, 3, 4, 5, 6, 7, 10, 11], "ani": [1, 2, 3, 4, 5, 6, 7, 10, 11], "materi": [1, 2, 3, 4, 5, 6, 7, 10, 11], "human": [1, 2, 3, 4, 5, 6, 7, 10, 11], "damag": [1, 2, 3, 4, 5, 6, 7, 10, 11], "which": [1, 2, 3, 4, 5, 6, 7, 10, 11], "would": [1, 2, 3, 4, 5, 6, 7, 10, 11], "associ": [1, 2, 3, 4, 5, 6, 7, 10, 11], "us": [1, 2, 3, 4, 5, 6, 7, 10, 11], "equip": [1, 2, 3, 4, 5, 6, 7, 10, 11], "doe": [1, 2, 3, 4, 5, 6, 7, 10, 11], "work": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "after": [1, 2, 3, 4, 5, 6, 7, 10, 11], "you": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "mai": [1, 2, 3, 7, 10, 11], "redistribut": 1, "modifi": [1, 9, 10, 11], "thi": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "document": [1, 2, 7, 10], "make": [1, 2, 5, 7, 9, 10, 11], "product": [1, 4, 5], "under": [1, 6, 10, 11], "term": [1, 9], "cern": 1, "ohl": 1, "v2": 1, "http": [2, 3, 4, 5, 7, 10, 11], "ch": [], "distribut": 1, "without": [1, 5, 10, 11], "express": [1, 9], "OR": 1, "impli": [1, 5], "warranti": 1, "includ": [1, 2, 3, 5, 7, 9, 10, 11], "OF": 1, "merchant": 1, "satisfactori": 1, "qualiti": 1, "AND": 1, "fit": 1, "FOR": 1, "A": [1, 2, 6, 7, 9, 10, 11], "particular": 1, "purpos": [1, 6, 10, 11], "pleas": [1, 2, 6, 7, 10, 11], "see": [1, 2, 7, 10, 11], "condit": 1, "present": [1, 5, 6, 9, 10, 11], "develop": [0, 1, 2, 3, 4, 7, 9, 10, 11], "low": [1, 2, 7, 10, 11], "cost": [1, 4, 5, 9, 10, 11], "hardwar": [1, 10, 11], "meter": [1, 2, 6, 7, 10, 11], "provid": [1, 2, 7, 10, 11], "scientif": 1, "commun": [1, 2, 7], "robust": [1, 2, 7, 10, 11], "flexibl": 1, "tool": [1, 2, 7], "experi": [1, 2, 7, 10, 11], "call": [1, 2, 3, 5, 6, 7], "basic": [1, 9], "meterfeatur": 1, "current": [0, 1, 2, 4, 7], "inject": [0, 1, 2, 7], "measur": [0, 1, 2, 3, 5, 6, 7], "function": [1, 2, 7, 9, 10, 11], "multiplex": [0, 1, 2, 5, 6, 7], "allow": [1, 2, 4, 5, 7, 10, 11], "perform": [1, 3, 9, 10, 11], "automat": [1, 2, 7, 10, 11], "up": [1, 2, 3, 5, 7, 10, 11], "64": [0, 1, 5, 10, 11], "electrod": [0, 1, 4, 5, 6], "s": [1, 2, 4, 5, 7, 10, 11], "philosophi": [0, 1], "fulli": 1, "toolto": 1, "surfac": 1, "anyon": 1, "who": 1, "want": [1, 11], "get": [1, 2, 3, 4, 7, 10, 11], "involv": [1, 2, 7], "welcom": [1, 9], "join": 1, "ohmpi": [3, 4, 5, 9], "project": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "compon": [0, 2, 3, 7], "quantiti": [3, 10, 11], "4": [2, 3, 4, 5, 7, 10, 11], "model": [3, 4, 10, 11], "micro": [2, 3, 7, 10, 11], "sd": [2, 3, 6, 7, 10, 11], "32": [0, 2, 3, 6, 7], "go": [2, 3, 5, 7], "hdmi": [3, 6], "cabl": [3, 4, 5, 6, 10, 11], "comput": [3, 10, 11], "mous": [3, 6, 10, 11], "keyboard": [3, 6, 10, 11], "first": [2, 3, 5, 6, 7, 9], "start": [0, 2, 3, 5, 7, 9, 10, 11], "board": [2, 3, 6, 7, 9], "oper": [0, 3, 4, 6, 9], "system": [3, 9, 10, 11], "For": [2, 3, 4, 5, 7, 10, 11], "instruct": [0, 2, 3, 7], "ar": [2, 3, 4, 6, 7, 9, 10, 11], "well": [2, 3, 7, 10, 11], "describ": [3, 4, 6, 9, 10, 11], "websit": [3, 10, 11], "watch": [3, 10, 11], "video": [3, 10, 11], "how": [3, 10, 11], "set": [2, 3, 4, 7, 10, 11], "your": [3, 4, 5, 9, 10, 11], "author": [0, 3, 10, 11], "recommend": [2, 3, 7, 9, 10, 11], "latest": [3, 10, 11], "stabl": [3, 10, 11], "complet": [0, 2, 3, 4, 7], "version": [2, 3, 4, 7, 9, 10, 11], "previous": [3, 6, 10, 11], "raspbian": [3, 10, 11], "can": [2, 3, 6, 7, 10, 11], "visit": 3, "raspberrypi": 3, "org": [2, 3, 7], "en": 3, "test": [2, 3, 4, 5, 6, 7, 9, 10, 11], "were": [3, 4, 10, 11], "3": [2, 3, 4, 6, 7, 9, 10, 11], "we": [2, 3, 4, 5, 7, 10, 11], "follow": [2, 3, 4, 5, 6, 7, 9, 10, 11], "onc": [2, 3, 7, 10, 11], "ha": [2, 3, 5, 7, 10, 11], "been": [2, 3, 5, 7, 10, 11], "wire": [3, 5, 6, 10, 11], "spi": [3, 10, 11], "gpio": [3, 5, 6, 10, 11], "remot": [2, 3, 7, 10, 11], "option": [2, 3, 7, 10, 11], "deactiv": [3, 10, 11], "i2c": [3, 4, 5], "via": [3, 10, 11], "gui": [3, 10, 11], "menu": [3, 10, 11], "failur": [3, 10, 11], "carri": [3, 10, 11], "out": [3, 6, 10, 11], "task": [3, 10, 11], "caus": [3, 10, 11], "relai": [3, 4, 5, 10, 11], "shield": [3, 10, 11], "card": [0, 2, 3, 5, 6, 7], "dure": [3, 10, 11], "wai": [3, 9, 10, 11], "have": [2, 3, 4, 5, 7, 9, 10, 11], "multipl": [2, 3, 7], "parallel": 3, "instanc": 3, "interpret": [3, 4, 10, 11], "each": [3, 5, 6, 10, 11], "differ": [2, 3, 4, 5, 6, 7, 10, 11], "contain": [2, 3, 6, 7, 10, 11], "discret": 3, "copi": [2, 3, 7, 9], "its": [2, 3, 5, 6, 7, 10, 11], "support": 3, "util": [2, 3, 7], "It": [2, 3, 5, 7, 9, 10, 11], "also": [2, 3, 7, 9, 10, 11], "protect": 3, "case": [2, 3, 7, 9, 10, 11], "problem": 3, "depend": [2, 3, 7, 10, 11], "specifi": [3, 10, 11], "txt": [2, 3, 7, 10, 11], "below": [2, 3, 6, 7, 10, 11], "should": [2, 3, 4, 5, 6, 7, 9, 10, 11], "type": [2, 3, 5, 7, 9, 10, 11], "termin": [2, 3, 4, 5, 6, 7, 10, 11], "necessari": [3, 5, 6, 9, 10, 11], "ensur": [3, 10, 11], "libatla": [3, 10, 11], "base": [2, 3, 5, 7, 9, 10, 11], "dev": [3, 10, 11], "librari": [3, 10, 11], "sudo": [3, 10, 11], "apt": [3, 10, 11], "strongli": [3, 10, 11], "user": [0, 2, 3, 7, 10, 11], "creat": [2, 3, 7, 9, 10, 11], "run": [2, 3, 4, 5, 6, 7, 10, 11], "code": [3, 5, 9, 10, 11], "done": [2, 3, 7, 10, 11], "either": [3, 10, 11], "directori": [2, 3, 7, 9, 10, 11], "gather": [3, 10, 11], "within": [2, 3, 7, 9, 10, 11], "python3": [3, 10, 11], "m": [3, 4, 5, 6, 10, 11], "venv": [3, 10, 11], "command": [2, 3, 7, 10, 11], "bin": [3, 10, 11], "suffici": [3, 10, 11], "meet": [3, 10, 11], "export": 3, "cflag": 3, "fcommon": 3, "pip": [3, 10, 11], "rpi": [3, 6, 10, 11], "adafruit": [3, 4, 5, 10, 11], "blinka": [3, 10, 11], "numpi": [2, 3, 7, 10, 11], "panda": [3, 10, 11], "circuitpython": [3, 10, 11], "ads1x15": [3, 10, 11], "tca9548a": [3, 5], "mcp230xx": 3, "gpiozero": 3, "check": [2, 3, 7, 10, 11], "met": [3, 10, 11], "list": [0, 3], "leav": [3, 10, 11], "simpli": [3, 6, 10, 11], "If": [3, 4, 9, 10, 11], "decid": [3, 10, 11], "setup": [3, 10, 11], "time": [2, 3, 5, 7, 10, 11], "softwar": [0, 3, 10, 11], "click": [3, 10, 11], "access": [2, 3, 6, 7, 10, 11], "program": [3, 6, 10, 11], "pythonid": [3, 10, 11], "2": [2, 3, 5, 6, 7, 9, 10, 11], "root": [3, 10, 11], "7": [3, 4, 5, 6, 10, 11], "usr": [3, 10, 11], "select": [3, 5, 10, 11], "new": [0, 2, 3, 7, 10, 11], "window": [2, 3, 7, 10, 11], "On": [3, 10, 11], "altern": [3, 10, 11], "5": [2, 3, 4, 5, 6, 7, 10, 11], "button": [3, 10, 11], "appear": [3, 4, 5, 10, 11], "locat": [3, 10, 11], "anoth": [3, 10, 11], "execut": [2, 3, 7, 10, 11], "6": [3, 4, 5, 6, 10, 11], "find": [3, 10, 11], "folder": [3, 10, 11], "where": [2, 3, 7, 9, 10, 11], "file": [3, 4, 9, 10, 11], "home": [2, 3, 7, 10, 11], "In": [2, 3, 4, 5, 7, 9, 10, 11], "known": [3, 10, 11], "tab": [2, 3, 7, 10, 11], "path": [3, 9, 10, 11], "close": [3, 10, 11], "ok": [3, 10, 11], "9": [2, 3, 4, 5, 6, 7, 10, 11], "save": [3, 10, 11], "modif": [3, 6, 10, 11], "number": [2, 4, 5, 7, 10, 11], "per": [4, 5, 10, 11], "unit": [2, 4, 5, 7, 10, 11], "total": [4, 5, 10, 11], "manufactur": [4, 5, 10, 11], "refer": [0, 2, 4, 5, 6, 7, 10, 11], "web": [4, 5], "raspberri": [0, 2, 4, 5, 6, 7], "pi": [0, 2, 4, 6, 7], "1": [0, 2, 4, 5, 6, 7, 9], "58": [4, 10, 11], "75": 4, "www": [4, 5, 10, 11], "mouser": [4, 5], "fr": [4, 5, 10, 11], "productdetail": [4, 5], "seeed": 4, "studio": 4, "102110421": 4, "qs": [4, 5], "7mvldsj5uaxen3lyyh3sqw": 4, "3d": [4, 5], "lm158n": 4, "amp": [4, 10, 11], "o": [2, 4, 5, 7, 10, 11], "14": [4, 5, 6], "texa": [4, 10, 11], "instrument": [2, 4, 7, 10, 11], "lm358an": [4, 10, 11], "nopb": [4, 10, 11], "lm158j": 4, "x1j7hmvl2zh8vpefml8": 4, "2ffq": 4, "print": [2, 4, 5, 7, 10, 11], "circuit": [2, 4, 5, 7, 10, 11], "12": [2, 4, 5, 6, 7, 10, 11], "asler": [4, 5, 10, 11], "ads1115": [4, 10, 11], "11": [4, 6, 10, 11], "23": [4, 5, 6, 10, 11], "1085": 4, "2fha2pyfaduh": 4, "2fogzutwiq9iz5vjaqfoyugqalgxpeckigrqvf4hn": 4, "252bg": 4, "capacitor": [4, 11], "100nf": [4, 11], "50vdc": [4, 11], "10": [2, 4, 5, 6, 7, 10, 11], "ceram": [4, 11], "0": [2, 4, 5, 7, 10, 11], "kemet": [4, 11], "c320c104k1": [4, 11], "c320c104k1r5ta7303": 4, "c4uyot": 4, "2flq1th4mcyoetma": 4, "resistor": [4, 5, 10, 11], "kohm": [4, 5, 10, 11], "5w": [4, 10, 11], "te": [4, 5, 10, 11], "connect": [0, 2, 4, 5, 6, 7], "h81k0bya": [4, 10, 11], "holsworthi": 4, "2fha2pyfaduhuylh7az": 4, "2fmjfh2xjoums6wztux4som": 4, "252bii": 4, "h81k5bya": [4, 10, 11], "2fha2pyfadugy9twham3ru9hmijohywhbin95knm": 4, "252bx": 4, "2fm": 4, "vishai": [4, 5], "ccf071k50gke36": 4, "dale": 4, "qkeozdl6eqpa6lzrlqfvow": 4, "mohm": [2, 4, 7, 10, 11], "762": 4, "524": 4, "cmf651m0000fkek143": 4, "ciayqk2gdckzia2levalkg": 4, "ohm": [2, 4, 7, 10, 11], "shunt": 4, "42": 4, "ohmit": 4, "41f2r0e": 4, "im6toxqzgoauedprb19mha": 4, "dual": [4, 5, 10, 11], "screw": [4, 5, 6, 10, 11], "08": [4, 5], "mm": [4, 5, 6, 10, 11], "pitch": [4, 5, 10, 11], "648": [4, 5, 10, 11], "cui": [4, 5], "devic": [4, 5, 9], "tb009": [4, 5], "508": [4, 5], "02be": [4, 5], "vlwxofp3u2wcfk5uckwtka": [4, 5], "dc": [4, 5, 10, 11], "convert": [4, 10, 11], "24v": [4, 11], "15": [4, 5, 6, 10, 11], "31": [4, 5, 6], "16": [4, 5, 6, 10, 11], "tracopow": [4, 11], "trn": [4, 11], "1215": [4, 11], "traco": [4, 11], "power": [2, 4, 5, 6, 7, 10, 11], "yca": 4, "2faaymw02gquicgqj0ta": 4, "dip": [4, 5], "line": [4, 5, 10, 11], "socket": [4, 5], "72": [4, 11], "mill": 4, "max": 4, "110": [4, 5, 10, 11], "43": [4, 10, 11], "308": 4, "41": [4, 5], "001000": 4, "iggadovctstu": 4, "2fqaur8narg": 4, "mgh": 4, "vip": 4, "gclid": 4, "eaiaiqobchmin_taxbcx8wivq5nvch2qaqfpeayyccabegjk1_d_bw": 4, "aqy211eh": 4, "84": [4, 5], "36": [4, 6, 10, 11], "panason": 4, "industri": 4, "wktuvitrialgiu8hcm7dvq": 4, "449": 4, "796": 4, "preci": [4, 5], "83": 4, "304": 4, "001101": [4, 5], "2fha2pyfadujqkqx4wauig": 4, "2fmgndxmcnv": 4, "2f33nj0gbxroculucynpyong": 4, "mcp23008": 4, "593": 4, "sgaepimzzmskedp9slc0yyv4kpdpmd1hts4slctivmw": 4, "header": [4, 5, 10, 11], "1x10": [4, 10, 11], "samtec": [4, 10, 11], "ssw": [4, 10, 11], "02": [0, 4, 10], "g": [4, 10, 11], "ru5fayqh": 4, "252be0w1orxzibqpw": 4, "smt": 4, "breakout": 4, "pcb": [4, 5, 9, 10, 11], "soic": 4, "1212": 4, "gurawfaegucaqqfvnvtyeg": 4, "eaiaiqobchmit8zjzr6x8wivgdnvch2vbwvseaqyayabegjqg_d_bw": 4, "ina282aid": 4, "ze4": 4, "2fufuz19ilfayzxocfra": 4, "thd": 4, "1211n": 4, "39": [4, 5, 6, 10, 11], "2fha2pyfadugpyeg4idvm": 4, "2fmsr": 4, "252b7an": 4, "2f0t3ruis9pcaqjlt4": 4, "252bnrpuooeq": 4, "20": [4, 6, 10, 11], "53": [4, 11], "ssq": 4, "120": [4, 5], "d": [4, 10, 11], "252be1bmvd": 4, "252bdzonqg": 4, "pin": [4, 5, 10, 11], "strip": [4, 5, 6, 10, 11], "ejector": [4, 5], "35": [4, 6], "blk": [4, 5], "10120550": [4, 5], "conrad": [4, 5], "com": [2, 4, 5, 7, 10, 11], "bkl": [4, 5], "contact": [2, 4, 5, 7, 10, 11], "space": [4, 5], "254": [4, 5], "row": [4, 5], "pc": [4, 5], "741435": [4, 5], "searchterm": [4, 5], "searchtyp": [4, 5], "suggest": [4, 5, 10, 11], "searchsuggest": [4, 5], "male": [4, 5], "femal": [4, 5, 10, 11], "spacer": [4, 5, 6], "5m": [4, 6], "hexagonal": 4, "87": [4, 5], "48": [4, 10, 11], "harwin": 4, "r25": 4, "3002002": 4, "w0yvoo0ixfenuv0hsdc4": 4, "2fq": 4, "86": [4, 5], "437": 4, "1108331841001101": 4, "318": 4, "ftmup6kvi2tnqoeziaq": 4, "2fpa": 4, "figur": [2, 4, 7, 10, 11], "show": [4, 10, 11], "gener": [0, 2, 4, 5, 7, 10, 11], "schemat": [4, 11], "plug": [4, 10, 11], "plai": 4, "To": [2, 4, 5, 7, 10, 11], "two": [2, 4, 5, 7, 9, 10, 11], "one": [2, 4, 6, 7, 10, 11], "voltag": [2, 4, 6, 7, 10, 11], "propos": [4, 10, 11], "florsch": [4, 10, 11], "bit": [4, 10, 11], "adc": [4, 10, 11], "analog": [4, 10, 11], "digit": [4, 5, 10, 11], "adapt": [2, 4, 7, 9, 10, 11], "gain": [2, 4, 7, 10, 11], "advantag": 4, "input": [2, 4, 6, 7, 10, 11], "signal": [4, 10, 11], "valu": [4, 5, 10, 11], "could": [4, 6, 10, 11], "lie": [4, 10, 11], "between": [4, 5, 6, 10, 11], "114": [4, 10, 11], "v": [0, 2, 4, 5, 6, 7], "directli": [4, 10, 11], "integr": 4, "ina282": 4, "realiz": 4, "precis": [4, 10, 11], "around": [2, 4, 7], "instal": [2, 4, 5, 6, 7], "solder": [4, 10, 11], "optic": 4, "suppli": [4, 5, 6, 10, 11], "12v": [0, 4, 5, 6, 10, 11], "5v": [4, 10, 11], "tdh15": 4, "four": [2, 4, 7], "inpout": 4, "output": [2, 4, 6, 7, 10, 11], "three": [2, 4, 5, 7, 10, 11], "limit": [0, 2, 4, 7], "ma": [2, 4, 7, 10, 11], "higher": [4, 11], "than": [4, 10, 11], "just": [4, 11], "decreas": 4, "don": [2, 4, 7], "t": [2, 4, 5, 7], "forget": [2, 4, 7], "chang": [2, 4, 5, 7, 9], "config": [2, 4, 7, 9, 10, 11], "py": [2, 4, 5, 7, 9, 10, 11], "kei": 4, "r_shunt": 4, "ohmpi_config": 4, "dict": 4, "pre": [4, 6], "adjust": [4, 10, 11], "13": [4, 5, 6, 10, 11], "17": [4, 6, 10, 11], "18": [2, 4, 6, 7, 10, 11], "19": [4, 6, 10, 11], "view": [4, 6], "fix": [4, 6], "dot": 4, "mark": [4, 6], "top": [2, 4, 6, 7], "left": [4, 6], "corner": 4, "21": [4, 6, 10, 11], "mount": [4, 5, 6, 10, 11], "22": [4, 6, 10, 11], "lm158": 4, "amplifi": [4, 10, 11], "ads115": [4, 10, 11], "right": [4, 6], "3x11": 4, "wurth": 4, "elektronik": 4, "971110321": 4, "305": [4, 5], "apm": [4, 5], "hexseal": [4, 5], "rm3x8mm": [4, 5], "2701": [4, 5], "jjse": [4, 5], "2f12mkns3vxsdryxuhw": [4, 5], "shutdown": 4, "unplug": 4, "bottom": [4, 10, 11], "11mm": 4, "m3": [4, 5], "upper": 4, "port": [4, 6], "write": [2, 4, 5, 7, 9, 10, 11], "i2cdetect": [4, 5], "y": [4, 5], "everyth": 4, "address": [2, 4, 10, 11], "screen": [4, 10, 11], "equival": [4, 10, 11], "need": [2, 4, 5, 7, 10, 11], "1kohm": 4, "r2": [4, 10, 11], "220": 4, "r1": [4, 10, 11], "padboard": 4, "spool": 4, "prepar": [4, 5, 10, 11], "batteri": [2, 4, 6, 7, 10, 11], "red": [2, 4, 6, 7, 10, 11], "black": [4, 6, 10, 11], "ground": [4, 10, 11], "thonni": [2, 4, 7], "sample_measurement_exampl": 4, "exampl": [2, 4, 5, 6, 7, 10, 11], "result": [4, 10, 11], "channel": [5, 10, 11], "mechan": [2, 5, 7, 10, 11], "omron": 5, "g5le": 5, "vd": 5, "vdc": 5, "combin": 5, "zvn4206a": 5, "mofset": 5, "onli": [5, 9], "30": [5, 6, 10, 11], "enough": [5, 10, 11], "activ": [2, 5], "repres": [5, 10, 11], "512": 5, "expand": 5, "mcp23017": 5, "from": [2, 5, 6, 7, 10, 11], "128": [2, 5, 7], "own": 5, "0x70": 5, "0x77": 5, "0x71": 5, "0x72": 5, "0x73": 5, "140": 5, "560": 5, "62": 5, "92": [5, 10, 11], "1580994": 5, "tru": [5, 10, 11], "diod": 5, "1n4007": 5, "256": 5, "091": 5, "296": 5, "incorpor": [2, 5, 7], "sgaepimzzmueqxo7l": 5, "2fbpyakboruumren": 5, "56": 5, "776": 5, "205": 5, "46": 5, "103321": 5, "5twgzeq9e7hsylqaljjyrw": 5, "i": [2, 5, 6, 7, 10, 11], "40": [2, 5, 7, 10, 11], "732": 5, "sgaepimzzmskedp9slc0yfx16nydmpxjueeogolbldi": 5, "27": [5, 6, 10, 11], "325": 5, "over": 5, "503811": 5, "mosfet": 5, "nchannel": 5, "471": 5, "576": [5, 10], "vhuuswq2": 5, "252bsz9b": 5, "2ff6fcxt7g": 5, "100k\u03c9": 5, "061": 5, "616": 5, "beyschlag": 5, "mba02040c1003frp00": 5, "mzrxyrlhvdt9crf7zyf": 5, "2f5q": 5, "89": 5, "2717": 5, "sgaepimzzmsyydr3r27av4eqf73yoh": 5, "252baqg": 5, "252bz3hvktao": 5, "10120558": 5, "54": 5, "No": 5, "51": 5, "741727": 5, "10120862": 5, "connector": [5, 6, 10, 11], "strain": 5, "relief": 5, "44": [5, 10, 11], "742063": 5, "10120158": 5, "ribbon": [5, 6], "x": [5, 10, 11], "mm\u00b2": [5, 10, 11], "multi": [2, 5, 7, 10, 11], "colour": 5, "1012015810": 5, "127": 5, "008": 5, "1548658": 5, "hex": [5, 6], "25": [2, 5, 6, 7, 10, 11], "79": 5, "49": 5, "keyston": 5, "24300": 5, "uwqyq": 5, "2f2czwu0ejpozmzc2a": 5, "745": 5, "846": 5, "614": 5, "25515": 5, "2f2czwuxuhumfr": 5, "252bzuq": 5, "55": [5, 10, 11], "328": 5, "uqd7xcvsscnr3hwd6fta8g": 5, "100": [2, 5, 7, 10, 11], "duplic": 5, "everi": [2, 5, 7], "build": [5, 10, 11], "therefor": [5, 10, 11], "identifi": 5, "assign": 5, "alloc": 5, "here": [5, 6, 11], "default": [2, 5, 7], "jumper": 5, "note": [5, 6, 10, 11], "name": [2, 5, 7, 9, 10, 11], "zoom": [5, 6], "befor": [2, 5, 6, 7, 10, 11], "them": [2, 5, 7, 10, 11], "definit": 5, "simplifi": 5, "thing": [2, 5, 7], "do": [2, 5, 6, 7, 9], "50": [2, 5, 6, 7, 10, 11], "cm": [5, 6, 10, 11], "long": [5, 6], "flat": 5, "pole": [5, 10, 11], "detect": 5, "script": [2, 5, 7, 9], "test_mux_board": 5, "cut": 6, "compos": 6, "proper": 6, "length": [6, 10, 11], "about": 6, "correspond": [6, 10], "crimp": [6, 10, 11], "idc": 6, "suitabl": [2, 6, 7, 10, 11], "clamp": 6, "pai": [6, 10, 11], "attent": [6, 10, 11], "direct": [2, 6, 7, 10, 11], "unbalanc": 6, "perpendicular": 6, "possibl": [6, 10, 11], "same": [2, 6, 7, 10, 11], "flush": 6, "posit": [6, 10, 11], "abov": [6, 10, 11], "mux": [2, 6, 10, 11], "profil": 6, "color": 6, "yellow": 6, "tin": 6, "end": [6, 10, 11], "shown": [6, 10, 11], "pictur": 6, "ii": 6, "gnd": [6, 10, 11], "nois": 6, "often": 6, "heard": 6, "when": [2, 6, 7, 9, 10, 11], "clip": 6, "place": [6, 9, 10, 11], "second": [2, 6, 7, 10, 11], "b": [2, 6], "help": [2, 6, 7, 9], "previou": [2, 6, 7], "procedur": 6, "repeat": [2, 6, 7, 10, 11], "other": [2, 6, 7, 10, 11], "purpl": 6, "relev": [6, 9], "defin": [2, 6, 7, 9], "third": [2, 6, 7], "fourth": 6, "nylon": 6, "photograph": 6, "more": [2, 6, 7], "detail": [2, 6, 7, 10], "4th": 6, "togeth": [6, 10, 11], "tie": 6, "pvc": 6, "plate": 6, "minimum": 6, "dimens": 6, "200": 6, "150": [2, 6, 7, 10, 11], "drill": 6, "remain": [6, 10, 11], "metal": 6, "tighten": 6, "so": [6, 10, 11], "usb": 6, "hole": [6, 10, 11], "26": [6, 10, 11], "add": [6, 10, 11], "attach": 6, "washer": 6, "nut": 6, "28": [0, 6], "29": [6, 10, 11], "come": 6, "pass": [2, 6, 7], "brown": 6, "blue": [6, 10, 11], "block": [6, 10, 11], "secur": [2, 6, 7], "33": 6, "34": 6, "37": [6, 10, 11], "38": [6, 10, 11], "os": [2, 6, 7], "monitor": [2, 6, 7, 10, 11], "deliv": [6, 10, 11], "12vdc": 6, "enjoi": 6, "publish": [2, 7, 10], "journal": 10, "howev": [9, 10, 11], "correct": [10, 11], "bug": 10, "exist": [9, 10, 11], "explain": 10, "miss": 10, "point": [2, 7, 10, 11], "invit": 10, "v1": [2, 7, 10, 11], "offer": [2, 7, 10, 11], "commerci": [10, 11], "avail": [2, 7, 9, 10, 11], "field": [2, 7, 10, 11], "specif": [9, 10, 11], "temperatur": [2, 7, 10, 11], "c": [2, 7, 10, 11], "consumpt": [2, 7, 10, 11], "cpu": [2, 7, 10, 11], "control": [2, 7, 10, 11], "w": [2, 7, 10, 11], "min": [2, 7, 10, 11], "puls": [2, 7, 10, 11], "durat": [2, 7, 10, 11], "ms": [2, 7, 10, 11], "imped": [2, 7, 10, 11], "storag": [2, 7, 10, 11], "resolut": [2, 7, 10, 11], "o1": [10, 11], "step": [9, 10, 11], "youtub": [10, 11], "wjwzhv1v3pk": [10, 11], "noob": [10, 11], "simpl": [10, 11], "sure": [2, 7, 9, 10, 11], "unexpectedli": [10, 11], "boot": [10, 11], "cd": [10, 11], "gnu": [10, 11], "nano": [10, 11], "editor": [2, 7, 10, 11], "At": [10, 11], "op": [10, 11], "dl": [10, 11], "press": [10, 11], "ctrl": [10, 11], "enter": [10, 11], "escap": [10, 11], "return": [2, 7, 10, 11], "wa": [10, 11], "introduc": [2, 7, 9, 10, 11], "Its": [10, 11], "studi": [10, 11], "hous": [10, 11], "design": [2, 7, 9, 10, 11], "diagram": [10, 11], "displai": [10, 11], "mimic": [10, 11], "behavior": [10, 11], "soil": [10, 11], "subject": [10, 11], "r11": [10, 11], "r10": [10, 11], "r12": [10, 11], "constitut": [10, 11], "thei": [2, 7, 10, 11], "typic": [2, 7, 9, 10, 11], "made": [2, 7, 10, 11], "stainless": [10, 11], "steel": [10, 11], "seri": [10, 11], "part": [2, 9, 10, 11], "r9": [10, 11], "ad": [2, 7, 10, 11], "flow": [2, 7, 10, 11], "order": [2, 7, 9, 10, 11], "less": [10, 11], "sum": [10, 11], "inde": [10, 11], "000": [10, 11], "intens": [10, 11], "potenti": [10, 11], "calcul": [10, 11], "insert": [10, 11], "1115": [10, 11], "our": [2, 7, 10, 11], "a1": [10, 11], "a0": [10, 11], "increas": [10, 11], "track": [9, 10, 11], "divid": [10, 11], "bridg": [10, 11], "r5": [10, 11], "r8": [10, 11], "r6": [10, 11], "r7": [10, 11], "accord": [9, 10, 11], "n": [2, 7, 10, 11], "a2": [10, 11], "a3": [10, 11], "obtain": [10, 11], "ly": [10, 11], "rang": [9, 10, 11], "let": [10, 11], "equal": [10, 11], "multipli": [10, 11], "reduct": [10, 11], "section": [2, 7, 9, 10, 11], "despit": [10, 11], "high": [10, 11], "e": [2, 7, 10, 11], "accur": [10, 11], "still": [10, 11], "calibr": [10, 11], "voltmet": [10, 11], "variou": [10, 11], "These": [2, 7, 10, 11], "serv": [2, 7, 10, 11], "With": [10, 11], "disturb": [10, 11], "being": [10, 11], "estim": [10, 11], "mega": [10, 11], "shortcut": [10, 11], "excess": [10, 11], "whose": [2, 7, 10, 11], "lithium": [10, 11], "ion": [10, 11], "automobil": [10, 11], "lead": [10, 11], "acid": [10, 11], "strong": [10, 11], "hazard": [10, 11], "fuse": [10, 11], "repositori": [2, 7, 10, 11], "onto": [10, 11], "illustr": [2, 7, 10, 11], "ohmmet": [10, 11], "coeffici": [10, 11], "coef_p0": [10, 11], "coef_p1": [10, 11], "coef_p2": [10, 11], "coef_p3": [10, 11], "coef": [10, 11], "po": [10, 11], "p1": [10, 11], "r3": [10, 11], "r4": [10, 11], "p2": [10, 11], "p3": [10, 11], "r_ref": [10, 11], "slope": [10, 11], "convers": [10, 11], "p0": [10, 11], "accuraci": [10, 11], "both": [9, 10, 11], "addit": [2, 7, 10, 11], "lm358n": [10, 11], "appli": [10, 11], "prefer": [2, 7, 10, 11], "weaker": 10, "stronger": [10, 11], "tx": [10, 11], "rememb": [10, 11], "holder": [10, 11], "f": [10, 11], "consist": [10, 11], "circul": [10, 11], "through": [2, 7, 10, 11], "fig": [10, 11], "modul": [9, 10, 11], "switch": [10, 11], "common": [10, 11], "neg": [10, 11], "normal": [10, 11], "simultan": [10, 11], "role": [10, 11], "revers": [10, 11], "polar": [10, 11], "thu": [10, 11], "energ": [10, 11], "solut": [9, 10, 11], "manag": [2, 7, 10, 11], "next": [10, 11], "featur": [10, 11], "strict": [10, 11], "in1": [10, 11], "in2": [10, 11], "in3": [10, 11], "in4": [10, 11], "5vdc": [10, 11], "5vcc": [10, 11], "now": [10, 11], "mm2": [10, 11], "lastli": [10, 11], "congratul": [10, 11], "construct": [10, 11], "valid": [2, 10, 11], "conduct": [9, 10, 11], "manual": [2, 7, 10, 11], "practic": [9, 10, 11], "ert": [10, 11], "sever": [10, 11], "ten": [10, 11], "thousand": [10, 11], "arrai": [2, 7, 10, 11], "stuck": [10, 11], "enabl": [2, 7, 10, 11], "smaller": [10, 11], "hand": [10, 11], "entir": [2, 7, 10, 11], "cap": [10, 11], "produc": [10, 11], "clean": [10, 11], "distanc": [10, 11], "had": [10, 11], "extra": [10, 11], "As": [10, 11], "final": [10, 11], "actual": [10, 11], "singl": [2, 7, 9, 10, 11], "protocol": [2, 7, 10, 11], "horizont": [10, 11], "vertic": [10, 11], "06": [10, 11], "04": [10, 11], "09": [10, 11], "05": [10, 11], "din": [10, 11], "rail": [10, 11], "chosen": [10, 11], "consequ": [10, 11], "incom": [10, 11], "instead": [10, 11], "moreov": [10, 11], "turn": [10, 11], "bought": [10, 11], "down": [10, 11], "velleman": [10, 11], "wpm404": [10, 11], "potentiomet": [10, 11], "download": [2, 7, 10, 11], "scienc": [10, 11], "framework": [10, 11], "manuscript": [10, 11], "osf": [10, 11], "io": [10, 11], "dzwb4": [10, 11], "gitlab": [2, 7, 10, 11], "irstea": [10, 11], "unzip": [10, 11], "master": [10, 11], "readm": [10, 11], "assist": [10, 11], "disconnect": [10, 11], "handl": [2, 7, 10, 11], "charg": [10, 11], "full": [10, 11], "capac": [10, 11], "fewer": [10, 11], "bank": [10, 11], "2a": [10, 11], "ll": [10, 11], "insid": [10, 11], "abmn": [2, 7, 10, 11], "quadrupol": [2, 7, 10, 11], "numer": [10, 11], "some": [0, 2, 7, 9, 10, 11], "main": [2, 7, 10, 11], "optim": [10, 11], "attribut": [10, 11], "stack": [2, 7, 10, 11], "the9": [10, 11], "hear": [10, 11], "characterist": [10, 11], "sound": [10, 11], "permut": [10, 11], "csv": [10, 11], "nb_electrod": [2, 7, 10, 11], "maximum": [2, 7, 10, 11], "injection_dur": [2, 7, 10, 11], "nbr_mea": [2, 7, 10, 11], "sequenc": [2, 7, 10, 11], "sequence_delai": [2, 7, 10, 11], "delai": [10, 11], "repetit": [10, 11], "evolv": [10, 11], "littl": [10, 11], "public": [10, 11], "articl": [10, 11], "date": [0, 10, 11], "sainsmart": [10, 11], "canal": 10, "pour": 10, "arduino": 10, "dsp": 10, "avr": 10, "pic": 10, "arm": 10, "99": [10, 11], "199": [10, 11], "sain": [10, 11], "smart": [10, 11], "101": [10, 11], "70": [10, 11], "103": [10, 11], "018": [10, 11], "1x1": [10, 11], "66": [10, 11], "1568649": [10, 11], "1x0": [10, 11], "71": [10, 11], "1565235": [10, 11], "68": [10, 11], "rs": [10, 11], "pro": [10, 11], "897": [10, 11], "1332": [10, 11], "858": [10, 11], "627": [10, 11], "52": [10, 11], "upw50b50rv": [10, 11], "1083": [10, 11], "7ah": [10, 11], "537": [10, 11], "5488": [10, 11], "lr20": [10, 11], "9v": [10, 11], "185": [10, 11], "4686": [10, 11], "ferrul": [10, 11], "500": [10, 11], "piec": [10, 11], "weidmul": [10, 11], "9004330000": [10, 11], "966067": [10, 11], "car": 10, "littelfus": [10, 11], "fhac0002zxj": 10, "96": 10, "improv": [2, 7, 9, 11], "upgrad": [2, 7, 11], "01": [0, 2, 7, 11], "replac": [9, 11], "trn3": 11, "suppress": 11, "10v": 11, "fast": 11, "decoupl": 11, "last": 11, "veri": [9, 11], "prevent": 11, "overh": 11, "toler": 11, "orient": 11, "h": 11, "nf": 11, "tabl": 11, "jason": 11, "ohmpi_param": 11, "json": [2, 7, 11], "export_path": 11, "desktop": 11, "0251001": 11, "pat1l": 11, "box": [2, 7], "mani": [2, 7], "dii": [2, 7], "laps": [2, 7], "seek": [2, 7], "share": [2, 7, 9], "wish": [2, 7], "2023": [0, 2, 7], "stop": [2, 7], "0x": [2, 7], "effort": [2, 7], "paramet": [2, 7], "80": [2, 7], "virtual": 2, "environ": 2, "packag": [2, 7], "id": [2, 7], "summar": [2, 7], "cover": [2, 7], "acquisit": [2, 7], "separ": [2, 7], "ohmpi_set": [2, 7], "central": [2, 7], "class": [2, 7, 9], "interact": [2, 7, 9], "handler": [2, 7], "layer": [2, 7], "releas": [0, 2, 7], "excel": [2, 7], "log": [2, 7], "implement": [0, 2, 7, 9], "broker": [2, 7], "zip": [2, 7], "rotat": [2, 7], "disk": [2, 7], "exec_logg": [2, 7], "data_logg": [2, 7], "plan": [2, 7], "state": [2, 7], "health": [2, 7], "soh": [2, 7], "futur": [2, 7], "By": [2, 7], "written": [2, 7], "consol": [2, 7], "like": [2, 7], "store": [2, 7, 9], "local": [2, 7], "dai": [2, 7], "size": [2, 7], "exce": [2, 7], "sent": [2, 7], "level": [2, 7], "advanc": [2, 7], "edit": [2, 7], "setup_logg": [2, 7], "custom": [2, 7], "desir": [2, 7], "usernam": [2, 7], "password": [2, 7], "One": [2, 7], "understand": [2, 7], "alter": [2, 7], "keep": [2, 7], "bash": [2, 7], "run_http_interfac": [2, 7], "sh": [2, 7], "api": [0, 2, 7], "import": [2, 7, 9], "iot": [2, 7], "messag": [2, 7], "friendli": [2, 7], "graphic": [2, 7], "quick": [2, 7], "easi": [2, 7], "wi": [2, 7], "fi": [2, 7], "ap": [2, 7], "webserv": [2, 7], "index": [2, 7], "html": [2, 7], "laptop": [2, 7], "mobil": [2, 7], "phone": [2, 7], "upload": [2, 7], "act": [2, 7], "raspap": [2, 7], "runonstart": [2, 7], "itself": [2, 7], "141": [2, 7], "8080": [2, 7], "pseudo": [2, 7], "evolut": [2, 7], "appar": [2, 7], "especi": [2, 7], "suit": [2, 7], "autom": [2, 7], "ipython": [2, 7], "ssh": [2, 7], "putti": [2, 7], "maco": [2, 7], "linux": [2, 7], "found": [2, 7], "np": [2, 7], "chdir": [2, 7], "object": [2, 7], "k": [2, 7], "load": [2, 7], "nb_stack": [2, 7], "half": [2, 7], "cycl": [2, 7], "updat": [2, 7], "update_set": [2, 7], "shape": [2, 7], "set_sequ": [2, 7], "n2": [2, 7], "string": [2, 7], "load_sequ": [2, 7], "rs_check": [2, 7], "synchron": [2, 7], "wait": [2, 7], "prompt": [2, 7], "run_sequ": [2, 7], "run_sequence_async": [2, 7], "thread": [2, 7], "immedi": [2, 7], "sleep": [2, 7], "interrupt": [2, 7], "kill": [2, 7], "asynchron": [2, 7], "given": [2, 7], "interv": [2, 7], "nb_mea": [2, 7], "run_multiple_sequ": [2, 7], "taken": [2, 7], "switch_mux_on": [2, 7], "run_measur": [2, 7], "switch_mux_off": [2, 7], "risk": [2, 7], "short": [2, 7], "argument": [2, 7], "autogain": [2, 7], "true": [2, 7], "good": [2, 7], "usag": [2, 7], "process": [2, 7], "sensor": [2, 7], "scope": [2, 7], "internet": [2, 7], "network": [2, 7], "auxiliari": [2, 7], "subscrib": [2, 7], "approach": [2, 7], "mosquitto": [2, 7], "server": [2, 7], "reachabl": [2, 7], "net": [2, 7], "servic": [2, 7], "install_local_mqtt_brok": [2, 7], "examin": [2, 7], "easili": [2, 7, 9], "parti": [2, 7], "explor": [2, 7], "receiv": [2, 7], "reboot": [2, 7], "further": [2, 7], "format": [2, 7], "kwarg": [2, 7], "cmd_id": [2, 7], "3fzxv121uitwgjwygcz4xw": [2, 7], "cmd": [2, 7], "3fzxv121uitwgjwygcz4yw": [2, 7], "tailor": [2, 7], "dashboard": [2, 7], "browser": [2, 7], "node": [2, 7], "complex": [2, 7], "properli": [2, 7], "palett": [2, 7], "noder": [2, 7], "doc": [2, 7], "guid": [2, 7], "ui": [2, 7], "visual": [2, 7], "cookbook": [2, 7], "draft": 9, "TO": 9, "BE": 9, "review": 9, "intend": 9, "advic": 9, "best": 9, "contribut": 9, "maintain": 9, "promot": 9, "exchang": 9, "reus": 9, "contributor": 9, "ideal": 9, "few": 9, "distinguish": 9, "deal": 9, "compli": 9, "Such": 9, "focu": 9, "reduc": 9, "newli": 9, "expos": 9, "minim": 9, "hardware_system": 9, "discuss": 9, "ohmpi_hardwar": 9, "initi": 9, "earli": 9, "stage": 9, "investig": 9, "strategi": 9, "readi": 9, "conceiv": 9, "kicad": 9, "schema": 9, "alwai": 9, "branch": 9, "python": 9, "similar": 9, "hardware_compon": 9, "abstract": 9, "abstract_hardware_compon": 9, "method": 9, "configur": [0, 9], "hardware_config": 9, "dictionari": 9, "config_xxx": 9, "xxx": 9, "nov": 0, "juli": 0, "2016": 0, "target": 0, "research": 0, "statu": 0, "matur": 0, "progress": 0, "offici": 0, "guidelin": 0, "tutori": 0, "content": 0, "partner": 0, "cite": 0, "introduct": 0, "technic": 0, "v2023": 0, "tow": 4, "led": 6, "consid": 6, "temporari": 6, "orang": 6, "interfac": 0}, "objects": {"": [[8, 0, 0, "-", "ohmpi"]]}, "objtypes": {"0": "py:module"}, "objnames": {"0": ["py", "module", "Python module"]}, "titleterms": {"ohmpi": [0, 1, 2, 6, 7, 10, 11], "project": 1, "author": 1, "partner": 1, "cite": 1, "introduct": 1, "step": [2, 3, 4, 5, 6, 7], "n": [3, 4, 5, 6], "1": [3, 10, 11], "raspberri": [3, 10, 11], "pi": [3, 10, 11], "configur": [2, 3, 7, 10, 11], "part": [3, 4, 5], "A": [3, 4, 5], "os": [3, 10, 11], "instal": [3, 10, 11], "b": [3, 4, 5, 10, 11], "virtual": [3, 10, 11], "environ": [3, 10, 11], "packag": [3, 10, 11], "c": [3, 4, 5], "activ": [3, 10, 11], "thonni": [3, 10, 11], "python": [2, 3, 7, 10, 11], "id": [3, 10, 11], "2": 4, "measur": [4, 10, 11], "board": [4, 5, 10, 11], "assembl": [4, 5, 6, 10, 11], "requir": [4, 5], "compon": [4, 5, 9, 10, 11], "list": [4, 5, 10, 11], "descript": [4, 10, 11], "start": 4, "up": 4, "check": 4, "3": 5, "mux": 5, "address": 5, "valid": 5, "4": 6, "v": [10, 11], "01": 10, "limit": [10, 11], "32": [10, 11], "electrod": [2, 7, 10, 11], "The": [2, 7, 10, 11], "philosophi": [2, 7, 10, 11], "technic": [10, 11], "data": [10, 11], "current": [10, 11], "inject": [10, 11], "card": [10, 11], "connect": [10, 11], "electr": [10, 11], "resist": [0, 10, 11], "implement": [10, 11], "first": [10, 11], "four": [10, 11], "multiplex": [10, 11], "oper": [2, 7, 10, 11], "instruct": [10, 11], "preliminari": [10, 11], "procedur": [10, 11], "onli": [10, 11], "initi": [10, 11], "startup": [10, 11], "paramet": [10, 11], "complet": [10, 11], "tabl": 10, "titl": 10, "02": 11, "v2023": [2, 7], "64": [2, 7], "12v": [2, 7], "hardwar": [0, 2, 7, 9], "specif": [2, 7], "build": [2, 7], "an": [2, 7], "softwar": [2, 7, 9], "system": [2, 7], "architectur": [2, 7], "logger": [2, 7], "file": [2, 7], "interfac": [2, 7, 9], "applic": [2, 7], "web": [2, 7], "mqtt": [2, 7], "api": 8, "refer": 8, "new": 9, "open": 0, "sourc": 0, "meter": 0, "summari": 0, "document": 0, "center": 0}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "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": 56}})
\ No newline at end of file
diff --git a/doc/build/html/source_rst/V2023.x.x/V2023_step_02.html b/doc/build/html/source_rst/V2023.x.x/V2023_step_02.html
index 3f2f0ca2..6f76d7dd 100644
--- a/doc/build/html/source_rst/V2023.x.x/V2023_step_02.html
+++ b/doc/build/html/source_rst/V2023.x.x/V2023_step_02.html
@@ -575,6 +575,46 @@ corners)</p></td>
 </tr>
 </tbody>
 </table>
+<table class="docutils align-default" id="id2">
+<caption><span class="caption-text">List of components</span><a class="headerlink" href="#id2" title="Permalink to this table"></a></caption>
+<colgroup>
+<col style="width: 8%" />
+<col style="width: 18%" />
+<col style="width: 18%" />
+<col style="width: 18%" />
+<col style="width: 18%" />
+<col style="width: 9%" />
+<col style="width: 9%" />
+</colgroup>
+<thead>
+<tr class="row-odd"><th class="head"><p>Component</p></th>
+<th class="head"><p>Number</p></th>
+<th class="head"><p>Cost per unit €</p></th>
+<th class="head"><p>Total cost €</p></th>
+<th class="head"><p>Manufacturer</p></th>
+<th class="head"><p>Manufacturer s reference</p></th>
+<th class="head"><p>Web reference</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p>Spacer 3x11 mm</p></td>
+<td><p>8</p></td>
+<td><p>0.39</p></td>
+<td><p>3.12</p></td>
+<td><p>Wurth Elektronik</p></td>
+<td><p>971110321</p></td>
+<td><p><a class="reference external" href="https://www.mouser.fr/ProductDetail/Seeed-Studio/102110421?qs=7MVldsJ5UaxeN3LYyh3sqw%3D%3D">https://www.mouser.fr/ProductDetail/Seeed-Studio/102110421?qs=7MVldsJ5UaxeN3LYyh3sqw%3D%3D</a></p></td>
+</tr>
+<tr class="row-odd"><td><p>Screw</p></td>
+<td><p>4</p></td>
+<td><p>0.305</p></td>
+<td><p>1.22</p></td>
+<td><p>APM HEXSEAL</p></td>
+<td><p>RM3X8MM-2701</p></td>
+<td><p><a class="reference external" href="https://www.mouser.fr/ProductDetail/APM-HEXSEAL/RM3X8MM-2701?qs=JJSE%2F12mKnS3VxSDrYXUHw%3D%3D">https://www.mouser.fr/ProductDetail/APM-HEXSEAL/RM3X8MM-2701?qs=JJSE%2F12mKnS3VxSDrYXUHw%3D%3D</a></p></td>
+</tr>
+</tbody>
+</table>
 <table class="docutils align-center">
 <tbody>
 <tr class="row-odd"><td rowspan="2"><p>1</p></td>
diff --git a/doc/build/html/source_rst/V2023.x.x/V2023_step_03.html b/doc/build/html/source_rst/V2023.x.x/V2023_step_03.html
index f3c7e95c..81f98e48 100644
--- a/doc/build/html/source_rst/V2023.x.x/V2023_step_03.html
+++ b/doc/build/html/source_rst/V2023.x.x/V2023_step_03.html
@@ -110,6 +110,180 @@ In the following presentation for an OhmPi 64 electrodes, we will use the addres
 <figure class="align-center">
 <a class="reference internal image-reference" href="../../_images/MUX_board_components.jpg"><img alt="alternate text" src="../../_images/MUX_board_components.jpg" style="width: 600px; height: 650px;" /></a>
 </figure>
+<table class="docutils align-default" id="id1">
+<caption><span class="caption-text">List of components</span><a class="headerlink" href="#id1" title="Permalink to this table"></a></caption>
+<colgroup>
+<col style="width: 8%" />
+<col style="width: 18%" />
+<col style="width: 18%" />
+<col style="width: 18%" />
+<col style="width: 18%" />
+<col style="width: 9%" />
+<col style="width: 9%" />
+</colgroup>
+<thead>
+<tr class="row-odd"><th class="head"><p>Component</p></th>
+<th class="head"><p>Number</p></th>
+<th class="head"><p>Cost per unit €</p></th>
+<th class="head"><p>Total cost €</p></th>
+<th class="head"><p>Manufacturer</p></th>
+<th class="head"><p>Manufacturer s reference</p></th>
+<th class="head"><p>Web reference</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p>Printed circuit board</p></td>
+<td><p>4</p></td>
+<td><p>140</p></td>
+<td><p>560</p></td>
+<td><p>Asler</p></td>
+<td><ul class="simple">
+<li></li>
+</ul>
+</td>
+<td><ul class="simple">
+<li></li>
+</ul>
+</td>
+</tr>
+<tr class="row-odd"><td><p>Pin strip no ejector  16 pins</p></td>
+<td><p>16</p></td>
+<td><p>0.62</p></td>
+<td><p>9.92</p></td>
+<td><p>BLK electronic</p></td>
+<td><p>1580994</p></td>
+<td><p><a class="reference external" href="https://www.conrad.com/p/tru-components-1580994-pin-strip-no-ejector-contact-spacing-254-mm-total-number-of-pins-16-no-of-rows-2-1-pcs-1580994">https://www.conrad.com/p/tru-components-1580994-pin-strip-no-ejector-contact-spacing-254-mm-total-number-of-pins-16-no-of-rows-2-1-pcs-1580994</a></p></td>
+</tr>
+<tr class="row-even"><td><p>diode-1n4007</p></td>
+<td><p>256</p></td>
+<td><p>0.091</p></td>
+<td><p>23.296</p></td>
+<td><p>Diodes Incorporated</p></td>
+<td><p>1N4007-T</p></td>
+<td><p><a class="reference external" href="https://www.mouser.fr/ProductDetail/Diodes-Incorporated/1N4007-T?qs=sGAEpiMZZMueQxo7L%2FBPyAkbORUUMREn">https://www.mouser.fr/ProductDetail/Diodes-Incorporated/1N4007-T?qs=sGAEpiMZZMueQxo7L%2FBPyAkbORUUMREn</a></p></td>
+</tr>
+<tr class="row-odd"><td><p>Pin strip no ejector  6 pins</p></td>
+<td><p>4</p></td>
+<td><p>0.39</p></td>
+<td><p>1.56</p></td>
+<td><p>BLK electronic</p></td>
+<td><p>10120550</p></td>
+<td><p><a class="reference external" href="https://www.conrad.com/p/bkl-electronic-10120550-pin-strip-no-ejector-contact-spacing-254-mm-total-number-of-pins-6-no-of-rows-2-1-pcs-741435">https://www.conrad.com/p/bkl-electronic-10120550-pin-strip-no-ejector-contact-spacing-254-mm-total-number-of-pins-6-no-of-rows-2-1-pcs-741435</a></p></td>
+</tr>
+<tr class="row-even"><td><p>Dual screw terminal (5.08-mm pitch)</p></td>
+<td><p>12</p></td>
+<td><p>0.648</p></td>
+<td><p>7.776</p></td>
+<td><p>CUI Devices</p></td>
+<td><p>TB009-508-02BE</p></td>
+<td><p><a class="reference external" href="https://www.mouser.fr/ProductDetail/CUI-Devices/TB009-508-02BE?qs=vLWxofP3U2wCFk5uCkWTkA%3D%3D">https://www.mouser.fr/ProductDetail/CUI-Devices/TB009-508-02BE?qs=vLWxofP3U2wCFk5uCkWTkA%3D%3D</a></p></td>
+</tr>
+<tr class="row-odd"><td><p>Generic male header - 3 pins</p></td>
+<td><p>12</p></td>
+<td><p>0.205</p></td>
+<td><p>2.46</p></td>
+<td><p>TE Connectivity</p></td>
+<td><p>4-103321-5</p></td>
+<td><p><a class="reference external" href="https://www.mouser.fr/ProductDetail/TE-Connectivity/4-103321-5?qs=5TwgZeq9E7HSYLqaljJYrw%3D%3D">https://www.mouser.fr/ProductDetail/TE-Connectivity/4-103321-5?qs=5TwgZeq9E7HSYLqaljJYrw%3D%3D</a></p></td>
+</tr>
+<tr class="row-even"><td><p>MCP23017 I2C I/O Expander</p></td>
+<td><p>16</p></td>
+<td><p>2.5</p></td>
+<td><p>40</p></td>
+<td><p>Adafruit</p></td>
+<td><p>732</p></td>
+<td><p><a class="reference external" href="https://www.mouser.fr/ProductDetail/Adafruit/732?qs=sGAEpiMZZMsKEdP9slC0Yfx16nYdMpXJueeOGoLBlDI%3D">https://www.mouser.fr/ProductDetail/Adafruit/732?qs=sGAEpiMZZMsKEdP9slC0Yfx16nYdMpXJueeOGoLBlDI%3D</a></p></td>
+</tr>
+<tr class="row-odd"><td><p>Omron G5LE-1-VD 12 VDC PCB relay 12 V DC 8 A 1</p></td>
+<td><p>256</p></td>
+<td><p>1.27</p></td>
+<td><p>325.12</p></td>
+<td><p>Omron</p></td>
+<td><p>G5LE-1-VD 12 VDC</p></td>
+<td><p><a class="reference external" href="https://www.conrad.com/p/omron-g5le-1-vd-12-vdc-pcb-relay-12-v-dc-8-a-1-change-over-1-pcs-503811">https://www.conrad.com/p/omron-g5le-1-vd-12-vdc-pcb-relay-12-v-dc-8-a-1-change-over-1-pcs-503811</a></p></td>
+</tr>
+<tr class="row-even"><td><p>ZVN4206A   MOSFET-NCHANNEL</p></td>
+<td><p>256</p></td>
+<td><p>0.471</p></td>
+<td><p>120.576</p></td>
+<td><p>Diodes Incorporated</p></td>
+<td><p>ZVN4206A</p></td>
+<td><p><a class="reference external" href="https://www.mouser.fr/ProductDetail/Diodes-Incorporated/ZVN4206A?qs=vHuUswq2%252Bsz9b%2Ff6fcXt7g%3D%3D">https://www.mouser.fr/ProductDetail/Diodes-Incorporated/ZVN4206A?qs=vHuUswq2%252Bsz9b%2Ff6fcXt7g%3D%3D</a></p></td>
+</tr>
+<tr class="row-odd"><td><p>100kΩ Resistor</p></td>
+<td><p>256</p></td>
+<td><p>0.061</p></td>
+<td><p>15.616</p></td>
+<td><p>Vishay / Beyschlag</p></td>
+<td><p>MBA02040C1003FRP00</p></td>
+<td><p><a class="reference external" href="https://www.mouser.fr/ProductDetail/Vishay-Beyschlag/MBA02040C1003FRP00?qs=mzRxyRlhVdt9crF7Zyf%2F5Q%3D%3D">https://www.mouser.fr/ProductDetail/Vishay-Beyschlag/MBA02040C1003FRP00?qs=mzRxyRlhVdt9crF7Zyf%2F5Q%3D%3D</a></p></td>
+</tr>
+<tr class="row-even"><td><p>Adafruit TCA9548A</p></td>
+<td><p>4</p></td>
+<td><p>5.89</p></td>
+<td><p>23.56</p></td>
+<td><p>Adafruit</p></td>
+<td><p>2717</p></td>
+<td><p><a class="reference external" href="https://www.mouser.fr/ProductDetail/Adafruit/2717?qs=sGAEpiMZZMsyYdr3R27aV4EQf73yOH%252Baqg%252BZ3hVktao%3D">https://www.mouser.fr/ProductDetail/Adafruit/2717?qs=sGAEpiMZZMsyYdr3R27aV4EQf73yOH%252Baqg%252BZ3hVktao%3D</a></p></td>
+</tr>
+<tr class="row-odd"><td><p>BKL Electronic 10120558 Pin strip no ejector Contact spacing: 2.54 mm Total number of pins: 16 No. of rows: 2 1 pc(s)</p></td>
+<td><p>16</p></td>
+<td><p>0.51</p></td>
+<td><p>8.16</p></td>
+<td><p>BLK electronic</p></td>
+<td><p>10120558</p></td>
+<td><p><a class="reference external" href="https://www.conrad.com/p/bkl-electronic-10120558-pin-strip-no-ejector-contact-spacing-254-mm-total-number-of-pins-16-no-of-rows-2-1-pcs-741727?searchTerm=741727&amp;searchType=suggest&amp;searchSuggest=product">https://www.conrad.com/p/bkl-electronic-10120558-pin-strip-no-ejector-contact-spacing-254-mm-total-number-of-pins-16-no-of-rows-2-1-pcs-741727?searchTerm=741727&amp;searchType=suggest&amp;searchSuggest=product</a></p></td>
+</tr>
+<tr class="row-even"><td><p>BKL Electronic 10120862 Pin connector + strain relief Contact spacing: 2.54 mm Total number of pins: 6 No. of rows: 2 1</p></td>
+<td><p>16</p></td>
+<td><p>0.84</p></td>
+<td><p>13.44</p></td>
+<td><p>BLK electronic</p></td>
+<td><p>10120862</p></td>
+<td><p><a class="reference external" href="https://www.conrad.com/p/bkl-electronic-10120862-pin-connector-strain-relief-contact-spacing-254-mm-total-number-of-pins-6-no-of-rows-2-1-742063">https://www.conrad.com/p/bkl-electronic-10120862-pin-connector-strain-relief-contact-spacing-254-mm-total-number-of-pins-6-no-of-rows-2-1-742063</a></p></td>
+</tr>
+<tr class="row-odd"><td><p>BKL Electronic 10120158/10 Ribbon cable Contact spacing: 1.27 mm 16 x 0.08 mm² Multi-coloured 10 m</p></td>
+<td><p>1</p></td>
+<td><p>27</p></td>
+<td><p>27</p></td>
+<td><p>BLK electronic</p></td>
+<td><p>10120158/10</p></td>
+<td><p><a class="reference external" href="https://www.conrad.com/p/bkl-electronic-1012015810-ribbon-cable-contact-spacing-127-mm-16-x-008-mm-multi-coloured-10-m-1548658?searchTerm=1548658&amp;searchType=suggest&amp;searchSuggest=product">https://www.conrad.com/p/bkl-electronic-1012015810-ribbon-cable-contact-spacing-127-mm-16-x-008-mm-multi-coloured-10-m-1548658?searchTerm=1548658&amp;searchType=suggest&amp;searchSuggest=product</a></p></td>
+</tr>
+<tr class="row-even"><td><p>spacer 5.5 HEX 25 mm M3 male/female</p></td>
+<td><p>31</p></td>
+<td><p>2.79</p></td>
+<td><p>86.49</p></td>
+<td><p>Keystone Electronics</p></td>
+<td><p>24300</p></td>
+<td><p><a class="reference external" href="https://www.mouser.fr/ProductDetail/Keystone-Electronics/24300?qs=UWqYQ%2F2cZWu0ejpOzmZC2A%3D%3D">https://www.mouser.fr/ProductDetail/Keystone-Electronics/24300?qs=UWqYQ%2F2cZWu0ejpOzmZC2A%3D%3D</a></p></td>
+</tr>
+<tr class="row-odd"><td><p>Screw</p></td>
+<td><p>9</p></td>
+<td><p>0.305</p></td>
+<td><p>2.745</p></td>
+<td><p>APM HEXSEAL</p></td>
+<td><p>RM3X8MM-2701</p></td>
+<td><p><a class="reference external" href="https://www.mouser.fr/ProductDetail/APM-HEXSEAL/RM3X8MM-2701?qs=JJSE%2F12mKnS3VxSDrYXUHw%3D%3D">https://www.mouser.fr/ProductDetail/APM-HEXSEAL/RM3X8MM-2701?qs=JJSE%2F12mKnS3VxSDrYXUHw%3D%3D</a></p></td>
+</tr>
+<tr class="row-even"><td><p>spacer 5.5 HEX 25 mm M3 female/female</p></td>
+<td><p>9</p></td>
+<td><p>0.846</p></td>
+<td><p>7.614</p></td>
+<td><p>Keystone Electronics</p></td>
+<td><p>25515</p></td>
+<td><p><a class="reference external" href="https://www.mouser.fr/ProductDetail/Keystone-Electronics/25515?qs=UWqYQ%2F2cZWuxuhUmfr%252BZuQ%3D%3D">https://www.mouser.fr/ProductDetail/Keystone-Electronics/25515?qs=UWqYQ%2F2cZWuxuhUmfr%252BZuQ%3D%3D</a></p></td>
+</tr>
+<tr class="row-odd"><td><p>DIP dual-in-line 2*14</p></td>
+<td><p>16</p></td>
+<td><p>1.55</p></td>
+<td><p>24.8</p></td>
+<td><p>Preci-dip</p></td>
+<td><p>110-87-328-41-001101</p></td>
+<td><p><a class="reference external" href="https://www.mouser.fr/ProductDetail/Preci-dip/110-87-328-41-001101?qs=uQD7XCvsSCNr3HWD6fta8g%3D%3D">https://www.mouser.fr/ProductDetail/Preci-dip/110-87-328-41-001101?qs=uQD7XCvsSCNr3HWD6fta8g%3D%3D</a></p></td>
+</tr>
+</tbody>
+</table>
 <table class="docutils align-center">
 <tbody>
 <tr class="row-odd"><td rowspan="2"><p>1</p></td>
diff --git a/doc/build/html/source_rst/V2024.x.x/V2024.html b/doc/build/html/source_rst/V2024.x.x/V2024.html
index 204abc78..e0123cbb 100644
--- a/doc/build/html/source_rst/V2024.x.x/V2024.html
+++ b/doc/build/html/source_rst/V2024.x.x/V2024.html
@@ -71,6 +71,7 @@
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="../api.html">API reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../developing_hardware_components.html">Software interface to new hardware components</a></li>
 </ul>
 
         </div>
diff --git a/doc/build/html/source_rst/developing_hardware_components.html b/doc/build/html/source_rst/developing_hardware_components.html
new file mode 100644
index 00000000..7ee431e6
--- /dev/null
+++ b/doc/build/html/source_rst/developing_hardware_components.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html>
+<html class="writer-html5" lang="en" >
+<head>
+  <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
+
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>Software interface to new hardware components &mdash; OhmPi open hardware resistivity-meter documentation</title>
+      <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="../_static/js/html5shiv.min.js"></script>
+  <![endif]-->
+  
+        <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
+        <script src="../_static/jquery.js"></script>
+        <script src="../_static/underscore.js"></script>
+        <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="../_static/doctools.js"></script>
+    <script src="../_static/js/theme.js"></script>
+    <link rel="index" title="Index" href="../genindex.html" />
+    <link rel="search" title="Search" href="../search.html" />
+    <link rel="prev" title="API reference" href="api.html" /> 
+</head>
+
+<body class="wy-body-for-nav"> 
+  <div class="wy-grid-for-nav">
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search" >
+
+          
+          
+          <a href="../index.html" class="icon icon-home">
+            OhmPi
+          </a>
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="Ohmpi.html">OhmPi project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="v1.xx/V1_01.html">OhmPi V 1.01 (limited to 32 electrodes)</a></li>
+<li class="toctree-l1"><a class="reference internal" href="v1.xx/V1_02.html">OhmPi V 1.02 (limited to 32 electrodes)</a></li>
+<li class="toctree-l1"><a class="reference internal" href="V2023.x.x/V2023.html">OhmPi V2023 (64 electrodes and 12V)</a></li>
+<li class="toctree-l1"><a class="reference internal" href="V2024.x.x/V2024.html">OhmPi V2023 (64 electrodes and 12V)</a></li>
+<li class="toctree-l1"><a class="reference internal" href="api.html">API reference</a></li>
+<li class="toctree-l1 current"><a class="current reference internal" href="#">Software interface to new hardware components</a></li>
+</ul>
+
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="../index.html">OhmPi</a>
+      </nav>
+
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="Page navigation">
+  <ul class="wy-breadcrumbs">
+      <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
+      <li class="breadcrumb-item active">Software interface to new hardware components</li>
+      <li class="wy-breadcrumbs-aside">
+            <a href="../_sources/source_rst/developing_hardware_components.rst.txt" rel="nofollow"> View page source</a>
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+             
+  <section id="software-interface-to-new-hardware-components">
+<h1>Software interface to new hardware components<a class="headerlink" href="#software-interface-to-new-hardware-components" title="Permalink to this heading"></a></h1>
+<p><a href="#id1"><span class="problematic" id="id2">**</span></a>* DRAFT VERSION - TO BE REVIEWED *
+This section is intended for developers of a new hardware component as part of an OhmPi system.</p>
+<p>It presents some advices and best practices that should help developing new hardware components to work
+within an OhmPi system.</p>
+<p>OhmPi is an open source system and contributions in terms of hardware and software are welcome. However, in order to
+maintain the project on tracks and promote exchange and reuse, it is necessary that contributors
+Developing a new hardware component should ideally follow a few basic steps.</p>
+<p>Two cases should be distinguished when dealing with hardware development components:</p>
+<p>1- Developments of a hardware component that comply with the way the OhmPi Hardware System works. Such developments typically
+focus on improving an existing component (reduce cost, improve performance, adapt range to specific applications,
+design with easily available parts…). The newly created hardware component will expose the minimal functionalities required
+by hardware_system for this type of component.</p>
+<p>2- Developments of a hardware component that introduce changes in the way the OhmPi Hardware System works. Such
+developments do not only focus on improving a single component but also on the way to operate the system. A
+discussion with developers of the OhmPi_Hardware and OhmPi classes should be initiated at a very early stage to investigate
+the best ways to design and implement a working solution.</p>
+<p>If you are dealing with case 1 or have designed a development path and strategy, you are ready to start.</p>
+<p>First the hardware board/device should be conceived and designed. The Ohmpi team recommends that contributors design or
+import their boards within KiCAD and that both schemas and PCB are shared.</p>
+<p>When developing a new component Class, always start your development in a new branch.
+1- Create a new python file or make a copy and modify an existing similar component file. All hardware component modules
+are stored in the ohmpi/hardware_component directory.
+In the newly created python file, define a new class based on the relevant abstract class of abstract_hardware_components.py.
+Implement the abstract methods to interact with your hardware. Name the file according to the name of the component.
+Make sure to place this new python module in the ohmpi/hardware_component directory.</p>
+<p>2- Create a new configuration file or make a copy and modify an existing configuration file. All existing config files
+are stored in the ohmpi/hardware_component directory.
+In this newly created config file, describe your system including the new component in the HARDWARE_CONFIG dictionary.
+Name it config_XXX.py where XXX should be replaced by an expression describing the system.
+Make sure to place your new config file in the ohmpi/configs directory.</p>
+<p>3- Create a new script or make a copy and modify of an existing script for testing the component.
+In this script, write python code where you will conduct the tests of the required functionalities of the new component.</p>
+</section>
+
+
+           </div>
+          </div>
+          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
+        <a href="api.html" class="btn btn-neutral float-left" title="API reference" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+    </div>
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>&#169; Copyright 2022, the OhmPi Team..</p>
+  </div>
+
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
+
+</footer>
+        </div>
+      </div>
+    </section>
+  </div>
+  <script>
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/build/html/source_rst/v1.xx/V1_01.html b/doc/build/html/source_rst/v1.xx/V1_01.html
index 7ad64b08..8a6d66e0 100644
--- a/doc/build/html/source_rst/v1.xx/V1_01.html
+++ b/doc/build/html/source_rst/v1.xx/V1_01.html
@@ -574,6 +574,168 @@ are displayed on the screen. A measurement file is automatically created and nam
 <p class="admonition-title">Warning</p>
 <p>The list evolve a little bit after the publication of the article, it is necessary to refer to this list, the article is out of date</p>
 </div>
+<table class="docutils align-default" id="id9">
+<caption><span class="caption-text">Table Title</span><a class="headerlink" href="#id9" title="Permalink to this table"></a></caption>
+<colgroup>
+<col style="width: 8%" />
+<col style="width: 18%" />
+<col style="width: 18%" />
+<col style="width: 18%" />
+<col style="width: 18%" />
+<col style="width: 18%" />
+</colgroup>
+<thead>
+<tr class="row-odd"><th class="head"><p>Component</p></th>
+<th class="head"><p>Number</p></th>
+<th class="head"><p>Cost per unit</p></th>
+<th class="head"><p>Total cost</p></th>
+<th class="head"><p>Manufacturer</p></th>
+<th class="head"><p>Manufacturer s reference</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p>Raspberry Pi 3 Model B+</p></td>
+<td><p>1</p></td>
+<td><p>37</p></td>
+<td><p>37</p></td>
+<td><p>Raspberry</p></td>
+<td><p>Raspberry Pi 3 Model B</p></td>
+</tr>
+<tr class="row-odd"><td><p>Raspberry Pi 1 2 and 3 Power Supply</p></td>
+<td><p>1</p></td>
+<td><p>8.37</p></td>
+<td><p>8.37</p></td>
+<td><p>Raspberry</p></td>
+<td><p>Raspberry Pi 1 2 and 3 Power Supply</p></td>
+</tr>
+<tr class="row-even"><td><p>SainSmart 16-Channel Canal 12V Relay Relais Module pour Arduino DSP AVR PIC ARM</p></td>
+<td><p>8</p></td>
+<td><p>24.99</p></td>
+<td><p>199.92</p></td>
+<td><p>Sain Smart</p></td>
+<td><p>101-70-103</p></td>
+</tr>
+<tr class="row-odd"><td><p>4-Channel 5V Relay Module</p></td>
+<td><p>1</p></td>
+<td><p>7.99</p></td>
+<td><p>7.99</p></td>
+<td><p>Sain Smart</p></td>
+<td><p>20-018-101-CMS</p></td>
+</tr>
+<tr class="row-even"><td><p>cable 1X1 mm2 (50 m)</p></td>
+<td><p>1</p></td>
+<td><p>19.66</p></td>
+<td><p>19.66</p></td>
+<td><p>TRU COMPONENTS</p></td>
+<td><p>1568649</p></td>
+</tr>
+<tr class="row-odd"><td><p>cable 1X0.5 mm2 (100 m)</p></td>
+<td><p>1</p></td>
+<td><p>29.71</p></td>
+<td><p>29.71</p></td>
+<td><p>TRU COMPONENTS</p></td>
+<td><p>1565235</p></td>
+</tr>
+<tr class="row-even"><td><p>Printed circuit board (packaging quantity x 3)</p></td>
+<td><p>1</p></td>
+<td><p>12</p></td>
+<td><p>12</p></td>
+<td><p>Asler</p></td>
+<td><p>0</p></td>
+</tr>
+<tr class="row-odd"><td><p>Header sets 1x10</p></td>
+<td><p>1</p></td>
+<td><p>2.68</p></td>
+<td><p>2.68</p></td>
+<td><p>Samtec</p></td>
+<td><p>SSW-110-02-G-S</p></td>
+</tr>
+<tr class="row-even"><td><p>Dual screw terminal (3.5-mm pitch)</p></td>
+<td><p>7</p></td>
+<td><p>0.648</p></td>
+<td><p>4.55</p></td>
+<td><p>RS PRO</p></td>
+<td><p>897-1332</p></td>
+</tr>
+<tr class="row-odd"><td><p>Resistor 1 Kohm 0.5W +- 0.1%</p></td>
+<td><p>4</p></td>
+<td><p>0.858</p></td>
+<td><p>3.44</p></td>
+<td><p>TE Connectivity</p></td>
+<td><p>H81K0BYA</p></td>
+</tr>
+<tr class="row-even"><td><p>Resistor 1.5 Kohms +- 0.1%</p></td>
+<td><p>4</p></td>
+<td><p>0.627</p></td>
+<td><p>2.52</p></td>
+<td><p>TE Connectivity</p></td>
+<td><p>H81K5BYA</p></td>
+</tr>
+<tr class="row-odd"><td><p>Resistor 50 +- 0.1%</p></td>
+<td><p>1</p></td>
+<td><p>8.7</p></td>
+<td><p>8.7</p></td>
+<td><p>TE Connectivity</p></td>
+<td><p>UPW50B50RV</p></td>
+</tr>
+<tr class="row-even"><td><p>LM358N AMP-o</p></td>
+<td><p>4</p></td>
+<td><p>0.8</p></td>
+<td><p>2.4</p></td>
+<td><p>Texas Instruments</p></td>
+<td><p>LM358AN/NOPB</p></td>
+</tr>
+<tr class="row-odd"><td><p>ADS1115</p></td>
+<td><p>1</p></td>
+<td><p>11.9</p></td>
+<td><p>11.9</p></td>
+<td><p>Adafruit</p></td>
+<td><p>1083</p></td>
+</tr>
+<tr class="row-even"><td><p>12V battery 7ah</p></td>
+<td><p>1</p></td>
+<td><p>19.58</p></td>
+<td><p>19.58</p></td>
+<td><p>RS PRO</p></td>
+<td><p>537-5488</p></td>
+</tr>
+<tr class="row-odd"><td><p>Battery Holder Type D LR20 (9V)</p></td>
+<td><p>1</p></td>
+<td><p>3.43</p></td>
+<td><p>3.43</p></td>
+<td><p>RS PRO</p></td>
+<td><p>185-4686</p></td>
+</tr>
+<tr class="row-even"><td><p>Ferrule Crimp Terminal (1 mm2) (500 pieces)</p></td>
+<td><p>1</p></td>
+<td><p>30.48</p></td>
+<td><p>30.48</p></td>
+<td><p>WEIDMULLER</p></td>
+<td><p>9004330000</p></td>
+</tr>
+<tr class="row-odd"><td><p>Electrical Crimp Terminal (0.5 mm2) (100 piece)</p></td>
+<td><p>1</p></td>
+<td><p>6.38</p></td>
+<td><p>6.38</p></td>
+<td><p>AMP - TE CONNECTIVITY</p></td>
+<td><p>966067-1</p></td>
+</tr>
+<tr class="row-even"><td><p>Car Fuse 1.0 A</p></td>
+<td><p>1</p></td>
+<td><p>0.2</p></td>
+<td></td>
+<td><p>LITTELFUSE</p></td>
+<td><p>LITTELFUSE</p></td>
+</tr>
+<tr class="row-odd"><td><p>Fuse holder (576-FHAC0002ZXJ)</p></td>
+<td><p>1</p></td>
+<td><p>4.96</p></td>
+<td><p>4.96</p></td>
+<td><p>LITTELFUSE</p></td>
+<td><p>FHAC0002ZXJ</p></td>
+</tr>
+</tbody>
+</table>
 </section>
 </section>
 
diff --git a/doc/build/html/source_rst/v1.xx/V1_02.html b/doc/build/html/source_rst/v1.xx/V1_02.html
index a53c97a3..9abfed13 100644
--- a/doc/build/html/source_rst/v1.xx/V1_02.html
+++ b/doc/build/html/source_rst/v1.xx/V1_02.html
@@ -187,7 +187,7 @@ For this step, the installation instructions are well described on the Raspberry
 <p class="admonition-title">Note</p>
 <p>All the development tests were performed on Raspberry Pi 3 Model B, we used the following version of Raspbian:</p>
 <figure class="align-center">
-<a class="reference internal image-reference" href="source_rst/v1.xx/raspbian_version.jpg"><img alt="alternate text" src="source_rst/v1.xx/raspbian_version.jpg" style="width: 800px; height: 400px;" /></a>
+<a class="reference internal image-reference" href="../../_images/raspbian_version1.jpg"><img alt="alternate text" src="../../_images/raspbian_version1.jpg" style="width: 800px; height: 400px;" /></a>
 </figure>
 </div>
 <div class="admonition warning">
@@ -265,21 +265,21 @@ to leave the virtual environment simply type:</p>
 <p>1- Run the Thonny Python IDE software, Click on raspberry access <strong>menu &gt; programming&gt; Thonny pythonIDE</strong></p>
 <p>2- Thonny opens, Python runs on the root (Python 3.7.3 (/usr/bin/python3))</p>
 <figure class="align-center">
-<a class="reference internal image-reference" href="source_rst/v1.xx/thonny_first_interface.jpg"><img alt="alternate text" src="source_rst/v1.xx/thonny_first_interface.jpg" style="width: 600px; height: 450px;" /></a>
+<a class="reference internal image-reference" href="../../_images/thonny_first_interface2.jpg"><img alt="alternate text" src="../../_images/thonny_first_interface2.jpg" style="width: 600px; height: 450px;" /></a>
 </figure>
 <p>3-Click on <strong>Run&gt;select interpreter</strong>, a new window opens click on interpret</p>
 <figure class="align-center">
-<a class="reference internal image-reference" href="source_rst/v1.xx/thonny_option.jpg"><img alt="alternate text" src="source_rst/v1.xx/thonny_option.jpg" style="width: 600px; height: 450px;" /></a>
+<a class="reference internal image-reference" href="../../_images/thonny_option1.jpg"><img alt="alternate text" src="../../_images/thonny_option1.jpg" style="width: 600px; height: 450px;" /></a>
 </figure>
 <p>4-On the new open windows select <strong>alternative Python3 or virtual environment</strong></p>
 <figure class="align-center">
-<a class="reference internal image-reference" href="source_rst/v1.xx/thonny_interpreter.jpg"><img alt="alternate text" src="source_rst/v1.xx/thonny_interpreter.jpg" style="width: 600px; height: 450px;" /></a>
+<a class="reference internal image-reference" href="../../_images/thonny_interpreter1.jpg"><img alt="alternate text" src="../../_images/thonny_interpreter1.jpg" style="width: 600px; height: 450px;" /></a>
 </figure>
 <p>5- New buttons appeared, selected <strong>“locate another python executable “</strong></p>
 <p>6- A new window opens, find the folder where there is the python 3 file in the virtual environment folder previously created <strong>/home/pi/ohmpi/bin/python3</strong>.</p>
 <p>7- In the <strong>known interpreter</strong> tab the path of the virtual environment should appear</p>
 <figure class="align-center">
-<a class="reference internal image-reference" href="source_rst/v1.xx/thonny_interpreter_folder.jpg"><img alt="alternate text" src="source_rst/v1.xx/thonny_interpreter_folder.jpg" style="width: 600px; height: 450px;" /></a>
+<a class="reference internal image-reference" href="../../_images/thonny_interpreter_folder1.jpg"><img alt="alternate text" src="../../_images/thonny_interpreter_folder1.jpg" style="width: 600px; height: 450px;" /></a>
 </figure>
 <p>8- Close the window by clicking on <strong>ok</strong>.</p>
 <p>9- Close thonny to save modifications</p>
@@ -328,7 +328,7 @@ We also added 4 capacitors on the +12v inputs of the fast operational amplifiers
 between each power supply terminal and ground. The last point, we have added a four very high resistances of 10 MOhm, between the ground and
 the signal input on the operational amplifiers. This prevents the operational amplifiers from overheating.</p>
 <figure class="align-center" id="id1">
-<a class="reference internal image-reference" href="source_rst/v1.xx/schema_measurement_board1_02.png"><img alt="alternate text" src="source_rst/v1.xx/schema_measurement_board1_02.png" style="width: 800px; height: 400px;" /></a>
+<a class="reference internal image-reference" href="../../_images/schema_measurement_board1_02.png"><img alt="alternate text" src="../../_images/schema_measurement_board1_02.png" style="width: 800px; height: 400px;" /></a>
 <figcaption>
 <p><span class="caption-text">Measurement board (Ohmpi version 1.02)</span><a class="headerlink" href="#id1" title="Permalink to this image"></a></p>
 </figcaption>
@@ -383,13 +383,13 @@ Once all the components have been soldered together, the measurement board can b
 battery terminal, according to Figure 9. Between the battery and the TX+ terminal of the measurement board, remember to
 place a fuse holder with a 1.5-A fuse for safety purposes.</p>
 <figure class="align-center" id="id2">
-<a class="reference internal image-reference" href="source_rst/v1.xx/measurement_board1-02.jpg"><img alt="alternate text" src="source_rst/v1.xx/measurement_board1-02.jpg" style="width: 800px; height: 700px;" /></a>
+<a class="reference internal image-reference" href="../../_images/measurement_board1-02.jpg"><img alt="alternate text" src="../../_images/measurement_board1-02.jpg" style="width: 800px; height: 700px;" /></a>
 <figcaption>
 <p><span class="caption-text">Measurement circuit board assembly: a) printed circuit board, b) adding the 1-KOhm resistors ± 1%, c)adding the 1.5-KOhm resistors ± 1%, d) adding the black female 1 x 10 header and the 7-blue screw terminal block(2 pin, 3.5-mm pitch), e) adding the 50-ohm reference resistor ± 0.1%, and f) adding the ADS1115 and the LM358N low-power dual operational amplifiers</span><a class="headerlink" href="#id2" title="Permalink to this image"></a></p>
 </figcaption>
 </figure>
 <figure class="align-center" id="id3">
-<a class="reference internal image-reference" href="source_rst/v1.xx/measurement_board-2-V1-02.jpg"><img alt="alternate text" src="source_rst/v1.xx/measurement_board-2-V1-02.jpg" style="width: 800px; height: 700px;" /></a>
+<a class="reference internal image-reference" href="../../_images/measurement_board-2-V1-02.jpg"><img alt="alternate text" src="../../_images/measurement_board-2-V1-02.jpg" style="width: 800px; height: 700px;" /></a>
 <figcaption>
 <p><span class="caption-text">Measurement board installation with Raspberry Pi</span><a class="headerlink" href="#id3" title="Permalink to this image"></a></p>
 </figcaption>
@@ -410,7 +410,7 @@ the polarity at electrodes A and B. Thus, when relays 3 and 4 are energized by t
 the positive battery pole is connected to electrode A and the negative pole to electrode B. When not energized,
 they remain in the normally closed position. This set-up offers a simple and robust solution to inject current.</p>
 <figure class="align-center" id="id4">
-<a class="reference internal image-reference" href="source_rst/v1.xx/current_board.jpg"><img alt="alternate text" src="source_rst/v1.xx/current_board.jpg" style="width: 800px; height: 400px;" /></a>
+<a class="reference internal image-reference" href="../../_images/current_board.jpg"><img alt="alternate text" src="../../_images/current_board.jpg" style="width: 800px; height: 400px;" /></a>
 <figcaption>
 <p><span class="caption-text">Wiring of the 4-channel relay module board for current injection management</span><a class="headerlink" href="#id4" title="Permalink to this image"></a></p>
 </figcaption>
@@ -423,7 +423,7 @@ the relay card’s 4 channels respectively to the GND pin and 5Vcc of the Raspbe
 shown in the diagram, using 1-mm2 cables (red and black in Fig. 10). Lastly, connect the inputs of relay 1 and 2 respectively
 to terminals B and A of the measurement board.</p>
 <figure class="align-center" id="id5">
-<a class="reference internal image-reference" href="source_rst/v1.xx/installation_current_board_1_02.jpg"><img alt="alternate text" src="source_rst/v1.xx/installation_current_board_1_02.jpg" style="width: 800px; height: 700px;" /></a>
+<a class="reference internal image-reference" href="../../_images/installation_current_board_1_02.jpg"><img alt="alternate text" src="../../_images/installation_current_board_1_02.jpg" style="width: 800px; height: 700px;" /></a>
 <figcaption>
 <p><span class="caption-text">Current injection board installation with Raspberry Pi</span><a class="headerlink" href="#id5" title="Permalink to this image"></a></p>
 </figcaption>
@@ -449,7 +449,7 @@ configuration enables making smaller multiplexers (8 or 16 electrodes only). On
 which is entirely possible, a GPIO channel multiplier will have to be used.
 To prepare the multiplexer, the channels of the two relay boards must be connected according to the wiring diagram shown below.</p>
 <figure class="align-center" id="id6">
-<a class="reference internal image-reference" href="source_rst/v1.xx/multiplexer_implementation.jpg"><img alt="alternate text" src="source_rst/v1.xx/multiplexer_implementation.jpg" style="width: 800px; height: 500px;" /></a>
+<a class="reference internal image-reference" href="../../_images/multiplexer_implementation.jpg"><img alt="alternate text" src="../../_images/multiplexer_implementation.jpg" style="width: 800px; height: 500px;" /></a>
 <figcaption>
 <p><span class="caption-text">Schematic diagram of the wiring of two 16-channel relay shields</span><a class="headerlink" href="#id6" title="Permalink to this image"></a></p>
 </figcaption>
@@ -463,7 +463,7 @@ for activating each relay (Fig. 12). However, we will be activating several rela
 see Section 2.4). To execute this step, it will be necessary to follow the protocol presented in Figure.</p>
 <blockquote>
 <div><figure class="align-center" id="id7">
-<a class="reference internal image-reference" href="source_rst/v1.xx/connection.jpg"><img alt="alternate text" src="source_rst/v1.xx/connection.jpg" style="width: 800px; height: 400px;" /></a>
+<a class="reference internal image-reference" href="../../_images/connection.jpg"><img alt="alternate text" src="../../_images/connection.jpg" style="width: 800px; height: 400px;" /></a>
 <figcaption>
 <p><span class="caption-text">Connection to the 16-channel relay shield</span><a class="headerlink" href="#id7" title="Permalink to this image"></a></p>
 </figcaption>
@@ -528,7 +528,7 @@ The next step consists of connecting the relay card inputs to the Raspberry Pi a
 According to the chosen multiplexer configuration, all the relays of each multiplexer will be connected to an electrode and, consequently, each electrode will have four incoming
 connections. Instead of having four cables connecting an electrode terminal to each multiplexer, we recommend using the cable assembly shown in the following Figure.</p>
 <figure class="align-center" id="id8">
-<a class="reference internal image-reference" href="source_rst/v1.xx/cable.jpg"><img alt="alternate text" src="source_rst/v1.xx/cable.jpg" style="width: 800px; height: 300px;" /></a>
+<a class="reference internal image-reference" href="../../_images/cable.jpg"><img alt="alternate text" src="../../_images/cable.jpg" style="width: 800px; height: 300px;" /></a>
 <figcaption>
 <p><span class="caption-text">Wire cabling for multiplexer and terminal screw connection</span><a class="headerlink" href="#id8" title="Permalink to this image"></a></p>
 </figcaption>
@@ -537,7 +537,7 @@ connections. Instead of having four cables connecting an electrode terminal to e
 must be connected to electrode no. 1 of MUX N, which in turn must be connected to electrode no. 1 of MUX M. Lastly, electrode no. 1 of MUX M is connected to the terminal block.
 This operation must be repeated for all 32 electrodes.</p>
 <figure class="align-center" id="id9">
-<a class="reference internal image-reference" href="source_rst/v1.xx/electrode_cable.jpg"><img alt="alternate text" src="source_rst/v1.xx/electrode_cable.jpg" style="width: 800px; height: 800px;" /></a>
+<a class="reference internal image-reference" href="../../_images/electrode_cable.jpg"><img alt="alternate text" src="../../_images/electrode_cable.jpg" style="width: 800px; height: 800px;" /></a>
 <figcaption>
 <p><span class="caption-text">Example of a multiplexer connection to the screw terminal for electrode no. 1.</span><a class="headerlink" href="#id9" title="Permalink to this image"></a></p>
 </figcaption>
@@ -587,6 +587,175 @@ are displayed on the screen. A measurement file is automatically created and nam
 <p class="admonition-title">Warning</p>
 <p>The list evolve a little bit after the publication of the article, it is necessary to refer to this list, the article is out of date</p>
 </div>
+<table class="docutils align-default" id="id10">
+<caption><span class="caption-text">List of components</span><a class="headerlink" href="#id10" title="Permalink to this table"></a></caption>
+<colgroup>
+<col style="width: 8%" />
+<col style="width: 18%" />
+<col style="width: 18%" />
+<col style="width: 18%" />
+<col style="width: 18%" />
+<col style="width: 18%" />
+</colgroup>
+<thead>
+<tr class="row-odd"><th class="head"><p>Component</p></th>
+<th class="head"><p>Number</p></th>
+<th class="head"><p>Cost per unit</p></th>
+<th class="head"><p>Total cost</p></th>
+<th class="head"><p>Manufacturer</p></th>
+<th class="head"><p>Manufacturer s reference</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p>Raspberry Pi 3 Model B+</p></td>
+<td><p>1</p></td>
+<td><p>37</p></td>
+<td><p>37</p></td>
+<td><p>Raspberry</p></td>
+<td><p>Raspberry Pi 3 Model B</p></td>
+</tr>
+<tr class="row-odd"><td><p>Raspberry Pi 1 2 and 3 Power Supply</p></td>
+<td><p>1</p></td>
+<td><p>8.37</p></td>
+<td><p>8.37</p></td>
+<td><p>Raspberry</p></td>
+<td><p>Raspberry Pi 1 2 and 3 Power Supply</p></td>
+</tr>
+<tr class="row-even"><td><p>SainSmart 16-Channel 12V Relay</p></td>
+<td><p>8</p></td>
+<td><p>24.99</p></td>
+<td><p>199.92</p></td>
+<td><p>Sain Smart</p></td>
+<td><p>101-70-103</p></td>
+</tr>
+<tr class="row-odd"><td><p>4-Channel 5V Relay Module</p></td>
+<td><p>1</p></td>
+<td><p>7.99</p></td>
+<td><p>7.99</p></td>
+<td><p>Sain Smart</p></td>
+<td><p>20-018-101-CMS</p></td>
+</tr>
+<tr class="row-even"><td><p>cable 1X1 mm2 (50 m)</p></td>
+<td><p>1</p></td>
+<td><p>19.66</p></td>
+<td><p>19.66</p></td>
+<td><p>TRU COMPONENTS</p></td>
+<td><p>1568649</p></td>
+</tr>
+<tr class="row-odd"><td><p>cable 1X0.5 mm2 (100 m)</p></td>
+<td><p>1</p></td>
+<td><p>29.71</p></td>
+<td><p>29.71</p></td>
+<td><p>TRU COMPONENTS</p></td>
+<td><p>1565235</p></td>
+</tr>
+<tr class="row-even"><td><p>Printed circuit board (packaging quantity x 3)</p></td>
+<td><p>1</p></td>
+<td><p>12</p></td>
+<td><p>12</p></td>
+<td><p>Asler</p></td>
+<td><p>0</p></td>
+</tr>
+<tr class="row-odd"><td><p>Header sets 1x10</p></td>
+<td><p>1</p></td>
+<td><p>2.68</p></td>
+<td><p>2.68</p></td>
+<td><p>Samtec</p></td>
+<td><p>SSW-110-02-G-S</p></td>
+</tr>
+<tr class="row-even"><td><p>Dual screw terminal (3.5-mm pitch)</p></td>
+<td><p>7</p></td>
+<td><p>0.648</p></td>
+<td><p>4.55</p></td>
+<td><p>RS PRO</p></td>
+<td><p>897-1332</p></td>
+</tr>
+<tr class="row-odd"><td><p>Resistor 1 Kohm 0.5W +- 0.1%</p></td>
+<td><p>4</p></td>
+<td><p>0.858</p></td>
+<td><p>3.44</p></td>
+<td><p>TE Connectivity</p></td>
+<td><p>H81K0BYA</p></td>
+</tr>
+<tr class="row-even"><td><p>Resistor 1.5 Kohms +- 0.1%</p></td>
+<td><p>4</p></td>
+<td><p>0.627</p></td>
+<td><p>2.52</p></td>
+<td><p>TE Connectivity</p></td>
+<td><p>H81K5BYA</p></td>
+</tr>
+<tr class="row-odd"><td><p>Resistor 50 +- 0.1%</p></td>
+<td><p>1</p></td>
+<td><p>8.7</p></td>
+<td><p>8.7</p></td>
+<td><p>TE Connectivity</p></td>
+<td><p>UPW50B50RV</p></td>
+</tr>
+<tr class="row-even"><td><p>LM358N AMP-o</p></td>
+<td><p>4</p></td>
+<td><p>0.8</p></td>
+<td><p>2.4</p></td>
+<td><p>Texas Instruments</p></td>
+<td><p>LM358AN/NOPB</p></td>
+</tr>
+<tr class="row-odd"><td><p>ADS1115</p></td>
+<td><p>1</p></td>
+<td><p>11.9</p></td>
+<td><p>11.9</p></td>
+<td><p>Adafruit</p></td>
+<td><p>1083</p></td>
+</tr>
+<tr class="row-even"><td><p>12V battery 7ah</p></td>
+<td><p>1</p></td>
+<td><p>19.58</p></td>
+<td><p>19.58</p></td>
+<td><p>RS PRO</p></td>
+<td><p>537-5488</p></td>
+</tr>
+<tr class="row-odd"><td><p>Battery Holder Type D LR20 (9V)</p></td>
+<td><p>1</p></td>
+<td><p>3.43</p></td>
+<td><p>3.43</p></td>
+<td><p>RS PRO</p></td>
+<td><p>185-4686</p></td>
+</tr>
+<tr class="row-even"><td><p>Ferrule Crimp Terminal (1 mm2) (500 pieces)</p></td>
+<td><p>1</p></td>
+<td><p>30.48</p></td>
+<td><p>30.48</p></td>
+<td><p>WEIDMULLER</p></td>
+<td><p>9004330000</p></td>
+</tr>
+<tr class="row-odd"><td><p>Electrical Crimp Terminal (0.5 mm2) (100 piece)</p></td>
+<td><p>1</p></td>
+<td><p>6.38</p></td>
+<td><p>6.38</p></td>
+<td><p>AMP - TE CONNECTIVITY</p></td>
+<td><p>966067-1</p></td>
+</tr>
+<tr class="row-even"><td><p>Fuse 1.0 A</p></td>
+<td><p>1</p></td>
+<td><p>0.2</p></td>
+<td></td>
+<td><p>LITTELFUSE</p></td>
+<td><p>0251001.PAT1L</p></td>
+</tr>
+<tr class="row-odd"><td><p>Capacitor 100nF 50Vdc 10% Ceramic</p></td>
+<td><p>4</p></td>
+<td><p>0.2</p></td>
+<td><p>0.8</p></td>
+<td><p>KEMET</p></td>
+<td><p>C320C104K1</p></td>
+</tr>
+<tr class="row-even"><td><p>DC/DC converter 12 to 24V</p></td>
+<td><p>2</p></td>
+<td><p>26.72</p></td>
+<td><p>53.44</p></td>
+<td><p>TracoPower</p></td>
+<td><p>TRN 3-1215</p></td>
+</tr>
+</tbody>
+</table>
 </section>
 </section>
 
diff --git a/doc/source/index.rst b/doc/source/index.rst
index eadff7d2..69402149 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -39,6 +39,7 @@ Contents:
    source_rst/V2023.x.x/V2023
    source_rst/V2024.x.x/V2024
    source_rst/api
+   source_rst/developing_hardware_components.rst
   
 
   
diff --git a/doc/source/source_rst/V2023.x.x/V2023_step_02.rst b/doc/source/source_rst/V2023.x.x/V2023_step_02.rst
index ca79eaeb..03554807 100644
--- a/doc/source/source_rst/V2023.x.x/V2023_step_02.rst
+++ b/doc/source/source_rst/V2023.x.x/V2023_step_02.rst
@@ -301,7 +301,7 @@ which allows to realize precise current measurement around a shunt resistor. The
 +------------------------------------------------------------------------+
 
 .. csv-table:: List of components
-   :file: step_n_2/b/test_2_xx.csv
+   :file: ../../img/v2023.x.x/step_n_2/b/test_2_xx.csv
    :widths: 30, 70, 70, 70, 70, 35, 35
    :header-rows: 1
 
diff --git a/doc/source/source_rst/V2023.x.x/V2023_step_03.rst b/doc/source/source_rst/V2023.x.x/V2023_step_03.rst
index c268d128..f77e9b5e 100644
--- a/doc/source/source_rst/V2023.x.x/V2023_step_03.rst
+++ b/doc/source/source_rst/V2023.x.x/V2023_step_03.rst
@@ -30,7 +30,7 @@ Required components
 
 
 .. csv-table:: List of components
-   :file: step_n_3/a/MUX_board_list_2_xx.csv
+   :file: ../../img/v2023.x.x/step_n_3/a/MUX_board_list_2_xx.csv
    :widths: 30, 70, 70, 70, 70, 35, 35
    :header-rows: 1 
    
diff --git a/doc/source/source_rst/developing_hardware_components.rst b/doc/source/source_rst/developing_hardware_components.rst
new file mode 100644
index 00000000..fa97c06a
--- /dev/null
+++ b/doc/source/source_rst/developing_hardware_components.rst
@@ -0,0 +1,46 @@
+Software interface to new hardware components
+=============================================
+
+*** DRAFT VERSION - TO BE REVIEWED *
+This section is intended for developers of a new hardware component as part of an OhmPi system.
+
+It presents some advices and best practices that should help developing new hardware components to work
+within an OhmPi system.
+
+OhmPi is an open source system and contributions in terms of hardware and software are welcome. However, in order to
+maintain the project on tracks and promote exchange and reuse, it is necessary that contributors
+Developing a new hardware component should ideally follow a few basic steps.
+
+Two cases should be distinguished when dealing with hardware development components:
+
+1- Developments of a hardware component that comply with the way the OhmPi Hardware System works. Such developments typically
+focus on improving an existing component (reduce cost, improve performance, adapt range to specific applications,
+design with easily available parts...). The newly created hardware component will expose the minimal functionalities required
+by hardware_system for this type of component.
+
+2- Developments of a hardware component that introduce changes in the way the OhmPi Hardware System works. Such
+developments do not only focus on improving a single component but also on the way to operate the system. A
+discussion with developers of the OhmPi_Hardware and OhmPi classes should be initiated at a very early stage to investigate
+the best ways to design and implement a working solution.
+
+If you are dealing with case 1 or have designed a development path and strategy, you are ready to start.
+
+First the hardware board/device should be conceived and designed. The Ohmpi team recommends that contributors design or
+import their boards within KiCAD and that both schemas and PCB are shared.
+
+When developing a new component Class, always start your development in a new branch.
+1- Create a new python file or make a copy and modify an existing similar component file. All hardware component modules
+are stored in the ohmpi/hardware_component directory.
+In the newly created python file, define a new class based on the relevant abstract class of abstract_hardware_components.py.
+Implement the abstract methods to interact with your hardware. Name the file according to the name of the component.
+Make sure to place this new python module in the ohmpi/hardware_component directory.
+
+2- Create a new configuration file or make a copy and modify an existing configuration file. All existing config files
+are stored in the ohmpi/hardware_component directory.
+In this newly created config file, describe your system including the new component in the HARDWARE_CONFIG dictionary.
+Name it config_XXX.py where XXX should be replaced by an expression describing the system.
+Make sure to place your new config file in the ohmpi/configs directory.
+
+3- Create a new script or make a copy and modify of an existing script for testing the component.
+In this script, write python code where you will conduct the tests of the required functionalities of the new component.
+
diff --git a/doc/source/source_rst/v1.xx/V1_01.rst b/doc/source/source_rst/v1.xx/V1_01.rst
index 3c8d9594..1829d683 100644
--- a/doc/source/source_rst/v1.xx/V1_01.rst
+++ b/doc/source/source_rst/v1.xx/V1_01.rst
@@ -524,7 +524,7 @@ Complete list of components
 
 
 .. csv-table:: Table Title
-   :file: list.csv
+   :file: ../../bom_list/list.csv
    :widths: 30, 70, 70, 70, 70,70
    :header-rows: 1
 
diff --git a/doc/source/source_rst/v1.xx/V1_02.rst b/doc/source/source_rst/v1.xx/V1_02.rst
index 6dad02c8..a486b855 100644
--- a/doc/source/source_rst/v1.xx/V1_02.rst
+++ b/doc/source/source_rst/v1.xx/V1_02.rst
@@ -64,7 +64,7 @@ For this step, the installation instructions are well described on the Raspberry
 .. note:: 
      All the development tests were performed on Raspberry Pi 3 Model B, we used the following version of Raspbian:
 
-     .. figure:: raspbian_version.jpg
+     .. figure:: ../../img/raspbian_version.jpg
        :width: 800px
        :align: center
        :height: 400px
@@ -164,7 +164,7 @@ If you decided to use a virtual environment, it is necessary to setup Thonny Pyt
 
 2- Thonny opens, Python runs on the root (Python 3.7.3 (/usr/bin/python3))
 
-.. figure:: thonny_first_interface.jpg
+.. figure:: ../../img/thonny_first_interface.jpg
        :width: 600px
        :align: center
        :height: 450px
@@ -173,7 +173,7 @@ If you decided to use a virtual environment, it is necessary to setup Thonny Pyt
 
 3-Click on **Run>select interpreter**, a new window opens click on interpret
 
-.. figure:: thonny_option.jpg
+.. figure:: ../../img/thonny_option.jpg
        :width: 600px
        :align: center
        :height: 450px
@@ -182,7 +182,7 @@ If you decided to use a virtual environment, it is necessary to setup Thonny Pyt
 
 4-On the new open windows select **alternative Python3 or virtual environment**
 
-.. figure:: thonny_interpreter.jpg
+.. figure:: ../../img/thonny_interpreter.jpg
        :width: 600px
        :align: center
        :height: 450px
@@ -195,7 +195,7 @@ If you decided to use a virtual environment, it is necessary to setup Thonny Pyt
 
 7- In the **known interpreter** tab the path of the virtual environment should appear
 
-.. figure:: thonny_interpreter_folder.jpg
+.. figure:: ../../img/thonny_interpreter_folder.jpg
        :width: 600px
        :align: center
        :height: 450px
@@ -253,7 +253,7 @@ We also added 4 capacitors on the +12v inputs of the fast operational amplifiers
 between each power supply terminal and ground. The last point, we have added a four very high resistances of 10 MOhm, between the ground and 
 the signal input on the operational amplifiers. This prevents the operational amplifiers from overheating.
 
-.. figure:: schema_measurement_board1_02.png
+.. figure:: ../../img/v1.xx/schema_measurement_board1_02.png
    :width: 800px
    :align: center
    :height: 400px
@@ -317,7 +317,7 @@ Once all the components have been soldered together, the measurement board can b
 battery terminal, according to Figure 9. Between the battery and the TX+ terminal of the measurement board, remember to 
 place a fuse holder with a 1.5-A fuse for safety purposes.
 
-.. figure:: measurement_board1-02.jpg
+.. figure:: ../../img/v1.xx/measurement_board1-02.jpg
    :width: 800px
    :align: center
    :height: 700px
@@ -326,7 +326,7 @@ place a fuse holder with a 1.5-A fuse for safety purposes.
 
    Measurement circuit board assembly: a) printed circuit board, b) adding the 1-KOhm resistors ± 1%, c)adding the 1.5-KOhm resistors ± 1%, d) adding the black female 1 x 10 header and the 7-blue screw terminal block(2 pin, 3.5-mm pitch), e) adding the 50-ohm reference resistor ± 0.1%, and f) adding the ADS1115 and the LM358N low-power dual operational amplifiers
    
-.. figure:: measurement_board-2-V1-02.jpg
+.. figure:: ../../img/v1.xx/measurement_board-2-V1-02.jpg
    :width: 800px
    :align: center
    :height: 700px
@@ -350,7 +350,7 @@ the polarity at electrodes A and B. Thus, when relays 3 and 4 are energized by t
 the positive battery pole is connected to electrode A and the negative pole to electrode B. When not energized, 
 they remain in the normally closed position. This set-up offers a simple and robust solution to inject current.
 
-.. figure:: current_board.jpg
+.. figure:: ../../img/v1.xx/current_board.jpg
    :width: 800px
    :align: center
    :height: 400px
@@ -367,7 +367,7 @@ the relay card’s 4 channels respectively to the GND pin and 5Vcc of the Raspbe
 shown in the diagram, using 1-mm2 cables (red and black in Fig. 10). Lastly, connect the inputs of relay 1 and 2 respectively
 to terminals B and A of the measurement board.   
 
-.. figure:: installation_current_board_1_02.jpg
+.. figure:: ../../img/v1.xx/installation_current_board_1_02.jpg
    :width: 800px
    :align: center
    :height: 700px
@@ -404,7 +404,7 @@ configuration enables making smaller multiplexers (8 or 16 electrodes only). On
 which is entirely possible, a GPIO channel multiplier will have to be used. 
 To prepare the multiplexer, the channels of the two relay boards must be connected according to the wiring diagram shown below.
 
-.. figure:: multiplexer_implementation.jpg
+.. figure:: ../../img/v1.xx/multiplexer_implementation.jpg
    :width: 800px
    :align: center
    :height: 500px
@@ -423,7 +423,7 @@ Once the operation has been completed, the 16 control pins of each 16-channel re
 for activating each relay (Fig. 12). However, we will be activating several relays with a single GPIO (to limit the number of GPIOs used on Raspberry Pi,
 see Section 2.4). To execute this step, it will be necessary to follow the protocol presented in Figure.
  
- .. figure:: connection.jpg
+ .. figure:: ../../img/v1.xx/connection.jpg
    :width: 800px
    :align: center
    :height: 400px
@@ -465,7 +465,7 @@ At this point, all that remains is to connect the electrodes of each multiplexer
 According to the chosen multiplexer configuration, all the relays of each multiplexer will be connected to an electrode and, consequently, each electrode will have four incoming 
 connections. Instead of having four cables connecting an electrode terminal to each multiplexer, we recommend using the cable assembly shown in the following Figure.
 
-.. figure:: cable.jpg
+.. figure:: ../../img/v1.xx/cable.jpg
    :width: 800px
    :align: center
    :height: 300px
@@ -478,7 +478,7 @@ the next figure provides an example of multiplexer relay connections for electro
 must be connected to electrode no. 1 of MUX N, which in turn must be connected to electrode no. 1 of MUX M. Lastly, electrode no. 1 of MUX M is connected to the terminal block. 
 This operation must be repeated for all 32 electrodes.
 
-.. figure:: electrode_cable.jpg
+.. figure:: ../../img/v1.xx/electrode_cable.jpg
    :width: 800px
    :align: center
    :height: 800px
@@ -539,7 +539,7 @@ Complete list of components
 
 
 .. csv-table:: List of components
-   :file: list - 1_02.csv
+   :file: ../../bom_list/list - 1_02.csv
    :widths: 30, 70, 70, 70, 70,70
    :header-rows: 1
 
-- 
GitLab