From 72e558754202b5ceb34993e114e418aefab84ce2 Mon Sep 17 00:00:00 2001 From: EUtrilla2002 <100451242@alumnos.uc3m.es> Date: Fri, 31 Oct 2025 15:55:45 +0100 Subject: [PATCH 1/2] fix driver for windows --- gateway/esp32-rv/gateway.py | 129 +++++++++++------------------------- 1 file changed, 40 insertions(+), 89 deletions(-) diff --git a/gateway/esp32-rv/gateway.py b/gateway/esp32-rv/gateway.py index 0c21f69e7..244a5d778 100755 --- a/gateway/esp32-rv/gateway.py +++ b/gateway/esp32-rv/gateway.py @@ -29,7 +29,7 @@ from flask_cors import CORS, cross_origin import subprocess, os, signal import logging - +import serial # Configure logging logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') @@ -198,7 +198,7 @@ def do_flash_request(request): # flashing steps... if error == 0 : - error = check_uart_connection() + error = check_uart_connection(target_device) if error != 0: req_data['status'] += 'No UART port found.\n' logging.error("No UART port found.") @@ -286,11 +286,15 @@ def do_monitor_request(request): process_holder.pop('gdbgui', None) build_root = BUILD_PATH +'/build' - if check_uart_connection() != 0: + error = 0 + error = check_uart_connection(target_device) + if error != 0: + logging.info("No UART found") req_data['status'] += "No UART port found\n" return jsonify(req_data) if os.path.isdir(build_root) and os.listdir(build_root): - do_cmd(req_data, ['idf.py', '-p', target_device, 'monitor']) + logging.info("Build found") + do_cmd(req_data, ['idf.py', '-p', target_device, 'monitor']) else: req_data['status'] += "No ELF file found in build directory.\n" logging.error("No elf found.") @@ -301,73 +305,32 @@ def do_monitor_request(request): return jsonify(req_data) -# (4) Flasing assembly program into target board -def do_job_request(request): - try: - req_data = request.get_json() - target_device = req_data['target_port'] - target_board = req_data['target_board'] - asm_code = req_data['assembly'] - req_data['status'] = '' - - # create temporal assembly file - text_file = open("tmp_assembly.s", "w") - ret = text_file.write(asm_code) - text_file.close() - - # transform th temporal assembly file - error = creator_build('tmp_assembly.s', "main/program.s"); - if error != 0: - req_data['status'] += 'Error adapting assembly file...\n' +# (4) Debug - # flashing steps... - if error == 0: - error = do_cmd_output(req_data, ['idf.py', 'fullclean']) - if error == 0: - error = do_cmd_output(req_data, ['idf.py', 'set-target', target_board]) - if error == 0: - error = do_cmd_output(req_data, ['idf.py', 'build']) - if error == 0: - error = do_cmd_output(req_data, ['idf.py', '-p', target_device, 'flash']) - if error == 0: - error = do_cmd_output(req_data, ['./gateway_monitor.sh', target_device, '50']) - error = do_cmd_output(req_data, ['cat', 'monitor_output.txt']) - error = do_cmd_output(req_data, ['rm', 'monitor_output.txt']) - - except Exception as e: - req_data['status'] += str(e) + '\n' - - return jsonify(req_data) - - -# (5) Stop flashing -def do_stop_flash_request(request): - try: - req_data = request.get_json() - req_data['status'] = '' - do_cmd(req_data, ['pkill', 'idf.py']) - - except Exception as e: - req_data['status'] += str(e) + '\n' - - return jsonify(req_data) - -# (6) Debug - -# (6.1) Physical connections check -def check_uart_connection(): +# (4.1) Physical connections check +def check_uart_connection(board): """ Checks UART devices """ - devices = glob.glob('/dev/ttyUSB*') - logging.debug(f"Found devices: {devices}") - if "/dev/ttyUSB0" in devices: - logging.info("Found UART.") - return 0 - elif devices: - logging.error("Other UART devices found (Is the name OK?).") - return 0 - else: - logging.error("NO UART port found.") - return 1 + if board.startswith('/dev/ttyUSB'): + devices = glob.glob('/dev/ttyUSB*') + logging.debug(f"Found devices: {devices}") + if "/dev/ttyUSB0" in devices: + logging.info("Found UART.") + return 0 + elif devices: + logging.error("Other UART devices found (Is the name OK?).") + return 0 + else: + logging.error("NO UART port found.") + return 1 + elif board.startswith('rfc2217'): + try: + ser = serial.serial_for_url(board, timeout=1) + ser.close() + logging.info("Found RFC2217 UART.") + return 0 + except serial.SerialException as e: + logging.error(f"NO RFC2217 UART port found: {e}") + return 1 def check_jtag_connection(): """ Checks JTAG devices """ @@ -390,7 +353,7 @@ def check_jtag_connection(): logging.error(f"Error checking JTAG: {e}") return None return False -# --- (6.2) Debug processes monitoring functions --- +# --- (4.2) Debug processes monitoring functions --- def check_gdb_connection(): """ Checks gdb status """ @@ -481,7 +444,7 @@ def kill_all_processes(process_name): return 1 -# (6.3) OpenOCD Function +# (4.3) OpenOCD Function def start_openocd_thread(req_data): target_board = req_data['target_board'] script_board = './openocd_scripts/openscript_' + target_board + '.cfg' @@ -499,7 +462,7 @@ def start_openocd_thread(req_data): req_data['status'] += f"Error starting OpenOCD: {str(e)}\n" logging.error(f"Error starting OpenOCD: {str(e)}") return None -# (6.4) GDBGUI function +# (4.4) GDBGUI function def start_gdbgui(req_data): route = os.path.join(BUILD_PATH, 'gdbinit') logging.debug(f"GDB route: {route}") @@ -550,7 +513,6 @@ def do_debug_request(request): req_data = request.get_json() target_device = req_data['target_port'] req_data['status'] = '' - # Check .elf files in BUILD_PATH route = BUILD_PATH +'/build' logging.debug(f"Checking for ELF files in {route}") @@ -626,37 +588,26 @@ def post_flash(): def post_monitor(): return do_monitor_request(request) -# (4) POST /job -> flash + monitor -@app.route("/job", methods=["POST"]) -@cross_origin() -def post_job(): - return do_job_request(request) - -# (5) POST /stop -> cancel -@app.route("/stop", methods=["POST"]) -@cross_origin() -def post_stop_flash(): - return do_stop_flash_request(request) -# (6) POST /fullclean -> clean build directory +# (4) POST /fullclean -> clean build directory @app.route("/fullclean", methods=["POST"]) @cross_origin() def post_fullclean_flash(): return do_fullclean_request(request) -# (7) POST /eraseflash -> clean board flash +# (5) POST /eraseflash -> clean board flash @app.route("/eraseflash", methods=["POST"]) @cross_origin() def post_erase_flash(): return do_eraseflash_request(request) -# (8) POST /debug -> debug +# (6) POST /debug -> debug @app.route("/debug", methods=["POST"]) @cross_origin() def post_debug(): return do_debug_request(request) -# (9) Stop monitor +# (7) Stop monitor @app.route("/stopmonitor", methods=["POST"]) @cross_origin() def post_stop_monitor(): @@ -664,4 +615,4 @@ def post_stop_monitor(): # Run -app.run(host='0.0.0.0', port=8080, use_reloader=False, debug=True) \ No newline at end of file +app.run(host='0.0.0.0', port=8080, use_reloader=False, debug=True) From f66bb60307ebd40dca1a14791a80b2f9de0e8927 Mon Sep 17 00:00:00 2001 From: Diego Camarmas Date: Fri, 31 Oct 2025 16:17:59 +0100 Subject: [PATCH 2/2] Drivers updated --- gateway/esp32c2.zip | Bin 22723 -> 22661 bytes gateway/esp32c3.zip | Bin 22723 -> 22661 bytes gateway/esp32c6.zip | Bin 22723 -> 22661 bytes gateway/esp32h2.zip | Bin 22723 -> 22661 bytes gateway/esp32s2.zip | Bin 18542 -> 18542 bytes gateway/esp32s3.zip | Bin 18542 -> 18542 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/gateway/esp32c2.zip b/gateway/esp32c2.zip index eed34a4b98e1a9c6dfee16dcdd0beada77bc4f82..58da74b16277c1fce06c6712ed80828643866b88 100644 GIT binary patch delta 7074 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 delta 7114 zcmZWubyO7W(_L7)ySuwX8j)JML!?={yJTskL|7UXq!FZ+Mv(>)P)fR#E-9tuTky4h z-=6dA*)z|bnLBqL{$M7m2BE740b5HIh=c*S`N&!7Cu7r~U6`EMU&0S`k(eBKZXlAZ z$%jgcJ7S-0a*`Y!gZ>i>w?l2^n9y!6%VjeUOjZc3_-WV^4~saTBnaqmyNQz7<|||<0*Mg5Adj`J zoxUDA0Qesc=EzR|EA9>JEKWwIo8nF2#rybU0uYckfB?Yl*B?c1fJ>a5w<_HLZzaWb zl7sSciK6aWEZh))xp1wZ-d3R}B>h{6ETPGtLNLkvDa}v@1^AZ|UU&F^;i2VsQi0Su z(oi`uKGgH%+1tPYVr_`GfyE{N#BhO=SFS<&|3FW}}S+)}Q9GLQ9! z5cFP1w%NV+5z+ii`b@*F3I^$$0@Xe!S$2M2vyS>9_hdP@YKlCm6L+U5Yl{N;4vRcdbgrw9e5JZj%=ZD&rlPOzGKZPZfV1~V4ipg+uo#Ny{N_exvuleSY zX(fyH2F&oq2kQ=U_oi-Et6`uBz4x61EKsvSVKoeCKgc+VCUUSX@39Vs zWfC(x!)744z>`{=*dr=PUf>V|o{_W<^g4VfG>YHy8LO&=15SVFJJct4?u``i@Wu94a;koX3^Hp>(9q-&#Ph82v*!-Vl3lbPXG zX@o?w_sKkcD^B|c`EYvrY-4EuJo_1fao^72siSv@=h4<_oaw>?h^g5FT+`l4v6LSC z4qtLjkO^I1sGS)Zde523$0`6tLFmw%Ae_MO0sgo|frF^fhqXBP8K?&0jL*G}tagG2 zJ~M6eBXs|GFZn)Q>EZ$x7k7`#tQjOeo3s*Kb4{%?z8M-xz&B!?s&>3+#eJMRExBrj z*9#jKQYYcUBxTYKhs516|Gtq-^;Ge>f0fdQ{d>4m7gfZhvcnR|-4@NthExe2e#cY9 zr0VNps2CX}qHlD5PR5$V6`A zozgw#-he2)5wq1OaUj3(e%Tf2I|24_|5*+!o@UE!84SF5UkPCiwi(5*_|TSGU6TPZ z1K=-UNl$B(9CZzym5&{)9&9LySTs1n9y54JYJP;Yk0m9^l3rHt(Ng&mc<@FGPkR$z zG=b$=mvl*(tgFBE_l?vLSQ=jWJ{C_fPVX58gyW+b584oit0U8s>7^GsAtAJLnKDY= zQ%JBB4U!F$TY(JwizwE6Q-}AzCdx&+q~VGj`9PQJ>r`$@RQ=E{?{&Sx8ko~^k$y}h z(PKZRe;4854CCr>vUc)8k-KTe^B7%hv?nPV(SsN97Fe_X%?ysMwWRM@>+0pb!yl5=qr8co~Dn0A`z)+6-scziP{N9ew41P(SmL zE;s++$LJn;@Ub(2O>QZI;M6?YfDQ|%MTP~wf6J@S;JWN(^1%(<@vyJz3=72Wy+g10 z(pwBlvAUkS3FK~z*^kEP;wLdZt(FJBNrz5JXO1BG&rHY7 zBv@rddwi-735T`TrLU5uAJ8cF;e{urC9UK;fuc;fXPmSain{5~z93-K6!e^C1vU8) zM$pQ5FD0;S@=U!U4Xdd0)v`LB`lt-*jueu?YyFM|kt;%V+Z~1}*htK>Wx!(f5(1|^ zmJljX!yl;S3oGO`ktdVTYIxM)i8Hm_5x}9ZD3Gz3&GO#8dy2BGOV;IzMBeWLst)fh z!7C0s$19Zu7iEpk5CN+X`GTVlP^k=0X-Dz$XT;=5B!||Uj_aJ7$*-SWQJDA2xaifi0-*&Ddj1wfLYPPs5Tuse@G->i3xzgkk^-M_wvc zUHGK;rofXP$nrT^Gqg5u@p!sTo9*6OqiXDh+b3XsUBVff)c``UQJJ&zSX;}4#cPh&sc|0UX;N@oQm2~wcwF4wuI-sRrKv5XS)-ZdhJ(C!=3&;!gfWQ z_MkJ8g97>ePf{BM%8fP`tEdA~RL%#G0d3rOLxCHzAI&MHS006l7v}J5o!}nnqG@~` zt$`%ki4~h{zicHeN0YjT|GIUPV{dJVkML8Bk*NY=gdlI{7-@u?zrg8Qo_lOuARQ4o z(%6$JOGcE9kapRHcJzg{FNx@`a25dE*8{~@Zo4|C26^euj7Efk;uU~atP&2WN?(6( zf`)NQj>pFmOg&FgHiQSy&2cuxxJ*Mrq#)u^-sjh`)yp44_O#+0jU@W5(gQK4e2nw0 zcR-(u?mkZyR@{7Rd;ID-9&?2UB6d0XbE5>1Z;xg`w5`9Yca;==FOHE_=L*GxmSrlY zFn0@Gq=KY}oF-g-6vMG$fzCy@BXq7)%gKC~POCX?;Sldf z{4Ra)EIm?9CPq)Lk-EhM(^#(8^_4$lwTRs4K9yG-b?fl3UK?m?=wRZJc9BDzuuh}$ zk2(f)lgXE1L;7if^i=yjFCL)Ir=w=Q^K$t#n5j*s-6?^MTwLkgL2AT`m&`3|CN%kCx(^`i5Ke`Xl2-#HbqN%a-L;?<)vHJk5#M zOZyY*mzLk=&OOMzp531?;poDt;=Nceu~T?;vUR+6ITV$!dNvNs<@Kc-oAAP@p{OM8 za_33seSX2~%njzKOwkl1NyWkbQd)*z#p!3;UGya4YYjAB)NY-(uYKh7eD|CEY2anx z>G|Q7m5?+gO_FP6bbrWGnxwB9NnjSzvFY66O){E?o`9(ig&*$k0cYooQCYtM0+K8@*hzNBLp}3X9Z>y)5$6Kf0 z;CUv_O7)9z#uiqZ;}wq7y`nZ)iLy38lVNL!CdGB;6(a90hTZcU3*AFem#_FBs}{nsxCWeM8gS=+h5U+hP4}LL8??4VA4Q zuo#^&&UZd2MhFK9UWLU3y!m0sGj26{(rIZ}-juRVe8R3+IccDGEwy)_LN{+%Mj%hK zKeWHF&mqM^{C-QrL))*aPLp+_E7+RK#EyvP3|J0A<0^xAadc{}5afECdASaIq#Akf zM(JwaTmyDm^S1ghV@IQxXs{0prRgKFao1In8E&!#wM2iRS1bx|r?6*y&G#oth(Z^b zp^#KaNaNv$ug0)bmzN~1iwTpfr@2Xoq-f0d4X4EN?fX8_7zOtd?6tL|Oe}|DvWaG# zpSSZ^UA$6$h+Fhh3Q`&F4#S=1Q65zge7x8m6tY{r&1JkM;&RM*$pAiV_#U49#U-`| zVY*Tv-rO9AF4~RCSEVNNa)m~G$Fq&(1#U>$Ba+CMbnVTG83*6+qY5!*AC^Y5*zC}` zsFi-lN{7&B_0gDm`RzXRZ^;F3=WNsd$O~r{%*(z%K2&B$TLVejs_M%pu}!O{GV;%K z+L%LjEVPtVZ^2;JF_vyWitm#gagi^O3&T{2$8rTrj!2ObJ-2S8Zav*Jf0phO=MEMe zZ?doKT=T~PH!8o#^~(}!e`C%#tqNQ@=_W#*meL;+x^^ z{_z3%ALx$#x7~%w7F7+U9H9?flKpnpl8FZv88nKf z^T{?n?HG0*DTgYj(G8Kc^pqTyVl&El>Ol+v>Dvp62D}qODu#1pg2LtsmrF%cW@YZY za$yH%g1#;8=_t%silC2->@CYN%t(!4WvZmlG*31i-3K5}<7dU{oX=lM1PW+iF+5?M z>bvw9OXnZj)SG5FTClzfp{1Vi+HE>iiz|b5ZzwA4YdGl2vP`tG0zyH4Gu4bK?9mZd zc-K;a2r}1(Cw)+BOq2-PbL$|vEVf#YS-g`c^!l4Ref_4rhPNl0WIjZR`n z2~M!6quI!^h9dBZRF_8GUGQPMGe(}Z`pD$LVdZeGsHD#Dob5!-!uRc^tsqGex)Cwl zk1$spbpu`eA8EKaK?yEc;mOOB;;-$gj!<{Z2qLf{*E`OSfKydal@c9>5au3ZhXW4r z1H2eVwz7k3w8Fq6or$N0e#)tyTG@vQ#%Uqkgx(adx?j_z;k(SMd}*H#>*-VT-TB%a(WE&Ji%&5UZX^Z7{|R@Z=qQoX01nFkrdrIp;`Oze0a z5>3r&Tm%-q`hkw`*E7iV*X~ytUo1apuAIS?NBf_^x7JCqxCxnJnK>-22&p~pcKx^!?oqb@vEQhCy_u~o@N~49H z&O?3%W!8KX{c)o@Hk$Bq#xYN_ZM2v0fslQIsu5ADv+gqrSp4DTK_bVnCE1jq?P74=5^DpU);nEOJ zHp+ZN;F)0NlBS)n%QJ;BURL1PYCX+1gZeuhgPw1G-1EsRAE%I0BJV!bb4GC`6U9l` zGV}QlX!3qnTGA}6Kqhuf^uC;T z!9kZaO;{USZ!(DM1YyDry4H+6jcE+oGkn}qKIpYB>73ll`IW9*F^A>!+g`d5@>d@E z^!F4m12Ze|agHlaO$eJgKM(ORcRpDZNmt_XgNUFPqBn>3dOj9cZwrLVPUxqxrgNvY z&TQW81Z$!!^Cy-rurx5Tn<#AeIGbpT&*@CNuxKq3e)UwCo36-Rl~BKLRnt`n*)2Qm zY7#9AE>9sgT=jih#a+l+WZ1@(ZbtMLuyEDVTcm#|k@(G3FrR-;{jOcnGZpY_rx%EQ ziIytft9+LZIP3I|iI|uriFF3y438!^wsSQj76{~?l~OruMI~#DrZ#{pzej=(3lCvH zq;0j7Wad#r_6u!c?!BEY?=;38h>C%KmMv-lps1)X+cbkUSOS^mllq_xmt`XYq4>^J zRxCCZaR^(817q`8^pzUxO05s74pA^=bQsL1wY*yR`Z?Zm~`w{SL`{s|P~V?=APA>Sps7IVI*JC{d>_sTA`h0mE9!hm|uO#QY}IMEd;nK=P1S zlAL12oZUNHN1ttVE4uwlBtPfHypB4j2Q8YcwwVQfP~fi=>9}tbtevhk9L}8V)S)qXKMprk=ayKznDb<>CLbXeTSZp7dc}13_)~Egv?{fRxl)H zTvdBYEhlLExAB{sKCQ20P1rBTlH0an_!{bIc$m^T;G$HItWcn2Z272?DSnoKJ{E`n zYxFSW_;b--CWhsgnz0w89M~JCDy9Gryx}yL?M4x4>gzj_($r?A?{!a^Uc5Ae)R}oo zK;HDYcYim&mIyRN=6nk&%0H6IFJP>8+Pzm;zcek0-o5lG9Q5hg*jd}<4;C~EzR-7z z@ps$g4(^|{VO{CZzmIpylWogJ?$47MEZR)2ksfwnu*iC(*1+yF)W*bb4z^q=j^|o^ zT|P73@H+M$gui8}pbbH#F;CT2k7uI&F~xi$y>J=FM6rhNJPPL~Bp^f0^Zu0J!wW|p zWWH8yB*K^D#XhFmA$=|DjHG zOS?sv5}1GufIj6Q`|C>VCUL%ufDk{tY7zLs{U=ry&YwE%Y^)qy9lUP~g^&4fG`tO* zpiK!R#05Yt$p6auQ?8qd{(&YXeDVuj(xO1Sb%jsuZ(VQhG_@!ZU*6ntVvGD7>%&F- z4?y>O><`!a4gB!@!;Fjo?k4;n_%@s9O)2mSet)q4a{vJF09SXT2>+DgV(H-ecgJr1 zZ+r0D8UEu}4}SU&5<-{sNPpJw^GQ(A!50Q5a#~Fs1Mns&Qvm?<|4^hPf_tzb?pi<( z3`n7Tnm?Zphdw2uEY(dcsF^<5ub#@@koRz+vpGZr0J2g3x2NWG|3lu|6Kv`2=E>vr z_q)5T0E=TtIuOpj5q>ED;q!tKTCdOWE931_;tWp4oe4@}Ko5lPCVscn*npD3p7noH zdfHeASUZFNO?mqQ%ycOcbvU3wy41j*596nv@ZH2e{lNdHA0?bna~(1ue4BBb_GXch zr9%lka&jm5zDvQAv6h!}2waNR3r=6uY*v~S6$KKn;`EOz9 z;ad+A!}RLZ*Kl={kpX~TRBry(>%!zj0Z>^MqMMxXmBf&qEdoOfF*HgeJ(M)k2rAvJq;yLD z2Yepm`MvMCu6;hNz1F?%wf5Q{&V5?TP=d-(Ko6DC&~X4)510R=XwVHTltFYG9OQ!G zkx-(kYe_|`@nccmo_TU*iw+4UApxKQu&$g9_XzT5KNl;z$%VC?nwDIU-)JW`JD62LPPsy6kI9Y6>1VKXsG`Z#Vwtkjs9lfS}*$!k1jZj%KG z%shxm83B5{n(=az>7ey}8NKBlBE2LuLDOBruOByWe?(8WGQ+e+<3C+&UpW}=dzD)6 z(|O?`NRd)c+i;2o2q0``hs+Uam+A$hm;#|hd`i0aM9n=0=~5blIoSC4c=_bEUV6Lv z3V2P@;g8>rdj6qU4VW1=nEVljQrAdn^aunw<+YH8S~|&;8h2<8kahJh=aUCYIbGoI zbG_{NV(qf!7m&s#;Q_$8Ba8y`slq2rz|;|AN^{vW|8Cy%R&;|OrS0OQgi1o^>1kwS z_9`69@4~u;$KJ~M*@aP2d6AvObsYTHSDm-!f zm^P_!i)TypJsiE835pUZD1NIg5JtGHNuGSGhp=?aEq*mrim3oNfl7crP^_O|t@_1Q zs3~K}Bm;%o*dP=6)6XShdA&gihu=#elWB1JPN=EzVP#-M{n;KW`>xe?x0^vxf(Utn z_2N3L-)_XB$_^3#)>9%<0Ny;PrbbXa7g7mXE**?|L0H(Gqc3#-l8`4|Es-v=WxEv{ z3XPMPT&s4OGVd+tcEcwKzt`oxi2&gBf}3jxMD-c406E<_^OUxa@rpN4FmNEz;)|;k z&xhQw7!QcN7xpmu$>k&)yeEo^g4OE}Q~h>F$nq1cJ~T?_I8ZGT&_qw7om9vtr7>kP zep8;W<-G&Wp(3DXNySS{=ROlS-WOylwu#2Ct3-pW@#?yDZl+Dp>U7mwEDw}#(R3s^ zjrN~`2#jO0>Ex%*S;`5itac!g#ElR1(|yh81Ml@j8ur!DS5&@lZ8Q_6w_(sqVu^MO zPNCx`%eL8eedWTQE~kA&DAV(>!*>8fv*4uDwpOt^2V=-qI=~y+QKwvIvE5&$7-jqx z*lX&}#IBrJ_|iB)c1|Zj_9K7td~ojyc&MeV4(w^z94xZuudrrt?p+2MCx`)6wK^{n z+SJqVnNoN+c6$fAeEEuAr7)HL>;qBUft;%Osj1vi^WZ0)if;CJMS^UHb?dP%WjlSS z86};mE8dSWy>@<5j zdRn(BJLsH@<{=MI6`Yo%thSlc7Y7EbzU7=*oG4q~hU8Hi+)t{3Y(HyB-;WQ?SdW5F z1)?i0qGx>naj1&P%g?i^vV<2NyZ%6{yeNomhxIo4cG{LE5jC_1{+V|Y%0++hAPy3B zE>%lVnf>{q3qM5yy`O?|riC`CI`tSvYJblSyY1^MXCTI7KZ7T`3~;W@H%2(?H}A}X z;Vj!i5blUZhp=n}Wv}>3X#kJu7DIrntA*?V@Jl-yLWx_SRxjg=A+G>v zTRT#J#!s6pE|kyvM$r7;@h$WkMc)^h#6>XGQ#-DyfeYI=mWgt zzCZkMz?g;$={Q3^IEWiSg78r}yxUe8_>@+7L({F^=~!v443x(Td2^=!(4!MoK*4~Wzsy)cmq@hE^gX{t!#(2D)%f3{X?({W%$ftk!u-^ov5x} z&AFlHHXzSC7{@2cw6iTiUPu;a3C3yM=OUNNF;U|z0oiew%IPaG+#;@RX2WwZw9eJ# z-&x!59Wkrr<ZG1)pI zc@t;>2aNYQ?8IiX3{wk}DYG0nDWVMFwi{ev)VO!wdDP~cCel7Uod~2S*UUe@S%+O{ zV5z#~y$dl*@l?c#CzDNa?yQ;*|MZEuDPp{@+q5ljRj7S4-%!in;9X#m!*KJGmvTM8 z?bJM^IABJLBr(p_0lN?0&!Qe9fr~y;X5T_SCWLyPtsyAHdj=+6i;76N0mt^JezwDR zg|DAO6D_l`_8X}HtmaSI6TXmxK@zwA3!x$HZbvlY6#l^*U0^s$tD zT?UB=4f1QySY)>f+)@27ML(VMKP zARoT)KQ1mk;OmphH3)G76p;1WJQIqJu2{Imv8Bm3Nv zWUeeJKLuI&4niUFXNfUQc`hJV*7V9UOD)K$Ry?;EnD~91&1CHHL{8YZ;aQhn!fqd? z^TUb#$+r;(_!z*?RdY3(tu&u4RH5*k9@ef&z26#Nxex@{hmfg-<}( znn?Nj-n>!#+(&4s3r!S@9V2p9c4>4i!DOr($eXhmuib3qk0|9pt7xJC32*lqVBJ{i zJDshu3nQJw4FQ$sY3!4RaLLVA=eJ%&ih9@-h8SEv!uOH8EyH?8b%DZeaDZ}CY0*`(;&Kf0?D_WT&=ciHt;$m?leJ8TP+Kcud*{k+9>-6smnQ~# zq!DEEgowxaF(>y^*M#zXP**I9QU9i0mx6)%sni$Vmm(5l!=EqL?DdQIhs18y+4BBS z9>WjQurn6#c6D}jJwBDX`NKDJ7lL1_&B#|@vrC?K8;W3#%~9WX1=G5uIhlUp-fQ{6 zp|OoOuAHl0fw!ugiaFeE`}zZCi53wR1tFw>G^GcoG_!N}!0Pdqo_jciICVlcvwuWo_~OjX7K3-BqY~sKI`rDOo#qN!uM)r3+#_O1_gFh*xiFu zfDw{gN`j8z+O(ZAXDcioTuSpM=%}arePgRBdD>OYQeT)jYA-rjzT-6JE0b%!I@}wc ziyeI;_`N{?V=*fw8>>K<`YHRjCUZ(0>{VHJZ^baEP^E3FiF zRRK4LP682WM(~U-!3U*Jq~Znq`@J%(q1FM-dY|9I}n=;)WO+?G}G3A7#|| zH01@!m^oaZTZ^FJ2|!%RJ?|D{i*{ zI9$&fC=hbt%@*Ynx%nD`EA&b_6>YQ)g07)!OY}T9#}US!N;44q6t4Z=%FJK2^+E5t zI%WQPkx;StA$I@W#3MDm#KWYa&=fya}}@Nfmijk3ob_k(HnY!2sCE)GY>iV_yh-VJ%&jZh~MXzZFVJHFdK zd0d)hI!bPh8lTZL%*mK8UzFTTu6OE>{h%n@)Z{SwJgAST(eiL3S5UGV(_PJd3D&w; z$41@U&9xJQL)9qX(Je!RYT3Lr^I9gVHG0+dIfUrRQTjMr^0>2w)J00} zMo<5fv`h-)0$SR{0ads_>yN*@FvDq`5SUzqkFiz z0ySW65cm*Eu#W9>Yb3&4l5ELYTQ&g5_%JYXI?npee-s3bm~}95y5Od&N>d8ng9ON^SHVXi7IBXR#U{RQQ09;pMb@OO;o2qII{d#2vQu9yE-rzgZ0x)9$icmT-vf;8Mda zkV|eme!T<<7Q|4aq)$-RhE>=)=oJ#;hZi0j62IqKI5XGA5R}F5vRwlt{zXzn+lSVyjr_A#QK|fTy!O}9Javyzb|P31vIzzq@0RSf6*cfZigOV3}1GuHECSr4}Y$2Q((dnv5Ye$r*3qzGt(V z-?6^y4|$r~)><2S+{xlW&HrW)nwqHBsy-jGo1ns6Eo>$^it%2;GK2_Y_KCHA8IouR-AvV~b**?^ zQjj4PCaO)ZQD?NM_+mQVwV*C$Ol3g6slxw#P!D9>xY< zm#~M7=BQ&PtfH5%)I6BUhO)Ejtjbx;c&MI8?D0a++}_kraOSkhzpEbhZr0auQ`9SRl>P07@qgnGFveRu!6X0TVe3SF7$5#l28n zs;oQd$+pE=caN^JZH(dXB6X{n27xkzwZB0?OpN5CCozJEByI^rbFXg83(hzdqa%6Y zWmJ!k)>r|`2N4`_*@e+Gn(F#*M0_X%?zt76LzvW&sboHEN|BBD*&urS5ASzI)2C%xOGsQIUFRk7r_^CX`fcUhs>C5g zc5B36aU^x{B>#+*JL;zCMNCtlYMIoI!BKpjZ_DP1Efz@^pB6xH1?*zuWmy>Ml7yw# z!5FtSSJ{`GV4jwJe}y$nXuiJ4G0)KxV$$?UZ(IG+ExnP8Gf_QT3r*bCRU~*Qt3WHc zIA!UmGuHJ${EkA*S!N8Y7IX2ud#o4a;<*sZj|7>~V~1NZ8}3OH3w5eWUp3r|<&rSA z9V-Uvy~ISkM{x*G8d$ZK#O^Vjn+?cDx-lu{2$7nvg`vD%Ji@of-O-@SNnW=I+SZTP zxhRj~6rgTW2()*Mk|hZ$y+}u^P4k%>xTJsaLFvs=YYP~Y_H2L`PSZ!5$Ie{Bl7! z5mBIE|I|INFmv!(e(k{q@s+MrQW!m$`UH8roPQ+#57R^t*RRB| zUQqu(d9V1!5HtPWY9PLrdSTc;?H&>_cyQhxj@3a7FO2(b)vr_c|Ej9 zRt?C-`$yUeKO=Hv=&k=jO;@L;?nV~#*yY(xL5rJw)|TcrjyA6UPjK4Ha{2>g#iB@X zvcJHkDPe>fw10wMvsq3*xrvJj0Nh6Y7$Es8;1w0@i!Sv)0W{YWy{SV@JJ0Z&$usAt z=Jt;rT==fJAg{&0{bfMTzhT_6pjjO9x56VJ0KoniG&dsv2Il4hB3t-J&~*xs9yKi! z>+cjAviD_FWO*Gd|C{1}dii&`oE)$co&PPjXV-nE5!oLhWPeEi;soJ@nW@wKTdv5} zNg@4yJ)nP_0RRHP`TcON-wYkhY#e_!;OBtRT#v%4CN=6H7tBnH{C`G;9(hX*r5@IB z_8|MNKm!0U{6&P38yUrphP=Z6cJmtWofb8!ywDXOY*vfn&vRtB;)=)Fch?Kawi>yp z|H88p1;84aZd^6{j~j3u^hE+Jk%bBXm?KZ<&-+s0ck4C)7QsyWpP+kJnXIUMmXeS` zDd_(lF&>Hkbj8`y!qdY3F|W&iXZ5-wN^NR1a!CNpo1XG_9vadAb{_w)&g)D4&f)sl z#r2=r`=hdJY_5mYXm6wdFh>-+-`Lkz|GI{?y259I$kDuqJb}OGMn?X>_|9gImQNl2 cKQ%-k^K>WyV1z)5fAgg3(F3PcuLkG;0FC<}$^ZZW delta 7131 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 delta 7131 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 TGQw6SP*VdMBrUZ@5J1_6e@j>Yx}J985= z^YoD|1N(NCn>6z-dxptc`f_XtcPN64?VE3Mm6e%+VKdM>QYh|7bzqqM&OjDP1K6zJ YZqf?-oY8DdO-{_o(JO{q?BSsX0HB4l-~a#s delta 571 zcmaDif$`l0M&1B#W)?065D?DOoX9K3AtrJlBQEND#^lxZlFT46e*<=q*zD-<6We-0 zB9ku(sl$Xe376||iZC!SaDenrcHz>2$xJTiy37eTd2)ljGKSHUkJ}rE|Y9=IMuquri<+ z;NvdM#H&9!(_INgnAby^X@~w~Ee~lF;k7{37Y!z#a#w^2+ku=M6|mRYkez{{PK1F$ z1jWf(CI|{n%A5JEEIZ{teq$s1iI!S;E0 Gr~v>2cB2RY diff --git a/gateway/esp32s3.zip b/gateway/esp32s3.zip index 7b4157b0cbfb869d80e716b32d461ab555202cbb..f915a77979880002d211d09dc5d65c307e1642d0 100644 GIT binary patch delta 632 zcmaDif$`l0M&1B#W)?065C{x$n#e21A!&IpgX=O&=H!2RlFT46e*?JK#P%ML(By5_ z8gQ}A&#XUla5J-rFfcK2fDD;@L{|qcJNbw1B~FBtxrr8BYICNE7dzNEF-CQSs4HWc z4kz42lP~Kj!{uO3nk=Pnh!70c&j*`w&j8`j&0>af%wW-@`Uo2*f7idm%g7|hj4=M0 ziw-l;$CE#}%Yc=exZ0uc`8}kWI2kAFcu1lMzjl>oGUuAi;U)_cwgdV+Ix1kVvmrYJ zL!Af%g9w8JI9M5h3d!gCL3#M};PDbd`WA7MpD6#%2!E0Ja25@Io~(FbFXGbu6|=*qNJ{nWv9z z8Q8b8+@zUz*)vSm(wAdHxI+`C?C9?q6We=0 zLX$5Esl&xKGYXgKaEdT6F>rv4nC!x(1DBgz!F7ofZu;Z~du0scCm**rgsY$AkPkNh zw6hjmZ1P{{JKW4H2n&iF5DwbB%0Z49tR