From b407960ab3b7011278fbf13d72624e3d127a26fc Mon Sep 17 00:00:00 2001
From: bernd <bernd@heizung>
Date: Sun, 4 Feb 2024 21:45:31 +0100
Subject: [PATCH] print exception, add script for reset to bootloader

---
 firmware/rust1/reset.py              | 11 +++++++++++
 firmware/rust1/rtumaster_pymodbus.py |  4 +++-
 2 files changed, 14 insertions(+), 1 deletion(-)
 create mode 100644 firmware/rust1/reset.py

diff --git a/firmware/rust1/reset.py b/firmware/rust1/reset.py
new file mode 100644
index 0000000..2e20e03
--- /dev/null
+++ b/firmware/rust1/reset.py
@@ -0,0 +1,11 @@
+# https://github.com/earlephilhower/arduino-pico/blob/c095fce5b2f26b03fa0e6374e3371a1799abb5b1/tools/uf2conv.py#L374C1-L382C32
+import serial, time
+ser = serial.Serial()
+ser.port = "/dev/ttyACM0"
+ser.open()
+ser.baudrate = 9600
+ser.dtr = True
+time.sleep(0.1)
+ser.dtr = False
+ser.baudrate = 1200
+ser.close()
diff --git a/firmware/rust1/rtumaster_pymodbus.py b/firmware/rust1/rtumaster_pymodbus.py
index bd890c2..9c8ba68 100644
--- a/firmware/rust1/rtumaster_pymodbus.py
+++ b/firmware/rust1/rtumaster_pymodbus.py
@@ -39,6 +39,8 @@ def main():
         logger.info("connected")
 
         x = client.read_holding_registers(address=1, count=1, slave=DEVICE_ADDR)
+        if isinstance(x, ModbusException):
+            raise x
         logger.info("holding reg 1: %s: %r", x, x.registers)
 
         scratch_reg = 2
@@ -96,7 +98,7 @@ def main():
             time.sleep(0.1)
 
     except ModbusException as exc:
-        logger.error("%s", exc)
+        logger.exception("%s", exc)
 
 if __name__ == "__main__":
     main()
-- 
GitLab