This commit is contained in:
Thaddeus Hughes
2026-06-10 16:40:27 -05:00
parent 85206e1dca
commit 20afd3d9ef
78 changed files with 3047 additions and 42944 deletions

486
BRINGUP_18MAY2026_1031.txt Normal file
View File

@@ -0,0 +1,486 @@
10:31:38.960
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
10:31:38.962 erase_flash @ COM3
10:31:43.318 flashing from D:\SC\SC-F001\build
10:31:43.318 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
10:32:08.923 Flash complete
10:32:10.424 Connecting to COM3 @ 115200 ...
10:32:10.437 -> BU.BEGIN
10:32:10.673 <- BU.BEGIN
10:32:10.673 <-
10:32:10.673 <-
10:32:10.673 <- BU.OK begin fw=85206e1 board=V5 t=0.00
10:32:10.676 -> BU.INFO
10:32:10.676 <- E rmt: hw buffer too small, received symbols truncated
10:32:10.688 <- I (1860) BT_HID: Scanning for HID devices (3s)...
10:32:10.688 <- I (1860) BT_HID: BLE HID host initialised
10:32:10.693 <- I (1860) WEBSERVER: Initializing webserver...
10:32:10.693 <- I (1860) WEBSERVER: AP LAUNCHING
10:32:10.693 <- I (1880) wifi:wifi driver task: 3ffe28d8, prio:23, stack:6656, core=0
10:32:10.693 <- I (1880) wifi:wifi firmware version: ccaebfa
10:32:10.693 <- I (1880) wifi:wifi certification version: v7.0
10:32:10.720 <- I (1880) wifi:config NVS flash: enabled
10:32:10.720 <- I (1880) wifi:config nano formating: disabled
10:32:10.720 <- I (1890) wifi:Init data frame dynamic rx buffer num: 32
10:32:10.720 <- I (1890) wifi:Init static rx mgmt buffer num: 5
10:32:10.720 <- I (1900) wifi:Init management short buffer num: 32
10:32:10.720 <-
10:32:10.741 <- BU.OK info reset=POWERON heap=111588 min_heap=111588 fw=85206e1 build=2026-05-01 23:33:51
10:33:33.716 -> BU.FLASH
10:33:33.716 <- I (1900) wifi:Init dynamic tx buffer num: 32
10:33:33.716 <- I (1910) wifi:Init static rx buffer size: 1600
10:33:33.716 <- I (1920) wifi:Init static rx buffer num: 10
10:33:33.716 <- I (1920) wifi:Init dynamic rx buffer num: 32
10:33:33.717 <- I (1930) wifi_init: rx ba win: 6
10:33:33.717 <- I (1930) wifi_init: accept mbox: 6
10:33:33.717 <- I (1930) wifi_init: tcpip mbox: 32
10:33:33.717 <- I (1940) wifi_init: udp mbox: 6
10:33:33.717 <- I (1940) wifi_init: tcp mbox: 6
10:33:33.718 <- I (1940) wifi_init: tcp tx win: 5760
10:33:33.718 <- I (1950) wifi_init: tcp rx win: 5760
10:33:33.718 <- I (1950) wifi_init: tcp mss: 1440
10:33:33.718 <- I (2240) wifi:mode : softAP (80:f3:da:65:a9:15)
10:33:33.718 <- I (2250) wifi:Total power save buffer number: 16
10:33:33.718 <- I (2250) wifi:Init max length of beacon: 752/752
10:33:33.719 <- I (2250) wifi:Init max length of beacon: 752/752
10:33:33.719 <- I (2250) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
10:33:33.719 <- I (2260) DNS_SERVER: DNS server started on port 53
10:33:33.719 <- I (2260) mdns_mem: mDNS task will be created from internal RAM
10:33:33.719 <- I (2270) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
10:33:33.720 <- I (2280) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
10:33:33.720 <- I (2280) WEBSERVER: STARTING HTTP
10:33:33.720 <- I (2290) WEBSERVER: HTTP server started successfully
10:33:33.720 <- I (2290) WEBSERVER: Registered URI handler: /
10:33:33.720 <- I (2300) WEBSERVER: Registered URI handler: /get
10:33:33.720 <- I (2300) WEBSERVER: Registered URI handler: /post
10:33:33.721 <- I (2310) WEBSERVER: Registered URI handler: /log
10:33:33.721 <- I (2310) WEBSERVER: Registered URI handler: /ota
10:33:33.721 <- I (2320) WEBSERVER: Registered URI handler: /*
10:33:33.721 <- I (2330) WEBSERVER: Webserver initialization complete
10:33:33.722 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.722 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.722 <- I (4870) BT_HID: Found 0 HID device(s)
10:33:33.722 <- I (4870) BT_HID: No HID devices found, retrying in 2000ms...
10:33:33.722 <- I (6870) BT_HID: Scanning for HID devices (3s)...
10:33:33.722 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.722 <- I (9880) BT_HID: Found 0 HID device(s)
10:33:33.722 <- I (9880) BT_HID: No HID devices found, retrying in 2000ms...
10:33:33.723 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.723 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.723 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.723 <- I (11880) BT_HID: Scanning for HID devices (3s)...
10:33:33.723 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.724 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.724 <- I (14890) BT_HID: Found 0 HID device(s)
10:33:33.724 <- I (14890) BT_HID: No HID devices found, retrying in 2000ms...
10:33:33.724 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.725 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.725 <- I (16890) BT_HID: Scanning for HID devices (3s)...
10:33:33.725 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.725 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.725 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.725 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.725 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.725 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.725 <- I (19900) BT_HID: Found 0 HID device(s)
10:33:33.726 <- I (19900) BT_HID: No HID devices found, retrying in 2000ms...
10:33:33.726 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.726 <- I (21900) BT_HID: Scanning for HID devices (3s)...
10:33:33.726 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.727 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.727 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.727 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.727 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.727 <- I (24910) BT_HID: Found 0 HID device(s)
10:33:33.728 <- I (24910) BT_HID: No HID devices found, retrying in 2000ms...
10:33:33.728 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.728 <- I (26910) BT_HID: Scanning for HID devices (3s)...
10:33:33.728 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.729 <- I (29920) BT_HID: Found 0 HID device(s)
10:33:33.729 <- I (29920) BT_HID: No HID devices found, retrying in 2000ms...
10:33:33.729 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.729 <- I (31920) BT_HID: Scanning for HID devices (3s)...
10:33:33.730 <- I (34930) BT_HID: Found 0 HID device(s)
10:33:33.730 <- I ( small, received symbols truncated
10:33:33.730 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.730 <- E rmt: hw buffer too small, rece, received symbols truncated
10:33:33.730 <- E rmt: hw buffer too small, rece, received symbols truncated
10:33:33.730 <- E rmt: hw buffer too small, received symbols truncated
10:33:33.730 <- ived symbols truncated
10:33:33.730 <- ived symbols truncated
10:33:33.730 <- ived symbols truncated
10:33:33.730 <- ived symbols truncated
10:33:33.730 <- ived symbols truncated
10:33:33.730 <- ived symbols truncated
10:33:33.730 <- ived symbols truncated
10:33:33.730 <- ived symbols truncated
10:33:33.730 <- ived symbols truncated
10:33:33.731 <- ived symbols truncated
10:33:33.731 <- ived symbols truncated
10:33:33.731 <- ived symbols truncated
10:33:33.731 <- ived symbols truncated
10:33:33.731 <- ived symbols truncated
10:33:33.731 <- ived symbols truncated
10:33:33.731 <- ived symbols truncated
10:33:33.731 <- ived symbols truncated
10:33:33.731 <- ived symbols truncated
10:33:33.731 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.732 <- ived symbols truncated
10:33:33.733 <- ived symbols truncated
10:33:33.733 <- ived symbols truncated
10:33:33.733 <- ived symbols truncated
10:33:33.733 <- ived symbols truncated
10:33:33.733 <- ived symbols truncated
10:33:33.733 <- ived symbols truncated
10:33:33.733 <- ived symbols truncated
10:33:33.733 <- ived symbols truncated
10:33:33.733 <- ived symbols truncated
10:33:33.733 <- ived symbols truncated
10:33:33.734 <- ived symbols truncated
10:33:33.734 <- ived symbols truncated
10:33:33.734 <- ived symbols truncated
10:33:33.734 <- ived symbols truncated
10:33:33.734 <- ived symbols truncated
10:33:33.734 <- ived symbols truncated
10:33:33.734 <- ived symbols truncated
10:33:33.734 <- ived symbols truncated
10:33:33.734 <- ived symbols truncated
10:33:33.734 <- ived symbols truncated
10:33:33.734 <- ived symbols truncated
10:33:33.735 <- ived symbols truncated
10:33:33.735 <- ived symbols truncated
10:33:33.735 <- ived symbols truncated
10:33:33.735 <- ived symbols truncated
10:33:33.735 <- ived symbols truncated
10:33:33.735 <- ived symbols truncated
10:33:33.735 <- ived symbols truncated
10:33:33.735 <- ived symbols truncated
10:33:33.735 <- ived symbols truncated
10:33:33.735 <- ived symbols truncated
10:33:33.735 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.736 <- ived symbols truncated
10:33:33.737 <- ived symbols truncated
10:33:33.737 <- ived symbols truncated
10:33:33.737 <- ived symbols truncated
10:33:33.737 <- ived symbols truncated
10:33:33.737 <- ived symbols truncated
10:33:33.737 <- ived symbols truncated
10:33:33.737 <- ived symbols truncated
10:33:33.737 <- ived symbols truncated
10:33:33.737 <- ived symbols truncated
10:33:33.737 <- ived symbols truncated
10:33:33.737 <- ived symbols truncated
10:33:33.738 <- ived symbols truncated
10:33:33.738 <- ived symbols truncated
10:33:33.738 <- ived symbols truncated
10:33:33.738 <- ived symbols truncated
10:33:33.738 <- ived symbols truncated
10:33:33.738 <- ived symbols truncated
10:33:33.738 <- ived symbols truncated
10:33:33.738 <- ived symbols truncated
10:33:33.738 <- ived symbols truncated
10:33:33.738 <- ived symbols truncated
10:33:33.739 <- ived symbols truncated
10:33:33.739 <- ived symbols truncated
10:33:33.739 <- ived symbols truncated
10:33:33.739 <- ived symbols truncated
10:33:33.739 <- ived symbols truncated
10:33:33.739 <- ived symbols truncated
10:33:33.739 <- ived symbols truncated
10:33:33.739 <- ived symbols truncated
10:33:33.739 <- ived symbols truncated
10:33:33.739 <- ived symbols truncated
10:33:33.739 <- ived symbols truncated
10:33:33.740 <- ived symbols truncated
10:33:33.740 <- ived symbols truncated
10:33:33.740 <- ived symbols truncated
10:33:33.740 <- ived symbols truncated
10:33:33.740 <- ived symbols truncated
10:33:33.740 <- ived symbols truncated
10:33:33.740 <- ived symbols truncated
10:33:33.740 <- ived symbols truncated
10:33:33.740 <- ived symbols truncated
10:33:33.740 <- ived symbols truncated
10:33:33.740 <- ived symbols truncated
10:33:33.741 <- ived symbols truncated
10:33:33.741 <- ived symbols truncated

137
BRINGUP_18MAY2026_1033.txt Normal file
View File

@@ -0,0 +1,137 @@
10:33:57.732
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
10:33:57.734 erase_flash @ COM3
10:34:01.505 flashing from D:\SC\SC-F001\build
10:34:01.507 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
10:34:26.696 Flash complete
10:34:28.197 Connecting to COM3 @ 115200 ...
10:34:28.210 -> BU.BEGIN
10:34:28.470 <- BU.BEGIN
10:34:28.470 <-
10:34:28.470 <-
10:34:28.470 <- BU.OK begin fw=85206e1 board=V5 t=0.00
10:34:28.473 -> BU.INFO
10:34:28.473 <- E rmt: hw buffer too small, received symbols truncated
10:34:28.485 <- I (1880) BT_HID: Scanning for HID devices (3s)...
10:34:28.485 <- I (1880) BT_HID: BLE HID host initialised
10:34:28.490 <- I (1880) WEBSERVER: Initializing webserver...
10:34:28.490 <- I (1880) WEBSERVER: AP LAUNCHING
10:34:28.490 <- I (1900) wifi:wifi driver task: 3ffe28f8, prio:23, stack:6656, core=0
10:34:28.490 <- I (1900) wifi:wifi firmware version: ccaebfa
10:34:28.490 <- I (1900) wifi:wifi certification version: v7.0
10:34:28.516 <- I (1900) wifi:config NVS flash: enabled
10:34:28.516 <- I (1900) wifi:config nano formating: disabled
10:34:28.516 <- I (1910) wifi:Init data frame dynamic rx buffer num: 32
10:34:28.516 <- I (1910) wifi:Init static rx mgmt buffer num: 5
10:34:28.516 <- I (1920) wifi:Init management short buffer num: 32
10:34:28.516 <-
10:34:28.538 <- BU.OK info reset=POWERON heap=111556 min_heap=111556 fw=85206e1 build=2026-05-01 23:33:51
10:34:30.409 -> BU.FLASH
10:34:30.409 <- I (1920) wifi:Init dynamic tx buffer num: 32
10:34:30.410 <- I (1930) wifi:Init static rx buffer size: 1600
10:34:30.410 <- I (1940) wifi:Init static rx buffer num: 10
10:34:30.410 <- I (1940) wifi:Init dynamic rx buffer num: 32
10:34:30.410 <- I (1950) wifi_init: rx ba win: 6
10:34:30.410 <- I (1950) wifi_init: accept mbox: 6
10:34:30.410 <- I (1950) wifi_init: tcpip mbox: 32
10:34:30.410 <- I (1960) wifi_init: udp mbox: 6
10:34:30.410 <- I (1960) wifi_init: tcp mbox: 6
10:34:30.411 <- I (1960) wifi_init: tcp tx win: 5760
10:34:30.411 <- I (1970) wifi_init: tcp rx win: 5760
10:34:30.411 <- I (1970) wifi_init: tcp mss: 1440
10:34:30.411 <- I (2260) wifi:mode : softAP (80:f3:da:65:a9:15)
10:34:30.411 <- I (2260) wifi:Total power save buffer number: 16
10:34:30.411 <- I (2270) wifi:Init max length of beacon: 752/752
10:34:30.411 <- I (2270) wifi:Init max length of beacon: 752/752
10:34:30.411 <- I (2270) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
10:34:30.411 <- I (2280) DNS_SERVER: DNS server started on port 53
10:34:30.412 <- I (2280) mdns_mem: mDNS task will be created from internal RAM
10:34:30.412 <- I (2290) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
10:34:30.412 <- I (2300) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
10:34:30.413 <- I (2300) WEBSERVER: STARTING HTTP
10:34:30.413 <- I (2310) WEBSERVER: HTTP server started successfully
10:34:30.413 <- I (2310) WEBSERVER: Registered URI handler: /
10:34:30.413 <- I (2320) WEBSERVER: Registered URI handler: /get
10:34:30.413 <- I (2320) WEBSERVER: Registered URI handler: /post
10:34:30.433 <- I (2330) WEBSERVER: Registered URI handler: /log
10:34:30.433 <- I (2330) WEBSERVER: Registered URI handler: /ota
10:34:30.434 <- I (2340) WEBSERVER: Registered URI handler: /*
10:34:30.434 <- I (2340) WEBSERVER: Webserver initialization complete
10:34:30.434 <-
10:34:30.940 <- BU.OK flash post_part=roundtrip log_head=11 log_tail=0 partitions_size=4128768
10:34:32.493 -> BU.I2C
10:34:32.522 <- I (4890) BT_HID: Found 0 HID device(s)
10:34:32.522 <- I (4890) BT_HID: No HID devices found, retrying in 2000ms...
10:34:32.522 <- E rmt: hw buffer too small, received symbols truncated
10:34:32.522 <- I (5940) I2C: POST: TCA9555 OK (port0=0x0121)
10:34:32.522 <-
10:34:33.038 <- BU.OK i2c tca9555=ack
10:34:33.042 -> BU.LED.WATCH
10:34:33.555 <-
10:34:33.555 <- BU.EVENT led t=4.84 pressed=0
10:34:33.555 <- I (6890) BT_HID: Scanning for HID devices (3s)...
10:34:34.564 <- E rmt: hw buffer too small, received symbols truncated
10:34:34.564 <-

File diff suppressed because it is too large Load Diff

View File

@@ -1,839 +0,0 @@
13:29:29.980
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
13:29:29.981 erase_flash @ COM3
13:29:33.264 flashing from D:\SC\SC-F001\build
13:29:33.265 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
13:29:58.139 Flash complete
13:29:59.640 Connecting to COM3 @ 115200 ...
13:29:59.645 -> BU.BEGIN
13:29:59.892 <- BU.BEGIN
13:29:59.892 <-
13:29:59.892 <- BU.OK begin fw=9f4362b-dirty board=V5 t=0.00
13:29:59.893 -> BU.INFO
13:29:59.893 <- E rmt: hw buffer too small, received symbols truncated
13:29:59.905 <- I (1741) SENS: EVENT 2
13:29:59.905 <- I (1741) SENS: FALLING
13:29:59.905 <- I (1741) SENS: SAFETY BREAK - Relays disabled
13:29:59.912 <- I (1861) BT_HID: Scanning for HID devices (3s)...
13:29:59.912 <- I (1861) BT_HID: BLE HID host initialised
13:29:59.912 <- I (1861) WEBSERVER: Initializing webserver...
13:29:59.912 <- I (1861) WEBSERVER: AP LAUNCHING
13:29:59.933 <- I (1881) wifi:wifi driver task: 3ffe2838, prio:23, stack:6656, core=0
13:29:59.933 <- BU.OK info reset=POWERON heap=118600 min_heap=118512 fw=9f4362b-dirty build=2026-04-27 18:28:59
13:30:29.734 -> BU.FLASH
13:30:29.735 <- I (1881) wifi:wifi firmware version: ccaebfa
13:30:29.735 <- I (1881) wifi:wifi certification version: v7.0
13:30:29.735 <- I (1891) wifi:config NVS flash: enabled
13:30:29.735 <- I (1891) wifi:config nano formating: disabled
13:30:29.735 <- I (1901) wifi:Init data frame dynamic rx buffer num: 32
13:30:29.735 <- I (1901) wifi:Init static rx mgmt buffer num: 5
13:30:29.735 <- I (1901) wifi:Init management short buffer num: 32
13:30:29.735 <- I (1911) wifi:Init dynamic tx buffer num: 32
13:30:29.736 <- I (1911) wifi:Init static rx buffer size: 1600
13:30:29.736 <- I (1921) wifi:Init static rx buffer num: 10
13:30:29.736 <- I (1921) wifi:Init dynamic rx buffer num: 32
13:30:29.736 <- I (1931) wifi_init: rx ba win: 6
13:30:29.736 <- I (1931) wifi_init: accept mbox: 6
13:30:29.737 <- I (1931) wifi_init: tcpip mbox: 32
13:30:29.737 <- I (1941) wifi_init: udp mbox: 6
13:30:29.737 <- I (1941) wifi_init: tcp mbox: 6
13:30:29.737 <- I (1941) wifi_init: tcp tx win: 5760
13:30:29.737 <- I (1951) wifi_init: tcp rx win: 5760
13:30:29.737 <- I (1951) wifi_init: tcp mss: 1440
13:30:29.738 <- I (2241) wifi:mode : softAP (80:f3:da:65:45:4d)
13:30:29.738 <- I (2251) wifi:Total power save buffer number: 16
13:30:29.738 <- I (2251) wifi:Init max length of beacon: 752/752
13:30:29.738 <- I (2251) wifi:Init max length of beacon: 752/752
13:30:29.739 <- I (2251) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
13:30:29.739 <- I (2261) DNS_SERVER: DNS server started on port 53
13:30:29.739 <- I (2271) mdns_mem: mDNS task will be created from internal RAM
13:30:29.739 <- I (2271) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
13:30:29.739 <- I (2281) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
13:30:29.739 <- I (2281) WEBSERVER: STARTING HTTP
13:30:29.739 <- I (2291) WEBSERVER: HTTP server started successfully
13:30:29.740 <- I (2291) WEBSERVER: Registered URI handler: /
13:30:29.740 <- I (2301) WEBSERVER: Registered URI handler: /get
13:30:29.740 <- I (2301) WEBSERVER: Registered URI handler: /post
13:30:29.740 <- I (2311) WEBSERVER: Registered URI handler: /log
13:30:29.740 <- I (2321) WEBSERVER: Registered URI handler: /ota
13:30:29.741 <- I (2321) WEBSERVER: Registered URI handler: /*
13:30:29.741 <- I (2331) WEBSERVER: Webserver initialization complete
13:30:29.741 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.741 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.741 <- I (4871) BT_HID: Found 0 HID device(s)
13:30:29.741 <- I (4871) BT_HID: No HID devices found, retrying in 2000ms...
13:30:29.742 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.742 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.742 <- I (6871) BT_HID: Scanning for HID devices (3s)...
13:30:29.742 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.742 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.742 <- I (9881) BT_HID: Found 0 HID device(s)
13:30:29.743 <- I (9881) BT_HID: No HID devices found, retrying in 2000ms...
13:30:29.743 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.743 <- I (11881) BT_HID: Scanning for HID devices (3s)...
13:30:29.743 <- I (14891) BT_HID: Found 0 HID device(s)
13:30:29.743 <- I (14891) BT_HID: No HID devices found, retrying in 2000ms...
13:30:29.744 <- I (16891) BT_HID: Scanning for HID devices (3s)...
13:30:29.744 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.744 <- I (19901) BT_HID: Found 0 HID device(s)
13:30:29.744 <- I (19901) BT_HID: No HID devices found, retrying in 2000ms...
13:30:29.744 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.744 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.744 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.744 <- I (21901) BT_HID: Scanning for HID devices (3s)...
13:30:29.745 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.745 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.745 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.745 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.745 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.746 <- I (24911) BT_HID: Found 0 HID device(s)
13:30:29.746 <- I (24911) BT_HID: No HID devices found, retrying in 2000ms...
13:30:29.746 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.746 <- I (26911) BT_HID: Scanning for HID devices (3s)...
13:30:29.746 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.746 <- E rmt: hw buffer too small, received symbols truncated
13:30:29.746 <- I (29921) BT_HID: Found 0 HID device(s)
13:30:29.746 <- I (29921) BT_HID: No HID devices found, retrying in 2000ms...
13:30:30.261 <- E rmt: hw buffer too small, received symbols truncated
13:30:30.261 <- BU.OK flash post_part=roundtrip log_head=11 log_tail=0 partitions_size=4128768
13:30:31.875 -> BU.I2C
13:30:31.875 <- I (31921) BT_HID: Scanning for HID devices (3s)...
13:30:31.911 <- E rmt: hw buffer too small, received symbols truncated
13:30:31.911 <- E rmt: hw buffer too small, received symbols truncated
13:30:31.911 <- E rmt: hw buffer too small, received symbols truncated
13:30:31.911 <- I (33871) I2C: POST: TCA9555 OK (port0=0x0021)
13:30:31.911 <- BU.OK i2c tca9555=ack
13:30:31.913 -> BU.LED.WATCH
13:30:32.414 <- E rmt: hw buffer too small, received symbols truncated
13:30:32.414 <- BU.EVENT led t=32.26 pressed=0
13:30:32.414 <- E rmt: hw buffer too small, received symbols truncated
13:30:33.423 <- I (34931) BT_HID: Found 0 HID device(s)
13:30:33.423 <- I (34931) BT_HID: No HID devices found, retrying in 2000ms...
13:30:33.423 <- E rmt: hw buffer too small, received symbols truncated
13:30:33.423 <- E rmt: hw buffer too small, received symbols truncated
13:30:34.940 <- BU.EVENT led t=35.16 pressed=1
13:30:35.447 <- I (36931) BT_HID: Scanning for HID devices (3s)...
13:30:36.455 <- BU.EVENT led t=36.28 pressed=0
13:30:38.470 <- E rmt: hw buffer too small, received symbols truncated
13:30:38.470 <- I (39941) BT_HID: Found 0 HID device(s)
13:30:38.470 <- I (39941) BT_HID: No HID devices found, retrying in 2000ms...
13:30:38.830 ->
13:30:38.979 <- BU.OK led.watch done
13:30:43.094 -> BU.ADC
13:30:43.095 <- E rmt: hw buffer too small, received symbols truncated
13:30:43.095 <- I (41941) BT_HID: Scanning for HID devices (3s)...
13:30:43.095 <- E rmt: hw buffer too small, received symbols truncated
13:30:43.095 <- E rmt: hw buffer too small, received symbols truncated
13:30:43.608 <- I (44951) BT_HID: Found 0 HID device(s)
13:30:43.608 <- I (44951) BT_HID: No HID devices found, retrying in 2000ms...
13:30:43.608 <- BU.OK adc bat_mv=1678 bat_V=13.383 isens_mv=1664 isens_A=-1.06
13:30:57.100 -> BU.PARAM GET V_SENS_K
13:30:57.101 <- I (46951) BT_HID: Scanning for HID devices (3s)...
13:30:57.101 <- E rmt: hw buffer too small, received symbols truncated
13:30:57.101 <- E rmt: hw buffer too small, received symbols truncated
13:30:57.101 <- I (49961) BT_HID: Found 0 HID device(s)
13:30:57.102 <- I (49961) BT_HID: No HID devices found, retrying in 2000ms...
13:30:57.102 <- E rmt: hw buffer too small, received symbols truncated
13:30:57.102 <- I (51961) BT_HID: Scanning for HID devices (3s)...
13:30:57.102 <- E rmt: hw buffer too small, received symbols truncated
13:30:57.102 <- E rmt: hw buffer too small, received symbols truncated
13:30:57.102 <- I (54971) BT_HID: Found 0 HID device(s)
13:30:57.102 <- I (54971) BT_HID: No HID devices found, retrying in 2000ms...
13:30:57.102 <- I (56971) BT_HID: Scanning for HID devices (3s)...
13:30:57.615 <- E rmt: hw buffer too small, received symbols truncated
13:30:57.615 <- BU.OK param key=V_SENS_K value=0.00766666653
13:30:57.615 -> BU.ADC
13:30:58.119 <- BU.OK adc bat_mv=1686 bat_V=13.383 isens_mv=1664 isens_A=-1.06
13:31:05.442 -> BU.PARAM SET V_SENS_OFFSET 0.074000
13:31:05.442 <- E rmt: hw buffer too small, received symbols truncated
13:31:05.442 <- I (59981) BT_HID: Found 0 HID device(s)
13:31:05.442 <- I (59981) BT_HID: No HID devices found, retrying in 2000ms...
13:31:05.443 <- E rmt: hw buffer too small, received symbols truncated
13:31:05.443 <- I (61981) BT_HID: Scanning for HID devices (3s)...
13:31:05.443 <- I (64991) BT_HID: Found 0 HID device(s)
13:31:05.443 <- I (64991) BT_HID: No HID devices found, retrying in 2000ms...
13:31:05.510 <- I (66991) BT_HID: Scanning for HID devices (3s)...
13:31:05.510 <- I (67441) STORAGE: Parameter 34 (V_SENS_OFFSET) set (not committed)
13:31:05.510 <- I (67441) STORAGE: Committing 49 parameters to flash...
13:31:06.011 <- I (67471) STORAGE: Successfully committed all parameters to flash
13:31:06.011 <- BU.OK param key=V_SENS_OFFSET set=ok committed=yes
13:31:06.011 -> BU.ADC
13:31:06.517 <- BU.OK adc bat_mv=1687 bat_V=13.383 isens_mv=1669 isens_A=-1.44
13:31:06.522 -> BU.SENSORS.WATCH 0
13:31:06.522 <- E rmt: hw buffer too small, received symbols truncated
13:31:06.522 <- E rmt: hw buffer too small, received symbols truncated
13:31:07.037 <- BU.EVENT state t=66.87 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:07.037 <- E rmt: hw buffer too small, received symbols truncated
13:31:07.037 <- BU.EVENT state t=67.13 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:07.290 <- E rmt: hw buffer too small, received symbols truncated
13:31:07.290 <- BU.EVENT state t=67.38 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:07.290 <- E rmt: hw buffer too small, received symbols truncated
13:31:07.290 <- E rmt: hw buffer too small, received symbols truncated
13:31:07.740 <- E rmt: hw buffer too small, received symbols truncated
13:31:07.740 <- BU.EVENT state t=67.64 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:07.740 <- BU.EVENT state t=67.89 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:08.061 <- E rmt: hw buffer too small, received symbols truncated
13:31:08.061 <- BU.EVENT state t=68.14 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:08.061 <- I (70001) BT_HID: Found 0 HID device(s)
13:31:08.061 <- I (70001) BT_HID: No HID devices found, retrying in 2000ms...
13:31:08.561 <- BU.EVENT state t=68.39 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:08.561 <- BU.EVENT state t=68.64 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:08.561 <- E rmt: hw buffer too small, received symbols truncated
13:31:09.071 <- BU.EVENT state t=68.89 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:09.071 <- BU.EVENT state t=69.14 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:09.071 <- BU.EVENT state t=69.39 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:09.575 <- BU.EVENT state t=69.64 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:09.575 <- E rmt: hw buffer too small, received symbols truncated
13:31:09.575 <- BU.EVENT state t=69.89 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:10.078 <- BU.EVENT state t=70.14 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:10.078 <- I (72001) BT_HID: Scanning for HID devices (3s)...
13:31:10.078 <- BU.EVENT state t=70.39 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:10.581 <- BU.EVENT state t=70.64 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:10.581 <- E rmt: hw buffer too small, received symbols truncated
13:31:10.581 <- BU.EVENT state t=70.89 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:11.084 <- BU.EVENT state t=71.14 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:11.084 <- BU.EVENT state t=71.39 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:11.562 <- E rmt: hw buffer too small, received symbols truncated
13:31:11.562 <- BU.EVENT state t=71.64 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:11.562 <- E rmt: hw buffer too small, received symbols truncated
13:31:12.077 <- BU.EVENT state t=71.89 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:12.077 <- BU.EVENT state t=72.14 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:12.077 <- BU.EVENT state t=72.39 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:12.580 <- BU.EVENT state t=72.64 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:12.580 <- BU.EVENT state t=72.89 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:13.062 <- BU.EVENT state t=73.14 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:13.062 <- I (75011) BT_HID: Found 0 HID device(s)
13:31:13.062 <- I (75011) BT_HID: No HID devices found, retrying in 2000ms...
13:31:13.564 <- BU.EVENT state t=73.39 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:13.564 <- BU.EVENT state t=73.64 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:13.564 <- E rmt: hw buffer too small, received symbols truncated
13:31:14.077 <- BU.EVENT state t=73.89 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:14.077 <- BU.EVENT state t=74.14 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:14.077 <- BU.EVENT state t=74.39 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:14.583 <- E rmt: hw buffer too small, received symbols truncated
13:31:14.583 <- BU.EVENT state t=74.64 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:14.583 <- BU.EVENT state t=74.89 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:15.061 <- E rmt: hw buffer too small, received symbols truncated
13:31:15.061 <- BU.EVENT state t=75.14 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:15.062 <- I (77011) BT_HID: Scanning for HID devices (3s)...
13:31:15.564 <- BU.EVENT state t=75.39 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:15.564 <- BU.EVENT state t=75.64 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:15.564 <- BU.EVENT state t=75.89 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:16.068 <- BU.EVENT state t=76.14 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:16.068 <- BU.EVENT state t=76.39 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:16.576 <- E rmt: hw buffer too small, received symbols truncated
13:31:16.576 <- BU.EVENT state t=76.64 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:16.576 <- BU.EVENT state t=76.89 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:17.091 <- BU.EVENT state t=77.14 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:17.091 <- E rmt: hw buffer too small, received symbols truncated
13:31:17.091 <- BU.EVENT state t=77.39 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:17.592 <- BU.EVENT state t=77.64 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:17.592 <- E rmt: hw buffer too small, received symbols truncated
13:31:17.592 <- BU.EVENT state t=77.89 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:18.058 <- BU.EVENT state t=78.14 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:18.058 <- E rmt: hw buffer too small, received symbols truncated
13:31:18.058 <- I (80021) BT_HID: Found 0 HID device(s)
13:31:18.572 <- I (80021) BT_HID: No HID devices found, retrying in 2000ms...
13:31:18.572 <- BU.EVENT state t=78.39 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:18.572 <- BU.EVENT state t=78.65 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:19.086 <- BU.EVENT state t=78.90 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:19.086 <- BU.EVENT state t=79.15 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:19.086 <- E rmt: hw buffer too small, received symbols truncated
13:31:19.086 <- BU.EVENT state t=79.40 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:19.589 <- BU.EVENT state t=79.65 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:19.589 <- BU.EVENT state t=79.90 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:20.092 <- BU.EVENT state t=80.15 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:20.092 <- I (82021) BT_HID: Scanning for HID devices (3s)...
13:31:20.092 <- BU.EVENT state t=80.40 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:20.573 <- E rmt: hw buffer too small, received symbols truncated
13:31:20.573 <- E rmt: hw buffer too small, received symbols truncated
13:31:20.573 <- BU.EVENT state t=80.65 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:21.074 <- BU.EVENT state t=80.90 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:21.074 <- BU.EVENT state t=81.15 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:21.074 <- E rmt: hw buffer too small, received symbols truncated
13:31:21.074 <- BU.EVENT state t=81.40 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:21.579 <- BU.EVENT state t=81.65 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:21.579 <- BU.EVENT state t=81.90 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:22.083 <- BU.EVENT state t=82.15 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:22.590 <- BU.EVENT state t=82.41 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:22.590 <- BU.EVENT state t=82.66 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:22.590 <- BU.EVENT state t=82.91 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:23.069 <- E rmt: hw buffer too small, received symbols truncated
13:31:23.069 <- BU.EVENT state t=83.16 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:23.069 <- I (85031) BT_HID: Found 0 HID device(s)
13:31:23.583 <- I (85031) BT_HID: No HID devices found, retrying in 2000ms...
13:31:23.583 <- BU.EVENT state t=83.41 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:23.583 <- BU.EVENT state t=83.66 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:24.090 <- BU.EVENT state t=83.91 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:24.090 <- E rmt: hw buffer too small, received symbols truncated
13:31:24.090 <- BU.EVENT state t=84.16 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:24.090 <- BU.EVENT state t=84.41 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:24.583 <- BU.EVENT state t=84.66 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:24.584 <- E rmt: hw buffer too small, received symbols truncated
13:31:24.584 <- E rmt: hw buffer too small, received symbols truncated
13:31:25.081 <- BU.EVENT state t=84.91 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:25.081 <- BU.EVENT state t=85.16 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:25.081 <- E rmt: hw buffer too small, received symbols truncated
13:31:25.081 <- I (87031) BT_HID: Scanning for HID devices (3s)...
13:31:25.587 <- BU.EVENT state t=85.41 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:25.587 <- BU.EVENT state t=85.66 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:25.587 <- BU.EVENT state t=85.91 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:26.091 <- BU.EVENT state t=86.16 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:26.091 <- BU.EVENT state t=86.41 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:26.594 <- BU.EVENT state t=86.66 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:26.594 <- BU.EVENT state t=86.91 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:27.097 <- BU.EVENT state t=87.16 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:27.097 <- BU.EVENT state t=87.41 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:27.601 <- BU.EVENT state t=87.66 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:27.601 <- BU.EVENT state t=87.91 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:28.077 <- E rmt: hw buffer too small, received symbols truncated
13:31:28.077 <- BU.EVENT state t=88.16 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:28.077 <- I (90041) BT_HID: Found 0 HID device(s)
13:31:28.580 <- I (90041) BT_HID: No HID devices found, retrying in 2000ms...
13:31:28.580 <- BU.EVENT state t=88.41 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:28.580 <- BU.EVENT state t=88.67 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:29.084 <- BU.EVENT state t=88.92 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:29.084 <- BU.EVENT state t=89.17 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:29.590 <- BU.EVENT state t=89.42 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:29.590 <- BU.EVENT state t=89.67 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:30.091 <- BU.EVENT state t=89.92 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:30.091 <- BU.EVENT state t=90.17 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:30.091 <- I (92041) BT_HID: Scanning for HID devices (3s)...
13:31:30.593 <- BU.EVENT state t=90.42 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:30.593 <- BU.EVENT state t=90.67 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:31.095 <- BU.EVENT state t=90.92 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:31.095 <- E rmt: hw buffer too small, received symbols truncated
13:31:31.095 <- BU.EVENT state t=91.17 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:31.095 <- BU.EVENT state t=91.42 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:31.600 <- BU.EVENT state t=91.67 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:31.600 <- BU.EVENT state t=91.92 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:31:31.733 ->
13:31:32.105 <- BU.OK sensors.watch sec=-1 SAFETY=none DRIVE=none JACK=none AUX=none
13:31:40.108 -> BU.RELAY SENSORS ON 200
13:31:40.109 <- E rmt: hw buffer too small, received symbols truncated
13:31:40.109 <- E rmt: hw buffer too small, received symbols truncated
13:31:40.109 <- I (95051) BT_HID: Found 0 HID device(s)
13:31:40.109 <- I (95051) BT_HID: No HID devices found, retrying in 2000ms...
13:31:40.110 <- E rmt: hw buffer too small, received symbols truncated
13:31:40.110 <- I (97051) BT_HID: Scanning for HID devices (3s)...
13:31:40.110 <- E rmt: hw buffer too small, received symbols truncated
13:31:40.110 <- I (100061) BT_HID: Found 0 HID device(s)
13:31:40.612 <- I (100061) BT_HID: No HID devices found, retrying in 2000ms...
13:31:40.612 <- E rmt: hw buffer too small, received symbols truncated
13:31:40.612 <- I (102061) BT_HID: Scanning for HID devices (3s)...
13:31:40.612 <- BU.OK relay bridge=SENSORS ms=200
13:31:45.502 -> BU.RELAY DRIVE FWD 3000
13:31:45.502 <- E rmt: hw buffer too small, received symbols truncated
13:31:45.503 <- E rmt: hw buffer too small, received symbols truncated
13:31:45.503 <- E rmt: hw buffer too small, received symbols truncated
13:31:45.503 <- I (105071) BT_HID: Found 0 HID device(s)
13:31:45.503 <- I (105071) BT_HID: No HID devices found, retrying in 2000ms...
13:31:45.781 <- E rmt: hw buffer too small, received symbols truncated
13:31:45.781 <- I (107071) BT_HID: Scanning for HID devices (3s)...
13:31:45.781 <- E rmt: hw buffer too small, received symbols truncated
13:31:45.781 <- E rmt: hw buffer too small, received symbols truncated
13:31:46.283 <- E rmt: hw buffer too small, received symbols truncated
13:31:46.283 <- E rmt: hw buffer too small, received symbols truncated
13:31:46.283 <- E rmt: hw buffer too small, received symbols truncated
13:31:46.283 <- E rmt: hw buffer too small, received symbols truncated
13:31:46.789 <- E rmt: hw buffer too small, received symbols truncated
13:31:46.789 <- E rmt: hw buffer too small, received symbols truncated
13:31:46.789 <- E rmt: hw buffer too small, received symbols truncated
13:31:46.789 <- E rmt: hw buffer too small, received symbols truncated
13:31:47.292 <- E rmt: hw buffer too small, received symbols truncated
13:31:47.292 <- E rmt: hw buffer too small, received symbols truncated
13:31:47.292 <- E rmt: hw buffer too small, received symbols truncated
13:31:47.795 <- E rmt: hw buffer too small, received symbols truncated
13:31:47.795 <- E rmt: hw buffer too small, received symbols truncated
13:31:47.795 <- BU.OK relay bridge=DRIVE dir=FWD ms=2000 I_before=+0.00 I_mid=+17.88 I_after=-0.02 heat=0.004 tripped=0 edges=34
13:31:52.597 -> BU.RELAY DRIVE REV 3000
13:31:52.598 <- I (110081) BT_HID: Found 0 HID device(s)
13:31:52.598 <- I (110081) BT_HID: No HID devices found, retrying in 2000ms...
13:31:52.598 <- E rmt: hw buffer too small, received symbols truncated
13:31:52.598 <- I (112081) BT_HID: Scanning for HID devices (3s)...
13:31:53.026 <- E rmt: hw buffer too small, received symbols truncated
13:31:53.027 <- E rmt: hw buffer too small, received symbols truncated
13:31:53.027 <- E rmt: hw buffer too small, received symbols truncated
13:31:53.027 <- E rmt: hw buffer too small, received symbols truncated
13:31:53.537 <- E rmt: hw buffer too small, received symbols truncated
13:31:53.537 <- I (115091) BT_HID: Found 0 HID device(s)
13:31:53.537 <- I (115091) BT_HID: No HID devices found, retrying in 2000ms...
13:31:53.537 <- E rmt: hw buffer too small, received symbols truncated
13:31:54.041 <- E rmt: hw buffer too small, received symbols truncated
13:31:54.545 <- E rmt: hw buffer too small, received symbols truncated
13:31:55.051 <- BU.OK relay bridge=DRIVE dir=REV ms=2000 I_before=-0.03 I_mid=+21.33 I_after=-0.03 heat=0.010 tripped=0 edges=34
13:31:56.716 -> BU.RELAY JACK UP 1200
13:31:57.220 <- I (117091) BT_HID: Scanning for HID devices (3s)...
13:31:58.137 <- BU.OK relay bridge=JACK dir=UP ms=1200 I_before=+0.00 I_mid=+1.21 I_after=-0.00 heat=0.000 tripped=0 edges=0
13:38:40.740 -> BU.RELAY JACK DOWN 1200
13:38:40.741 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.741 <- I (120101) BT_HID: Found 0 HID device(s)
13:38:40.741 <- I (120101) BT_HID: No HID devices found, retrying in 2000ms...
13:38:40.741 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.741 <- I (122101) BT_HID: Scanning for HID devices (3s)...
13:38:40.741 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.742 <- I (125111) BT_HID: Found 0 HID device(s)
13:38:40.742 <- I (125111) BT_HID: No HID devices found, retrying in 2000ms...
13:38:40.742 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.742 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.742 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.743 <- I (127111) BT_HID: Scanning for HID devices (3s)...
13:38:40.743 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.743 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.743 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.743 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.744 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.744 <- I (130121) BT_HID: Found 0 HID device(s)
13:38:40.744 <- I (130121) BT_HID: No HID devices found, retrying in 2000ms...
13:38:40.744 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.744 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.744 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.744 <- I (132121) BT_HID: Scanning for HID devices (3s)...
13:38:40.744 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.745 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.745 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.745 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.745 <- I (135131) BT_HID: Found 0 HID device(s)
13:38:40.746 <- I (135131) BT_HID: No HID devices found, retrying in 2000ms...
13:38:40.746 <- I (137131) BT_HID: Scanning for HID devices (3s)...
13:38:40.746 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.746 <- I (140141) BT_HID: Found 0 HID device(s)
13:38:40.746 <- I (140141) BT_HID: No HID devices found, retrying in 2000ms...
13:38:40.746 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.746 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.746 <- I (142141) BT_HID: Scanning for HID devices (3s)...
13:38:40.746 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.747 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.747 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.747 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.747 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.748 <- I (145151) BT_HID: Found 0 HID device(s)
13:38:40.748 <- I (145151) BT_HID: No HID devices found, retrying in 2000ms...
13:38:40.748 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.748 <- I (147151) BT_HID: Scanning for HID devices (3s)...
13:38:40.749 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.749 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.749 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.749 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.749 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.749 <- I (150161) BT_HID: Found 0 HID device(s)
13:38:40.749 <- I (150161) BT_HID: No HID devices found, retrying in 2000ms...
13:38:40.749 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.749 <- I (152161) BT_HID: Scanning for HID devices (3s)...
13:38:40.750 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.750 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.750 <- I (155171) BT_HID: Found 0 HID device(s)
13:38:40.750 <- I (155171) BT_HID: No HID devices found, retrying in 2000ms...
13:38:40.751 <- I (157171) BT_HID: Scanning for HID devices (3s)...
13:38:40.751 <- E rmt: hw buffer too small, received symbols truncated
13:38:40.751 <- I (160181) BT_HID: Found 0 HID device(s)
13:38:40.751 <- I (160181) BT_HID: No HID devices found, retrying in 2000ms...
13:38:40.751 <- I (162181) BT_HID: Scanning for HID devices (3s)...

View File

@@ -1,992 +0,0 @@
13:44:18.982
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
13:44:18.983 erase_flash @ COM3
13:44:22.473 flashing from D:\SC\SC-F001\build
13:44:22.474 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
13:45:20.777 Flash complete
13:45:22.277 Connecting to COM3 @ 115200 ...
13:45:22.281 -> BU.BEGIN
13:45:22.523 <- BU.BEGIN
13:45:22.523 <-
13:45:22.523 <- BU.OK begin fw=9f4362b-dirty board=V5 t=0.00
13:45:22.525 -> BU.INFO
13:45:22.525 <- I (1751) SENS: EVENT 2
13:45:22.537 <- I (1751) SENS: FALLING
13:45:22.537 <- I (1751) SENS: SAFETY BREAK - Relays disabled
13:45:22.537 <- E rmt: hw buffer too small, received symbols truncated
13:45:22.542 <- I (1871) BT_HID: Scanning for HID devices (3s)...
13:45:22.542 <- I (1871) BT_HID: BLE HID host initialised
13:45:22.542 <- I (1871) WEBSERVER: Initializing webserver...
13:45:22.542 <- I (1871) WEBSERVER: AP LAUNCHING
13:45:22.564 <- I (1891) wifi:wifi driver task: 3ffe284c, prio:23, stack:6656, core=0
13:45:22.564 <- I (1891) wifi:wifi firmware version: ccaebfa
13:45:22.564 <- I (1891) wifi:wifi certification version: v7.0
13:45:22.564 <- I (1891) wifi:config NVS flash: enabled
13:45:22.564 <- I (1891) wifi:config nano formating: disabled
13:45:22.591 <- BU.OK info reset=POWERON heap=115088 min_heap=114096 fw=9f4362b-dirty build=2026-04-27 18:28:59
13:45:22.594 -> BU.FLASH
13:45:22.595 <- I (1901) wifi:Init data frame dynamic rx buffer num: 32
13:45:22.595 <- I (1911) wifi:Init static rx mgmt buffer num: 5
13:45:22.595 <- I (1911) wifi:Init management short buffer num: 32
13:45:22.595 <- I (1921) wifi:Init dynamic tx buffer num: 32
13:45:22.613 <- I (1921) wifi:Init static rx buffer size: 1600
13:45:22.613 <- I (1931) wifi:Init static rx buffer num: 10
13:45:22.613 <- I (1931) wifi:Init dynamic rx buffer num: 32
13:45:22.613 <- I (1941) wifi_init: rx ba win: 6
13:45:22.613 <- I (1941) wifi_init: accept mbox: 6
13:45:22.634 <- I (1941) wifi_init: tcpip mbox: 32
13:45:22.634 <- I (1951) wifi_init: udp mbox: 6
13:45:22.634 <- I (1951) wifi_init: tcp mbox: 6
13:45:22.634 <- I (1951) wifi_init: tcp tx win: 5760
13:45:22.634 <- BU.OK I (1961) wifi_init: tcp rx win: 5760
13:45:25.216 -> BU.I2C
13:45:25.217 <- flash post_part=roundtrip log_head=11 log_tail=0 partitions_size=4128768
13:45:25.217 <- I (1961) wifi_init: tcp mss: 1440
13:45:25.217 <- I (2261) wifi:mode : softAP (80:f3:da:65:45:4d)
13:45:25.217 <- I (2261) wifi:Total power save buffer number: 16
13:45:25.217 <- I (2271) wifi:Init max length of beacon: 752/752
13:45:25.217 <- I (2271) wifi:Init max length of beacon: 752/752
13:45:25.217 <- I (2271) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
13:45:25.217 <- I (2281) DNS_SERVER: DNS server started on port 53
13:45:25.217 <- I (2291) mdns_mem: mDNS task will be created from internal RAM
13:45:25.218 <- I (2291) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
13:45:25.218 <- I (2301) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
13:45:25.218 <- I (2301) WEBSERVER: STARTING HTTP
13:45:25.219 <- I (2311) WEBSERVER: HTTP server started successfully
13:45:25.219 <- I (2311) WEBSERVER: Registered URI handler: /
13:45:25.219 <- I (2321) WEBSERVER: Registered URI handler: /get
13:45:25.219 <- I (2321) WEBSERVER: Registered URI handler: /post
13:45:25.219 <- I (2331) WEBSERVER: Registered URI handler: /log
13:45:25.219 <- I (2331) WEBSERVER: Registered URI handler: /ota
13:45:25.219 <- I (2341) WEBSERVER: Registered URI handler: /*
13:45:25.219 <- I (2341) WEBSERVER: Webserver initialization complete
13:45:25.538 <- E rmt: hw buffer too small, received symbols truncated
13:45:25.538 <- E rmt: hw buffer too small, received symbols truncated
13:45:25.538 <- I (4591) I2C: POST: TCA9555 OK (port0=0x0021)
13:45:25.538 <- BU.OK i2c tca9555=ack
13:45:25.539 -> BU.LED.WATCH
13:45:25.540 <- E rmt: hw buffer too small, received symbols truncated
13:45:25.540 <- I (4881) BT_HID: Found 0 HID device(s)
13:45:26.055 <- I (4881) BT_HID: No HID devices found, retrying in 2000ms...
13:45:26.055 <- BU.EVENT led t=3.26 pressed=0
13:45:26.560 <- BU.EVENT led t=4.00 pressed=1
13:45:27.571 <- I (6881) BT_HID: Scanning for HID devices (3s)...
13:45:28.075 <- E rmt: hw buffer too small, received symbols truncated
13:45:28.581 <- BU.EVENT led t=5.98 pressed=0
13:45:29.085 <- E rmt: hw buffer too small, received symbols truncated
13:45:30.610 <- BU.EVENT led t=8.04 pressed=1
13:45:30.610 <- I (9891) BT_HID: Found 0 HID device(s)
13:45:30.610 <- I (9891) BT_HID: No HID devices found, retrying in 2000ms...
13:45:31.629 <- BU.EVENT led t=8.86 pressed=0
13:45:32.639 <- I (11891) BT_HID: Scanning for HID devices (3s)...
13:45:32.639 <- E rmt: hw buffer too small, received symbols truncated
13:45:33.962 ->
13:45:34.150 <- BU.OK led.watch done
13:45:36.621 -> BU.ADC
13:45:37.013 <- I (14901) BT_HID: Found 0 HID device(s)
13:45:37.013 <- I (14901) BT_HID: No HID devices found, retrying in 2000ms...
13:45:37.013 <- E rmt: hw buffer too small, received symbols truncated
13:45:37.013 <- BU.OK adc bat_mv=1679 bat_V=13.210 isens_mv=1673 isens_A=-1.74
13:45:55.435 -> BU.PARAM GET V_SENS_K
13:45:55.436 <- E rmt: hw buffer too small, received symbols truncated
13:45:55.436 <- I (16901) BT_HID: Scanning for HID devices (3s)...
13:45:55.436 <- I (19911) BT_HID: Found 0 HID device(s)
13:45:55.436 <- I (19911) BT_HID: No HID devices found, retrying in 2000ms...
13:45:55.436 <- E rmt: hw buffer too small, received symbols truncated
13:45:55.436 <- E rmt: hw buffer too small, received symbols truncated
13:45:55.436 <- I (21911) BT_HID: Scanning for HID devices (3s)...
13:45:55.436 <- E rmt: hw buffer too small, received symbols truncated
13:45:55.437 <- E rmt: hw buffer too small, received symbols truncated
13:45:55.437 <- E rmt: hw buffer too small, received symbols truncated
13:45:55.437 <- I (24921) BT_HID: Found 0 HID device(s)
13:45:55.437 <- I (24921) BT_HID: No HID devices found, retrying in 2000ms...
13:45:55.437 <- E rmt: hw buffer too small, received symbols truncated
13:45:55.437 <- E rmt: hw buffer too small, received symbols truncated
13:45:55.437 <- I (26921) BT_HID: Scanning for HID devices (3s)...
13:45:55.437 <- E rmt: hw buffer too small, received symbols truncated
13:45:55.437 <- I (29931) BT_HID: Found 0 HID device(s)
13:45:55.438 <- I (29931) BT_HID: No HID devices found, retrying in 2000ms...
13:45:55.438 <- E rmt: hw buffer too small, received symbols truncated
13:45:55.438 <- E rmt: hw buffer too small, received symbols truncated
13:45:55.438 <- E rmt: hw buffer too small, received symbols truncated
13:45:55.587 <- I (31931) BT_HID: Scanning for HID devices (3s)...
13:45:55.587 <- E rmt: hw buffer too small, received symbols truncated
13:45:55.587 <- E rmt: hw buffer too small, received symbols truncated
13:45:55.587 <- BU.OK param key=V_SENS_K value=0.00766666653
13:45:55.587 -> BU.ADC
13:45:55.587 <- E rmt: hw buffer too small, received symbols truncated
13:45:55.824 <- E rmt: hw buffer too small, received symbols truncated
13:45:55.825 <- I (34941) BT_HID: Found 0 HID device(s)
13:45:55.825 <- I (34941) BT_HID: No HID devices found, retrying in 2000ms...
13:45:55.825 <- BU.OK adc bat_mv=1677 bat_V=13.210 isens_mv=1665 isens_A=-1.14
13:46:13.474 -> BU.PARAM SET V_SENS_OFFSET 0.043000
13:46:13.475 <- E rmt: hw buffer too small, received symbols truncated
13:46:13.475 <- I (36941) BT_HID: Scanning for HID devices (3s)...
13:46:13.475 <- E rmt: hw buffer too small, received symbols truncated
13:46:13.475 <- I (39951) BT_HID: Found 0 HID device(s)
13:46:13.476 <- I (39951) BT_HID: No HID devices found, retrying in 2000ms...
13:46:13.476 <- I (41951) BT_HID: Scanning for HID devices (3s)...
13:46:13.476 <- E rmt: hw buffer too small, received symbols truncated
13:46:13.476 <- I (44961) BT_HID: Found 0 HID device(s)
13:46:13.476 <- I (44961) BT_HID: No HID devices found, retrying in 2000ms...
13:46:13.477 <- E rmt: hw buffer too small, received symbols truncated
13:46:13.477 <- E rmt: hw buffer too small, received symbols truncated
13:46:13.477 <- E rmt: hw buffer too small, received symbols truncated
13:46:13.477 <- I (46961) BT_HID: Scanning for HID devices (3s)...
13:46:13.478 <- E rmt: hw buffer too small, received symbols truncated
13:46:13.478 <- E rmt: hw buffer too small, received symbols truncated
13:46:13.478 <- I (49971) BT_HID: Found 0 HID device(s)
13:46:13.478 <- I (49971) BT_HID: No HID devices found, retrying in 2000ms...
13:46:13.541 <- E rmt: hw buffer too small, received symbols truncated
13:46:13.541 <- I (51971) BT_HID: Scanning for HID devices (3s)...
13:46:13.541 <- I (52851) STORAGE: Parameter 34 (V_SENS_OFFSET) set (not committed)
13:46:13.541 <- I (52851) STORAGE: Committing 49 parameters to flash...
13:46:14.043 <- I (52881) STORAGE: Successfully committed all parameters to flash
13:46:14.043 <- BU.OK param key=V_SENS_OFFSET set=ok committed=yes
13:46:14.043 -> BU.ADC
13:46:14.548 <- BU.OK adc bat_mv=1671 bat_V=13.210 isens_mv=1678 isens_A=-2.12
13:46:14.554 -> BU.SENSORS.WATCH 0
13:46:15.068 <- BU.EVENT state t=52.28 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:15.068 <- BU.EVENT state t=52.54 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:15.574 <- E rmt: hw buffer too small, received symbols truncated
13:46:15.574 <- BU.EVENT state t=52.79 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:15.574 <- BU.EVENT state t=53.04 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:15.842 <- BU.EVENT state t=53.29 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:15.842 <- I (54981) BT_HID: Found 0 HID device(s)
13:46:15.842 <- I (54981) BT_HID: No HID devices found, retrying in 2000ms...
13:46:16.351 <- BU.EVENT state t=53.54 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:16.351 <- BU.EVENT state t=53.79 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:16.351 <- BU.EVENT state t=54.04 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:16.856 <- E rmt: hw buffer too small, received symbols truncated
13:46:16.856 <- BU.EVENT state t=54.29 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:16.856 <- BU.EVENT state t=54.54 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:17.361 <- BU.EVENT state t=54.79 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:17.361 <- BU.EVENT state t=55.04 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:17.842 <- E rmt: hw buffer too small, received symbols truncated
13:46:17.842 <- BU.EVENT state t=55.29 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:17.842 <- I (56981) BT_HID: Scanning for HID devices (3s)...
13:46:18.345 <- BU.EVENT state t=55.54 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:18.345 <- BU.EVENT state t=55.79 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:18.345 <- E rmt: hw buffer too small, received symbols truncated
13:46:18.849 <- BU.EVENT state t=56.04 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:18.849 <- E rmt: hw buffer too small, received symbols truncated
13:46:18.849 <- BU.EVENT state t=56.29 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:18.849 <- BU.EVENT state t=56.54 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:19.364 <- BU.EVENT state t=56.79 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:19.364 <- BU.EVENT state t=57.04 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:19.867 <- BU.EVENT state t=57.29 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:19.867 <- BU.EVENT state t=57.54 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:20.377 <- BU.EVENT state t=57.79 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:20.377 <- BU.EVENT state t=58.04 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:20.842 <- BU.EVENT state t=58.29 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:20.842 <- I (59991) BT_HID: Found 0 HID device(s)
13:46:20.842 <- I (59991) BT_HID: No HID devices found, retrying in 2000ms...
13:46:21.358 <- BU.EVENT state t=58.54 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:21.358 <- BU.EVENT state t=58.79 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:21.358 <- BU.EVENT state t=59.04 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:21.863 <- BU.EVENT state t=59.29 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:21.863 <- BU.EVENT state t=59.54 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:22.343 <- BU.EVENT state t=59.79 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:22.343 <- E rmt: hw buffer too small, received symbols truncated
13:46:22.343 <- E rmt: hw buffer too small, received symbols truncated
13:46:22.845 <- BU.EVENT state t=60.04 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:22.845 <- BU.EVENT state t=60.29 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:22.845 <- I (61991) BT_HID: Scanning for HID devices (3s)...
13:46:23.356 <- BU.EVENT state t=60.54 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:23.356 <- BU.EVENT state t=60.79 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:23.356 <- BU.EVENT state t=61.04 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:23.862 <- BU.EVENT state t=61.30 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:23.862 <- BU.EVENT state t=61.55 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:24.370 <- E rmt: hw buffer too small, received symbols truncated
13:46:24.370 <- BU.EVENT state t=61.81 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:24.370 <- BU.EVENT state t=62.06 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:24.876 <- BU.EVENT state t=62.31 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:24.876 <- BU.EVENT state t=62.56 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:25.382 <- BU.EVENT state t=62.81 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:25.382 <- BU.EVENT state t=63.06 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:25.862 <- BU.EVENT state t=63.31 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:25.863 <- I (65001) BT_HID: Found 0 HID device(s)
13:46:25.863 <- I (65001) BT_HID: No HID devices found, retrying in 2000ms...
13:46:26.364 <- BU.EVENT state t=63.56 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:26.364 <- BU.EVENT state t=63.81 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:26.873 <- BU.EVENT state t=64.06 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:26.873 <- BU.EVENT state t=64.31 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:26.873 <- BU.EVENT state t=64.56 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:27.379 <- BU.EVENT state t=64.81 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:27.379 <- BU.EVENT state t=65.06 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:27.883 <- BU.EVENT state t=65.31 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:27.883 <- I (67001) BT_HID: Scanning for HID devices (3s)...
13:46:27.883 <- BU.EVENT state t=65.56 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:28.391 <- BU.EVENT state t=65.81 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:28.391 <- BU.EVENT state t=66.06 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:28.898 <- BU.EVENT state t=66.31 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:28.898 <- BU.EVENT state t=66.57 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:29.402 <- BU.EVENT state t=66.82 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:29.402 <- BU.EVENT state t=67.07 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:29.911 <- BU.EVENT state t=67.32 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:29.911 <- BU.EVENT state t=67.57 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:30.414 <- BU.EVENT state t=67.82 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:30.414 <- BU.EVENT state t=68.07 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:30.872 <- BU.EVENT state t=68.32 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:30.872 <- I (70011) BT_HID: Found 0 HID device(s)
13:46:30.872 <- I (70011) BT_HID: No HID devices found, retrying in 2000ms...
13:46:30.987 ->
13:46:31.378 <- BU.EVENT state t=68.57 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:31.378 <- BU.OK sensors.watch sec=-1 SAFETY=none DRIVE=none JACK=none AUX=none
13:46:34.244 -> BU.SENSORS.WATCH 0
13:46:34.532 <- I (72011) BT_HID: Scanning for HID devices (3s)...
13:46:34.532 <- E rmt: hw buffer too small, received symbols truncated
13:46:34.532 <- BU.EVENT state t=71.97 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:35.038 <- BU.EVENT state t=72.23 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:35.038 <- BU.EVENT state t=72.48 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:35.038 <- BU.EVENT state t=72.73 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:35.543 <- BU.EVENT state t=72.98 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:35.543 <- BU.EVENT state t=73.23 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:36.033 <- I (75021) BT_HID: Found 0 HID device(s)
13:46:36.033 <- I (75021) BT_HID: No HID devices found, retrying in 2000ms...
13:46:36.033 <- BU.EVENT state t=73.48 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:36.540 <- BU.EVENT state t=73.73 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:36.540 <- BU.EVENT state t=73.98 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:36.540 <- BU.EVENT state t=74.23 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:37.047 <- BU.EVENT state t=74.48 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:37.047 <- BU.EVENT state t=74.73 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:37.552 <- BU.EVENT state t=74.98 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:37.552 <- E rmt: hw buffer too small, received symbols truncated
13:46:37.552 <- BU.EVENT state t=75.23 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:38.017 ->
13:46:38.058 <- I (77021) BT_HID: Scanning for HID devices (3s)...
13:46:38.058 <- BU.EVENT state t=75.48 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
13:46:38.058 <- BU.OK sensors.watch sec=-1 SAFETY=none DRIVE=none JACK=none AUX=none
13:46:42.314 -> BU.RELAY SENSORS ON 200
13:46:42.540 <- E rmt: hw buffer too small, received symbols truncated
13:46:42.540 <- E rmt: hw buffer too small, received symbols truncated
13:46:42.540 <- I (80031) BT_HID: Found 0 HID device(s)
13:46:42.540 <- I (80031) BT_HID: No HID devices found, retrying in 2000ms...
13:46:43.044 <- BU.OK relay bridge=SENSORS ms=200
13:46:48.584 -> BU.RELAY DRIVE FWD 3000
13:46:48.585 <- I (82031) BT_HID: Scanning for HID devices (3s)...
13:46:48.737 <- E rmt: hw buffer too small, received symbols truncated
13:46:48.737 <- I (85041) BT_HID: Found 0 HID device(s)
13:46:48.737 <- I (85041) BT_HID: No HID devices found, retrying in 2000ms...
13:46:48.737 <- I (87041) BT_HID: Scanning for HID devices (3s)...
13:46:49.249 <- E rmt: hw buffer too small, received symbols truncated
13:46:49.249 <- E rmt: hw buffer too small, received symbols truncated
13:46:49.249 <- E rmt: hw buffer too small, received symbols truncated
13:46:49.759 <- E rmt: hw buffer too small, received symbols truncated
13:46:50.265 <- E rmt: hw buffer too small, received symbols truncated
13:46:50.265 <- E rmt: hw buffer too small, received symbols truncated
13:46:50.771 <- I (90051) BT_HID: Found 0 HID device(s)
13:46:50.771 <- I (90051) BT_HID: No HID devices found, retrying in 2000ms...
13:46:50.771 <- BU.OK relay bridge=DRIVE dir=FWD ms=2000 I_before=+0.00 I_mid=+18.03 I_after=-0.02 heat=0.004 tripped=0 edges=34
13:46:52.372 -> BU.RELAY DRIVE REV 3000
13:46:52.373 <- E rmt: hw buffer too small, received symbols truncated
13:46:52.373 <- E rmt: hw buffer too small, received symbols truncated
13:46:52.373 <- E rmt: hw buffer too small, received symbols truncated
13:46:52.373 <- E rmt: hw buffer too small, received symbols truncated
13:46:52.885 <- E rmt: hw buffer too small, received symbols truncated
13:46:52.885 <- I (92051) BT_HID: Scanning for HID devices (3s)...
13:46:54.909 <- BU.OK relay bridge=DRIVE dir=REV ms=2000 I_before=-0.03 I_mid=+23.08 I_after=-0.03 heat=0.011 tripped=0 edges=34
13:46:56.411 -> BU.RELAY JACK UP 1200
13:46:56.917 <- I (95061) BT_HID: Found 0 HID device(s)
13:46:56.917 <- I (95061) BT_HID: No HID devices found, retrying in 2000ms...
13:46:56.917 <- E rmt: hw buffer too small, received symbols truncated
13:46:56.917 <- E rmt: hw buffer too small, received symbols truncated
13:46:57.926 <- I (97061) BT_HID: Scanning for HID devices (3s)...
13:46:57.926 <- BU.OK relay bridge=JACK dir=UP ms=1200 I_before=+0.00 I_mid=+2.35 I_after=-0.00 heat=0.001 tripped=0 edges=1
13:46:58.304 -> BU.RELAY JACK DOWN 1200
13:46:59.821 <- BU.OK relay bridge=JACK dir=DOWN ms=1200 I_before=-0.00 I_mid=+0.60 I_after=-0.00 heat=0.001 tripped=0 edges=1
13:47:04.669 -> BU.RELAY AUX FWD 150
13:47:04.670 <- E rmt: hw buffer too small, received symbols truncated
13:47:04.670 <- I (100071) BT_HID: Found 0 HID device(s)
13:47:04.670 <- I (100071) BT_HID: No HID devices found, retrying in 2000ms...
13:47:04.670 <- E rmt: hw buffer too small, received symbols truncated
13:47:05.183 <- I (102071) BT_HID: Scanning for HID devices (3s)...
13:47:05.183 <- E rmt: hw buffer too small, received symbols truncated
13:47:05.183 <- BU.OK relay bridge=AUX dir=FWD ms=150 I_before=+0.00 I_mid=+2.12 I_after=-0.00 heat=0.006 tripped=0 edges=0
13:47:10.963 -> BU.RF.WATCH 0
13:47:10.964 <- I (105081) BT_HID: Found 0 HID device(s)
13:47:10.964 <- I (105081) BT_HID: No HID devices found, retrying in 2000ms...
13:47:10.964 <- E rmt: hw buffer too small, received symbols truncated
13:47:10.964 <- E rmt: hw buffer too small, received symbols truncated
13:47:10.965 <- I (107081) BT_HID: Scanning for HID devices (3s)...
13:47:10.965 <- E rmt: hw buffer too small, received symbols truncated
13:47:10.965 <- E rmt: hw buffer too small, received symbols truncated
13:47:10.965 <- I (109891) RF: GOT KEYCODE 0xbe9b78 [25]
13:47:10.966 <- I (109931) RF: GOT KEYCODE 0xbe9b78 [25]
13:47:10.966 <- I (109971) RF: GOT KEYCODE 0xbe9b78 [25]
13:47:10.966 <- I (110061) RF: GOT KEYCODE 0xbe9b78 [25]
13:47:10.966 <- I (110091) BT_HID: Found 0 HID device(s)
13:47:10.966 <- I (110091) BT_HID: No HID devices found, retrying in 2000ms...
13:47:11.475 <- I (110141) RF: GOT KEYCODE 0xbe9b78 [25]
13:47:11.680 <- I (110861) RF: GOT KEYCODE 0xbe9b78 [25]
13:47:11.680 <- BU.EVENT rf code=0xBE9B78 t=109.23
13:47:11.680 <- I (110901) RF: GOT KEYCODE 0xbe9b78 [25]
13:47:11.680 <- BU.EVENT rf code=0xBE9B78 t=109.28
13:47:11.681 <- I (110991) RF: GOT KEYCODE 0xbe9b78 [25]
13:47:12.122 <- BU.EVENT rf code=0xBE9B78 t=109.38
13:47:12.122 <- I (111291) RF: GOT KEYCODE 0xbe9b74 [25]
13:47:12.122 <- BU.EVENT rf code=0xBE9B74 t=109.68
13:47:12.123 <- I (111381) RF: GOT KEYCODE 0xbe9b74 [25]
13:47:12.123 <- I (111421) RF: GOT KEYCODE 0xbe9b74 [25]
13:47:12.123 <- BU.EVENT rf code=0xBE9B74 t=109.78
13:47:12.560 <- I (111471) RF: GOT KEYCODE 0xbe9b74 [25]
13:47:12.560 <- BU.EVENT rf code=0xBE9B74 t=109.83
13:47:12.560 <- I (111781) RF: GOT KEYCODE 0xbe9b72 [25]
13:47:12.560 <- BU.EVENT rf code=0xBE9B72 t=110.13
13:47:12.562 <- I (111821) RF: GOT KEYCODE 0xbe9b72 [25]
13:47:12.562 <- BU.EVENT rf code=0xBE9B72 t=110.18
13:47:12.891 <- I (111901) RF: GOT KEYCODE 0xbe9b72 [25]
13:47:12.891 <- BU.EVENT rf code=0xBE9B72 t=110.28
13:47:12.891 <- I (111991) RF: GOT KEYCODE 0xbe9b72 [25]
13:47:12.891 <- BU.EVENT rf code=0xBE9B72 t=110.38
13:47:12.893 <- I (112091) BT_HID: Scanning for HID devices (3s)...
13:47:13.248 ->
13:47:13.279 <- I (112231) RF: GOT KEYCODE 0xbe9b71 [25]
13:47:13.279 <- BU.EVENT rf code=0xBE9B71 t=110.63
13:47:13.279 <- I (112321) RF: GOT KEYCODE 0xbe9b71 [25]
13:47:13.279 <- BU.EVENT rf code=0xBE9B71 t=110.68
13:47:13.280 <- I (112411) RF: GOT KEYCODE 0xbe9b71 [25]
13:47:13.280 <- BU.EVENT rf code=0xBE9B71 t=110.78
13:47:13.795 <- BU.OK rf.watch sec=-1 seen=13
13:47:15.596 -> BU.WIFI.START
13:47:15.646 <- I (114971) WEBSERVER: Initializing webserver...
13:47:15.646 <- I (114971) WEBSERVER: AP LAUNCHING
13:47:15.646 <- I (114981) wifi:Total power save buffer number: 16
13:47:15.646 <- W (114981) DNS_SERVER: DNS server already running
13:47:15.668 <- E (114981) WEBSERVER: Failed to start DNS server: ESP_ERR_INVALID_STATE
13:47:15.668 <- I (114981) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
13:47:15.668 <- E (115001) mdns: mdns_service_add_for_host(6013): Service already exists
13:47:15.689 <- I (115001) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
13:47:15.689 <- I (115011) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
13:47:15.689 <- I (115021) WEBSERVER: Webserver initialization complete
13:47:16.201 <- BU.OK wifi.start mode=AP ssid="sc.local" ip=192.168.4.1
13:47:16.205 -> BU.WIFI.WAIT
13:47:16.206 <- I (115101) BT_HID: Found 0 HID device(s)
13:47:16.206 <- I (115101) BT_HID: No HID devices found, retrying in 2000ms...
13:47:18.226 <- I (117101) BT_HID: Scanning for HID devices (3s)...
13:47:18.226 <- E rmt: hw buffer too small, received symbols truncated
13:47:19.745 <- E rmt: hw buffer too small, received symbols truncated
13:47:20.251 <- E rmt: hw buffer too small, received symbols truncated
13:47:21.265 <- I (120111) BT_HID: Found 0 HID device(s)
13:47:21.265 <- I (120111) BT_HID: No HID devices found, retrying in 2000ms...
13:47:22.797 <- E rmt: hw buffer too small, received symbols truncated
13:47:22.797 <- I (122111) BT_HID: Scanning for HID devices (3s)...
13:47:23.302 <- E rmt: hw buffer too small, received symbols truncated
13:47:24.822 <- E rmt: hw buffer too small, received symbols truncated
13:47:25.842 <- I (125121) BT_HID: Found 0 HID device(s)
13:47:25.842 <- I (125121) BT_HID: No HID devices found, retrying in 2000ms...
13:47:26.348 <- E rmt: hw buffer too small, received symbols truncated
13:47:27.863 <- I (127121) BT_HID: Scanning for HID devices (3s)...
13:47:30.394 <- E rmt: hw buffer too small, received symbols truncated
13:47:30.394 <- E rmt: hw buffer too small, received symbols truncated
13:47:30.900 <- I (130131) BT_HID: Found 0 HID device(s)
13:47:30.900 <- I (130131) BT_HID: No HID devices found, retrying in 2000ms...
13:47:30.900 <- E rmt: hw buffer too small, received symbols truncated
13:47:31.918 <- E rmt: hw buffer too small, received symbols truncated
13:47:32.929 <- I (132131) BT_HID: Scanning for HID devices (3s)...
13:47:34.448 <- E rmt: hw buffer too small, received symbols truncated
13:47:35.967 <- E rmt: hw buffer too small, received symbols truncated
13:47:35.967 <- I (135141) BT_HID: Found 0 HID device(s)
13:47:35.967 <- I (135141) BT_HID: No HID devices found, retrying in 2000ms...
13:47:36.976 <- E rmt: hw buffer too small, received symbols truncated
13:47:37.989 <- I (137141) BT_HID: Scanning for HID devices (3s)...
13:47:41.026 <- I (140151) BT_HID: Found 0 HID device(s)
13:47:41.026 <- I (140151) BT_HID: No HID devices found, retrying in 2000ms...
13:47:41.530 <- E rmt: hw buffer too small, received symbols truncated
13:47:42.546 <- E rmt: hw buffer too small, received symbols truncated
13:47:43.053 <- I (142151) BT_HID: Scanning for HID devices (3s)...
13:47:44.068 <- E rmt: hw buffer too small, received symbols truncated
13:47:46.091 <- I (145161) BT_HID: Found 0 HID device(s)
13:47:46.091 <- I (145161) BT_HID: No HID devices found, retrying in 2000ms...
13:47:48.113 <- E rmt: hw buffer too small, received symbols truncated
13:47:48.113 <- I (147161) BT_HID: Scanning for HID devices (3s)...
13:47:49.136 <- E rmt: hw buffer too small, received symbols truncated
13:47:50.663 <- E rmt: hw buffer too small, received symbols truncated
13:47:50.663 <- E rmt: hw buffer too small, received symbols truncated
13:47:51.172 <- I (150171) BT_HID: Found 0 HID device(s)
13:47:51.172 <- I (150171) BT_HID: No HID devices found, retrying in 2000ms...
13:47:53.213 <- I (152171) BT_HID: Scanning for HID devices (3s)...
13:47:53.717 <- E rmt: hw buffer too small, received symbols truncated
13:47:54.730 <- E rmt: hw buffer too small, received symbols truncated
13:47:56.250 <- I (155181) BT_HID: Found 0 HID device(s)
13:47:56.250 <- I (155181) BT_HID: No HID devices found, retrying in 2000ms...
13:47:57.769 <- E rmt: hw buffer too small, received symbols truncated
13:47:58.275 <- I (157181) BT_HID: Scanning for HID devices (3s)...
13:48:01.319 <- I (160191) BT_HID: Found 0 HID device(s)
13:48:01.319 <- I (160191) BT_HID: No HID devices found, retrying in 2000ms...
13:48:03.346 <- I (162191) BT_HID: Scanning for HID devices (3s)...
13:48:03.346 <- E rmt: hw buffer too small, received symbols truncated
13:48:05.874 <- E rmt: hw buffer too small, received symbols truncated
13:48:05.874 <- I (165201) BT_HID: Found 0 HID device(s)
13:48:05.874 <- I (165201) BT_HID: No HID devices found, retrying in 2000ms...
13:48:07.890 <- I (167201) BT_HID: Scanning for HID devices (3s)...
13:48:09.403 <- E rmt: hw buffer too small, received symbols truncated
13:48:10.921 <- E rmt: hw buffer too small, received symbols truncated
13:48:10.921 <- I (170211) BT_HID: Found 0 HID device(s)
13:48:10.921 <- I (170211) BT_HID: No HID devices found, retrying in 2000ms...
13:48:11.425 <- E rmt: hw buffer too small, received symbols truncated
13:48:12.939 <- I (172211) BT_HID: Scanning for HID devices (3s)...
13:48:14.958 <- E rmt: hw buffer too small, received symbols truncated
13:48:15.968 <- I (175221) BT_HID: Found 0 HID device(s)
13:48:15.968 <- I (175221) BT_HID: No HID devices found, retrying in 2000ms...
13:48:17.985 <- I (177221) BT_HID: Scanning for HID devices (3s)...
13:48:19.502 <- E rmt: hw buffer too small, received symbols truncated
13:48:20.008 <- E rmt: hw buffer too small, received symbols truncated
13:48:21.030 <- I (180231) BT_HID: Found 0 HID device(s)
13:48:21.030 <- I (180231) BT_HID: No HID devices found, retrying in 2000ms...
13:48:23.052 <- I (182231) BT_HID: Scanning for HID devices (3s)...
13:48:25.071 <- E rmt: hw buffer too small, received symbols truncated
13:48:26.084 <- I (185241) BT_HID: Found 0 HID device(s)
13:48:26.084 <- I (185241) BT_HID: No HID devices found, retrying in 2000ms...
13:48:28.110 <- I (187241) BT_HID: Scanning for HID devices (3s)...
13:48:29.625 <- E rmt: hw buffer too small, received symbols truncated
13:48:29.625 <- E rmt: hw buffer too small, received symbols truncated
13:48:30.637 <- E rmt: hw buffer too small, received symbols truncated
13:48:31.140 <- I (190251) BT_HID: Found 0 HID device(s)
13:48:31.140 <- I (190251) BT_HID: No HID devices found, retrying in 2000ms...
13:48:33.168 <- E rmt: hw buffer too small, received symbols truncated
13:48:33.168 <- I (192251) BT_HID: Scanning for HID devices (3s)...
13:48:34.178 <- E rmt: hw buffer too small, received symbols truncated
13:48:34.178 <- E rmt: hw buffer too small, received symbols truncated
13:48:34.178 <- E rmt: hw buffer too small, received symbols truncated
13:48:35.695 <- E rmt: hw buffer too small, received symbols truncated
13:48:36.201 <- E rmt: hw buffer too small, received symbols truncated
13:48:36.201 <- I (195261) BT_HID: Found 0 HID device(s)
13:48:36.201 <- I (195261) BT_HID: No HID devices found, retrying in 2000ms...
13:48:37.228 <- E rmt: hw buffer too small, received symbols truncated
13:48:37.228 <- E rmt: hw buffer too small, received symbols truncated
13:48:38.243 <- I (197261) BT_HID: Scanning for HID devices (3s)...
13:48:39.253 <- E rmt: hw buffer too small, received symbols truncated
13:48:41.278 <- I (200271) BT_HID: Found 0 HID device(s)
13:48:41.278 <- I (200271) BT_HID: No HID devices found, retrying in 2000ms...
13:48:41.278 <- E rmt: hw buffer too small, received symbols truncated
13:48:42.796 <- E rmt: hw buffer too small, received symbols truncated
13:48:43.302 <- I (202271) BT_HID: Scanning for HID devices (3s)...
13:48:45.335 <- E rmt: hw buffer too small, received symbols truncated
13:48:45.841 <- E rmt: hw buffer too small, received symbols truncated
13:48:46.344 <- I (205281) BT_HID: Found 0 HID device(s)
13:48:46.344 <- I (205281) BT_HID: No HID devices found, retrying in 2000ms...
13:48:47.861 <- E rmt: hw buffer too small, received symbols truncated
13:48:48.367 <- I (207281) BT_HID: Scanning for HID devices (3s)...
13:48:48.367 <- E rmt: hw buffer too small, received symbols truncated
13:48:51.402 <- I (210291) BT_HID: Found 0 HID device(s)
13:48:51.402 <- I (210291) BT_HID: No HID devices found, retrying in 2000ms...
13:48:53.429 <- I (212291) BT_HID: Scanning for HID devices (3s)...
13:48:55.452 <- E rmt: hw buffer too small, received symbols truncated
13:48:55.957 <- I (215301) BT_HID: Found 0 HID device(s)
13:48:56.461 <- I (215301) BT_HID: No HID devices found, retrying in 2000ms...
13:48:56.461 <- E rmt: hw buffer too small, received symbols truncated
13:48:57.470 <- E rmt: hw buffer too small, received symbols truncated
13:48:57.974 <- E rmt: hw buffer too small, received symbols truncated
13:48:57.974 <- I (217301) BT_HID: Scanning for HID devices (3s)...
13:48:59.996 <- E rmt: hw buffer too small, received symbols truncated
13:49:01.010 <- I (220311) BT_HID: Found 0 HID device(s)
13:49:01.010 <- I (220311) BT_HID: No HID devices found, retrying in 2000ms...
13:49:03.034 <- I (222311) BT_HID: Scanning for HID devices (3s)...
13:49:03.540 <- E rmt: hw buffer too small, received symbols truncated
13:49:05.060 <- E rmt: hw buffer too small, received symbols truncated
13:49:05.060 <- E rmt: hw buffer too small, received symbols truncated
13:49:05.564 <- E rmt: hw buffer too small, received symbols truncated
13:49:05.564 <- E rmt: hw buffer too small, received symbols truncated
13:49:06.068 <- I (225321) BT_HID: Found 0 HID device(s)
13:49:06.068 <- I (225321) BT_HID: No HID devices found, retrying in 2000ms...
13:49:07.077 <- E rmt: hw buffer too small, received symbols truncated
13:49:08.088 <- I (227321) BT_HID: Scanning for HID devices (3s)...
13:49:09.098 <- E rmt: hw buffer too small, received symbols truncated
13:49:11.117 <- I (230331) BT_HID: Found 0 HID device(s)
13:49:11.117 <- I (230331) BT_HID: No HID devices found, retrying in 2000ms...
13:49:13.144 <- I (232331) BT_HID: Scanning for HID devices (3s)...
13:49:13.648 <- E rmt: hw buffer too small, received symbols truncated
13:49:16.180 <- I (235341) BT_HID: Found 0 HID device(s)
13:49:16.180 <- I (235341) BT_HID: No HID devices found, retrying in 2000ms...
13:49:18.195 <- I (237341) BT_HID: Scanning for HID devices (3s)...
13:49:19.707 <- E rmt: hw buffer too small, received symbols truncated
13:49:21.227 <- I (240351) BT_HID: Found 0 HID device(s)
13:49:21.227 <- I (240351) BT_HID: No HID devices found, retrying in 2000ms...
13:49:21.731 <- E rmt: hw buffer too small, received symbols truncated
13:49:23.244 <- I (242351) BT_HID: Scanning for HID devices (3s)...
13:49:26.278 <- I (245361) BT_HID: Found 0 HID device(s)
13:49:26.278 <- I (245361) BT_HID: No HID devices found, retrying in 2000ms...
13:49:28.292 <- I (247361) BT_HID: Scanning for HID devices (3s)...
13:49:28.796 <- E rmt: hw buffer too small, received symbols truncated

View File

@@ -1,621 +0,0 @@
13:56:49.501
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
13:56:49.503 erase_flash @ COM3
13:56:52.807 flashing from D:\SC\SC-F001\build
13:56:52.809 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
13:57:17.688 Flash complete
13:57:19.189 Connecting to COM3 @ 115200 ...
13:57:19.193 -> BU.BEGIN
13:57:19.218 <- <20>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>x<EFBFBD>xBU.BEGIN
13:57:19.232 <-
13:57:19.233 <- BU.BEGIN
13:57:19.237 <-
13:57:19.237 <- BU.BEGIN
13:57:19.238 <-
13:57:19.238 <- BU.BEGIN
13:57:19.238 <-
13:57:19.238 <- BU.BEGIN
13:57:19.239 <-
13:57:19.239 <- BU.BEGIN
13:57:19.239 <-
13:57:19.239 <- BU.BEGIN
13:57:19.240 <-
13:57:19.240 <- BU.BEGIN
13:57:19.240 <-
13:57:19.240 <- BU.BEGIN
13:57:19.240 <-
13:57:19.240 <- BU.BEGIN
13:57:19.241 <-
13:57:19.241 <- BU.BEGIN
13:57:19.241 <-
13:57:19.241 <- BU.BEGIN
13:57:19.241 <-
13:57:19.241 <- BU.BEGIN
13:57:19.242 <-
13:57:19.242 <- BU.BEGIN
13:57:19.242 <-
13:57:19.242 <- BU.BEGIN
13:57:19.243 <-
13:57:19.243 <- BU.BEGIN
13:57:19.243 <-
13:57:19.243 <- BU.BEGIN
13:57:19.244 <-
13:57:19.244 <- BU.BEGIN
13:57:19.244 <-
13:57:19.244 <- BU.BEGIN
13:57:19.245 <-
13:57:19.245 <- BU.BEGIN
13:57:19.245 <-
13:57:19.245 <- BU.BEGIN
13:57:19.246 <-
13:57:19.246 <- BU.BEGIN
13:57:19.246 <-
13:57:19.246 <- BU.BEGIN
13:57:19.247 <-
13:57:19.247 <- BU.BEGIN
13:57:19.247 <-
13:57:19.247 <- BU.BEGIN
13:57:19.248 <-
13:57:19.248 <- BU.BEGIN
13:57:19.249 <-
13:57:19.249 <- BU.BEGIN
13:57:19.250 <-
13:57:19.250 <- BU.BEGIN
13:57:19.250 <-
13:57:19.250 <- BU.BEGIN
13:57:19.250 <-
13:57:19.250 <- BU.BEGIN
13:57:19.250 <-
13:57:19.250 <- BU.BEGIN
13:57:19.251 <-
13:57:19.251 <- BU.BEGIN
13:57:19.251 <-
13:57:19.251 <- BU.BEGIN
13:57:19.251 <-
13:57:19.251 <- BU.BEGIN
13:57:19.252 <-
13:57:19.252 <- BU.BEGIN
13:57:19.252 <-
13:57:19.252 <- BU.BEGIN
13:57:19.253 <-
13:57:19.253 <- BU.BEGIN
13:57:19.253 <-
13:57:19.253 <- BU.BEGIN
13:57:19.254 <-
13:57:19.254 <- BU.BEGIN
13:57:19.258 <-
13:57:19.258 <- BU.BEGIN
13:57:19.258 <-
13:57:19.258 <- BU.BEGIN
13:57:19.258 <-
13:57:19.258 <- BU.BEGIN
13:57:19.259 <-
13:57:19.259 <- BU.BEGIN
13:57:19.259 <-
13:57:19.259 <- BU.BEGIN
13:57:19.260 <-
13:57:19.260 <- BU.BEGIN
13:57:19.260 <-
13:57:19.260 <- BU.BEGIN
13:57:19.260 <-
13:57:19.260 <- BU.BEGIN
13:57:19.261 <-
13:57:19.261 <- BU.BEGIN
13:57:19.261 <-
13:57:19.262 <- BU.BEGIN
13:57:19.264 <-
13:57:19.265 <- BU.BEGIN
13:57:19.266 <-
13:57:19.267 <- BU.BEGIN
13:57:19.268 <-
13:57:19.268 <- BU.BEGIN
13:57:19.269 <-
13:57:19.269 <- BU.BEGIN
13:57:19.270 <-
13:57:19.270 <- BU.BEGIN
13:57:19.272 <-
13:57:19.272 <- BU.BEGIN
13:57:19.273 <-
13:57:19.273 <- BU.BEGIN
13:57:19.273 <-
13:57:19.273 <- BU.BEGIN
13:57:19.273 <-
13:57:19.273 <- BU.BEGIN
13:57:19.274 <-
13:57:19.274 <- BU.BEGIN
13:57:19.274 <-
13:57:19.274 <- BU.BEGIN
13:57:19.275 <-
13:57:19.275 <- BU.BEGIN
13:57:19.275 <-
13:57:19.275 <- BU.BEGIN
13:57:19.275 <-
13:57:19.275 <- BU.BEGIN
13:57:19.276 <-
13:57:19.276 <- BU.BEGIN
13:57:19.276 <-
13:57:19.276 <- BU.BEGIN
13:57:19.277 <-
13:57:19.277 <- BU.BEGIN
13:57:19.277 <-
13:57:19.277 <- BU.BEGIN
13:57:19.277 <-
13:57:19.277 <- BU.BEGIN
13:57:19.278 <-
13:57:19.278 <- BU.BEGIN
13:57:19.278 <-
13:57:19.279 <- BU.BEGIN
13:57:19.279 <-
13:57:19.279 <- BU.BEGIN
13:57:19.280 <-
13:57:19.280 <- BU.BEGIN
13:57:19.280 <-
13:57:19.280 <- BU.BEGIN
13:57:19.281 <-
13:57:19.281 <- BU.BEGIN
13:57:19.281 <-
13:57:19.281 <- BU.BEGIN
13:57:19.282 <-
13:57:19.282 <- BU.BEGIN
13:57:19.283 <-
13:57:19.283 <- BU.BEGIN
13:57:19.284 <-
13:57:19.284 <- BU.BEGIN
13:57:19.285 <-
13:57:19.285 <- BU.BEGIN
13:57:19.285 <-
13:57:19.285 <- BU.BEGIN
13:57:19.285 <-
13:57:19.285 <- BU.BEGIN
13:57:19.286 <-
13:57:19.286 <- BU.BEGIN
13:57:19.289 <-
13:57:19.289 <- BU.BEGIN
13:57:19.289 <-
13:57:19.290 <- BU.BEGIN
13:57:19.290 <-
13:57:19.290 <- BU.BEGIN
13:57:19.291 <-
13:57:19.291 <- BU.BEGIN
13:57:19.291 <-
13:57:19.291 <- BU.BEGIN
13:57:19.292 <-
13:57:19.292 <- BU.BEGIN
13:57:19.292 <-
13:57:19.292 <- BU.BEGIN
13:57:19.292 <-
13:57:19.292 <- BU.BEGIN
13:57:19.293 <-
13:57:19.293 <- BU.BEGIN
13:57:19.344 <-
13:57:19.344 <- BU.BEGIN
13:57:19.345 <-
13:57:19.345 <- BU.BEGIN
13:57:19.347 <-
13:57:19.347 <- BU.BEGIN
13:57:19.348 <-
13:57:19.348 <- BU.BEGIN
13:57:19.348 <-
13:57:19.348 <- BU.BEGIN
13:57:19.349 <-
13:57:19.349 <- BU.BEGIN
13:57:19.349 <-
13:57:19.349 <- BU.OK begin fw=9f4362b-dirty board=V5 t=0.00
13:57:19.350 -> BU.INFO
13:57:19.350 <- I (1751) SENS: EVENT 2
13:57:19.350 <- I (1751) SENS: FALLING
13:57:19.350 <- I (1751) SENS: SAFETY BREAK - Relays disabled
13:57:19.446 <- E rmt: hw buffer too small, received symbols truncated
13:57:19.446 <- BU.OK info reset=POWERON heap=150292 min_heap=148304 fw=9f4362b-dirty build=2026-04-27 18:56:21
13:57:49.053 -> BU.FLASH
13:57:49.053 <- I (1871) BT_HID: Scanning for HID devices (3s)...
13:57:49.054 <- I (1871) BT_HID: BLE HID host initialised
13:57:49.054 <- I (1871) WEBSERVER: Initializing webserver...
13:57:49.054 <- I (1871) WEBSERVER: AP LAUNCHING
13:57:49.054 <- I (1891) wifi:wifi driver task: 3ffe2838, prio:23, stack:6656, core=0
13:57:49.054 <- I (1891) wifi:wifi firmware version: ccaebfa
13:57:49.054 <- I (1891) wifi:wifi certification version: v7.0
13:57:49.054 <- I (1891) wifi:config NVS flash: enabled
13:57:49.054 <- I (1891) wifi:config nano formating: disabled
13:57:49.054 <- I (1901) wifi:Init data frame dynamic rx buffer num: 32
13:57:49.055 <- I (1901) wifi:Init static rx mgmt buffer num: 5
13:57:49.055 <- I (1911) wifi:Init management short buffer num: 32
13:57:49.055 <- I (1911) wifi:Init dynamic tx buffer num: 32
13:57:49.055 <- I (1911) wifi:Init static rx buffer size: 1600
13:57:49.055 <- I (1921) wifi:Init static rx buffer num: 10
13:57:49.055 <- I (1921) wifi:Init dynamic rx buffer num: 32
13:57:49.055 <- I (1931) wifi_init: rx ba win: 6
13:57:49.056 <- I (1931) wifi_init: accept mbox: 6
13:57:49.056 <- I (1931) wifi_init: tcpip mbox: 32
13:57:49.056 <- I (1941) wifi_init: udp mbox: 6
13:57:49.056 <- I (1941) wifi_init: tcp mbox: 6
13:57:49.056 <- I (1951) wifi_init: tcp tx win: 5760
13:57:49.056 <- I (1951) wifi_init: tcp rx win: 5760
13:57:49.056 <- I (1951) wifi_init: tcp mss: 1440
13:57:49.056 <- I (2241) wifi:mode : softAP (80:f3:da:65:45:4d)
13:57:49.056 <- I (2251) wifi:Total power save buffer number: 16
13:57:49.056 <- I (2251) wifi:Init max length of beacon: 752/752
13:57:49.056 <- I (2251) wifi:Init max length of beacon: 752/752
13:57:49.057 <- I (2251) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
13:57:49.057 <- I (2261) DNS_SERVER: DNS server started on port 53
13:57:49.057 <- I (2271) mdns_mem: mDNS task will be created from internal RAM
13:57:49.057 <- I (2271) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
13:57:49.058 <- I (2281) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
13:57:49.058 <- I (2291) WEBSERVER: STARTING HTTP
13:57:49.058 <- I (2301) WEBSERVER: HTTP server started successfully
13:57:49.058 <- I (2301) WEBSERVER: Registered URI handler: /
13:57:49.058 <- I (2301) WEBSERVER: Registered URI handler: /get
13:57:49.058 <- I (2311) WEBSERVER: Registered URI handler: /post
13:57:49.058 <- I (2311) WEBSERVER: Registered URI handler: /log
13:57:49.059 <- I (2321) WEBSERVER: Registered URI handler: /ota
13:57:49.059 <- I (2321) WEBSERVER: Registered URI handler: /*
13:57:49.059 <- I (2331) WEBSERVER: Webserver initialization complete
13:57:49.059 <- I (4881) BT_HID: Found 0 HID device(s)
13:57:49.060 <- I (4881) BT_HID: No HID devices found, retrying in 2000ms...
13:57:49.060 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.060 <- I (6881) BT_HID: Scanning for HID devices (3s)...
13:57:49.060 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.060 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.060 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.060 <- I (9891) BT_HID: Found 0 HID device(s)
13:57:49.060 <- I (9891) BT_HID: No HID devices found, retrying in 2000ms...
13:57:49.061 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.061 <- I (11891) BT_HID: Scanning for HID devices (3s)...
13:57:49.061 <- I (14901) BT_HID: Found 0 HID device(s)
13:57:49.061 <- I (14901) BT_HID: No HID devices found, retrying in 2000ms...
13:57:49.061 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.062 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.062 <- I (16901) BT_HID: Scanning for HID devices (3s)...
13:57:49.062 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.062 <- I (19911) BT_HID: Found 0 HID device(s)
13:57:49.062 <- I (19911) BT_HID: No HID devices found, retrying in 2000ms...
13:57:49.062 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.062 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.062 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.063 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.063 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.063 <- I (21911) BT_HID: Scanning for HID devices (3s)...
13:57:49.063 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.063 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.064 <- I (24921) BT_HID: Found 0 HID device(s)
13:57:49.064 <- I (24921) BT_HID: No HID devices found, retrying in 2000ms...
13:57:49.064 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.064 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.064 <- I (26921) BT_HID: Scanning for HID devices (3s)...
2mI (29931) BT_HID: Found 0 HID device(s)
13:57:49.065 <- I (29931) BT_HID: No HID devices found, retrying in 2000ms...
13:57:49.573 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.573 <- E rmt: hw buffer too small, received symbols truncated
13:57:49.573 <- BU.OK flash post_part=roundtrip log_head=11 log_tail=0 partitions_size=4128768
13:57:50.410 -> BU.I2C
13:57:50.411 <- I (31931) BT_HID: Scanning for HID devices (3s)...
13:57:50.921 <- E rmt: hw buffer too small, received symbols truncated
13:57:50.921 <- E rmt: hw buffer too small, received symbols truncated
13:57:50.921 <- I (32861) I2C: POST: TCA9555 OK (port0=0x0023)
13:57:50.921 <- BU.OK i2c tca9555=ack
13:57:50.923 -> BU.LED.WATCH
13:57:51.430 <- BU.EVENT led t=31.73 pressed=0
13:57:52.707 <- E rmt: hw buffer too small, received symbols truncated
13:57:52.707 <- I (34941) BT_HID: Found 0 HID device(s)
13:57:52.707 <- I (34941) BT_HID: No HID devices found, retrying in 2000ms...
13:57:52.707 <- BU.EVENT led t=33.33 pressed=1
13:57:53.221 <- E rmt: hw buffer too small, received symbols truncated
13:57:53.221 <- BU.EVENT led t=33.51 pressed=0
13:57:53.221 <- E rmt: hw buffer too small, received symbols truncated
13:57:54.231 <- E rmt: hw buffer too small, received symbols truncated
13:57:54.737 <- I (36941) BT_HID: Scanning for HID devices (3s)...
13:57:55.744 <- E rmt: hw buffer too small, received symbols truncated
13:57:56.250 <- BU.EVENT led t=36.69 pressed=1
13:57:57.258 <- E rmt: hw buffer too small, received symbols truncated
13:57:57.258 <- BU.EVENT led t=37.91 pressed=0
13:57:57.762 <- I (39951) BT_HID: Found 0 HID device(s)
13:57:57.762 <- I (39951) BT_HID: No HID devices found, retrying in 2000ms...
13:57:58.265 <- E rmt: hw buffer too small, received symbols truncated
13:57:59.050 ->
13:57:59.272 <- BU.OK led.watch done
13:58:00.441 -> BU.ADC
13:58:00.954 <- I (41951) BT_HID: Scanning for HID devices (3s)...

Binary file not shown.

View File

@@ -1,316 +0,0 @@
15:41:24.233
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
15:41:24.235 erase_flash @ COM3
15:41:27.392 flashing from D:\SC\SC-F001\build
15:41:27.393 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
15:41:52.476 Flash complete
15:41:53.977 Connecting to COM3 @ 115200 ...
15:41:53.983 -> BU.BEGIN
15:41:54.223 <- BU.BEGIN
15:41:54.223 <-
15:41:54.223 <-
15:41:54.223 <- BU.OK begin fw=9f4362b-dirty board=V5 t=0.00
15:41:54.225 -> BU.INFO
15:41:54.225 <- I (1741) SENS: EVENT 2
15:41:54.237 <- I (1741) SENS: FALLING
15:41:54.237 <- I (1741) SENS: SAFETY BREAK - Relays disabled
15:41:54.237 <- E rmt: hw buffer too small, received symbols truncated
15:41:54.243 <- I (1861) BT_HID: Scanning for HID devices (3s)...
15:41:54.243 <- I (1861) BT_HID: BLE HID host initialised
15:41:54.243 <- I (1861) WEBSERVER: Initializing webserver...
15:41:54.243 <- I (1861) WEBSERVER: AP LAUNCHING
15:41:54.264 <- I (1881) wifi:wifi driver task: 3ffe284c, prio:23, stack:6656, core=0
15:41:54.264 <-
15:41:54.264 <- BU.OK info reset=POWERON heap=118580 min_heap=118492 fw=9f4362b-dirty build=2026-04-27 20:32:37
15:41:57.947 -> BU.FLASH
15:41:57.947 <- I (1881) wifi:wifi firmware version: ccaebfa
15:41:57.947 <- I (1881) wifi:wifi certification version: v7.0
15:41:57.947 <- I (1891) wifi:config NVS flash: enabled
15:41:57.948 <- I (1891) wifi:config nano formating: disabled
15:41:57.948 <- I (1901) wifi:Init data frame dynamic rx buffer num: 32
15:41:57.948 <- I (1901) wifi:Init static rx mgmt buffer num: 5
15:41:57.948 <- I (1901) wifi:Init management short buffer num: 32
15:41:57.948 <- I (1911) wifi:Init dynamic tx buffer num: 32
15:41:57.948 <- I (1911) wifi:Init static rx buffer size: 1600
15:41:57.949 <- I (1921) wifi:Init static rx buffer num: 10
15:41:57.949 <- I (1921) wifi:Init dynamic rx buffer num: 32
15:41:57.949 <- I (1931) wifi_init: rx ba win: 6
15:41:57.949 <- I (1931) wifi_init: accept mbox: 6
15:41:57.949 <- I (1931) wifi_init: tcpip mbox: 32
15:41:57.949 <- I (1941) wifi_init: udp mbox: 6
15:41:57.949 <- I (1941) wifi_init: tcp mbox: 6
15:41:57.949 <- I (1941) wifi_init: tcp tx win: 5760
15:41:57.949 <- I (1951) wifi_init: tcp rx win: 5760
15:41:57.949 <- I (1951) wifi_init: tcp mss: 1440
15:41:57.950 <- I (2241) wifi:mode : softAP (80:f3:da:65:45:4d)
15:41:57.950 <- I (2251) wifi:Total power save buffer number: 16
15:41:57.950 <- I (2251) wifi:Init max length of beacon: 752/752
15:41:57.950 <- I (2251) wifi:Init max length of beacon: 752/752
15:41:57.950 <- I (2251) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
15:41:57.950 <- I (2261) DNS_SERVER: DNS server started on port 53
15:41:57.950 <- I (2271) mdns_mem: mDNS task will be created from internal RAM
15:41:57.951 <- I (2271) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
15:41:57.951 <- I (2281) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
15:41:57.951 <- I (2291) WEBSERVER: STARTING HTTP
15:41:57.951 <- I (2291) WEBSERVER: HTTP server started successfully
15:41:57.952 <- I (2301) WEBSERVER: Registered URI handler: /
15:41:57.952 <- I (2301) WEBSERVER: Registered URI handler: /get
15:41:57.952 <- I (2311) WEBSERVER: Registered URI handler: /post
15:41:57.952 <- I (2311) WEBSERVER: Registered URI handler: /log
15:41:57.977 <- I (2321) WEBSERVER: Registered URI handler: /ota
15:41:57.977 <- I (2321) WEBSERVER: Registered URI handler: /*
15:41:57.977 <- I (2331) WEBSERVER: Webserver initialization complete
15:41:57.977 <- I (4871) BT_HID: Found 0 HID device(s)
15:41:57.977 <- I (4871) BT_HID: No HID devices found, retrying in 2000ms...
15:41:57.977 <-
15:41:58.486 <- BU.OK flash post_part=roundtrip log_head=11 log_tail=0 partitions_size=4128768
15:41:59.355 -> BU.I2C
15:41:59.863 <- I (6871) BT_HID: Scanning for HID devices (3s)...
15:41:59.863 <- I (7021) I2C: POST: TCA9555 OK (port0=0x0021)
15:41:59.863 <-
15:41:59.863 <- BU.OK i2c tca9555=ack
15:41:59.865 -> BU.LED.WATCH
15:42:00.367 <-
15:42:00.367 <- BU.EVENT led t=5.89 pressed=0
15:42:01.883 <- E rmt: hw buffer too small, received symbols truncated
15:42:01.883 <- E rmt: hw buffer too small, received symbols truncated
15:42:02.387 <- I (9881) BT_HID: Found 0 HID device(s)
15:42:02.387 <- I (9881) BT_HID: No HID devices found, retrying in 2000ms...
15:42:02.693 ->
15:42:02.893 <-
15:42:02.893 <- BU.OK led.watch done
15:42:04.011 -> BU.ADC
15:42:04.527 <-
15:42:04.527 <- BU.OK adc bat_mv=1695 bat_V=13.395 isens_mv=1672 isens_A=-1.67
15:42:04.533 -> BU.PARAM GET V_SENS_K
15:42:04.533 <- I (11881) BT_HID: Scanning for HID devices (3s)...
15:42:05.036 <-
15:42:05.036 <- BU.OK param key=V_SENS_K value=0.00766666653
15:42:05.036 -> BU.ADC
15:42:05.541 <-
15:42:05.541 <- BU.OK adc bat_mv=1686 bat_V=13.326 isens_mv=1674 isens_A=-1.82
15:42:20.017 -> BU.PARAM SET V_SENS_OFFSET 0.094000
15:42:20.018 <- E rmt: hw buffer too small, received symbols truncated
15:42:20.018 <- I (14891) BT_HID: Found 0 HID device(s)
15:42:20.018 <- I (14891) BT_HID: No HID devices found, retrying in 2000ms...
15:42:20.018 <- I (16891) BT_HID: Scanning for HID devices (3s)...
15:42:20.018 <- I (19901) BT_HID: Found 0 HID device(s)
15:42:20.018 <- I (19901) BT_HID: No HID devices found, retrying in 2000ms...
15:42:20.018 <- E rmt: hw buffer too small, received symbols truncated
15:42:20.018 <- I (21901) BT_HID: Scanning for HID devices (3s)...
15:42:20.044 <- E rmt: hw buffer too small, received symbols truncated
15:42:20.044 <- I (24911) BT_HID: Found 0 HID device(s)
15:42:20.044 <- I (24911) BT_HID: No HID devices found, retrying in 2000ms...
15:42:20.044 <- I (26911) BT_HID: Scanning for HID devices (3s)...
15:42:20.553 <- I (27681) STORAGE: Parameter 34 (V_SENS_OFFSET) set (not committed)
15:42:20.553 <- I (27681) STORAGE: Committing 49 parameters to flash...
15:42:20.553 <- I (27711) STORAGE: Successfully committed all parameters to flash
15:42:20.553 <-
15:42:20.553 <- BU.OK param key=V_SENS_OFFSET set=ok committed=yes
15:42:20.553 -> BU.PARAM GET V_SENS_OFFSET
15:42:21.059 <-
15:42:21.059 <- BU.OK param key=V_SENS_OFFSET value=0.0939999968
15:42:21.059 -> BU.ADC
15:42:21.060 <- E rmt: hw buffer too small, received symbols truncated
15:42:21.060 <- E rmt: hw buffer too small, received symbols truncated
15:42:21.565 <-
15:42:21.565 <- BU.OK adc bat_mv=1688 bat_V=13.035 isens_mv=1666 isens_A=-1.21
15:42:21.571 -> BU.SENSORS.WATCH 0
15:42:22.073 <-
15:42:22.073 <- BU.EVENT state t=27.59 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=3 isr_a=0
15:42:22.073 <-
15:42:22.073 <- BU.EVENT sensor name=JACK edge=make t=27.69
15:42:22.076 <-
15:42:22.076 <- BU.EVENT state t=27.85 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:22.353 <-
15:42:22.353 <- BU.EVENT state t=28.10 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:22.353 <- I (29921) BT_HID: Found 0 HID device(s)
15:42:22.353 <- I (29921) BT_HID: No HID devices found, retrying in 2000ms...
15:42:22.353 <-
15:42:22.854 <- BU.EVENT state t=28.35 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:22.854 <-
15:42:22.854 <- BU.EVENT state t=28.60 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:22.855 <-
15:42:23.355 <- BU.EVENT state t=28.85 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:23.355 <-
15:42:23.355 <- BU.EVENT state t=29.10 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:23.355 <- E rmt: hw buffer too small, received symbols truncated
15:42:23.355 <-
15:42:23.865 <- BU.EVENT state t=29.35 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:23.865 <-
15:42:23.865 <- BU.EVENT state t=29.60 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:23.865 <- E rmt: hw buffer too small, received symbols truncated
15:42:23.865 <-
15:42:23.865 <- BU.EVENT state t=29.85 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:24.372 <-
15:42:24.372 <- BU.EVENT state t=30.10 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:24.372 <- I (31921) BT_HID: Scanning for HID devices (3s)...
15:42:24.372 <-
15:42:24.372 <- BU.EVENT state t=30.35 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:24.875 <-
15:42:24.875 <- BU.EVENT state t=30.60 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:24.875 <- E rmt: hw buffer too small, received symbols truncated
15:42:24.875 <-
15:42:24.875 <- BU.EVENT state t=30.85 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:25.382 <-
15:42:25.382 <- BU.EVENT state t=31.10 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:25.382 <-
15:42:25.382 <- BU.EVENT state t=31.35 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:25.886 <-
15:42:25.886 <- BU.EVENT state t=31.60 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:25.886 <-
15:42:25.886 <- BU.EVENT state t=31.85 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:26.390 <-
15:42:26.390 <- BU.EVENT state t=32.10 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:26.390 <-
15:42:26.390 <- BU.EVENT state t=32.35 SAFETY=0 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=4 isr_a=0
15:42:26.894 <-

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,452 +0,0 @@
17:23:41.550
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
17:23:41.552 erase_flash @ COM3
17:23:44.054 flashing from D:\SC\SC-F001\build
17:23:44.055 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
17:24:08.986 Flash complete
17:24:10.486 Connecting to COM3 @ 115200 ...
17:24:10.492 -> BU.BEGIN
17:24:10.743 <- BU.BEGIN
17:24:10.743 <-
17:24:10.743 <-
17:24:10.743 <- BU.OK begin fw=f47a292 board=V5 t=0.00
17:24:10.744 -> BU.INFO
17:24:10.744 <- E rmt: hw buffer too small, received symbols truncated
17:24:10.756 <- I (1861) BT_HID: Scanning for HID devices (3s)...
17:24:10.756 <- I (1861) BT_HID: BLE HID host initialised
17:24:10.762 <- I (1861) WEBSERVER: Initializing webserver...
17:24:10.762 <- I (1861) WEBSERVER: AP LAUNCHING
17:24:10.762 <- I (1881) wifi:wifi driver task: 3ffe2870, prio:23, stack:6656, core=0
17:24:10.762 <- I (1881) wifi:wifi firmware version: ccaebfa
17:24:10.762 <- I (1881) wifi:wifi certification version: v7.0
17:24:10.790 <- I (1881) wifi:config NVS flash: enabled
17:24:10.790 <- I (1881) wifi:config nano formating: disabled
17:24:10.790 <- I (1891) wifi:Init data frame dynamic rx buffer num: 32
17:24:10.790 <- I (1891) wifi:Init static rx mgmt buffer num: 5
17:24:10.790 <-
17:24:10.811 <- BU.OK info reset=POWERON heap=111632 min_heap=111632 fw=f47a292 build=2026-04-27 22:23:10
17:24:14.382 -> BU.FLASH
17:24:14.383 <- I (1901) wifi:Init management short buffer num: 32
17:24:14.383 <- I (1911) wifi:Init dynamic tx buffer num: 32
17:24:14.383 <- I (1911) wifi:Init static rx buffer size: 1600
17:24:14.383 <- I (1921) wifi:Init static rx buffer num: 10
17:24:14.383 <- I (1921) wifi:Init dynamic rx buffer num: 32
17:24:14.383 <- I (1931) wifi_init: rx ba win: 6
17:24:14.383 <- I (1931) wifi_init: accept mbox: 6
17:24:14.383 <- I (1931) wifi_init: tcpip mbox: 32
17:24:14.384 <- I (1941) wifi_init: udp mbox: 6
17:24:14.384 <- I (1941) wifi_init: tcp mbox: 6
17:24:14.385 <- I (1941) wifi_init: tcp tx win: 5760
17:24:14.385 <- I (1951) wifi_init: tcp rx win: 5760
17:24:14.385 <- I (1951) wifi_init: tcp mss: 1440
17:24:14.385 <- I (2241) wifi:mode : softAP (80:f3:da:65:45:4d)
17:24:14.385 <- I (2251) wifi:Total power save buffer number: 16
17:24:14.385 <- I (2251) wifi:Init max length of beacon: 752/752
17:24:14.385 <- I (2251) wifi:Init max length of beacon: 752/752
17:24:14.385 <- I (2251) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
17:24:14.385 <- I (2261) DNS_SERVER: DNS server started on port 53
17:24:14.386 <- I (2271) mdns_mem: mDNS task will be created from internal RAM
17:24:14.386 <- I (2271) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
17:24:14.386 <- I (2281) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
17:24:14.387 <- I (2281) WEBSERVER: STARTING HTTP
17:24:14.387 <- I (2291) WEBSERVER: HTTP server started successfully
17:24:14.387 <- I (2291) WEBSERVER: Registered URI handler: /
17:24:14.387 <- I (2301) WEBSERVER: Registered URI handler: /get
17:24:14.387 <- I (2301) WEBSERVER: Registered URI handler: /post
17:24:14.388 <- I (2311) WEBSERVER: Registered URI handler: /log
17:24:14.388 <- I (2311) WEBSERVER: Registered URI handler: /ota
17:24:14.388 <- I (2321) WEBSERVER: Registered URI handler: /*
17:24:14.388 <- I (2331) WEBSERVER: Webserver initialization complete
17:24:14.894 <- I (4871) BT_HID: Found 0 HID device(s)
17:24:14.894 <- I (4871) BT_HID: No HID devices found, retrying in 2000ms...
17:24:14.894 <-
17:24:14.894 <- BU.OK flash post_part=roundtrip log_head=11 log_tail=0 partitions_size=4128768
17:24:15.868 -> BU.I2C
17:24:15.894 <- E rmt: hw buffer too small, received symbols truncated
17:24:15.894 <- I (6871) BT_HID: Scanning for HID devices (3s)...
17:24:15.894 <- E rmt: hw buffer too small, received symbols truncated
17:24:15.894 <- I (7021) I2C: POST: TCA9555 OK (port0=0x0123)
17:24:15.894 <-
17:24:16.409 <- BU.OK i2c tca9555=ack
17:24:16.411 -> BU.LED.WATCH
17:24:16.920 <-
17:24:16.920 <- BU.EVENT led t=5.92 pressed=0
17:24:17.424 <- E rmt: hw buffer too small, received symbols truncated
17:24:18.434 <-
17:24:18.434 <- BU.EVENT led t=7.42 pressed=1
17:24:18.434 <- E rmt: hw buffer too small, received symbols truncated
17:24:18.939 <- I (9881) BT_HID: Found 0 HID device(s)
17:24:18.939 <- I (9881) BT_HID: No HID devices found, retrying in 2000ms...
17:24:19.452 <-
17:24:19.452 <- BU.EVENT led t=8.58 pressed=0
17:24:20.970 <- I (11881) BT_HID: Scanning for HID devices (3s)...
17:24:21.728 ->
17:24:21.984 <-
17:24:21.984 <- BU.OK led.watch done
17:24:23.059 -> BU.ADC
17:24:23.571 <-
17:24:23.571 <- BU.OK adc bat_mv=1672 bat_V=13.219 isens_mv=1677 isens_A=-2.05
17:24:23.573 -> BU.PARAM GET V_SENS_K
17:24:23.573 <- E rmt: hw buffer too small, received symbols truncated
17:24:24.085 <-
17:24:24.085 <- BU.OK param key=V_SENS_K value=0.00766666653
17:24:24.085 -> BU.ADC
17:24:24.085 <- I (14891) BT_HID: Found 0 HID device(s)
17:24:24.085 <- I (14891) BT_HID: No HID devices found, retrying in 2000ms...
17:24:24.589 <-
17:24:24.589 <- BU.OK adc bat_mv=1672 bat_V=13.219 isens_mv=1671 isens_A=-1.59
17:24:27.396 -> BU.PARAM SET V_SENS_OFFSET 0.171334
17:24:27.396 <- E rmt: hw buffer too small, received symbols truncated
17:24:27.422 <- I (16891) BT_HID: Scanning for HID devices (3s)...
17:24:27.422 <- E rmt: hw buffer too small, received symbols truncated
17:24:27.422 <- E rmt: hw buffer too small, received symbols truncated
17:24:27.422 <- E rmt: hw buffer too small, received symbols truncated
17:24:27.927 <- I (18551) STORAGE: Parameter 34 (V_SENS_OFFSET) set (not committed)
17:24:27.927 <- I (18551) STORAGE: Committing 49 parameters to flash...
17:24:27.927 <- I (18581) STORAGE: Successfully committed all parameters to flash
17:24:27.927 <-
17:24:27.927 <- BU.OK param key=V_SENS_OFFSET set=ok committed=yes
17:24:27.927 -> BU.PARAM GET V_SENS_OFFSET
17:24:28.433 <-
17:24:28.433 <- BU.OK param key=V_SENS_OFFSET value=0.171333998
17:24:28.433 -> BU.ADC
17:24:28.938 <-
17:24:28.938 <- BU.OK adc bat_mv=1679 bat_V=13.044 isens_mv=1682 isens_A=-2.42
17:24:42.784 -> BU.ADC
17:24:42.784 <- I (19901) BT_HID: Found 0 HID device(s)
17:24:42.784 <- I (19901) BT_HID: No HID devices found, retrying in 2000ms...
17:24:42.785 <- E rmt: hw buffer too small, received symbols truncated
17:24:42.785 <- E rmt: hw buffer too small, received symbols truncated
17:24:42.785 <- I (21901) BT_HID: Scanning for HID devices (3s)...
17:24:42.785 <- E rmt: hw buffer too small, received symbols truncated
17:24:42.786 <- I (24911) BT_HID: Found 0 HID device(s)
17:24:42.786 <- I (24911) BT_HID: No HID devices found, retrying in 2000ms...
17:24:42.786 <- E rmt: hw buffer too small, received symbols truncated
17:24:42.786 <- I (26911) BT_HID: Scanning for HID devices (3s)...
17:24:42.786 <- E rmt: hw buffer too small, received symbols truncated
17:24:42.786 <- E rmt: hw buffer too small, received symbols truncated
17:24:42.786 <- I (29921) BT_HID: Found 0 HID device(s)
17:24:42.786 <- I (29921) BT_HID: No HID devices found, retrying in 2000ms...
17:24:43.294 <- I (31921) BT_HID: Scanning for HID devices (3s)...
17:24:43.294 <- E rmt: hw buffer too small, received symbols truncated
17:24:43.294 <-
17:24:43.294 <- BU.OK adc bat_mv=1680 bat_V=13.051 isens_mv=1678 isens_A=-2.12
17:24:43.297 -> BU.PARAM GET V_SENS_K
17:24:43.798 <-
17:24:43.798 <- BU.OK param key=V_SENS_K value=0.00766666653
17:24:43.798 -> BU.ADC
17:24:44.302 <- I (34931) BT_HID: Found 0 HID device(s)
17:24:44.302 <- I (34931) BT_HID: No HID devices found, retrying in 2000ms...
17:24:44.302 <-
17:24:44.302 <- BU.OK adc bat_mv=1679 bat_V=13.044 isens_mv=1660 isens_A=-0.76
17:24:46.441 -> BU.PARAM SET V_SENS_OFFSET 0.067667
17:24:46.479 <- E rmt: hw buffer too small, received symbols truncated
17:24:46.479 <- I (36931) BT_HID: Scanning for HID devices (3s)...
17:24:46.479 <- I (37601) STORAGE: Parameter 34 (V_SENS_OFFSET) set (not committed)
17:24:46.980 <- I (37601) STORAGE: Committing 49 parameters to flash...
17:24:46.980 <- I (37661) STORAGE: Successfully committed all parameters to flash
17:24:46.980 <-
17:24:46.980 <- BU.OK param key=V_SENS_OFFSET set=ok committed=yes
17:24:46.980 -> BU.PARAM GET V_SENS_OFFSET
17:24:47.484 <-
17:24:47.484 <- BU.OK param key=V_SENS_OFFSET value=0.067667
17:24:47.484 -> BU.ADC
17:24:47.989 <-
17:24:47.989 <- BU.OK adc bat_mv=1672 bat_V=12.886 isens_mv=1669 isens_A=-1.44
17:24:53.137 -> BU.SENSORS.WATCH 0
17:24:53.165 <- I (39941) BT_HID: Found 0 HID device(s)
17:24:53.165 <- I (39941) BT_HID: No HID devices found, retrying in 2000ms...
17:24:53.165 <- I (41941) BT_HID: Scanning for HID devices (3s)...
17:24:53.165 <-
17:24:53.674 <- BU.EVENT state t=42.65 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:53.674 <-
17:24:53.674 <- BU.EVENT state t=42.91 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:53.674 <-
17:24:53.674 <- BU.EVENT state t=43.16 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:54.171 <- I (44951) BT_HID: Found 0 HID device(s)
17:24:54.171 <- I (44951) BT_HID: No HID devices found, retrying in 2000ms...
17:24:54.171 <-
17:24:54.171 <- BU.EVENT state t=43.41 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:54.171 <-
17:24:54.674 <- BU.EVENT state t=43.66 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:54.674 <-
17:24:54.674 <- BU.EVENT state t=43.91 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:54.674 <- E rmt: hw buffer too small, received symbols truncated
17:24:54.674 <-
17:24:55.189 <- BU.EVENT state t=44.16 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:55.189 <-
17:24:55.189 <- BU.EVENT state t=44.41 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:55.189 <-
17:24:55.189 <- BU.EVENT state t=44.66 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:55.692 <-
17:24:55.692 <- BU.EVENT state t=44.91 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:55.692 <- E rmt: hw buffer too small, received symbols truncated
17:24:55.692 <-
17:24:55.692 <- BU.EVENT state t=45.16 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:56.198 <- I (46951) BT_HID: Scanning for HID devices (3s)...
17:24:56.198 <-
17:24:56.198 <- BU.EVENT state t=45.41 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:56.198 <-
17:24:56.198 <- BU.EVENT state t=45.66 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:56.703 <-
17:24:56.703 <- BU.EVENT state t=45.91 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:56.703 <-
17:24:56.703 <- BU.EVENT state t=46.16 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:57.207 <-
17:24:57.207 <- BU.EVENT state t=46.41 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:57.207 <-
17:24:57.207 <- BU.EVENT state t=46.66 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:57.710 <-
17:24:57.710 <- BU.EVENT state t=46.91 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:57.710 <-
17:24:57.710 <- BU.EVENT state t=47.16 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:58.215 <-
17:24:58.215 <- BU.EVENT state t=47.41 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:58.215 <-
17:24:58.215 <- BU.EVENT state t=47.67 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:58.720 <-
17:24:58.720 <- BU.EVENT state t=47.93 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:58.720 <-
17:24:58.720 <- BU.EVENT state t=48.18 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:58.954 <- E rmt: hw buffer too small, received symbols truncated
17:24:58.954 <- I (49961) BT_HID: Found 0 HID device(s)
17:24:58.954 <- I (49961) BT_HID: No HID devices found, retrying in 2000ms...
17:24:58.954 <-
17:24:59.456 <- BU.EVENT state t=48.44 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:59.456 <-
17:24:59.456 <- BU.EVENT state t=48.69 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:59.456 <-
17:24:59.456 <- BU.EVENT state t=48.94 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:59.959 <-
17:24:59.959 <- BU.EVENT state t=49.19 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:24:59.959 <-
17:24:59.959 <- BU.EVENT state t=49.44 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:25:00.079 ->
17:25:00.464 <-
17:25:00.464 <- BU.OK sensors.watch sec=-1 SAFETY=none DRIVE=none JACK=none AUX=none
17:25:02.447 -> BU.SENSORS.WATCH 0
17:25:02.731 <- I (51961) BT_HID: Scanning for HID devices (3s)...
17:25:02.731 <- E rmt: hw buffer too small, received symbols truncated
17:25:02.731 <-
17:25:02.731 <- BU.EVENT state t=51.96 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:25:02.731 <-
17:25:03.236 <- BU.EVENT state t=52.22 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:25:03.236 <-
17:25:03.236 <- BU.EVENT state t=52.47 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:25:03.236 <-
17:25:03.236 <- BU.EVENT state t=52.72 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
17:25:03.740 <-
17:25:03.740 <- BU.EVENT state t=52.97 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0

View File

@@ -1,5 +0,0 @@
11:43:53.518
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
11:43:53.520 erase_flash @ COM3

Binary file not shown.

View File

@@ -1,29 +0,0 @@
11:53:56.064
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
11:53:56.065 erase_flash @ COM3
11:54:01.022 flashing from D:\SC\SC-F001\build
11:54:01.024 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
11:54:26.093 Flash complete
11:54:27.593 Connecting to COM3 @ 115200 ...
11:54:27.598 -> BU.BEGIN
11:54:27.868 <- BU.BEGIN
11:54:27.868 <-
11:54:27.868 <-
11:54:27.868 <- BU.OK begin fw=ef1f3e4-dirty board=V5 t=0.00
11:54:27.869 -> BU.INFO
11:54:27.869 <- E rmt: hw buffer too small, received symbols truncated
11:54:27.881 <- E (1801) rmt: rmt_receive(400): channel not in enable state
11:54:27.881 <- I (1871) BT_HID: Scanning for HID devices (3s)...
11:54:27.888 <- I (1881) BT_HID: BLE HID host initialised
11:54:27.888 <- I (1881) WEBSERVER: Initializing webserver...

View File

@@ -1,30 +0,0 @@
12:00:48.135
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
12:00:48.137 erase_flash @ COM3
12:00:51.075 flashing from D:\SC\SC-F001\build
12:00:51.077 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
12:01:16.368 Flash complete
12:01:17.869 Connecting to COM3 @ 115200 ...
12:01:17.874 -> BU.BEGIN
12:01:18.144 <- BU.BEGIN
12:01:18.144 <-
12:01:18.144 <-
12:01:18.144 <- BU.OK begin fw=ef1f3e4-dirty board=V5 t=0.00
12:01:18.145 -> BU.INFO
12:01:18.145 <- E rmt: hw buffer too small, received symbols truncated
12:01:18.158 <- I (1871) BT_HID: Scanning for HID devices (3s)...
12:01:18.158 <- I (1871) BT_HID: BLE HID host initialised
12:01:18.164 <- I (1871) WEBSERVER: Initializing webserver...
12:01:18.164 <- I (1871) WEBSERVER: AP LAUNCHING
12:01:18.164 <- I (1891) wifi:wifi driver task: 3ffe28e8, prio:23, stack:6656, core=0

View File

@@ -1,183 +0,0 @@
12:07:31.778
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
12:07:31.779 erase_flash @ COM3
12:07:36.232 flashing from D:\SC\SC-F001\build
12:07:36.233 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
12:08:01.333 Flash complete
12:08:02.833 Connecting to COM3 @ 115200 ...
12:08:02.840 -> BU.BEGIN
12:08:03.098 <- BU.BEGIN
12:08:03.098 <-
12:08:03.098 <-
12:08:03.098 <- BU.OK begin fw=ef1f3e4-dirty board=V5 t=0.00
12:08:03.100 -> BU.INFO
12:08:03.100 <- I (1871) BT_HID: Scanning for HID devices (3s)...
12:08:03.112 <- I (1871) BT_HID: BLE HID host initialised
12:08:03.112 <- I (1871) WEBSERVER: Initializing webserver...
12:08:03.120 <- I (1871) WEBSERVER: AP LAUNCHING
12:08:03.120 <- I (1891) wifi:wifi driver task: 3ffe2908, prio:23, stack:6656, core=0
12:08:03.120 <- I (1891) wifi:wifi firmware version: ccaebfa
12:08:03.120 <- I (1891) wifi:wifi certification version: v7.0
12:08:03.120 <- I (1891) wifi:config NVS flash: enabled
12:08:03.141 <- I (1891) wifi:config nano formating: disabled
12:08:03.142 <- I (1901) wifi:Init data frame dynamic rx buffer num: 32
12:08:03.142 <- I (1901) wifi:Init static rx mgmt buffer num: 5
12:08:03.142 <-
12:08:03.142 <- BU.OK info reset=POWERON heap=111540 min_heap=111540 fw=ef1f3e4-dirty build=2026-04-28 17:05:39
12:08:15.696 -> BU.FLASH
12:08:15.697 <- I (1911) wifi:Init management short buffer num: 32
12:08:15.697 <- I (1921) wifi:Init dynamic tx buffer num: 32
12:08:15.697 <- I (1921) wifi:Init static rx buffer size: 1600
12:08:15.697 <- I (1931) wifi:Init static rx buffer num: 10
12:08:15.697 <- I (1931) wifi:Init dynamic rx buffer num: 32
12:08:15.697 <- I (1941) wifi_init: rx ba win: 6
12:08:15.698 <- I (1941) wifi_init: accept mbox: 6
12:08:15.698 <- I (1941) wifi_init: tcpip mbox: 32
12:08:15.698 <- I (1951) wifi_init: udp mbox: 6
12:08:15.698 <- I (1951) wifi_init: tcp mbox: 6
12:08:15.698 <- I (1951) wifi_init: tcp tx win: 5760
12:08:15.698 <- I (1961) wifi_init: tcp rx win: 5760
12:08:15.698 <- I (1961) wifi_init: tcp mss: 1440
12:08:15.698 <- I (2251) wifi:mode : softAP (80:f3:da:65:45:4d)
12:08:15.698 <- I (2261) wifi:Total power save buffer number: 16
12:08:15.698 <- I (2261) wifi:Init max length of beacon: 752/752
12:08:15.698 <- I (2261) wifi:Init max length of beacon: 752/752
12:08:15.698 <- I (2271) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
12:08:15.698 <- I (2271) DNS_SERVER: DNS server started on port 53
12:08:15.698 <- I (2281) mdns_mem: mDNS task will be created from internal RAM
12:08:15.699 <- I (2291) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
12:08:15.699 <- I (2291) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
12:08:15.699 <- I (2301) WEBSERVER: STARTING HTTP
12:08:15.699 <- I (2311) WEBSERVER: HTTP server started successfully
12:08:15.699 <- I (2311) WEBSERVER: Registered URI handler: /
12:08:15.699 <- I (2311) WEBSERVER: Registered URI handler: /get
12:08:15.699 <- I (2321) WEBSERVER: Registered URI handler: /post
12:08:15.700 <- I (2321) WEBSERVER: Registered URI handler: /log
12:08:15.700 <- I (2331) WEBSERVER: Registered URI handler: /ota
12:08:15.700 <- I (2331) WEBSERVER: Registered URI handler: /*
12:08:15.700 <- I (2341) WEBSERVER: Webserver initialization complete
12:08:15.700 <- E rmt: hw buffer too small, received symbols truncated
12:08:15.700 <- E rmt: hw buffer too small, received symbols truncated
12:08:15.700 <- I (4881) BT_HID: Found 0 HID device(s)
12:08:15.700 <- I (4881) BT_HID: No HID devices found, retrying in 2000ms...
12:08:15.700 <- E rmt: hw buffer too small, received symbols truncated
12:08:15.701 <- E rmt: hw buffer too small, received symbols truncated
12:08:15.701 <- I (6881) BT_HID: Scanning for HID devices (3s)...
12:08:15.701 <- I (9891) BT_HID: Found 0 HID device(s)
12:08:15.701 <- I (9891) BT_HID: No HID devices found, retrying in 2000ms...
12:08:15.727 <- E rmt: hw buffer too small, received symbols truncated
12:08:15.727 <- I (11891) BT_HID: Scanning for HID devices (3s)...
12:08:15.727 <- E rmt: hw buffer too small, received symbols truncated
12:08:15.727 <- E rmt: hw buffer too small, received symbols truncated
12:08:15.727 <- E rmt: hw buffer too small, received symbols truncated
12:08:15.727 <-
12:08:16.235 <- BU.OK flash post_part=roundtrip log_head=11 log_tail=0 partitions_size=4128768
12:08:16.894 -> BU.I2C
12:08:16.894 <- I (14901) BT_HID: Found 0 HID device(s)
12:08:16.894 <- I (14901) BT_HID: No HID devices found, retrying in 2000ms...
12:08:17.410 <- I (15701) I2C: POST: TCA9555 OK (port0=0x0123)
12:08:17.410 <-
12:08:17.410 <- BU.OK i2c tca9555=ack
12:08:17.411 -> BU.LED.WATCH
12:08:17.914 <-
12:08:17.914 <- BU.EVENT led t=14.57 pressed=0
12:08:18.417 <- I (16901) BT_HID: Scanning for HID devices (3s)...
12:08:18.417 <- E rmt: hw buffer too small, received symbols truncated
12:08:18.924 <- E rmt: hw buffer too small, received symbols truncated
12:08:20.942 <-
12:08:20.942 <- BU.EVENT led t=17.91 pressed=1
12:08:20.942 <- E rmt: hw buffer too small, received symbols truncated
12:08:21.458 <- I (19911) BT_HID: Found 0 HID device(s)
12:08:21.458 <- I (19911) BT_HID: No HID devices found, retrying in 2000ms...
12:08:21.959 <-
12:08:21.959 <- BU.EVENT led t=18.93 pressed=0
12:08:22.468 <- E rmt: hw buffer too small, received symbols truncated
12:08:22.787 ->
12:08:22.979 <- E rmt: hw buffer too small, received symbols truncated
12:08:22.979 <-

Binary file not shown.

Binary file not shown.

View File

@@ -1,521 +0,0 @@
12:41:03.153
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
12:41:03.155 erase_flash @ COM3
12:41:06.224 flashing from D:\SC\SC-F001\build
12:41:06.226 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
12:41:31.614 Flash complete
12:41:33.115 Connecting to COM3 @ 115200 ...
12:41:33.120 -> BU.BEGIN
12:41:33.375 <- BU.BEGIN
12:41:33.376 <-
12:41:33.376 <-
12:41:33.376 <- BU.OK begin fw=ef1f3e4-dirty board=V5 t=0.00
12:41:33.377 -> BU.INFO
12:41:33.378 <- E rmt: hw buffer too small, received symbols truncated
12:41:33.389 <- E rmt: hw buffer too small, received symbols truncated
12:41:33.389 <- E rmt: hw buffer too small, received symbols truncated
12:41:33.401 <- I (1861) BT_HID: Scanning for HID devices (3s)...
12:41:33.401 <- I (1871) BT_HID: BLE HID host initialised
12:41:33.401 <- I (1871) WEBSERVER: Initializing webserver...
12:41:33.401 <- I (1871) WEBSERVER: AP LAUNCHING
12:41:33.423 <- I (1891) wifi:wifi driver task: 3ffe28e8, prio:23, stack:6656, core=0
12:41:33.423 <-
12:41:33.423 <- BU.OK info reset=POWERON heap=118424 min_heap=118336 fw=ef1f3e4-dirty build=2026-04-28 17:38:20
12:42:05.041 -> BU.FLASH
12:42:05.041 <- I (1891) wifi:wifi firmware version: ccaebfa
12:42:05.041 <- I (1891) wifi:wifi certification version: v7.0
12:42:05.041 <- I (1901) wifi:config NVS flash: enabled
12:42:05.042 <- I (1901) wifi:config nano formating: disabled
12:42:05.042 <- I (1911) wifi:Init data frame dynamic rx buffer num: 32
12:42:05.042 <- I (1911) wifi:Init static rx mgmt buffer num: 5
12:42:05.042 <- I (1911) wifi:Init management short buffer num: 32
12:42:05.042 <- I (1921) wifi:Init dynamic tx buffer num: 32
12:42:05.043 <- I (1921) wifi:Init static rx buffer size: 1600
12:42:05.043 <- I (1931) wifi:Init static rx buffer num: 10
12:42:05.043 <- I (1931) wifi:Init dynamic rx buffer num: 32
12:42:05.043 <- I (1941) wifi_init: rx ba win: 6
12:42:05.043 <- I (1941) wifi_init: accept mbox: 6
12:42:05.044 <- I (1941) wifi_init: tcpip mbox: 32
12:42:05.044 <- I (1951) wifi_init: udp mbox: 6
12:42:05.044 <- I (1951) wifi_init: tcp mbox: 6
12:42:05.044 <- I (1951) wifi_init: tcp tx win: 5760
12:42:05.044 <- I (1961) wifi_init: tcp rx win: 5760
12:42:05.044 <- I (1961) wifi_init: tcp mss: 1440
12:42:05.045 <- I (2251) wifi:mode : softAP (80:f3:da:65:45:4d)
12:42:05.045 <- I (2261) wifi:Total power save buffer number: 16
12:42:05.045 <- I (2261) wifi:Init max length of beacon: 752/752
12:42:05.045 <- I (2261) wifi:Init max length of beacon: 752/752
12:42:05.046 <- I (2271) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
12:42:05.046 <- I (2271) DNS_SERVER: DNS server started on port 53
12:42:05.046 <- I (2281) mdns_mem: mDNS task will be created from internal RAM
12:42:05.046 <- I (2291) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
12:42:05.046 <- I (2291) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
12:42:05.046 <- I (2301) WEBSERVER: STARTING HTTP
12:42:05.046 <- I (2311) WEBSERVER: HTTP server started successfully
12:42:05.046 <- I (2311) WEBSERVER: Registered URI handler: /
12:42:05.047 <- I (2311) WEBSERVER: Registered URI handler: /get
12:42:05.047 <- I (2321) WEBSERVER: Registered URI handler: /post
12:42:05.047 <- I (2321) WEBSERVER: Registered URI handler: /log
12:42:05.047 <- I (2331) WEBSERVER: Registered URI handler: /ota
12:42:05.048 <- I (2341) WEBSERVER: Registered URI handler: /*
12:42:05.048 <- I (2341) WEBSERVER: Webserver initialization complete
12:42:05.048 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.048 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.048 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.048 <- I (4881) BT_HID: Found 0 HID device(s)
12:42:05.048 <- I (4881) BT_HID: No HID devices found, retrying in 2000ms...
12:42:05.048 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.049 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.049 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.049 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.049 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.049 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.050 <- I (6881) BT_HID: Scanning for HID devices (3s)...
12:42:05.050 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.050 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.050 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.050 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.051 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.051 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.051 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.051 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.051 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.051 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.051 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.051 <- I (9891) BT_HID: Found 0 HID device(s)
12:42:05.052 <- I (9891) BT_HID: No HID devices found, retrying in 2000ms...
12:42:05.052 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.052 <- I (11891) BT_HID: Scanning for HID devices (3s)...
12:42:05.052 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.052 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.053 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.053 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.053 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.053 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.053 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.053 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.053 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.053 <- I (14901) BT_HID: Found 0 HID device(s)
12:42:05.053 <- I (14901) BT_HID: No HID devices found, retrying in 2000ms...
12:42:05.053 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.053 <- buffer too small, received symbols truncated
12:42:05.053 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.054 <- E rmt: hw buffer too s too small, received symbols truncated
12:42:05.054 <- E rmt: hw buffer too s too small, received symbols truncated
12:42:05.054 <- E rmt: hw buffer too small, received symbols truncated
12:42:05.054 <- mall, received symbols truncated
12:42:05.054 <- mall, received symbols truncated
12:42:05.054 <- mall, received symbols truncated
12:42:05.054 <- mall, received symbols truncated
12:42:05.054 <- mall, received symbols truncated
12:42:05.055 <- mall, received symbols truncated
12:42:05.055 <- mall, received symbols truncated
12:42:05.055 <- mall, received symbols truncated
12:42:05.055 <- mall, received symbols truncated
12:42:05.055 <- mall, received symbols truncated
12:42:05.055 <- mall, received symbols truncated
12:42:05.055 <- mall, received symbols truncated
12:42:05.055 <- mall, received symbols truncated
12:42:05.055 <- mall, received symbols truncated
12:42:05.055 <- mall, received symbols truncated
12:42:05.055 <- mall, received symbols truncated
12:42:05.055 <- mall, received symbols truncated
12:42:05.055 <- mall, received symbols truncated
12:42:05.055 <- mall, received symbols truncated
12:42:05.055 <- mall, received symbols truncated
12:42:05.056 <- mall, received symbols truncated
12:42:05.056 <- mall, received symbols truncated
12:42:05.056 <- mall, received symbols truncated
12:42:05.056 <- mall, received symbols truncated
12:42:05.056 <- mall, received symbols truncated
12:42:05.056 <- mall, received symbols truncated
12:42:05.056 <- mall, received symbols truncated
12:42:05.056 <- mall, received symbols truncated
12:42:05.057 <- mall, received symbols truncated
12:42:05.057 <- mall, received symbols truncated
12:42:05.057 <- mall, received symbols truncated
12:42:05.057 <- mall, received symbols truncated
12:42:05.057 <- mall, received symbols truncated
12:42:05.057 <- mall, received symbols truncated
12:42:05.057 <- mall, received symbols truncated
12:42:05.057 <- mall, received symbols truncated
12:42:05.057 <- mall, received symbols truncated
12:42:05.057 <- mall, received symbols truncated
12:42:05.058 <- mall, received symbols truncated
12:42:05.058 <- mall, received symbols truncated
12:42:05.058 <- mall, received symbols truncated
12:42:05.058 <- mall, received symbols truncated
12:42:05.058 <- mall, received symbols truncated
12:42:05.058 <- mall, received symbols truncated
12:42:05.058 <- mall, received symbols truncated
12:42:05.058 <- mall, received symbols truncated
12:42:05.058 <- mall, received symbols truncated
12:42:05.058 <- mall, received symbols truncated
12:42:05.058 <- mall, received symbols truncated
12:42:05.058 <- mall, received symbols truncated
12:42:05.059 <- mall, received symbols truncated
12:42:05.059 <- mall, received symbols truncated
12:42:05.059 <- mall, received symbols truncated
12:42:05.059 <- mall, received symbols truncated
12:42:05.059 <- mall, received symbols truncated
12:42:05.059 <- mall, received symbols truncated
12:42:05.059 <- mall, received symbols truncated
12:42:05.059 <- mall, received symbols truncated
12:42:05.060 <- mall, received symbols truncated
12:42:05.060 <- mall, received symbols truncated
12:42:05.060 <- mall, received symbols truncated
12:42:05.060 <- mall, received symbols truncated
12:42:05.060 <- mall, received symbols truncated
12:42:05.060 <- mall, received symbols truncated
12:42:05.060 <- mall, received symbols truncated
12:42:05.060 <- mall, received symbols truncated
12:42:05.060 <- mall, received symbols truncated
12:42:05.060 <- mall, received symbols truncated
12:42:05.061 <- mall, received symbols truncated
12:42:05.061 <- mall, received symbols truncated
12:42:05.061 <- mall, received symbols truncated
12:42:05.061 <- mall, received symbols truncated
12:42:05.061 <- mall, received symbols truncated
12:42:05.061 <- mall, received symbols truncated
12:42:05.061 <- mall, received symbols truncated
12:42:05.061 <- mall, received symbols truncated
12:42:05.061 <- mall, received symbols truncated
12:42:05.061 <- mall, received symbols truncated
12:42:05.061 <- mall, received symbols truncated
12:42:05.061 <- mall, received symbols truncated
12:42:05.062 <- mall, received symbols truncated
12:42:05.062 <- mall, received symbols truncated
12:42:05.062 <- mall, received symbols truncated
12:42:05.062 <- mall, received symbols truncated
12:42:05.062 <- mall, received symbols truncated
12:42:05.062 <- mall, received symbols truncated
12:42:05.062 <- mall, received symbols truncated
12:42:05.062 <- mall, received symbols truncated
12:42:05.063 <- mall, received symbols truncated
12:42:05.063 <- mall, received symbols truncated
12:42:05.063 <- mall, received symbols truncated
12:42:05.063 <- mall, received symbols truncated
12:42:05.063 <- mall, received symbols truncated
12:42:05.063 <- mall, received symbols truncated
12:42:05.063 <- mall, received symbols truncated
12:42:05.063 <- mall, received symbols truncated
12:42:05.063 <- mall, received symbols truncated
12:42:05.063 <- mall, received symbols truncated
12:42:05.063 <- mall, received symbols truncated
12:42:05.063 <- mall, received symbols truncated
12:42:05.063 <- mall, received symbols truncated
12:42:05.063 <- mall, received symbols truncated
12:42:05.063 <- mall, received symbols truncated
12:42:05.064 <- mall, received symbols truncated
12:42:05.064 <- mall, received symbols truncated
12:42:05.064 <- mall, received symbols truncated
12:42:05.064 <- mall, received symbols truncated
12:42:05.064 <- mall, received symbols truncated
12:42:05.064 <- mall, received symbols truncated
12:42:05.064 <- mall, received symbols truncated
12:42:05.065 <- mall, received symbols truncated
12:42:05.065 <- mall, received symbols truncated
12:42:05.065 <- mall, received symbols truncated
12:42:05.065 <- mall, received symbols truncated
12:42:05.065 <- mall, received symbols truncated
12:42:05.065 <- mall, received symbols truncated
12:42:05.065 <- mall, received symbols truncated
12:42:05.065 <- mall, received symbols truncated
12:42:05.065 <- mall, received symbols truncated
12:42:05.065 <- mall, received symbols truncated
12:42:05.065 <- mall, received symbols truncated
12:42:05.065 <- mall, received symbols truncated
12:42:05.065 <- mall, received symbols truncated
12:42:05.065 <- mall, received symbols truncated
12:42:05.065 <- mall, received symbols truncated
12:42:05.066 <- mall, received symbols truncated
12:42:05.066 <- mall, received symbols truncated
12:42:05.066 <- mall, received symbols truncated
12:42:05.066 <- mall, received symbols truncated
12:42:05.066 <- mall, received symbols truncated
12:42:05.066 <- mall, received symbols truncated
12:42:05.066 <- mall, received symbols truncated
12:42:05.066 <- mall, received symbols truncated
12:42:05.067 <- mall, received symbols truncated
12:42:05.067 <- mall, received symbols truncated
12:42:05.067 <- mall, received symbols truncated
12:42:05.067 <- mall, received symbols truncated
12:42:05.067 <- mall, received symbols truncated
12:42:05.067 <- mall, received symbols truncated
12:42:05.067 <- mall, received symbols truncated
12:42:05.067 <- mall, received symbols truncated
12:42:05.067 <- mall, received symbols truncated
12:42:05.067 <- mall, received symbols truncated
12:42:05.067 <- mall, received symbols truncated
12:42:05.067 <- mall, received symbols truncated
12:42:05.067 <- mall, received symbols truncated
12:42:05.067 <- mall, received symbols truncated
12:42:05.067 <- mall, received symbols truncated
12:42:05.068 <- mall, received symbols truncated
12:42:05.068 <- mall, received symbols truncated
12:42:05.068 <- mall, received symbols truncated
12:42:05.068 <- mall, received symbols truncated
12:42:05.068 <- mall, received symbols truncated
12:42:05.068 <- mall, received symbols truncated
12:42:05.068 <- mall, received symbols truncated
12:42:05.068 <- mall, received symbols truncated
12:42:05.069 <- mall, received symbols truncated
12:42:05.069 <- mall, received symbols truncated
12:42:05.069 <- mall, received symbols truncated
12:42:05.069 <- mall, received symbols truncated

View File

@@ -1,5 +0,0 @@
12:42:44.786
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
12:42:44.787 erase_flash @ COM3

View File

@@ -1,7 +0,0 @@
12:43:04.533
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
12:43:04.534 erase_flash @ COM3
12:43:06.212 flashing from D:\SC\SC-F001\build
12:43:06.213 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]

View File

@@ -1,551 +0,0 @@
12:44:23.554
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
12:44:23.556 erase_flash @ COM3
12:44:27.874 flashing from D:\SC\SC-F001\build
12:44:27.875 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
12:44:52.970 Flash complete
12:44:54.471 Connecting to COM3 @ 115200 ...
12:44:54.475 -> BU.BEGIN
12:44:54.750 <- BU.BEGIN
12:44:54.751 <-
12:44:54.751 <-
12:44:54.751 <- BU.OK begin fw=666750f board=V5 t=0.00
12:44:54.752 -> BU.INFO
12:44:54.752 <- I (1880) BT_HID: Scanning for HID devices (3s)...
12:44:54.764 <- I (1880) BT_HID: BLE HID host initialised
12:44:54.764 <- I (1880) WEBSERVER: Initializing webserver...
12:44:54.773 <- I (1880) WEBSERVER: AP LAUNCHING
12:44:54.773 <- I (1900) wifi:wifi driver task: 3ffe28e8, prio:23, stack:6656, core=0
12:44:54.773 <- I (1900) wifi:wifi firmware version: ccaebfa
12:44:54.773 <- I (1900) wifi:wifi certification version: v7.0
12:44:54.773 <- I (1900) wifi:config NVS flash: enabled
12:44:54.794 <- I (1900) wifi:config nano formating: disabled
12:44:54.794 <- I (1910) wifi:Init data frame dynamic rx buffer num: 32
12:44:54.794 <- I (1910) wifi:Init static rx mgmt buffer num: 5
12:44:54.794 <- I (1920) wifi:Init management short buffer num: 32
12:44:54.822 <- BU.OK info reset=POWERON heap=111572 min_heap=111572 fw=666750f build=2026-04-28 17:44:02
12:44:59.670 -> BU.FLASH
12:44:59.671 <-
12:44:59.671 <- I (1930) wifi:Init dynamic tx buffer num: 32
12:44:59.671 <- I (1930) wifi:Init static rx buffer size: 1600
12:44:59.671 <- I (1940) wifi:Init static rx buffer num: 10
12:44:59.671 <- I (1940) wifi:Init dynamic rx buffer num: 32
12:44:59.671 <- I (1950) wifi_init: rx ba win: 6
12:44:59.671 <- I (1950) wifi_init: accept mbox: 6
12:44:59.671 <- I (1950) wifi_init: tcpip mbox: 32
12:44:59.671 <- I (1960) wifi_init: udp mbox: 6
12:44:59.671 <- I (1960) wifi_init: tcp mbox: 6
12:44:59.671 <- I (1960) wifi_init: tcp tx win: 5760
12:44:59.672 <- I (1970) wifi_init: tcp rx win: 5760
12:44:59.672 <- I (1970) wifi_init: tcp mss: 1440
12:44:59.672 <- I (2260) wifi:mode : softAP (80:f3:da:65:45:4d)
12:44:59.672 <- I (2270) wifi:Total power save buffer number: 16
12:44:59.672 <- I (2270) wifi:Init max length of beacon: 752/752
12:44:59.672 <- I (2270) wifi:Init max length of beacon: 752/752
12:44:59.673 <- I (2270) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
12:44:59.673 <- I (2280) DNS_SERVER: DNS server started on port 53
12:44:59.673 <- I (2290) mdns_mem: mDNS task will be created from internal RAM
12:44:59.674 <- I (2290) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
12:44:59.674 <- I (2300) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
12:44:59.674 <- I (2310) WEBSERVER: STARTING HTTP
12:44:59.674 <- I (2310) WEBSERVER: HTTP server started successfully
12:44:59.674 <- I (2320) WEBSERVER: Registered URI handler: /
12:44:59.674 <- I (2320) WEBSERVER: Registered URI handler: /get
12:44:59.674 <- I (2330) WEBSERVER: Registered URI handler: /post
12:44:59.675 <- I (2330) WEBSERVER: Registered URI handler: /log
12:44:59.675 <- I (2340) WEBSERVER: Registered URI handler: /ota
12:44:59.675 <- I (2340) WEBSERVER: Registered URI handler: /*
12:44:59.675 <- I (2350) WEBSERVER: Webserver initialization complete
12:44:59.675 <- E rmt: hw buffer too small, received symbols truncated
12:44:59.676 <- E rmt: hw buffer too small, received symbols truncated
12:44:59.676 <- E rmt: hw buffer too small, received symbols truncated
12:44:59.676 <- I (4890) BT_HID: Found 0 HID device(s)
12:44:59.676 <- I (4890) BT_HID: No HID devices found, retrying in 2000ms...
12:45:00.188 <- E rmt: hw buffer too small, received symbols truncated
12:45:00.188 <-
12:45:00.188 <- BU.OK flash post_part=roundtrip log_head=11 log_tail=0 partitions_size=4128768
12:45:07.180 -> BU.I2C
12:45:07.180 <- I (6890) BT_HID: Scanning for HID devices (3s)...
12:45:07.181 <- E rmt: hw buffer too small, received symbols truncated
12:45:07.181 <- E rmt: hw buffer too small, received symbols truncated
12:45:07.181 <- I (9900) BT_HID: Found 0 HID device(s)
12:45:07.181 <- I (9900) BT_HID: No HID devices found, retrying in 2000ms...
12:45:07.182 <- E rmt: hw buffer too small, received symbols truncated
12:45:07.182 <- E rmt: hw buffer too small, received symbols truncated
12:45:07.182 <- E rmt: hw buffer too small, received symbols truncated
12:45:07.182 <- I (11900) BT_HID: Scanning for HID devices (3s)...
12:45:07.209 <- E rmt: hw buffer too small, received symbols truncated
12:45:07.209 <- E rmt: hw buffer too small, received symbols truncated
12:45:07.209 <- E rmt: hw buffer too small, received symbols truncated
12:45:07.209 <- E rmt: hw buffer too small, received symbols truncated
12:45:07.209 <- I (14350) I2C: POST: TCA9555 OK (port0=0x0123)
12:45:07.210 <-
12:45:07.719 <- BU.OK i2c tca9555=ack
12:45:07.721 -> BU.LED.WATCH
12:45:07.722 <- E rmt: hw buffer too small, received symbols truncated
12:45:08.237 <-
12:45:08.237 <- BU.EVENT led t=13.25 pressed=0
12:45:08.237 <- I (14910) BT_HID: Found 0 HID device(s)
12:45:08.237 <- I (14910) BT_HID: No HID devices found, retrying in 2000ms...
12:45:08.742 <- E rmt: hw buffer too small, received symbols truncated
12:45:08.742 <- E rmt: hw buffer too small, received symbols truncated
12:45:08.742 <- E rmt: hw buffer too small, received symbols truncated
12:45:09.246 <- E rmt: hw buffer too small, received symbols truncated
12:45:09.246 <- E rmt: hw buffer too small, received symbols truncated
12:45:09.749 <- E rmt: hw buffer too small, received symbols truncated
12:45:09.749 <- E rmt: hw buffer too small, received symbols truncated
12:45:10.254 <- I (16910) BT_HID: Scanning for HID devices (3s)...
12:45:10.254 <-
12:45:10.254 <- BU.EVENT led t=15.51 pressed=1
12:45:10.759 <- E rmt: hw buffer too small, received symbols truncated
12:45:11.265 <- E rmt: hw buffer too small, received symbols truncated
12:45:11.770 <- E rmt: hw buffer too small, received symbols truncated
12:45:11.770 <- E rmt: hw buffer too small, received symbols truncated
12:45:11.770 <- E rmt: hw buffer too small, received symbols truncated
12:45:12.276 <- E rmt: hw buffer too small, received symbols truncated
12:45:12.276 <- E rmt: hw buffer too small, received symbols truncated
12:45:12.276 <- E rmt: hw buffer too small, received symbols truncated
12:45:12.779 <- E rmt: hw buffer too small, received symbols truncated
12:45:12.780 <- E rmt: hw buffer too small, received symbols truncated
12:45:12.780 <- E rmt: hw buffer too small, received symbols truncated
12:45:12.780 <-
12:45:12.780 <- BU.EVENT led t=18.27 pressed=0
12:45:12.780 <- I (19920) BT_HID: Found 0 HID device(s)
12:45:13.285 <- I (19920) BT_HID: No HID devices found, retrying in 2000ms...
12:45:13.285 <- E rmt: hw buffer too small, received symbols truncated
12:45:13.790 <- E rmt: hw buffer too small, received symbols truncated
12:45:13.790 <- E rmt: hw buffer too small, received symbols truncated
12:45:13.790 <- E rmt: hw buffer too small, received symbols truncated
12:45:14.802 <- E rmt: hw buffer too small, received symbols truncated
12:45:14.802 <- E rmt: hw buffer too small, received symbols truncated
12:45:14.802 <- I (21920) BT_HID: Scanning for HID devices (3s)...
12:45:15.814 <- E rmt: hw buffer too small, received symbols truncated
12:45:16.318 <- E rmt: hw buffer too small, received symbols truncated
12:45:16.318 <- E rmt: hw buffer too small, received symbols truncated
12:45:16.475 ->
12:45:16.830 <-
12:45:16.830 <- BU.OK led.watch done
12:45:23.103 -> BU.ADC
12:45:23.104 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.104 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.105 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.105 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.105 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.105 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.106 <- I (24930) BT_HID: Found 0 HID device(s)
12:45:23.106 <- I (24930) BT_HID: No HID devices found, retrying in 2000ms...
12:45:23.106 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.106 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.106 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.106 <- I (26930) BT_HID: Scanning for HID devices (3s)...
12:45:23.106 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.106 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.106 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.107 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.107 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.107 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.107 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.108 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.108 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.108 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.108 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.108 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.108 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.108 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.108 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.108 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.108 <- I (29940) BT_HID: Found 0 HID device(s)
12:45:23.291 <- I (29940) BT_HID: No HID devices found, retrying in 2000ms...
12:45:23.291 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.291 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.291 <-
12:45:23.291 <- BU.OK adc bat_mv=1669 bat_V=13.196 isens_mv=1656 isens_A=-0.45
12:45:23.298 -> BU.PARAM GET V_SENS_K
12:45:23.803 <- E rmt: hw buffer too small, received symbols truncated
12:45:23.803 <-
12:45:23.803 <- BU.OK param key=V_SENS_K value=0.00766666653
12:45:23.803 -> BU.ADC
12:45:23.803 <- E rmt: hw buffer too small, received symbols truncated
12:45:24.308 <-
12:45:24.308 <- BU.OK adc bat_mv=1668 bat_V=13.188 isens_mv=1675 isens_A=-1.89
12:45:38.841 -> BU.PARAM SET V_SENS_OFFSET 0.112000
12:45:38.842 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.842 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.843 <- I (31940) BT_HID: Scanning for HID devices (3s)...
12:45:38.843 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.843 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.843 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.843 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.843 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.843 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.843 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.844 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.844 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.844 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.844 <- I (34950) BT_HID: Found 0 HID device(s)
12:45:38.845 <- I (34950) BT_HID: No HID devices found, retrying in 2000ms...
12:45:38.845 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.845 <- I (36950) BT_HID: Scanning for HID devices (3s)...
12:45:38.845 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.845 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.845 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.845 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.845 <- I (39960) BT_HID: Found 0 HID device(s)
12:45:38.845 <- I (39960) BT_HID: No HID devices found, retrying in 2000ms...
12:45:38.846 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.846 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.846 <- I (41960) BT_HID: Scanning for HID devices (3s)...
12:45:38.846 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.848 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.848 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.848 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.848 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.848 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.848 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.848 <- I (44970) BT_HID: Found 0 HID device(s)
12:45:38.848 <- I (44970) BT_HID: No HID devices found, retrying in 2000ms...
12:45:38.848 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.905 <- E rmt: hw buffer too small, received symbols truncated
12:45:38.905 <- I (46010) STORAGE: Parameter 34 (V_SENS_OFFSET) set (not committed)
12:45:38.905 <- I (46010) STORAGE: Committing 49 parameters to flash...
12:45:38.905 <- E rmt: hw buffer too small, received symbols truncated
12:45:39.410 <- I (46040) STORAGE: Successfully committed all parameters to flash
12:45:39.410 <-
12:45:39.410 <- BU.OK param key=V_SENS_OFFSET set=ok committed=yes
12:45:39.410 -> BU.PARAM GET V_SENS_OFFSET
12:45:39.410 <- E rmt: hw buffer too small, received symbols truncated
12:45:39.916 <-
12:45:39.916 <- BU.OK param key=V_SENS_OFFSET value=0.112000003
12:45:39.916 -> BU.ADC
12:45:39.916 <- I (46970) BT_HID: Scanning for HID devices (3s)...
12:45:40.421 <-
12:45:40.421 <- BU.OK adc bat_mv=1672 bat_V=12.931 isens_mv=1676 isens_A=-1.97
12:45:40.427 -> BU.SENSORS.WATCH 0
12:45:40.427 <- E rmt: hw buffer too small, received symbols truncated
12:45:40.942 <-
12:45:40.942 <- BU.EVENT state t=45.95 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:40.942 <- E rmt: hw buffer too small, received symbols truncated
12:45:40.942 <-
12:45:40.942 <- BU.EVENT state t=46.21 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:41.447 <-
12:45:41.447 <- BU.EVENT state t=46.46 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:41.447 <-
12:45:41.447 <- BU.EVENT state t=46.71 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:41.957 <-
12:45:41.957 <- BU.EVENT state t=46.96 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:41.957 <-
12:45:41.957 <- BU.EVENT state t=47.21 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:41.957 <-
12:45:42.458 <- BU.EVENT state t=47.46 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:42.458 <-
12:45:42.458 <- BU.EVENT state t=47.71 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:42.459 <- E rmt: hw buffer too small, received symbols truncated
12:45:42.459 <-
12:45:42.957 <- BU.EVENT state t=47.96 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:42.957 <-
12:45:42.957 <- BU.EVENT state t=48.21 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:42.957 <- I (49980) BT_HID: Found 0 HID device(s)
12:45:42.957 <- I (49980) BT_HID: No HID devices found, retrying in 2000ms...
12:45:42.957 <-
12:45:43.469 <- BU.EVENT state t=48.46 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:43.469 <-
12:45:43.469 <- BU.EVENT state t=48.71 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:43.469 <-
12:45:43.469 <- BU.EVENT state t=48.96 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:43.972 <-
12:45:43.972 <- BU.EVENT state t=49.21 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:43.972 <-
12:45:43.972 <- BU.EVENT state t=49.46 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:44.478 <-
12:45:44.478 <- BU.EVENT state t=49.71 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:44.478 <- E rmt: hw buffer too small, received symbols truncated
12:45:44.478 <-
12:45:44.478 <- BU.EVENT state t=49.96 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:44.982 <-
12:45:44.982 <- BU.EVENT state t=50.21 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:44.982 <- I (51980) BT_HID: Scanning for HID devices (3s)...
12:45:44.982 <-
12:45:44.982 <- BU.EVENT state t=50.46 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:45.487 <-
12:45:45.487 <- BU.EVENT state t=50.71 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:45.487 <-
12:45:45.487 <- BU.EVENT state t=50.96 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:45.995 <-
12:45:45.995 <- BU.EVENT state t=51.21 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:45.995 <-
12:45:45.995 <- BU.EVENT state t=51.46 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:46.500 <-
12:45:46.500 <- BU.EVENT state t=51.71 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:46.500 <-
12:45:46.500 <- BU.EVENT state t=51.96 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:47.004 <-
12:45:47.004 <- BU.EVENT state t=52.21 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:47.004 <-
12:45:47.004 <- BU.EVENT state t=52.46 SAFETY=1 DRIVE=0 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:45:47.511 <-

File diff suppressed because it is too large Load Diff

View File

@@ -1,84 +0,0 @@
12:58:59.740 Connecting to COM3 @ 115200 ...
12:58:59.748 -> BU.BEGIN
12:58:59.880 <- ets Jul 29 2019 12:21:46
12:58:59.880 <-
12:58:59.880 <- rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
12:58:59.882 <- configsip: 0, SPIWP:0xee
12:58:59.882 <- clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
12:58:59.883 <- mode:DIO, clock div:2
12:58:59.883 <- load:0x3fffeba4,len:4
12:59:00.245 <- load:0x4009f000,len:3248
12:59:00.245 <- entry 0x4009f574
12:59:00.247 <- <20>OHAI<41>ets Jul 29 2019 12:21:46
12:59:00.247 <-
12:59:00.247 <- rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
12:59:00.248 <- configsip: 0, SPIWP:0xee
12:59:00.259 <- clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
12:59:00.259 <- mode:DIO, clock div:2
12:59:00.614 <- load:0x3fffeba4,len:4
12:59:00.614 <- load:0x4009f000,len:3248
12:59:00.616 <- entry 0x4009f574
12:59:00.616 <- <20>OHAI<41>ets Jul 29 2019 12:21:46
12:59:00.617 <-
12:59:00.617 <- rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
12:59:00.617 <- configsip: 0, SPIWP:0xee
12:59:00.618 <- clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
12:59:00.977 <- mode:DIO, clock div:2
12:59:00.977 <- load:0x3fffeba4,len:4
12:59:00.979 <- load:0x4009f000,len:3248
12:59:00.982 <- entry 0x4009f574
12:59:00.982 <- <20>OHAI<41>ets Jul 29 2019 12:21:46
12:59:00.983 <-
12:59:00.983 <- rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
12:59:00.983 <- configsip: 0, SPIWP:0xee
12:59:01.252 -> BU.BEGIN
12:59:01.252 <- clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
12:59:01.253 <- mode:DIO, clock div:2
12:59:01.254 <- load:0x3fffeba4,len:4
12:59:01.254 <- load:0x4009f000,len:3248
12:59:01.254 <- entry 0x4009f574
12:59:01.355 <- <20>OHAI<41>ets Jul 29 2019 12:21:46
12:59:01.355 <-
12:59:01.355 <- rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
12:59:01.356 <- configsip: 0, SPIWP:0xee
12:59:01.357 <- clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00

View File

@@ -1,450 +0,0 @@
12:59:08.127
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
12:59:08.130 flashing from D:\SC\SC-F001\build
12:59:08.131 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
12:59:33.229 Flash complete
12:59:34.730 Connecting to COM3 @ 115200 ...
12:59:34.736 -> BU.BEGIN
12:59:34.996 <- BU.BEGIN
12:59:34.997 <-
12:59:34.997 <-
12:59:34.997 <- BU.OK begin fw=666750f board=V5 t=0.00
12:59:34.998 -> BU.INFO
12:59:34.998 <- I (1870) BT_HID: Scanning for HID devices (3s)...
12:59:35.010 <- I (1870) BT_HID: BLE HID host initialised
12:59:35.010 <- I (1870) WEBSERVER: Initializing webserver...
12:59:35.019 <- I (1870) WEBSERVER: AP LAUNCHING
12:59:35.019 <- I (1890) wifi:wifi driver task: 3ffe28e8, prio:23, stack:6656, core=0
12:59:35.019 <- I (1890) wifi:wifi firmware version: ccaebfa
12:59:35.019 <- I (1890) wifi:wifi certification version: v7.0
12:59:35.019 <- I (1890) wifi:config NVS flash: enabled
12:59:35.041 <- I (1890) wifi:config nano formating: disabled
12:59:35.041 <- I (1900) wifi:Init data frame dynamic rx buffer num: 32
12:59:35.041 <- I (1900) wifi:Init static rx mgmt buffer num: 5
12:59:35.041 <- I (1910) wifi:Init management short buffer num: 32
12:59:35.041 <-
12:59:35.068 <- BU.OK info reset=POWERON heap=111572 min_heap=111572 fw=666750f build=2026-04-28 17:44:02
12:59:44.165 -> BU.FLASH
12:59:44.166 <- I (1910) wifi:Init dynamic tx buffer num: 32
12:59:44.166 <- I (1920) wifi:Init static rx buffer size: 1600
12:59:44.166 <- I (1930) wifi:Init static rx buffer num: 10
12:59:44.166 <- I (1930) wifi:Init dynamic rx buffer num: 32
12:59:44.166 <- I (1940) wifi_init: rx ba win: 6
12:59:44.166 <- I (1940) wifi_init: accept mbox: 6
12:59:44.166 <- I (1940) wifi_init: tcpip mbox: 32
12:59:44.166 <- I (1950) wifi_init: udp mbox: 6
12:59:44.166 <- I (1950) wifi_init: tcp mbox: 6
12:59:44.166 <- I (1950) wifi_init: tcp tx win: 5760
12:59:44.167 <- I (1960) wifi_init: tcp rx win: 5760
12:59:44.167 <- I (1960) wifi_init: tcp mss: 1440
12:59:44.167 <- I (2250) wifi:mode : softAP (80:f3:da:65:d1:41)
12:59:44.167 <- I (2260) wifi:Total power save buffer number: 16
12:59:44.167 <- I (2260) wifi:Init max length of beacon: 752/752
12:59:44.167 <- I (2260) wifi:Init max length of beacon: 752/752
12:59:44.168 <- I (2270) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
12:59:44.168 <- I (2270) DNS_SERVER: DNS server started on port 53
12:59:44.168 <- I (2280) mdns_mem: mDNS task will be created from internal RAM
12:59:44.169 <- I (2290) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
E rmt: hw buffer too small, received symbols truncated
12:59:44.169 <-
12:59:44.169 <- I (2300) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
12:59:44.169 <- I (2300) WEBSERVER: STARTING HTTP
12:59:44.169 <- I (2310) WEBSERVER: HTTP server started successfully
12:59:44.169 <- I (2310) WEBSERVER: Registered URI handler: /
12:59:44.169 <- I (2320) WEBSERVER: Registered URI handler: /get
12:59:44.169 <- I (2320) WEBSERVER: Registered URI handler: /post
12:59:44.170 <- I (2330) WEBSERVER: Registered URI handler: /log
12:59:44.170 <- I (2340) WEBSERVER: Registered URI handler: /ota
12:59:44.170 <- I (2340) WEBSERVER: Registered URI handler: /*
12:59:44.170 <- I (2350) WEBSERVER: Webserver initialization complete
12:59:44.171 <- I (4880) BT_HID: Found 0 HID device(s)
12:59:44.171 <- I (4880) BT_HID: No HID devices found, retrying in 2000ms...
12:59:44.171 <- I (6880) BT_HID: Scanning for HID devices (3s)...
12:59:44.171 <- I (9890) BT_HID: Found 0 HID device(s)
12:59:44.677 <- I (9890) BT_HID: No HID devices found, retrying in 2000ms...
12:59:44.677 <-
12:59:44.677 <- BU.OK flash post_part=roundtrip log_head=11 log_tail=0 partitions_size=4128768
12:59:47.262 -> BU.I2C
12:59:47.777 <- I (11890) BT_HID: Scanning for HID devices (3s)...
12:59:47.777 <- I (14170) I2C: POST: TCA9555 OK (port0=0x0121)
12:59:47.777 <-
12:59:47.777 <- BU.OK i2c tca9555=ack
12:59:47.779 -> BU.LED.WATCH
12:59:47.779 <- E rmt: hw buffer too small, received symbols truncated
12:59:48.020 <-
12:59:48.020 <- BU.EVENT led t=13.04 pressed=1
12:59:48.020 <- E rmt: hw buffer too small, received symbols truncated
12:59:48.020 <- E rmt: hw buffer too small, received symbols truncated
12:59:48.020 <- I (14900) BT_HID: Found 0 HID device(s)
12:59:48.535 <- I (14900) BT_HID: No HID devices found, retrying in 2000ms...
12:59:49.039 <- E rmt: hw buffer too small, received symbols truncated
12:59:49.554 <- E rmt: hw buffer too small, received symbols truncated
12:59:49.554 <-
12:59:49.554 <- BU.EVENT led t=14.60 pressed=0
12:59:49.853 ->
12:59:50.058 <- E rmt: hw buffer too small, received symbols truncated
12:59:50.058 <- E rmt: hw buffer too small, received symbols truncated
12:59:50.058 <-
12:59:50.058 <- BU.OK led.watch done
12:59:52.070 -> BU.ADC
12:59:52.070 <- I (16900) BT_HID: Scanning for HID devices (3s)...
12:59:52.571 <-
12:59:52.571 <- BU.OK adc bat_mv=1662 bat_V=13.142 isens_mv=1657 isens_A=-0.53
12:59:52.576 -> BU.PARAM GET V_SENS_K
12:59:53.086 <-
12:59:53.086 <- BU.OK param key=V_SENS_K value=0.00766666653
12:59:53.086 -> BU.ADC
12:59:53.086 <- I (19910) BT_HID: Found 0 HID device(s)
12:59:53.086 <- I (19910) BT_HID: No HID devices found, retrying in 2000ms...
12:59:53.594 <-
12:59:53.594 <- BU.OK adc bat_mv=1661 bat_V=13.134 isens_mv=1655 isens_A=-0.38
12:59:55.493 -> BU.PARAM SET V_SENS_OFFSET 0.185667
12:59:55.531 <- E rmt: hw buffer too small, received symbols truncated
12:59:55.531 <- I (21910) BT_HID: Scanning for HID devices (3s)...
12:59:55.531 <- I (22410) STORAGE: Parameter 34 (V_SENS_OFFSET) set (not committed)
12:59:56.044 <- I (22410) STORAGE: Committing 49 parameters to flash...
12:59:56.044 <- I (22450) STORAGE: Successfully committed all parameters to flash
12:59:56.044 <-
12:59:56.044 <- BU.OK param key=V_SENS_OFFSET set=ok committed=yes
12:59:56.044 -> BU.PARAM GET V_SENS_OFFSET
12:59:56.550 <-
12:59:56.550 <- BU.OK param key=V_SENS_OFFSET value=0.185666993
12:59:56.550 -> BU.ADC
12:59:57.056 <-
12:59:57.056 <- BU.OK adc bat_mv=1657 bat_V=12.889 isens_mv=1652 isens_A=-0.15
12:59:57.065 -> BU.SENSORS.WATCH 0
12:59:57.577 <-
12:59:57.577 <- BU.EVENT state t=22.33 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:59:57.577 <-
12:59:57.577 <- BU.EVENT state t=22.59 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:59:58.039 <-
12:59:58.039 <- BU.EVENT state t=22.84 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:59:58.039 <-
12:59:58.039 <- BU.EVENT state t=23.09 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:59:58.039 <- I (24920) BT_HID: Found 0 HID device(s)
12:59:58.542 <- I (24920) BT_HID: No HID devices found, retrying in 2000ms...
12:59:58.542 <-
12:59:58.542 <- BU.EVENT state t=23.34 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:59:58.542 <-
12:59:58.542 <- BU.EVENT state t=23.59 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:59:59.048 <- E rmt: hw buffer too small, received symbols truncated
12:59:59.048 <-
12:59:59.048 <- BU.EVENT state t=23.84 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:59:59.048 <-
12:59:59.048 <- BU.EVENT state t=24.09 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:59:59.550 <- E rmt: hw buffer too small, received symbols truncated
12:59:59.550 <-
12:59:59.550 <- BU.EVENT state t=24.34 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
12:59:59.550 <-
12:59:59.550 <- BU.EVENT state t=24.59 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:00.055 <-
13:00:00.055 <- BU.EVENT state t=24.84 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:00.055 <-
13:00:00.055 <- BU.EVENT state t=25.09 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:00.055 <- I (26920) BT_HID: Scanning for HID devices (3s)...
13:00:00.562 <-
13:00:00.562 <- BU.EVENT state t=25.34 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:00.562 <-
13:00:00.562 <- BU.EVENT state t=25.59 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:00.562 <- E rmt: hw buffer too small, received symbols truncated
13:00:01.065 <-
13:00:01.065 <- BU.EVENT state t=25.84 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:01.065 <-
13:00:01.065 <- BU.EVENT state t=26.09 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:01.065 <- E rmt: hw buffer too small, received symbols truncated
13:00:01.571 <-
13:00:01.571 <- BU.EVENT state t=26.34 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:01.571 <-
13:00:01.571 <- BU.EVENT state t=26.59 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:02.077 <-
13:00:02.077 <- BU.EVENT state t=26.84 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:02.077 <-
13:00:02.077 <- BU.EVENT state t=27.09 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:02.580 <-
13:00:02.580 <- BU.EVENT state t=27.34 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:02.580 <-
13:00:02.580 <- BU.EVENT state t=27.59 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:03.049 <-
13:00:03.049 <- BU.EVENT state t=27.84 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:03.049 <-
13:00:03.049 <- BU.EVENT state t=28.09 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:03.049 <- I (29930) BT_HID: Found 0 HID device(s)
13:00:03.564 <- I (29930) BT_HID: No HID devices found, retrying in 2000ms...
13:00:03.564 <-
13:00:03.564 <- BU.EVENT state t=28.35 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:03.564 <-
13:00:03.564 <- BU.EVENT state t=28.60 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:04.070 <-
13:00:04.070 <- BU.EVENT state t=28.85 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:04.070 <-
13:00:04.070 <- BU.EVENT state t=29.10 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:04.573 <-
13:00:04.573 <- BU.EVENT state t=29.35 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:04.573 <-
13:00:04.573 <- BU.EVENT state t=29.60 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:05.080 <-
13:00:05.080 <- BU.EVENT state t=29.85 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:05.080 <-
13:00:05.080 <- BU.EVENT state t=30.10 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:05.080 <- I (31930) BT_HID: Scanning for HID devices (3s)...
13:00:05.585 <-
13:00:05.585 <- BU.EVENT state t=30.35 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:05.585 <-
13:00:05.585 <- BU.EVENT state t=30.60 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:06.096 <-
13:00:06.096 <- BU.EVENT state t=30.85 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:06.096 <-
13:00:06.096 <- BU.EVENT state t=31.10 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:06.610 <-
13:00:06.610 <- BU.EVENT state t=31.36 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:06.610 <-
13:00:06.610 <- BU.EVENT state t=31.61 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:07.122 <-
13:00:07.122 <- BU.EVENT state t=31.86 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:07.122 <-
13:00:07.122 <- BU.EVENT state t=32.11 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:07.624 <-
13:00:07.624 <- BU.EVENT state t=32.36 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:07.624 <-
13:00:07.624 <- BU.EVENT state t=32.61 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:07.624 <-
13:00:08.122 <- BU.EVENT state t=32.86 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:08.122 <-
13:00:08.122 <- BU.EVENT state t=33.11 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:08.122 <- I (34940) BT_HID: Found 0 HID device(s)
13:00:08.122 <- I (34940) BT_HID: No HID devices found, retrying in 2000ms...
13:00:08.122 <-
13:00:08.632 <- BU.EVENT state t=33.36 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:08.632 <-
13:00:08.632 <- BU.EVENT state t=33.61 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:08.632 <-
13:00:08.632 <- BU.EVENT state t=33.86 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
13:00:09.125 <-
13:00:09.125 <- BU.EVENT sensor name=SAFETY edge=make t=34.05
13:00:09.125 <- E rmt: hw buffer too small, received symbols truncated
13:00:09.125 <-
13:00:09.125 <- BU.EVENT state t=34.11 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
13:00:09.127 <-
13:00:09.625 <- BU.EVENT state t=34.36 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
13:00:09.625 <-
13:00:09.625 <- BU.EVENT state t=34.61 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
13:00:09.625 <- E rmt: hw buffer too small, received symbols truncated
13:00:09.625 <-
13:00:10.135 <- BU.EVENT state t=34.86 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
13:00:10.135 <-
13:00:10.135 <- BU.EVENT state t=35.11 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,372 +0,0 @@
14:18:24.124
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
14:18:24.126 erase_flash @ COM3
14:18:28.196 flashing from D:\SC\SC-F001\build
14:18:28.198 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
14:18:53.621 Flash complete
14:18:55.121 Connecting to COM3 @ 115200 ...
14:18:55.127 -> BU.BEGIN
14:18:55.394 <- BU.BEGIN
14:18:55.394 <-
14:18:55.394 <-
14:18:55.394 <- BU.OK begin fw=666750f board=V5 t=0.00
14:18:55.396 -> BU.INFO
14:18:55.396 <- I (1870) BT_HID: Scanning for HID devices (3s)...
14:18:55.408 <- I (1870) BT_HID: BLE HID host initialised
14:18:55.408 <- I (1870) WEBSERVER: Initializing webserver...
14:18:55.416 <- I (1870) WEBSERVER: AP LAUNCHING
14:18:55.416 <- I (1890) wifi:wifi driver task: 3ffe28e8, prio:23, stack:6656, core=0
14:18:55.416 <- I (1890) wifi:wifi firmware version: ccaebfa
14:18:55.416 <- I (1890) wifi:wifi certification version: v7.0
14:18:55.416 <- I (1890) wifi:config NVS flash: enabled
14:18:55.437 <- I (1890) wifi:config nano formating: disabled
14:18:55.437 <- I (1900) wifi:Init data frame dynamic rx buffer num: 32
14:18:55.437 <- I (1900) wifi:Init static rx mgmt buffer num: 5
14:18:55.437 <- I (1910) wifi:Init management short buffer num: 32
14:18:55.437 <-
14:18:55.464 <- BU.OK info reset=POWERON heap=111572 min_heap=111572 fw=666750f build=2026-04-28 17:44:02
14:18:57.069 -> BU.FLASH
14:18:57.070 <- I (1910) wifi:Init dynamic tx buffer num: 32
14:18:57.070 <- I (1920) wifi:Init static rx buffer size: 1600
14:18:57.070 <- I (1930) wifi:Init static rx buffer num: 10
14:18:57.070 <- I (1930) wifi:Init dynamic rx buffer num: 32
14:18:57.070 <- I (1940) wifi_init: rx ba win: 6
14:18:57.070 <- I (1940) wifi_init: accept mbox: 6
14:18:57.070 <- I (1940) wifi_init: tcpip mbox: 32
14:18:57.070 <- I (1950) wifi_init: udp mbox: 6
14:18:57.070 <- I (1950) wifi_init: tcp mbox: 6
14:18:57.070 <- I (1950) wifi_init: tcp tx win: 5760
14:18:57.071 <- I (1960) wifi_init: tcp rx win: 5760
14:18:57.071 <- I (1960) wifi_init: tcp mss: 1440
14:18:57.071 <- I (2250) wifi:mode : softAP (80:f3:da:65:25:f9)
14:18:57.071 <- I (2260) wifi:Total power save buffer number: 16
14:18:57.071 <- I (2260) wifi:Init max length of beacon: 752/752
14:18:57.071 <- I (2260) wifi:Init max length of beacon: 752/752
14:18:57.072 <- I (2260) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
14:18:57.072 <- I (2270) DNS_SERVER: DNS server started on port 53
14:18:57.072 <- I (2280) mdns_mem: mDNS task will be created from internal RAM
14:18:57.072 <- I (2280) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
14:18:57.073 <- I (2290) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
14:18:57.073 <- I (2300) WEBSERVER: STARTING HTTP
14:18:57.073 <- I (2310) WEBSERVER: HTTP server started successfully
14:18:57.073 <- I (2310) WEBSERVER: Registered URI handler: /
14:18:57.073 <- I (2310) WEBSERVER: Registered URI handler: /get
14:18:57.073 <- I (2320) WEBSERVER: Registered URI handler: /post
14:18:57.096 <- I (2320) WEBSERVER: Registered URI handler: /log
14:18:57.096 <- I (2330) WEBSERVER: Registered URI handler: /ota
14:18:57.096 <- I (2330) WEBSERVER: Registered URI handler: /*
14:18:57.096 <- I (2340) WEBSERVER: Webserver initialization complete
14:18:57.096 <-
14:18:57.600 <- BU.OK flash post_part=roundtrip log_head=11 log_tail=0 partitions_size=4128768
14:18:58.996 -> BU.I2C
14:18:59.511 <- I (4880) BT_HID: Found 0 HID device(s)
14:18:59.511 <- I (4880) BT_HID: No HID devices found, retrying in 2000ms...
14:18:59.511 <- I (5510) I2C: POST: TCA9555 OK (port0=0x0123)
14:18:59.511 <-
14:18:59.511 <- BU.OK i2c tca9555=ack
14:18:59.512 -> BU.LED.WATCH
14:19:00.017 <-
14:19:00.017 <- BU.EVENT led t=4.39 pressed=0
14:19:00.017 <-
14:19:00.017 <- BU.EVENT led t=4.63 pressed=1
14:19:00.521 <- I (6880) BT_HID: Scanning for HID devices (3s)...
14:19:00.521 <- E rmt: hw buffer too small, received symbols truncated
14:19:01.026 <-
14:19:01.026 <- BU.EVENT led t=5.85 pressed=0
14:19:02.519 ->
14:19:02.546 <-
14:19:02.546 <- BU.OK led.watch done
14:19:03.814 -> BU.ADC
14:19:04.327 <- I (9890) BT_HID: Found 0 HID device(s)
14:19:04.327 <- I (9890) BT_HID: No HID devices found, retrying in 2000ms...
14:19:04.327 <-
14:19:04.327 <- BU.OK adc bat_mv=1667 bat_V=13.180 isens_mv=1664 isens_A=-1.06
14:19:04.333 -> BU.PARAM GET V_SENS_K
14:19:04.842 <-
14:19:04.842 <- BU.OK param key=V_SENS_K value=0.00766666653
14:19:04.842 -> BU.ADC
14:19:05.345 <-
14:19:05.345 <- BU.OK adc bat_mv=1667 bat_V=13.180 isens_mv=1664 isens_A=-1.06
14:19:12.424 -> BU.PARAM SET V_SENS_OFFSET 0.159667
14:19:12.425 <- I (11890) BT_HID: Scanning for HID devices (3s)...
14:19:12.425 <- E rmt: hw buffer too small, received symbols truncated
14:19:12.425 <- I (14900) BT_HID: Found 0 HID device(s)
14:19:12.425 <- I (14900) BT_HID: No HID devices found, retrying in 2000ms...
14:19:12.489 <- I (16900) BT_HID: Scanning for HID devices (3s)...
14:19:12.490 <- I (18940) STORAGE: Parameter 34 (V_SENS_OFFSET) set (not committed)
14:19:12.490 <- I (18940) STORAGE: Committing 49 parameters to flash...
14:19:13.002 <- I (18980) STORAGE: Successfully committed all parameters to flash
14:19:13.002 <-
14:19:13.002 <- BU.OK param key=V_SENS_OFFSET set=ok committed=yes
14:19:13.002 -> BU.PARAM GET V_SENS_OFFSET
14:19:13.505 <-
14:19:13.505 <- BU.OK param key=V_SENS_OFFSET value=0.159667
14:19:13.505 -> BU.ADC
14:19:13.505 <- I (19910) BT_HID: Found 0 HID device(s)
14:19:13.505 <- I (19910) BT_HID: No HID devices found, retrying in 2000ms...
14:19:14.010 <-
14:19:14.010 <- BU.OK adc bat_mv=1665 bat_V=12.925 isens_mv=1663 isens_A=-0.98
14:19:14.015 -> BU.SENSORS.WATCH 0
14:19:14.530 <-
14:19:14.530 <- BU.EVENT state t=18.89 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:14.530 <-
14:19:14.530 <- BU.EVENT state t=19.15 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:15.034 <-
14:19:15.034 <- BU.EVENT state t=19.40 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:15.034 <-
14:19:15.034 <- BU.EVENT state t=19.65 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:15.539 <-
14:19:15.539 <- BU.EVENT state t=19.90 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:15.539 <-
14:19:15.539 <- BU.EVENT state t=20.15 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:15.539 <- I (21910) BT_HID: Scanning for HID devices (3s)...
14:19:16.045 <-
14:19:16.045 <- BU.EVENT state t=20.40 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:16.045 <- E rmt: hw buffer too small, received symbols truncated
14:19:16.045 <-
14:19:16.045 <- BU.EVENT state t=20.65 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:16.550 <-
14:19:16.550 <- BU.EVENT state t=20.90 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:16.550 <-
14:19:16.550 <- BU.EVENT state t=21.15 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:16.550 <-
14:19:17.055 <- BU.EVENT state t=21.40 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:17.055 <-
14:19:17.055 <- BU.EVENT state t=21.65 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:17.055 <-
14:19:17.055 <- BU.EVENT state t=21.90 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:17.562 <-
14:19:17.562 <- BU.EVENT state t=22.15 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:17.562 <- E rmt: hw buffer too small, received symbols truncated
14:19:17.562 <-
14:19:17.562 <- BU.EVENT state t=22.40 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:18.063 <-
14:19:18.063 <- BU.EVENT state t=22.65 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:18.063 <-
14:19:18.063 <- BU.EVENT state t=22.90 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:18.550 <-
14:19:18.550 <- BU.EVENT state t=23.15 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:18.550 <- I (24920) BT_HID: Found 0 HID device(s)
14:19:18.550 <- I (24920) BT_HID: No HID devices found, retrying in 2000ms...
14:19:18.550 <-
14:19:19.055 <- BU.EVENT state t=23.40 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:19.055 <-
14:19:19.055 <- BU.EVENT state t=23.65 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:19.055 <-
14:19:19.055 <- BU.EVENT state t=23.90 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:19.564 <-
14:19:19.564 <- BU.EVENT state t=24.15 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:19.564 <-
14:19:19.564 <- BU.EVENT state t=24.40 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:20.066 <-
14:19:20.066 <- BU.EVENT state t=24.65 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
14:19:20.066 <-
14:19:20.066 <- BU.EVENT sensor name=SAFETY edge=make t=24.82
14:19:20.066 <-
14:19:20.066 <- BU.EVENT state t=24.90 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
14:19:20.573 <-
14:19:20.573 <- BU.EVENT state t=25.15 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
14:19:20.573 <- I (26920) BT_HID: Scanning for HID devices (3s)...
14:19:20.573 <-
14:19:20.573 <- BU.EVENT state t=25.40 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
14:19:21.077 <-
14:19:21.077 <- BU.EVENT sensor name=SAFETY edge=break t=25.56
14:19:21.077 <-
14:19:21.077 <- BU.EVENT state t=25.65 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=2 isr_d=0 isr_j=0 isr_a=0
14:19:21.079 <-
14:19:21.079 <- BU.EVENT state t=25.90 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=2 isr_d=0 isr_j=0 isr_a=0
14:19:21.581 <-
14:19:21.581 <- BU.EVENT state t=26.15 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=2 isr_d=0 isr_j=0 isr_a=0
14:19:21.581 <-
14:19:21.581 <- BU.EVENT state t=26.40 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=2 isr_d=0 isr_j=0 isr_a=0
14:19:22.089 <-
14:19:22.089 <- BU.EVENT state t=26.65 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=2 isr_d=0 isr_j=0 isr_a=0
14:19:22.089 <-
14:19:22.089 <- BU.EVENT sensor name=SAFETY edge=make t=26.82
14:19:22.089 <-
14:19:22.089 <- BU.EVENT state t=26.90 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=3 isr_d=0 isr_j=0 isr_a=0
14:19:22.595 <-
14:19:22.595 <- BU.EVENT state t=27.15 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=3 isr_d=0 isr_j=0 isr_a=0
14:19:22.595 <-
14:19:22.595 <- BU.EVENT state t=27.40 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=3 isr_d=0 isr_j=0 isr_a=0
14:19:23.100 <-
14:19:23.100 <- BU.EVENT state t=27.65 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=3 isr_d=0 isr_j=0 isr_a=0
14:19:23.100 <-
14:19:23.100 <- BU.EVENT state t=27.90 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=3 isr_d=0 isr_j=0 isr_a=0

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +0,0 @@
15:41:52.785
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
15:41:52.786 erase_flash @ COM3

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -1,461 +0,0 @@
16:49:24.140
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
16:49:24.142 erase_flash @ COM3
16:49:26.772 flashing from D:\SC\SC-F001\build
16:49:26.774 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
16:49:51.860 Flash complete
16:49:53.361 Connecting to COM3 @ 115200 ...
16:49:53.367 -> BU.BEGIN
16:49:53.626 <- BU.BEGIN
16:49:53.626 <-
16:49:53.626 <-
16:49:53.626 <- BU.OK begin fw=666750f board=V5 t=0.00
16:49:53.628 -> BU.INFO
16:49:53.628 <- E rmt: hw buffer too small, received symbols truncated
16:49:53.640 <- E rmt: hw buffer too small, received symbols truncated
16:49:53.640 <- I (1870) BT_HID: Scanning for HID devices (3s)...
16:49:53.651 <- I (1870) BT_HID: BLE HID host initialised
16:49:53.651 <- I (1870) WEBSERVER: Initializing webserver...
16:49:53.651 <- I (1870) WEBSERVER: AP LAUNCHING
16:49:53.651 <- I (1890) wifi:wifi driver task: 3ffe28e8, prio:23, stack:6656, core=0
16:49:53.651 <- I (1890) wifi:wifi firmware version: ccaebfa
16:49:53.673 <- I (1890) wifi:wifi certification version: v7.0
16:49:53.673 <- I (1890) wifi:config NVS flash: enabled
16:49:53.673 <- I (1890) wifi:config nano formating: disabled
16:49:53.673 <-
16:49:53.673 <- BU.OK info reset=POWERON heap=114932 min_heap=113940 fw=666750f build=2026-04-28 17:44:02
16:49:58.479 -> BU.FLASH
16:49:58.480 <- I (1900) wifi:Init data frame dynamic rx buffer num: 32
16:49:58.480 <- I (1910) wifi:Init static rx mgmt buffer num: 5
16:49:58.480 <- I (1910) wifi:Init management short buffer num: 32
16:49:58.480 <- I (1920) wifi:Init dynamic tx buffer num: 32
16:49:58.480 <- I (1920) wifi:Init static rx buffer size: 1600
16:49:58.481 <- I (1930) wifi:Init static rx buffer num: 10
16:49:58.481 <- I (1930) wifi:Init dynamic rx buffer num: 32
16:49:58.481 <- I (1940) wifi_init: rx ba win: 6
16:49:58.481 <- I (1940) wifi_init: accept mbox: 6
16:49:58.481 <- I (1940) wifi_init: tcpip mbox: 32
16:49:58.481 <- I (1950) wifi_init: udp mbox: 6
16:49:58.481 <- I (1950) wifi_init: tcp mbox: 6
16:49:58.482 <- I (1950) wifi_init: tcp tx win: 5760
16:49:58.482 <- I (1960) wifi_init: tcp rx win: 5760
16:49:58.482 <- I (1960) wifi_init: tcp mss: 1440
16:49:58.482 <- I (2250) wifi:mode : softAP (80:f3:da:65:b5:5d)
16:49:58.482 <- I (2260) wifi:Total power save buffer number: 16
16:49:58.482 <- I (2260) wifi:Init max length of beacon: 752/752
16:49:58.482 <- I (2260) wifi:Init max length of beacon: 752/752
16:49:58.482 <- I (2270) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
16:49:58.483 <- I (2270) DNS_SERVER: DNS server started on port 53
16:49:58.483 <- I (2280) mdns_mem: mDNS task will be created from internal RAM
16:49:58.483 <- I (2280) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
16:49:58.484 <- I (2290) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
16:49:58.484 <- I (2300) WEBSERVER: STARTING HTTP
16:49:58.484 <- I (2310) WEBSERVER: HTTP server started successfully
16:49:58.484 <- I (2310) WEBSERVER: Registered URI handler: /
16:49:58.484 <- I (2310) WEBSERVER: Registered URI handler: /get
16:49:58.484 <- I (2320) WEBSERVER: Registered URI handler: /post
16:49:58.484 <- I (2320) WEBSERVER: Registered URI handler: /log
16:49:58.484 <- I (2330) WEBSERVER: Registered URI handler: /ota
16:49:58.484 <- I (2330) WEBSERVER: Registered URI handler: /*
16:49:58.630 <- I (2340) WEBSERVER: Webserver initialization complete
16:49:58.630 <- I (4880) BT_HID: Found 0 HID device(s)
16:49:58.630 <- I (4880) BT_HID: No HID devices found, retrying in 2000ms...
16:49:58.630 <-
16:49:58.630 <- BU.OK flash post_part=roundtrip log_head=11 log_tail=0 partitions_size=4128768
16:50:00.069 -> BU.I2C
16:50:00.577 <- I (6880) BT_HID: Scanning for HID devices (3s)...
16:50:00.577 <- E rmt: hw buffer too small, received symbols truncated
16:50:00.577 <- I (8340) I2C: POST: TCA9555 OK (port0=0x0123)
16:50:00.577 <-
16:50:00.577 <- BU.OK i2c tca9555=ack
16:50:00.579 -> BU.LED.WATCH
16:50:01.081 <-
16:50:01.081 <- BU.EVENT led t=7.21 pressed=0
16:50:01.081 <-
16:50:01.081 <- BU.EVENT led t=7.29 pressed=1
16:50:02.094 <- I (9890) BT_HID: Found 0 HID device(s)
16:50:02.094 <- I (9890) BT_HID: No HID devices found, retrying in 2000ms...
16:50:02.599 <- E rmt: hw buffer too small, received symbols truncated
16:50:02.599 <-
16:50:02.599 <- BU.EVENT led t=8.79 pressed=0
16:50:03.681 ->
16:50:04.117 <- I (11890) BT_HID: Scanning for HID devices (3s)...
16:50:04.117 <-
16:50:04.117 <- BU.OK led.watch done
16:50:08.124 -> BU.ADC
16:50:08.639 <- I (14900) BT_HID: Found 0 HID device(s)
16:50:08.639 <- I (14900) BT_HID: No HID devices found, retrying in 2000ms...
16:50:08.639 <-
16:50:08.639 <- BU.OK adc bat_mv=1675 bat_V=13.242 isens_mv=1677 isens_A=-2.05
16:50:08.643 -> BU.PARAM GET V_SENS_K
16:50:09.152 <- I (16900) BT_HID: Scanning for HID devices (3s)...
16:50:09.152 <-
16:50:09.152 <- BU.OK param key=V_SENS_K value=0.00766666653
16:50:09.152 -> BU.ADC
16:50:09.657 <-
16:50:09.657 <- BU.OK adc bat_mv=1674 bat_V=13.234 isens_mv=1678 isens_A=-2.12
16:50:12.069 -> BU.PARAM SET V_SENS_OFFSET 0.106000
16:50:12.069 <- E rmt: hw buffer too small, received symbols truncated
16:50:12.108 <- I (19910) BT_HID: Found 0 HID device(s)
16:50:12.108 <- I (19910) BT_HID: No HID devices found, retrying in 2000ms...
16:50:12.108 <- I (20350) STORAGE: Parameter 34 (V_SENS_OFFSET) set (not committed)
16:50:12.610 <- I (20350) STORAGE: Committing 49 parameters to flash...
16:50:12.610 <- I (20390) STORAGE: Successfully committed all parameters to flash
16:50:12.610 <-
16:50:12.610 <- BU.OK param key=V_SENS_OFFSET set=ok committed=yes
16:50:12.610 -> BU.PARAM GET V_SENS_OFFSET
16:50:13.115 <-
16:50:13.115 <- BU.OK param key=V_SENS_OFFSET value=0.105999999
16:50:13.115 -> BU.ADC
16:50:13.624 <-
16:50:13.624 <- BU.OK adc bat_mv=1670 bat_V=12.909 isens_mv=1678 isens_A=-2.12
16:50:13.631 -> BU.SENSORS.WATCH 0
16:50:14.145 <- I (21910) BT_HID: Scanning for HID devices (3s)...
16:50:14.145 <-
16:50:14.145 <- BU.EVENT state t=20.27 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
16:50:14.145 <-
16:50:14.145 <- BU.EVENT state t=20.53 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
16:50:14.651 <-
16:50:14.651 <- BU.EVENT state t=20.78 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
16:50:14.651 <-
16:50:14.651 <- BU.EVENT state t=21.03 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
16:50:15.153 <-
16:50:15.153 <- BU.EVENT state t=21.28 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
16:50:15.153 <-
16:50:15.153 <- BU.EVENT state t=21.53 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
16:50:15.657 <-
16:50:15.657 <- BU.EVENT state t=21.78 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
16:50:15.657 <-
16:50:15.657 <- BU.EVENT state t=22.03 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
16:50:16.159 <-
16:50:16.159 <- BU.EVENT state t=22.29 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
16:50:16.159 <-
16:50:16.159 <- BU.EVENT state t=22.54 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
16:50:16.664 <-
16:50:16.664 <- BU.EVENT state t=22.80 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
16:50:16.664 <-
16:50:16.664 <- BU.EVENT state t=23.05 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
16:50:16.940 <- I (24920) BT_HID: Found 0 HID device(s)
16:50:16.940 <- I (24920) BT_HID: No HID devices found, retrying in 2000ms...
16:50:16.940 <-
16:50:16.940 <- BU.EVENT state t=23.30 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
16:50:16.940 <-
16:50:17.442 <- BU.EVENT state t=23.55 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
16:50:17.442 <-
16:50:17.442 <- BU.EVENT sensor name=SAFETY edge=break t=23.68
16:50:17.443 <-
16:50:17.443 <- BU.EVENT state t=23.80 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
16:50:17.445 <-
16:50:17.951 <- BU.EVENT state t=24.05 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
16:50:17.951 <-
16:50:17.951 <- BU.EVENT state t=24.30 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
16:50:17.951 <-
16:50:17.951 <- BU.EVENT state t=24.55 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
16:50:18.139 ->
16:50:18.455 <-
16:50:18.455 <- BU.OK sensors.watch sec=-1 SAFETY=break_only DRIVE=none JACK=none AUX=none
16:50:23.892 -> BU.SENSORS.WATCH 0
16:50:23.892 <- E rmt: hw buffer too small, received symbols truncated
16:50:23.893 <- I (26920) BT_HID: Scanning for HID devices (3s)...
16:50:23.893 <- E rmt: hw buffer too small, received symbols truncated
16:50:23.893 <- I (29930) BT_HID: Found 0 HID device(s)
16:50:23.893 <- I (29930) BT_HID: No HID devices found, retrying in 2000ms...
16:50:24.407 <- I (31930) BT_HID: Scanning for HID devices (3s)...
16:50:24.407 <-
16:50:24.407 <- BU.EVENT state t=30.53 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
16:50:24.407 <-
16:50:24.407 <- BU.EVENT state t=30.79 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
16:50:24.916 <-
16:50:24.916 <- BU.EVENT state t=31.05 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
16:50:24.916 <- E rmt: hw buffer too small, received symbols truncated
16:50:24.916 <-
16:50:24.916 <- BU.EVENT state t=31.30 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
16:50:25.427 <-
16:50:25.427 <- BU.EVENT state t=31.55 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
16:50:25.427 <-
16:50:25.427 <- BU.EVENT state t=31.80 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
16:50:25.427 <- E rmt: hw buffer too small, received symbols truncated
16:50:25.933 <-
16:50:25.933 <- BU.EVENT state t=32.05 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
16:50:25.933 <-
16:50:25.933 <- BU.EVENT state t=32.30 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=1 isr_d=0 isr_j=0 isr_a=0
16:50:25.933 <-
16:50:25.933 <- BU.EVENT sensor name=SAFETY edge=make t=32.48
16:50:26.438 <-
16:50:26.438 <- BU.EVENT state t=32.55 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=2 isr_d=0 isr_j=0 isr_a=0
16:50:26.438 <-
16:50:26.438 <- BU.EVENT sensor name=SAFETY edge=break t=32.76
16:50:26.440 <-
16:50:26.440 <- BU.EVENT state t=32.80 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=3 isr_d=0 isr_j=0 isr_a=0
16:50:26.696 <-
16:50:26.696 <- BU.EVENT state t=33.05 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=3 isr_d=0 isr_j=0 isr_a=0
16:50:26.696 <-
16:50:26.696 <- BU.EVENT sensor name=SAFETY edge=make t=33.11
16:50:26.696 <-
16:50:26.696 <- BU.EVENT state t=33.30 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=4 isr_d=0 isr_j=0 isr_a=0
16:50:27.200 <- I (34940) BT_HID: Found 0 HID device(s)
16:50:27.200 <- I (34940) BT_HID: No HID devices found, retrying in 2000ms...
16:50:27.200 <-
16:50:27.200 <- BU.EVENT sensor name=SAFETY edge=break t=33.52
16:50:27.201 <-
16:50:27.201 <- BU.EVENT state t=33.56 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=5 isr_d=0 isr_j=0 isr_a=0
16:50:27.203 <-
16:50:27.700 <- BU.EVENT state t=33.81 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=5 isr_d=0 isr_j=0 isr_a=0
16:50:27.700 <-
16:50:27.700 <- BU.EVENT state t=34.06 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=5 isr_d=0 isr_j=0 isr_a=0
16:50:27.700 <-
16:50:27.700 <- BU.EVENT sensor name=SAFETY edge=make t=34.13
16:50:27.700 <-
16:50:28.211 <- BU.EVENT state t=34.31 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=6 isr_d=0 isr_j=0 isr_a=0
16:50:28.211 <-
16:50:28.211 <- BU.EVENT state t=34.56 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=6 isr_d=0 isr_j=0 isr_a=0
16:50:28.211 <-
16:50:28.211 <- BU.EVENT state t=34.81 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=6 isr_d=0 isr_j=0 isr_a=0
16:50:28.715 <-
16:50:28.715 <- BU.EVENT state t=35.06 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=6 isr_d=0 isr_j=0 isr_a=0
16:50:28.715 <- I (36940) BT_HID: Scanning for HID devices (3s)...
16:50:28.715 <-
16:50:28.715 <- BU.EVENT state t=35.31 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=6 isr_d=0 isr_j=0 isr_a=0
16:50:29.223 <- E rmt: hw buffer too small, received symbols truncated
16:50:29.223 <-
16:50:29.223 <- BU.EVENT state t=35.57 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=6 isr_d=0 isr_j=0 isr_a=0
16:50:29.223 <-
16:50:29.223 <- BU.EVENT state t=35.82 SAFETY=1 DRIVE=0 JACK=0 AUX=0 isr_s=6 isr_d=0 isr_j=0 isr_a=0
16:50:29.425 ->
16:50:29.731 <-
16:50:29.731 <- BU.OK sensors.watch sec=-1 SAFETY=both DRIVE=none JACK=none AUX=none
16:50:39.172 -> BU.RELAY SENSORS ON 500
16:50:39.174 <- E rmt: hw buffer too small, received symbols truncated
16:50:39.174 <- E rmt: hw buffer too small, received symbols truncated
16:50:39.174 <- E rmt: hw buffer too small, received symbols truncated
16:50:39.174 <- I (39950) BT_HID: Found 0 HID device(s)
16:50:39.174 <- I (39950) BT_HID: No HID devices found, retrying in 2000ms...
16:50:39.174 <- I (41950) BT_HID: Scanning for HID devices (3s)...
16:50:39.175 <- E rmt: hw buffer too small, received symbols truncated
16:50:39.175 <- E rmt: hw buffer too small, received symbols truncated
16:50:39.175 <- E rmt: hw buffer too small, received symbols truncated
16:50:39.175 <- E rmt: hw buffer too small, received symbols truncated
16:50:39.175 <- I (44960) BT_HID: Found 0 HID device(s)
16:50:39.175 <- I (44960) BT_HID: No HID devices found, retrying in 2000ms...
16:50:39.175 <- E rmt: hw buffer too small, received symbols truncated
16:50:39.354 <- I (46960) BT_HID: Scanning for HID devices (3s)...
16:50:39.354 <- E rmt: hw buffer too small, received symbols truncated

Binary file not shown.

View File

@@ -1,5 +0,0 @@
17:22:41.206
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
17:22:41.207 erase_flash @ COM3

View File

@@ -1,5 +0,0 @@
17:23:26.576
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
17:23:26.578 erase_flash @ COM3

View File

@@ -1,273 +0,0 @@
17:36:20.746
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
17:36:20.750 erase_flash @ COM3
17:36:23.316 flashing from D:\SC\SC-F001\build
17:36:23.317 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
17:36:48.386 Flash complete
17:36:49.887 Connecting to COM3 @ 115200 ...
17:36:49.892 -> BU.BEGIN
17:36:50.152 <- BU.BEGIN
17:36:50.152 <-
17:36:50.152 <-
17:36:50.152 <- BU.OK begin fw=666750f board=V5 t=0.00
17:36:50.154 -> BU.INFO
17:36:50.154 <- E rmt: hw buffer too small, received symbols truncated
17:36:50.166 <- E rmt: hw buffer too small, received symbols truncated
17:36:50.166 <- E rmt: hw buffer too small, received symbols truncated
17:36:50.177 <- I (1870) BT_HID: Scanning for HID devices (3s)...
17:36:50.177 <- I (1870) BT_HID: BLE HID host initialised
17:36:50.177 <- I (1870) WEBSERVER: Initializing webserver...
17:36:50.177 <- I (1870) WEBSERVER: AP LAUNCHING
17:36:50.177 <- I (1890) wifi:wifi driver task: 3ffe28d8, prio:23, stack:6656, core=0
17:36:50.199 <- I (1890) wifi:wifi firmware version: ccaebfa
17:36:50.199 <- I (1890) wifi:wifi certification version: v7.0
17:36:50.199 <- I (1890) wifi:config NVS flash: enabled
17:36:50.199 <- I (1890) wifi:config nano formating: disabled
17:36:50.199 <-
17:36:50.220 <- BU.OK info reset=POWERON heap=115008 min_heap=113956 fw=666750f build=2026-04-28 17:44:02
17:38:28.489 -> BU.FLASH
17:38:28.489 <- I (1900) wifi:Init data frame dynamic rx buffer num: 32
17:38:28.489 <- I (1910) wifi:Init static rx mgmt buffer num: 5
17:38:28.490 <- I (1910) wifi:Init management short buffer num: 32
17:38:28.490 <- I (1920) wifi:Init dynamic tx buffer num: 32
17:38:28.490 <- I (1920) wifi:Init static rx buffer size: 1600
17:38:28.490 <- I (1930) wifi:Init static rx buffer num: 10
17:38:28.490 <- I (1930) wifi:Init dynamic rx buffer num: 32
17:38:28.490 <- I (1940) wifi_init: rx ba win: 6
17:38:28.490 <- I (1940) wifi_init: accept mbox: 6
17:38:28.490 <- I (1940) wifi_init: tcpip mbox: 32
17:38:28.491 <- I (1950) wifi_init: udp mbox: 6
17:38:28.491 <- I (1950) wifi_init: tcp mbox: 6
17:38:28.491 <- I (1950) wifi_init: tcp tx win: 5760
17:38:28.491 <- I (1960) wifi_init: tcp rx win: 5760
17:38:28.491 <- I (1960) wifi_init: tcp mss: 1440
17:38:28.491 <- I (2250) wifi:mode : softAP (80:f3:da:64:0c:09)
17:38:28.491 <- I (2260) wifi:Total power save buffer number: 16
17:38:28.491 <- I (2260) wifi:Init max length of beacon: 752/752
17:38:28.491 <- I (2260) wifi:Init max length of beacon: 752/752
17:38:28.492 <- I (2270) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
17:38:28.492 <- I (2270) DNS_SERVER: DNS server started on port 53
17:38:28.492 <- I (2280) mdns_mem: mDNS task will be created from internal RAM
17:38:28.492 <- I (2290) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
17:38:28.493 <- I (2290) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
17:38:28.493 <- I (2300) WEBSERVER: STARTING HTTP
17:38:28.493 <- I (2310) WEBSERVER: HTTP server started successfully
17:38:28.493 <- I (2310) WEBSERVER: Registered URI handler: /
17:38:28.493 <- I (2310) WEBSERVER: Registered URI handler: /get
17:38:28.494 <- I (2320) WEBSERVER: Registered URI handler: /post
17:38:28.494 <- I (2320) WEBSERVER: Registered URI handler: /log
17:38:28.494 <- I (2330) WEBSERVER: Registered URI handler: /ota
17:38:28.494 <- I (2330) WEBSERVER: Registered URI handler: /*
17:38:28.494 <- I (2340) WEBSERVER: Webserver initialization complete
17:38:28.494 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.494 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.495 <- I (4880) BT_HID: Found 0 HID device(s)
17:38:28.495 <- I (4880) BT_HID: No HID devices found, retrying in 2000ms...
17:38:28.495 <- I (6880) BT_HID: Scanning for HID devices (3s)...
17:38:28.495 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.495 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.496 <- I (9890) BT_HID: Found 0 HID device(s)
17:38:28.496 <- I (9890) BT_HID: No HID devices found, retrying in 2000ms...
17:38:28.496 <- I (11890) BT_HID: Scanning for HID devices (3s)...
17:38:28.496 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.496 <- I (14900) BT_HID: Found 0 HID device(s)
17:38:28.496 <- I (14900) BT_HID: No HID devices found, retrying in 2000ms...
17:38:28.496 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.496 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.497 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.497 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.497 <- I (16900) BT_HID: Scanning for HID devices (3s)...
17:38:28.497 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.497 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.498 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.498 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.498 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.498 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.498 <- I (19910) BT_HID: Found 0 HID device(s)
17:38:28.498 <- I (19910) BT_HID: No HID devices found, retrying in 2000ms...
17:38:28.498 <- I (21910) BT_HID: Scanning for HID devices (3s)...
17:38:28.498 <- I (24920) BT_HID: Found 0 HID device(s)
17:38:28.499 <- I (24920) BT_HID: No HID devices found, retrying in 2000ms...
17:38:28.499 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.499 <- I (26920) BT_HID: Scanning for HID devices (3s)...
17:38:28.499 <- I (29930) BT_HID: Found 0 HID device(s)
17:38:28.500 <- I (29930) BT_HID: No HID devices found, retrying in 2000ms...
17:38:28.500 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.500 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.500 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.500 <- I (31930) BT_HID: Scanning for HID devices (3s)...
17:38:28.500 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.501 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.501 <- I (34940) BT_HID: Found 0 HID device(s)
17:38:28.501 <- I (34940) BT_HID: No HID devices found, retrying in 2000ms...
17:38:28.501 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.501 <- d
17:38:28.501 <- E rmt: hw buffer too small, received symbols truncated
17:38:28.501 <- I (100070) BT_HID: Found 0 HID device(s)
17:38:29.012 <- I (100070) BT_HID: No HID devices found, retrying in 2000ms...
0070) BT_HID: No HID devices found, retrying in 2000ms...
17:38:29.012 <- E rmt: hw buffer too small, received symbols truncated
17:38:29.012 <-
17:38:29.012 <- BU.OK flash post_part=roundtrip log_head=11 log_tail=0 partitions_size=4128768
17:38:30.623 -> BU.I2C
17:38:30.654 <- E rmt: hw buffer too small, received symbols truncated
17:38:30.654 <- E rmt: hw buffer too small, received symbols truncated
17:38:30.654 <- I (102070) BT_HID: Scanning for HID devices (3s)...
17:38:30.654 <- I (102370) I2C: POST: TCA9555 OK (port0=0x0123)
17:38:30.654 <-
17:38:31.158 <- BU.OK i2c tca9555=ack
17:38:31.160 -> BU.LED.WATCH
17:38:31.161 <- E rmt: hw buffer too small, received symbols truncated
17:38:31.677 <-
17:38:31.677 <- BU.EVENT led t=101.27 pressed=0
17:38:33.698 <- I (105080) BT_HID: Found 0 HID device(s)
17:38:33.698 <- I (105080) BT_HID: No HID devices found, retrying in 2000ms...
17:38:33.698 <-
17:38:33.698 <- BU.EVENT led t=103.63 pressed=1
17:38:34.211 <- E rmt: hw buffer too small, received symbols truncated
17:38:34.719 <-
17:38:34.719 <- BU.EVENT led t=104.51 pressed=0
17:38:34.719 <- E rmt: hw buffer too small, received symbols truncated
17:38:35.382 ->
17:38:35.724 <- I (107080) BT_HID: Scanning for HID devices (3s)...
17:38:35.724 <-
17:38:35.724 <- BU.OK led.watch done
17:38:45.470 -> BU.ADC
17:38:45.471 <- I (110090) BT_HID: Found 0 HID device(s)
17:38:45.471 <- I (110090) BT_HID: No HID devices found, retrying in 2000ms...
17:38:45.471 <- E rmt: hw buffer too small, received symbols truncated
17:38:45.471 <- I (112090) BT_HID: Scanning for HID devices (3s)...
17:38:45.471 <- E rmt: hw buffer too small, received symbols truncated
17:38:45.471 <- I (115100) BT_HID: Found 0 HID device(s)
17:38:45.471 <- I (115100) BT_HID: No HID devices found, retrying in 2000ms...
17:38:45.471 <- E rmt: hw buffer too small, received symbols truncated

View File

@@ -1,539 +0,0 @@
17:52:11.758
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
17:52:11.760 erase_flash @ COM3
17:52:15.396 flashing from D:\SC\SC-F001\build
17:52:15.398 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
17:52:40.634 Flash complete
17:52:42.135 Connecting to COM3 @ 115200 ...
17:52:42.140 -> BU.BEGIN
17:52:42.402 <- BU.BEGIN
17:52:42.402 <-
17:52:42.402 <-
17:52:42.402 <- BU.OK begin fw=666750f board=V5 t=0.00
17:52:42.404 -> BU.INFO
17:52:42.404 <- E rmt: hw buffer too small, received symbols truncated
17:52:42.416 <- I (1870) BT_HID: Scanning for HID devices (3s)...
17:52:42.416 <- I (1870) BT_HID: BLE HID host initialised
17:52:42.420 <- I (1870) WEBSERVER: Initializing webserver...
17:52:42.420 <- I (1870) WEBSERVER: AP LAUNCHING
17:52:42.420 <- I (1890) wifi:wifi driver task: 3ffe28e8, prio:23, stack:6656, core=0
17:52:42.420 <- I (1890) wifi:wifi firmware version: ccaebfa
17:52:42.420 <- I (1890) wifi:wifi certification version: v7.0
17:52:42.447 <- I (1890) wifi:config NVS flash: enabled
17:52:42.447 <- I (1890) wifi:config nano formating: disabled
17:52:42.447 <- I (1900) wifi:Init data frame dynamic rx buffer num: 32
17:52:42.447 <- I (1900) wifi:Init static rx mgmt buffer num: 5
17:52:42.447 <- I (1910) wifi:Init management short buffer num: 32
17:52:42.447 <-
17:52:42.469 <- BU.OK info reset=POWERON heap=111572 min_heap=111572 fw=666750f build=2026-04-28 17:44:02
17:53:41.841 -> BU.FLASH
17:53:41.841 <- I (1910) wifi:Init dynamic tx buffer num: 32
17:53:41.841 <- I (1920) wifi:Init static rx buffer size: 1600
17:53:41.841 <- I (1930) wifi:Init static rx buffer num: 10
17:53:41.841 <- I (1930) wifi:Init dynamic rx buffer num: 32
17:53:41.842 <- I (1940) wifi_init: rx ba win: 6
17:53:41.842 <- I (1940) wifi_init: accept mbox: 6
17:53:41.842 <- I (1940) wifi_init: tcpip mbox: 32
17:53:41.842 <- I (1950) wifi_init: udp mbox: 6
17:53:41.842 <- I (1950) wifi_init: tcp mbox: 6
17:53:41.842 <- I (1950) wifi_init: tcp tx win: E rmt: hw buffer too small, received symbols truncated
17:53:41.842 <- 5760
17:53:41.842 <- I (1960) wifi_init: tcp rx win: 5760
17:53:41.842 <- I (1970) wifi_init: tcp mss: 1440
17:53:41.842 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.843 <- I (2260) wifi:mode : softAP (80:f3:da:64:0c:09)
17:53:41.843 <- I (2260) wifi:Total power save buffer number: 16
17:53:41.843 <- I (2260) wifi:Init max length of beacon: 752/752
17:53:41.843 <- I (2260) wifi:Init max length of beacon: 752/752
17:53:41.844 <- I (2270) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
17:53:41.844 <- I (2280) DNS_SERVER: DNS server started on port 53
17:53:41.844 <- I (2280) mdns_mem: mDNS task will be created from internal RAM
17:53:41.844 <- I (2290) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
17:53:41.845 <- I (2290) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
17:53:41.845 <- I (2300) WEBSERVER: STARTING HTTP
17:53:41.845 <- I (2310) WEBSERVER: HTTP server started successfully
17:53:41.845 <- I (2310) WEBSERVER: Registered URI handler: /
17:53:41.845 <- I (2320) WEBSERVER: Registered URI handler: /get
17:53:41.845 <- I (2320) WEBSERVER: Registered URI handler: /post
17:53:41.845 <- I (2330) WEBSERVER: Registered URI handler: /log
17:53:41.845 <- I (2330) WEBSERVER: Registered URI handler: /ota
17:53:41.846 <- I (2340) WEBSERVER: Registered URI handler: /*
17:53:41.846 <- I (2340) WEBSERVER: Webserver initialization complete
17:53:41.846 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.846 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.847 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.847 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.847 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.847 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.847 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.848 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.848 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.848 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.848 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.848 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.848 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.849 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.849 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.849 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.849 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.849 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.849 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.849 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.849 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.850 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.850 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.850 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.850 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.851 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.851 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.851 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.851 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.851 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.851 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.851 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.851 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.851 <- I (4880) BT_HID: Found 0 HID device(s)
17:53:41.852 <- I (4880) BT_HID: No HID devices found, retrying in 2000ms...
17:53:41.852 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.852 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.852 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.852 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.853 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.853 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.853 <- I (6880) BT_HID: Scanning for HID devices (3s)...
17:53:41.853 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.854 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.854 <- ls truncated
17:53:41.854 <- E rmt: hw buffer too small, received symbols truls truncated
17:53:41.854 <- E rmt: hw buffer too small, received symbols truls truncated
17:53:41.854 <- E rmt: hw buffer too small, received symbols truls truncated
17:53:41.854 <- E rmt: hw buffer too small, received symbols truncated
17:53:41.854 <- ncated
17:53:41.854 <- ncated
17:53:41.854 <- ncated
17:53:41.854 <- ncated
17:53:41.854 <- ncated
17:53:41.854 <- ncated
17:53:41.854 <- ncated
17:53:41.854 <- ncated
17:53:41.854 <- ncated
17:53:41.854 <- ncated
17:53:41.854 <- ncated
17:53:41.854 <- ncated
17:53:41.854 <- ncated
17:53:41.854 <- ncated
17:53:41.854 <- ncated
17:53:41.854 <- ncated
17:53:41.854 <- ncated
17:53:41.855 <- ncated
17:53:41.855 <- ncated
17:53:41.855 <- ncated
17:53:41.855 <- ncated
17:53:41.855 <- ncated
17:53:41.855 <- ncated
17:53:41.855 <- ncated
17:53:41.855 <- ncated
17:53:41.855 <- ncated
17:53:41.855 <- ncated
17:53:41.855 <- ncated
17:53:41.855 <- ncated
17:53:41.855 <- ncated
17:53:41.855 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.856 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.857 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.858 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.859 <- ncated
17:53:41.860 <- ncated
17:53:41.860 <- ncated
17:53:41.860 <- ncated
17:53:41.860 <- ncated
17:53:41.860 <- ncated
17:53:41.860 <- ncated
17:53:41.860 <- ncated

View File

@@ -1,441 +0,0 @@
17:54:35.492
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
17:54:35.494 erase_flash @ COM3
17:54:38.865 flashing from D:\SC\SC-F001\build
17:54:38.866 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
17:55:03.936 Flash complete
17:55:05.437 Connecting to COM3 @ 115200 ...
17:55:05.443 -> BU.BEGIN
17:55:05.696 <- BU.BEGIN
17:55:05.696 <-
17:55:05.696 <-
17:55:05.696 <- BU.OK begin fw=666750f board=V5 t=0.00
17:55:05.697 -> BU.INFO
17:55:05.698 <- E rmt: hw buffer too small, received symbols truncated
17:55:05.709 <- I (1860) BT_HID: Scanning for HID devices (3s)...
17:55:05.709 <- I (1860) BT_HID: BLE HID host initialised
17:55:05.715 <- I (1860) WEBSERVER: Initializing webserver...
17:55:05.716 <- I (1860) WEBSERVER: AP LAUNCHING
17:55:05.716 <- I (1880) wifi:wifi driver task: 3ffe28e8, prio:23, stack:6656, core=0
17:55:05.716 <- I (1880) wifi:wifi firmware version: ccaebfa
17:55:05.716 <- I (1880) wifi:wifi certification version: v7.0
17:55:05.742 <- I (1880) wifi:config NVS flash: enabled
17:55:05.742 <- I (1880) wifi:config nano formating: disabled
17:55:05.742 <- I (1890) wifi:Init data frame dynamic rx buffer num: 32
17:55:05.742 <- I (1890) wifi:Init static rx mgmt buffer num: 5
17:55:05.742 <-
17:55:05.763 <- BU.OK info reset=POWERON heap=111572 min_heap=111572 fw=666750f build=2026-04-28 17:44:02
17:56:12.335 -> BU.FLASH
17:56:12.335 <- I (1900) wifi:Init management short buffer num: 32
17:56:12.335 <- I (1910) wifi:Init dynamic tx buffer num: 32
17:56:12.335 <- I (1910) wifi:Init static rx buffer size: 1600
17:56:12.335 <- I (1920) wifi:Init static rx buffer num: 10
17:56:12.335 <- I (1920) wifi:Init dynamic rx buffer num: 32
17:56:12.336 <- I (1930) wifi_init: rx ba win: 6
17:56:12.336 <- I (1930) wifi_init: accept mbox: 6
17:56:12.336 <- I (1930) wifi_init: tcpip mbox: 32
17:56:12.336 <- I (1940) wifi_init: udp mbox: 6
17:56:12.336 <- I (1940) wifi_init: tcp mbox: 6
17:56:12.337 <- I (1940) wifi_init: tcp tx win: 5760
17:56:12.337 <- I (1950) wifi_init: tcp rx win: 5760
17:56:12.337 <- I (1950) wifi_init: tcp mss: 1440
17:56:12.337 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.337 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.337 <- I (2240) wifi:mode : softAP (80:f3:da:64:0c:09)
17:56:12.337 <- I (2250) wifi:Total power save buffer number: 16
17:56:12.337 <- I (2250) wifi:Init max length of beacon: 752/752
17:56:12.337 <- I (2250) wifi:Init max length of beacon: 752/752
17:56:12.338 <- I (2260) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
17:56:12.338 <- I (2260) DNS_SERVER: DNS server started on port 53
17:56:12.338 <- I (2270) mdns_mem: mDNS task will be created from internal RAM
17:56:12.338 <- I (2270) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
17:56:12.339 <- I (2280) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
17:56:12.339 <- I (2290) WEBSERVER: STARTING HTTP
17:56:12.339 <- I (2300) WEBSERVER: HTTP server started successfully
17:56:12.339 <- I (2300) WEBSERVER: Registered URI handler: /
17:56:12.340 <- I (2300) WEBSERVER: Registered URI handler: /get
17:56:12.340 <- I (2310) WEBSERVER: Registered URI handler: /post
17:56:12.340 <- I (2310) WEBSERVER: Registered URI handler: /log
17:56:12.340 <- I (2320) WEBSERVER: Registered URI handler: /ota
17:56:12.341 <- I (2320) WEBSERVER:E rmt: hw buffer too small, received symbols truncated
17:56:12.341 <- Registered URI handler: /*
17:56:12.341 <- I (2330) WEBSERVER: Webserver initialization complete
17:56:12.341 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.341 <- I (4870) BT_HID: Found 0 HID device(s)
17:56:12.341 <- I (4870) BT_HID: No HID devices found, retrying in 2000ms...
17:56:12.341 <- I (6870) BT_HID: Scanning for HID devices (3s)...
17:56:12.342 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.342 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.342 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.342 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.342 <- I (9880) BT_HID: Found 0 HID device(s)
17:56:12.342 <- I (9880) BT_HID: No HID devices found, retrying in 2000ms...
17:56:12.343 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.343 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.343 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.343 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.343 <- I (11880) BT_HID: Scanning for HID devices (3s)...
17:56:12.344 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.344 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.344 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.344 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.344 <- I (14890) BT_HID: Found 0 HID device(s)
17:56:12.344 <- I (14890) BT_HID: No HID devices found, retrying in 2000ms...
17:56:12.344 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.344 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.345 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.345 <- I (16890) BT_HID: Scanning for HID devices (3s)...
17:56:12.345 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.345 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.345 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.346 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.346 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.346 <- I (19900) BT_HID: Found 0 HID device(s)
17:56:12.346 <- I (19900) BT_HID: No HID devices found, retrying in 2000ms...
17:56:12.346 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.346 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.346 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.346 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.346 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.347 <- I (21900) BT_HID: Scanning for HID devices (3s)...
17:56:12.347 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.347 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.347 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.348 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.348 <- received symbols truncated
17:56:12.348 <- E rmt: hw buffer too small, recei received symbols truncated
17:56:12.348 <- E rmt: hw buffer too small, recei received symbols truncated
17:56:12.348 <- E rmt: hw buffer too small, recei received symbols truncated
17:56:12.348 <- E rmt: hw buffer too small, received symbols truncated
17:56:12.348 <- ved symbols truncated
17:56:12.348 <- ved symbols truncated
17:56:12.348 <- ved symbols truncated
17:56:12.349 <- ved symbols truncated
17:56:12.349 <- ved symbols truncated
17:56:12.349 <- ved symbols truncated
17:56:12.349 <- ved symbols truncated
17:56:12.349 <- ved symbols truncated
17:56:12.349 <- ved symbols truncated
17:56:12.349 <- ved symbols truncated
17:56:12.349 <- ved symbols truncated
17:56:12.349 <- ved symbols truncated
17:56:12.349 <- ved symbols truncated
17:56:12.349 <- ved symbols truncated
17:56:12.349 <- ved symbols truncated
17:56:12.349 <- ved symbols truncated
17:56:12.349 <- ved symbols truncated
17:56:12.349 <- ved symbols truncated
17:56:12.349 <- ved symbols truncated
17:56:12.349 <- ved symbols truncated
17:56:12.350 <- ved symbols truncated
17:56:12.350 <- ved symbols truncated
17:56:12.350 <- ved symbols truncated
17:56:12.350 <- ved symbols truncated
17:56:12.350 <- ved symbols truncated
17:56:12.350 <- ved symbols truncated
17:56:12.350 <- ved symbols truncated
17:56:12.350 <- ved symbols truncated
17:56:12.350 <- ved symbols truncated
17:56:12.350 <- ved symbols truncated
17:56:12.350 <- ved symbols truncated
17:56:12.351 <- ved symbols truncated
17:56:12.351 <- ved symbols truncated
17:56:12.351 <- ved symbols truncated
17:56:12.351 <- ved symbols truncated
17:56:12.351 <- ved symbols truncated
17:56:12.351 <- ved symbols truncated
17:56:12.351 <- ved symbols truncated
17:56:12.351 <- ved symbols truncated
17:56:12.351 <- ved symbols truncated
17:56:12.351 <- ved symbols truncated
17:56:12.351 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.352 <- ved symbols truncated
17:56:12.353 <- ved symbols truncated
17:56:12.353 <- ved symbols truncated
17:56:12.353 <- ved symbols truncated
17:56:12.353 <- ved symbols truncated
17:56:12.353 <- ved symbols truncated
17:56:12.353 <- ved symbols truncated
17:56:12.353 <- ved symbols truncated
17:56:12.353 <- ved symbols truncated
17:56:12.353 <- ved symbols truncated
17:56:12.353 <- ved symbols truncated
17:56:12.353 <- ved symbols truncated
17:56:12.353 <- ved symbols truncated
17:56:12.354 <- ved symbols truncated
17:56:12.354 <- ved symbols truncated
17:56:12.354 <- ved symbols truncated
17:56:12.354 <- ved symbols truncated
17:56:12.354 <- ved symbols truncated
17:56:12.354 <- ved symbols truncated
17:56:12.354 <- ved symbols truncated
17:56:12.354 <- ved symbols truncated
17:56:12.354 <- ved symbols truncated
17:56:12.354 <- ved symbols truncated
17:56:12.354 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.355 <- ved symbols truncated
17:56:12.356 <- ved symbols truncated
17:56:12.356 <- ved symbols truncated
17:56:12.356 <- ved symbols truncated
17:56:12.356 <- ved symbols truncated
17:56:12.356 <- ved symbols truncated
17:56:12.356 <- ved symbols truncated
17:56:12.356 <- ved symbols truncated

Binary file not shown.

View File

@@ -1,843 +0,0 @@
18:06:49.907
------------------------------------------------------------
Flashing COM3
------------------------------------------------------------
18:06:49.910 erase_flash @ COM3
18:06:53.126 flashing from D:\SC\SC-F001\build
18:06:53.129 files: [('0x1000', 'bootloader/bootloader.bin'), ('0x10000', 'SC-F001.bin'), ('0x8000', 'partition_table/partition-table.bin'), ('0xd000', 'ota_data_initial.bin')]
18:07:18.238 Flash complete
18:07:19.739 Connecting to COM3 @ 115200 ...
18:07:19.743 -> BU.BEGIN
18:07:20.014 <- BU.BEGIN
18:07:20.014 <-
18:07:20.014 <-
18:07:20.014 <- BU.OK begin fw=666750f board=V5 t=0.00
18:07:20.016 -> BU.INFO
18:07:20.016 <- I (1870) BT_HID: Scanning for HID devices (3s)...
18:07:20.028 <- I (1870) BT_HID: BLE HID host initialised
18:07:20.028 <- I (1870) WEBSERVER: Initializing webserver...
18:07:20.036 <- I (1870) WEBSERVER: AP LAUNCHING
18:07:20.036 <- I (1890) wifi:wifi driver task: 3ffe28e8, prio:23, stack:6656, core=0
18:07:20.036 <- I (1890) wifi:wifi firmware version: ccaebfa
18:07:20.036 <- I (1890) wifi:wifi certification version: v7.0
18:07:20.036 <- I (1890) wifi:config NVS flash: enabled
18:07:20.057 <- I (1890) wifi:config nano formating: disabled
18:07:20.057 <- I (1900) wifi:Init data frame dynamic rx buffer num: 32
18:07:20.057 <- I (1900) wifi:Init static rx mgmt buffer num: 5
18:07:20.057 <- I (1910) wifi:Init management short buffer num: 32
18:07:20.057 <-
18:07:20.085 <- BU.OK info reset=POWERON heap=111572 min_heap=111572 fw=666750f build=2026-04-28 17:44:02
18:08:13.137 -> BU.FLASH
18:08:13.137 <- I (1910) wifi:Init dynamic tx buffer num: 32
18:08:13.137 <- I (1920) wifi:Init static rx buffer size: 1600
18:08:13.137 <- I (1930) wifi:Init static rx buffer num: 10
18:08:13.137 <- I (1930) wifi:Init dynamic rx buffer num: 32
18:08:13.137 <- I (1940) wifi_init: rx ba win: 6
18:08:13.138 <- I (1940) wifi_init: accept mbox: 6
18:08:13.138 <- I (1940) wifi_init: tcpip mbox: 32
18:08:13.138 <- I (1950) wifi_init: udp mbox: 6
18:08:13.138 <- I (1950) wifi_init: tcp mbox: 6
18:08:13.138 <- I (1950) wifi_init: tcp tx win: 5760
18:08:13.139 <- I (1960) wifi_init: tcp rx win: 5760
18:08:13.139 <- I (1960) wifi_init: tcp mss: 1440
18:08:13.139 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.139 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.139 <- I (2250) wifi:mode : softAP (80:f3:da:64:0c:09)
18:08:13.139 <- I (2260) wifi:Total power save buffer number: 16
18:08:13.139 <- I (2260) wifi:Init max length of beacon: 752/752
18:08:13.139 <- I (2260) wifi:Init max length of beacon: 752/752
18:08:13.139 <- I (2270) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
18:08:13.140 <- I (2270) DNS_SERVER: DNS server started on port 53
18:08:13.140 <- I (2280) mdns_mem: mDNS task will be created from internal RAM
18:08:13.140 <- I (2280) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
18:08:13.141 <- I (2290) WEBSERVER: Access at: http://sc.local.local or http://192.168.4.1
18:08:13.141 <- I (2300) WEBSERVER: STARTING HTTP
18:08:13.141 <- I (2310) WEBSERVER: HTTP server started successfully
18:08:13.141 <- I (2310) WEBSERVER: Registered URI handler: /
18:08:13.141 <- I (2310) WEBSERVER: Registered URI handler: /get
18:08:13.141 <- I (2320) WEBSERVER: Registered URI handler: /post
18:08:13.141 <- I (2320) WEBSERVER: Registered URI handler: /log
18:08:13.141 <- I (2330) WEBSERVER: Registered URI handler: /ota
18:08:13.141 <- I (2330) WEBSERVER: Registered URI handler: /*
18:08:13.142 <- I (2340) WEBSERVER: Webserver initialization complete
18:08:13.142 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.142 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.142 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.143 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.143 <- I (4880) BT_HID: Found 0 HID device(s)
18:08:13.143 <- I (4880) BT_HID: No HID devices found, retrying in 2000ms...
18:08:13.143 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.143 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.143 <- I (6880) BT_HID: Scanning for HID devices (3s)...
18:08:13.143 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.143 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.143 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.144 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.144 <- I (9890) BT_HID: Found 0 HID device(s)
18:08:13.144 <- I (9890) BT_HID: No HID devices found, retrying in 2000ms...
18:08:13.144 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.145 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.145 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.145 <- I (11890) BT_HID: Scanning for HID devices (3s)...
18:08:13.145 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.145 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.145 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.145 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.145 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.145 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.146 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.146 <- I (14900) BT_HID: Found 0 HID device(s)
18:08:13.146 <- I (14900) BT_HID: No HID devices found, retrying in 2000ms...
18:08:13.146 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.146 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.147 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.147 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.147 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.147 <- I (16900) BT_HID: Scanning for HID devices (3s)...
18:08:13.147 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.147 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.147 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.147 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.147 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.148 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.148 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.148 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.148 <- E rmt: hw buffer too small, received symbols truncated
18:08:13.149 <- I (19910) BT_HID: Found 0 HID device(s)
18:08:13.149 <- I (uffer too small, received symbols truncated
18:08:13.149 <- I (54980) BT_HID: Found 0 HID device(s)
18:08:13.149 <- I (54980) BT_HID: NoBT_HID: Found 0 HID device(s)
18:08:13.149 <- I (54980) BT_HID: NoBT_HID: Found 0 HID device(s)
18:08:13.149 <- I (54980) BT_HID: No HID devices found, retrying in 2000ms...
18:08:13.149 <- HID devices found, retrying in 2000ms...
18:08:13.149 <- HID devices found, retrying in 2000ms...
18:08:13.149 <- HID devices found, retrying in 2000ms...
18:08:13.150 <- HID devices found, retrying in 2000ms...
18:08:13.150 <- HID devices found, retrying in 2000ms...
18:08:13.150 <- HID devices found, retrying in 2000ms...
18:08:13.150 <- HID devices found, retrying in 2000ms...
18:08:13.150 <- HID devices found, retrying in 2000ms...
18:08:13.150 <- HID devices found, retrying in 2000ms...
18:08:13.151 <- HID devices found, retrying in 2000ms...
18:08:13.151 <- HID devices found, retrying in 2000ms...
18:08:13.151 <- HID devices found, retrying in 2000ms...
18:08:13.151 <- HID devices found, retrying in 2000ms...
18:08:13.151 <- HID devices found, retrying in 2000ms...
18:08:13.151 <- HID devices found, retrying in 2000ms...
18:08:13.151 <- HID devices found, retrying in 2000ms...
18:08:13.151 <- HID devices found, retrying in 2000ms...
18:08:13.151 <- HID devices found, retrying in 2000ms...
18:08:13.151 <- HID devices found, retrying in 2000ms...
18:08:13.151 <- HID devices found, retrying in 2000ms...
18:08:13.152 <- HID devices found, retrying in 2000ms...
18:08:13.152 <- HID devices found, retrying in 2000ms...
18:08:13.152 <- HID devices found, retrying in 2000ms...
18:08:13.152 <- HID devices found, retrying in 2000ms...
18:08:13.152 <- HID devices found, retrying in 2000ms...
18:08:13.152 <- HID devices found, retrying in 2000ms...
18:08:13.152 <- HID devices found, retrying in 2000ms...
18:08:13.152 <- HID devices found, retrying in 2000ms...
18:08:13.152 <- HID devices found, retrying in 2000ms...
18:08:13.152 <- HID devices found, retrying in 2000ms...
18:08:13.152 <- HID devices found, retrying in 2000ms...
18:08:13.153 <- HID devices found, retrying in 2000ms...
18:08:13.153 <- HID devices found, retrying in 2000ms...
18:08:13.153 <- HID devices found, retrying in 2000ms...
18:08:13.153 <- HID devices found, retrying in 2000ms...
18:08:13.153 <- HID devices found, retrying in 2000ms...
18:08:13.153 <- HID devices found, retrying in 2000ms...
18:08:13.154 <- HID devices found, retrying in 2000ms...
18:08:13.154 <- HID devices found, retrying in 2000ms...
18:08:13.154 <- HID devices found, retrying in 2000ms...
18:08:13.154 <- HID devices found, retrying in 2000ms...
18:08:13.154 <- HID devices found, retrying in 2000ms...
18:08:13.154 <- HID devices found, retrying in 2000ms...
18:08:13.154 <- HID devices found, retrying in 2000ms...
18:08:13.154 <- HID devices found, retrying in 2000ms...
18:08:13.154 <- HID devices found, retrying in 2000ms...
18:08:13.154 <- HID devices found, retrying in 2000ms...
18:08:13.155 <- HID devices found, retrying in 2000ms...
18:08:13.155 <- HID devices found, retrying in 2000ms...
18:08:13.155 <- HID devices found, retrying in 2000ms...
18:08:13.155 <- HID devices found, retrying in 2000ms...
18:08:13.155 <- HID devices found, retrying in 2000ms...
18:08:13.155 <- HID devices found, retrying in 2000ms...
18:08:13.155 <- HID devices found, retrying in 2000ms...
18:08:13.155 <- HID devices found, retrying in 2000ms...
18:08:13.156 <- HID devices found, retrying in 2000ms...
18:08:13.156 <- HID devices found, retrying in 2000ms...
18:08:13.156 <- HID devices found, retrying in 2000ms...
18:08:13.156 <- HID devices found, retrying in 2000ms...
18:08:13.156 <- HID devices found, retrying in 2000ms...
18:08:13.156 <- HID devices found, retrying in 2000ms...
18:08:13.156 <- HID devices found, retrying in 2000ms...
18:08:13.156 <- HID devices found, retrying in 2000ms...
18:08:13.156 <- HID devices found, retrying in 2000ms...
18:08:13.157 <- HID devices found, retrying in 2000ms...
18:08:13.157 <- HID devices found, retrying in 2000ms...
18:08:13.157 <- HID devices found, retrying in 2000ms...
18:08:13.157 <- HID devices found, retrying in 2000ms...
18:08:13.157 <- HID devices found, retrying in 2000ms...
18:08:13.157 <- HID devices found, retrying in 2000ms...
18:08:13.157 <- HID devices found, retrying in 2000ms...
18:08:13.157 <- HID devices found, retrying in 2000ms...
18:08:13.157 <- HID devices found, retrying in 2000ms...
18:08:13.157 <- HID devices found, retrying in 2000ms...
18:08:13.157 <- HID devices found, retrying in 2000ms...
18:08:13.158 <- HID devices found, retrying in 2000ms...
18:08:13.158 <- HID devices found, retrying in 2000ms...
18:08:13.158 <- HID devices found, retrying in 2000ms...
18:08:13.158 <- HID devices found, retrying in 2000ms...
18:08:13.158 <- HID devices found, retrying in 2000ms...
18:08:13.159 <- HID devices found, retrying in 2000ms...
18:08:13.159 <- HID devices found, retrying in 2000ms...
18:08:13.159 <- HID devices found, retrying in 2000ms...
18:08:13.159 <- HID devices found, retrying in 2000ms...
18:08:13.159 <- HID devices found, retrying in 2000ms...
18:08:13.159 <- HID devices found, retrying in 2000ms...
18:08:13.160 <- HID devices found, retrying in 2000ms...
18:08:13.160 <- HID devices found, retrying in 2000ms...
18:08:13.160 <- HID devices found, retrying in 2000ms...
18:08:13.160 <- HID devices found, retrying in 2000ms...
18:08:13.160 <- HID devices found, retrying in 2000ms...
18:08:13.161 <- HID devices found, retrying in 2000ms...
18:08:13.161 <- HID devices found, retrying in 2000ms...
18:08:13.161 <- HID devices found, retrying in 2000ms...
18:08:13.161 <- HID devices found, retrying in 2000ms...
18:08:13.161 <- HID devices found, retrying in 2000ms...
18:08:13.161 <- HID devices found, retrying in 2000ms...
18:08:13.161 <- HID devices found, retrying in 2000ms...
18:08:13.161 <- HID devices found, retrying in 2000ms...
18:08:13.161 <- HID devices found, retrying in 2000ms...
18:08:13.161 <- HID devices found, retrying in 2000ms...
18:08:13.161 <- HID devices found, retrying in 2000ms...
18:08:13.162 <- HID devices found, retrying in 2000ms...
18:08:13.162 <- HID devices found, retrying in 2000ms...
18:08:13.162 <- HID devices found, retrying in 2000ms...
18:08:13.162 <- HID devices found, retrying in 2000ms...
18:08:13.162 <- HID devices found, retrying in 2000ms...
18:08:13.163 <- HID devices found, retrying in 2000ms...
18:08:13.163 <- HID devices found, retrying in 2000ms...
18:08:13.163 <- HID devices found, retrying in 2000ms...
18:08:13.163 <- HID devices found, retrying in 2000ms...
18:08:13.163 <- HID devices found, retrying in 2000ms...
18:08:13.163 <- HID devices found, retrying in 2000ms...
18:08:13.163 <- HID devices found, retrying in 2000ms...
18:08:13.163 <- HID devices found, retrying in 2000ms...
18:08:13.163 <- HID devices found, retrying in 2000ms...
18:08:13.163 <- HID devices found, retrying in 2000ms...
18:08:13.163 <- HID devices found, retrying in 2000ms...
18:08:13.164 <- HID devices found, retrying in 2000ms...
18:08:13.164 <- HID devices found, retrying in 2000ms...
18:08:13.164 <- HID devices found, retrying in 2000ms...
18:08:13.164 <- HID devices found, retrying in 2000ms...
18:08:13.164 <- HID devices found, retrying in 2000ms...
18:08:13.164 <- HID devices found, retrying in 2000ms...
18:08:13.165 <- HID devices found, retrying in 2000ms...
18:08:13.165 <- HID devices found, retrying in 2000ms...
18:08:13.165 <- HID devices found, retrying in 2000ms...
18:08:13.165 <- HID devices found, retrying in 2000ms...
18:08:13.165 <- HID devices found, retrying in 2000ms...
18:08:13.165 <- HID devices found, retrying in 2000ms...
18:08:13.165 <- HID devices found, retrying in 2000ms...
18:08:13.165 <- HID devices found, retrying in 2000ms...
18:08:13.165 <- HID devices found, retrying in 2000ms...
18:08:13.165 <- HID devices found, retrying in 2000ms...
18:08:13.165 <- HID devices found, retrying in 2000ms...
18:08:13.166 <- HID devices found, retrying in 2000ms...
18:08:13.166 <- HID devices found, retrying in 2000ms...
18:08:13.166 <- HID devices found, retrying in 2000ms...
18:08:13.166 <- HID devices found, retrying in 2000ms...
18:08:13.166 <- HID devices found, retrying in 2000ms...
18:08:13.167 <- HID devices found, retrying in 2000ms...
18:08:13.167 <- HID devices found, retrying in 2000ms...
18:08:13.167 <- HID devices found, retrying in 2000ms...
18:08:13.167 <- HID devices found, retrying in 2000ms...
18:08:13.167 <- HID devices found, retrying in 2000ms...
18:08:13.168 <- HID devices found, retrying in 2000ms...
18:08:13.168 <- HID devices found, retrying in 2000ms...
18:08:13.168 <- HID devices found, retrying in 2000ms...
18:08:13.168 <- HID devices found, retrying in 2000ms...
18:08:13.168 <- HID devices found, retrying in 2000ms...
18:08:13.168 <- HID devices found, retrying in 2000ms...
18:08:13.168 <- HID devices found, retrying in 2000ms...
18:08:13.169 <- HID devices found, retrying in 2000ms...
18:08:13.169 <- HID devices found, retrying in 2000ms...
18:08:13.169 <- HID devices found, retrying in 2000ms...
18:08:13.169 <- HID devices found, retrying in 2000ms...
18:08:13.169 <- HID devices found, retrying in 2000ms...
18:08:13.169 <- HID devices found, retrying in 2000ms...
18:08:13.169 <- HID devices found, retrying in 2000ms...
18:08:13.169 <- HID devices found, retrying in 2000ms...
18:08:13.169 <- HID devices found, retrying in 2000ms...
18:08:13.169 <- HID devices found, retrying in 2000ms...
18:08:13.170 <- HID devices found, retrying in 2000ms...
18:08:13.170 <- HID devices found, retrying in 2000ms...
18:08:13.170 <- HID devices found, retrying in 2000ms...
18:08:13.170 <- HID devices found, retrying in 2000ms...
18:08:13.170 <- HID devices found, retrying in 2000ms...
18:08:13.171 <- HID devices found, retrying in 2000ms...
18:08:13.171 <- HID devices found, retrying in 2000ms...
18:08:13.171 <- HID devices found, retrying in 2000ms...
18:08:13.171 <- HID devices found, retrying in 2000ms...
18:08:13.171 <- HID devices found, retrying in 2000ms...
18:08:13.171 <- HID devices found, retrying in 2000ms...
18:08:13.171 <- HID devices found, retrying in 2000ms...
18:08:13.171 <- HID devices found, retrying in 2000ms...
18:08:13.171 <- HID devices found, retrying in 2000ms...
18:08:13.171 <- HID devices found, retrying in 2000ms...
18:08:13.171 <- HID devices found, retrying in 2000ms...
18:08:13.172 <- HID devices found, retrying in 2000ms...
18:08:13.172 <- HID devices found, retrying in 2000ms...
18:08:13.172 <- HID devices found, retrying in 2000ms...
18:08:13.172 <- HID devices found, retrying in 2000ms...
18:08:13.172 <- HID devices found, retrying in 2000ms...
18:08:13.172 <- HID devices found, retrying in 2000ms...
18:08:13.172 <- HID devices found, retrying in 2000ms...
18:08:13.172 <- HID devices found, retrying in 2000ms...
18:08:13.172 <- HID devices found, retrying in 2000ms...
18:08:13.172 <- HID devices found, retrying in 2000ms...
18:08:13.172 <- HID devices found, retrying in 2000ms...
18:08:13.173 <- HID devices found, retrying in 2000ms...
18:08:13.173 <- HID devices found, retrying in 2000ms...
18:08:13.173 <- HID devices found, retrying in 2000ms...
18:08:13.173 <- HID devices found, retrying in 2000ms...
18:08:13.173 <- HID devices found, retrying in 2000ms...
18:08:13.173 <- HID devices found, retrying in 2000ms...
18:08:13.174 <- HID devices found, retrying in 2000ms...
18:08:13.174 <- HID devices found, retrying in 2000ms...
18:08:13.174 <- HID devices found, retrying in 2000ms...
18:08:13.174 <- HID devices found, retrying in 2000ms...
18:08:13.174 <- HID devices found, retrying in 2000ms...
18:08:13.676 <- HID devices found, retrying in 2000ms...
18:08:13.676 <-
18:08:13.676 <- BU.OK flash post_part=roundtrip log_head=11 log_tail=0 partitions_size=4128768
18:08:14.923 -> BU.I2C
18:08:14.923 <- E rmt: hw buffer too small, received symbols truncated
18:08:14.923 <- E rmt: hw buffer too small, received symbols truncated
18:08:15.109 <- E rmt: hw buffer too small, received symbols truncated
18:08:15.109 <- E rmt: hw buffer too small, received symbols truncated
18:08:15.109 <- I (56820) I2C: POST: TCA9555 OK (port0=0x0123)
18:08:15.109 <-
18:08:15.109 <- BU.OK i2c tca9555=ack
18:08:15.113 -> BU.LED.WATCH
18:08:15.113 <- E rmt: hw buffer too small, received symbols truncated
18:08:15.619 <- I (56980) BT_HID: Scanning for HID devices (3s)...
18:08:15.619 <-
18:08:15.619 <- BU.EVENT led t=55.37 pressed=0
18:08:15.619 <- E rmt: hw buffer too small, received symbols truncated
18:08:16.122 <- E rmt: hw buffer too small, received symbols truncated
18:08:16.122 <- E rmt: hw buffer too small, received symbols truncated
18:08:16.397 ->
18:08:16.629 <- E rmt: hw buffer too small, received symbols truncated
18:08:16.629 <-
18:08:16.629 <- BU.OK led.watch done
18:08:17.584 -> BU.ADC
18:08:18.085 <-
18:08:18.085 <- BU.OK adc bat_mv=1697 bat_V=13.410 isens_mv=1689 isens_A=-2.95
18:08:18.087 -> BU.PARAM GET V_SENS_K
18:08:18.088 <- E rmt: hw buffer too small, received symbols truncated
18:08:18.088 <- E rmt: hw buffer too small, received symbols truncated
18:08:18.590 <-
18:08:18.590 <- BU.OK param key=V_SENS_K value=0.00766666653
18:08:18.590 -> BU.ADC
18:08:18.590 <- I (59990) BT_HID: Found 0 HID device(s)
18:08:18.590 <- I (59990) BT_HID: No HID devices found, retrying in 2000ms...
18:08:18.590 <- E rmt: hw buffer too small, received symbols truncated
18:08:19.094 <- E rmt: hw buffer too small, received symbols truncated
18:08:19.094 <-
18:08:19.094 <- BU.OK adc bat_mv=1689 bat_V=13.349 isens_mv=1712 isens_A=-4.70
18:08:29.295 -> BU.PARAM SET V_SENS_OFFSET -0.039000
18:08:29.296 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.296 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.296 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.296 <- I (61990) BT_HID: Scanning for HID devices (3s)...
18:08:29.296 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.297 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.297 <- I (65000) BT_HID: Found 0 HID device(s)
18:08:29.297 <- I (65000) BT_HID: No HID devices found, retrying in 2000ms...
18:08:29.297 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.297 <- I (67000) BT_HID: Scanning for HID devices (3s)...
18:08:29.297 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.297 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.297 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.298 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.298 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.298 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.298 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.298 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.298 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.298 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.298 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.298 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.299 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.299 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.299 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.299 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.300 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.300 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.300 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.300 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.300 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.301 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.301 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.301 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.301 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.301 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.301 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.301 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.301 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.301 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.306 <- I (70010) BT_HID: Found 0 HID device(s)
18:08:29.306 <- I (70010) BT_HID: No HID devices found, retrying in 2000ms...
18:08:29.306 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.306 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.364 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.364 <- I (71190) STORAGE: Parameter 34 (V_SENS_OFFSET) set (not committed)
18:08:29.364 <- I (71190) STORAGE: Committing 49 parameters to flash...
18:08:29.364 <- I (71220) STORAGE: Successfully committed all parameters to flash
18:08:29.364 <-
18:08:29.873 <- BU.OK param key=V_SENS_OFFSET set=ok committed=yes
18:08:29.873 -> BU.PARAM GET V_SENS_OFFSET
18:08:29.873 <- E rmt: hw buffer too small, received symbols truncated
18:08:29.873 <- E rmt: hw buffer too small, received symbols truncated
18:08:30.377 <-
18:08:30.377 <- BU.OK param key=V_SENS_OFFSET value=-0.0390000008
18:08:30.377 -> BU.ADC
18:08:30.377 <- I (72010) BT_HID: Scanning for HID devices (3s)...
18:08:30.591 <- E rmt: hw buffer too small, received symbols truncated
18:08:30.591 <-
18:08:30.591 <- BU.OK adc bat_mv=1691 bat_V=12.925 isens_mv=1690 isens_A=-3.03
18:08:30.598 -> BU.SENSORS.WATCH 0
18:08:30.598 <- E rmt: hw buffer too small, received symbols truncated
18:08:30.598 <- E rmt: hw buffer too small, received symbols truncated
18:08:30.880 <- E rmt: hw buffer too small, received symbols truncated
18:08:30.880 <-
18:08:30.880 <- BU.EVENT state t=70.85 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
18:08:30.880 <- E rmt: hw buffer too small, received symbols truncated
18:08:30.880 <- E rmt: hw buffer too small, received symbols truncated
18:08:30.880 <-
18:08:31.130 <- BU.EVENT state t=71.11 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
18:08:31.130 <- E rmt: hw buffer too small, received symbols truncated
18:08:31.130 <- E rmt: hw buffer too small, received symbols truncated
18:08:31.130 <- E rmt: hw buffer too small, received symbols truncated
18:08:31.130 <-
18:08:31.323 <- BU.EVENT state t=71.36 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
18:08:31.323 <- E rmt: hw buffer too small, received symbols truncated
18:08:31.323 <- E rmt: hw buffer too small, received symbols truncated
18:08:31.323 <- E rmt: hw buffer too small, received symbols truncated
18:08:31.632 <- E rmt: hw buffer too small, received symbols truncated
18:08:31.632 <-
18:08:31.632 <- BU.EVENT state t=71.61 SAFETY=0 DRIVE=0 JACK=0 AUX=0 isr_s=0 isr_d=0 isr_j=0 isr_a=0
18:08:31.633 <- E rmt: hw buffer too small, received symbols truncated
18:08:31.633 <-

Binary file not shown.

View File

@@ -1,337 +0,0 @@
18:19:47.952 Connecting to COM3 @ 115200 ...
18:19:47.956 -> BU.BEGIN
18:19:48.471 <- BU.BEGIN
18:19:48.471 <-
18:19:48.471 <-
18:19:48.471 <- BU.OK begin fw=666750f board=V5 t=0.00
18:19:48.473 -> BU.INFO
18:19:48.986 <-
18:19:48.986 <- BU.OK info reset=SW heap=61288 min_heap=53044 fw=666750f build=2026-04-28 17:44:02
18:19:50.137 -> BU.FLASH
18:19:50.137 <- E rmt: hw buffer too small, received symbols truncated
18:19:50.644 <- I (31550) BT_HID: Scanning for HID devices (3s)...
18:19:50.644 <-
18:19:50.644 <- BU.OK flash post_part=roundtrip log_head=6310 log_tail=0 partitions_size=4128768
18:19:51.657 -> BU.I2C
18:19:52.158 <- I (33580) I2C: POST: TCA9555 OK (port0=0x0101)
18:19:52.160 <-
18:19:52.160 <- BU.OK i2c tca9555=ack
18:19:52.163 -> BU.LED.WATCH
18:19:52.668 <-
18:19:52.668 <- BU.EVENT led t=4.21 pressed=0
18:19:52.669 <- E rmt: hw buffer too small, received symbols truncated
18:19:52.669 <- E rmt: hw buffer too small, received symbols truncated
18:19:52.669 <- I (34560) BT_HID: Found 0 HID device(s)
18:19:53.170 <- I (34560) BT_HID: No HID devices found, retrying in 2000ms...
18:19:53.352 ->
18:19:53.675 <-
18:19:53.675 <- BU.OK led.watch done
18:19:54.438 -> BU.ADC
18:19:54.943 <-
18:19:54.943 <- BU.OK adc bat_mv=1659 bat_V=12.775 isens_mv=1677 isens_A=-2.05
18:19:54.947 -> BU.PARAM GET V_SENS_K
18:19:54.947 <- I (36560) BT_HID: Scanning for HID devices (3s)...
18:19:54.947 <- E rmt: hw buffer too small, received symbols truncated
18:19:55.450 <-
18:19:55.450 <- BU.OK param key=V_SENS_K value=0.00766666653
18:19:55.450 -> BU.ADC
18:19:55.955 <-
18:19:55.955 <- BU.OK adc bat_mv=1663 bat_V=12.806 isens_mv=1676 isens_A=-1.97
18:20:04.497 -> BU.PARAM SET V_SENS_OFFSET 0.070334
18:20:04.498 <- E rmt: hw buffer too small, received symbols truncated
18:20:04.498 <- E rmt: hw buffer too small, received symbols truncated
18:20:04.498 <- W (38060) httpd_txrx: httpd_resp_send_err: 404 Not Found - Nothing matches the given URI
18:20:04.498 <- I (39570) BT_HID: Found 0 HID device(s)
18:20:04.499 <- I (39570) BT_HID: No HID devices found, retrying in 2000ms...
18:20:04.499 <- E rmt: hw buffer too small, received symbols truncated
18:20:04.499 <- I (41570) BT_HID: Scanning for HID devices (3s)...
18:20:04.499 <- E rmt: hw buffer too small, received symbols truncated
18:20:04.528 <- E rmt: hw buffer too small, received symbols truncated
18:20:04.528 <- I (44580) BT_HID: Found 0 HID device(s)
18:20:04.528 <- I (44580) BT_HID: No HID devices found, retrying in 2000ms...
18:20:04.528 <- I (46420) STORAGE: Parameter 34 (V_SENS_OFFSET) set (not committed)
18:20:05.041 <- I (46420) STORAGE: Committing 49 parameters to flash...
18:20:05.041 <- I (46460) STORAGE: Successfully committed all parameters to flash
18:20:05.041 <-
18:20:05.041 <- BU.OK param key=V_SENS_OFFSET set=ok committed=yes
18:20:05.041 -> BU.PARAM GET V_SENS_OFFSET
18:20:05.041 <- I (46580) BT_HID: Scanning for HID devices (3s)...
18:20:05.545 <-
18:20:05.545 <- BU.OK param key=V_SENS_OFFSET value=0.0703340024
18:20:05.545 -> BU.ADC
18:20:06.051 <-
18:20:06.051 <- BU.OK adc bat_mv=1661 bat_V=12.805 isens_mv=1674 isens_A=-1.82
18:20:06.056 -> BU.SENSORS.WATCH 0
18:20:06.568 <-
18:20:06.568 <- BU.EVENT state t=18.10 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=1 isr_a=0
18:20:06.568 <-
18:20:06.568 <- BU.EVENT state t=18.36 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=1 isr_a=0
18:20:07.074 <-
18:20:07.074 <- BU.EVENT state t=18.61 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=1 isr_a=0
18:20:07.074 <-
18:20:07.074 <- BU.EVENT state t=18.87 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=1 isr_a=0
18:20:07.579 <-
18:20:07.579 <- BU.EVENT state t=19.12 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=1 isr_a=0
18:20:07.579 <- E rmt: hw buffer too small, received symbols truncated
18:20:07.579 <-
18:20:07.579 <- BU.EVENT state t=19.38 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=1 isr_a=0
18:20:07.861 <-
18:20:07.861 <- BU.EVENT state t=19.63 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=1 isr_a=0
18:20:07.861 <- I (49590) BT_HID: Found 0 HID device(s)
18:20:07.861 <- I (49590) BT_HID: No HID devices found, retrying in 2000ms...
18:20:07.861 <-
18:20:08.375 <- BU.EVENT state t=19.88 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=1 isr_a=0
18:20:08.375 <-
18:20:08.375 <- BU.EVENT state t=20.14 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=1 isr_a=0
18:20:08.375 <-
18:20:08.375 <- BU.EVENT state t=20.39 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=1 isr_a=0
18:20:08.882 <-
18:20:08.882 <- BU.EVENT state t=20.65 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=1 isr_a=0
18:20:09.390 <-
18:20:09.390 <- BU.EVENT state t=20.91 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=1 isr_a=0
18:20:09.390 <-
18:20:09.390 <- BU.EVENT state t=21.17 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=1 isr_a=0
18:20:09.690 <-
18:20:09.690 <- BU.EVENT state t=21.43 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=0 isr_d=0 isr_j=1 isr_a=0
18:20:09.690 <-
18:20:09.690 <- BU.EVENT sensor name=SAFETY edge=break t=21.54
18:20:09.690 <-
18:20:09.690 <- BU.EVENT state t=21.69 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=1 isr_d=0 isr_j=1 isr_a=0
18:20:10.184 <- I (51590) BT_HID: Scanning for HID devices (3s)...
18:20:10.184 <-
18:20:10.184 <- BU.EVENT state t=21.95 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=1 isr_d=0 isr_j=1 isr_a=0
18:20:10.184 <- E rmt: hw buffer too small, received symbols truncated
18:20:10.184 <-
18:20:10.695 <- BU.EVENT state t=22.20 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=1 isr_d=0 isr_j=1 isr_a=0
18:20:10.695 <-
18:20:10.695 <- BU.EVENT state t=22.46 SAFETY=0 DRIVE=1 JACK=1 AUX=0 isr_s=1 isr_d=0 isr_j=1 isr_a=0
18:20:10.695 <- E rmt: hw buffer too small, received symbols truncated
18:20:10.695 <-
18:20:10.695 <- BU.EVENT sensor name=SAFETY edge=make t=22.56
18:20:11.202 <-
18:20:11.202 <- BU.EVENT state t=22.72 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=2 isr_d=0 isr_j=1 isr_a=0
18:20:11.202 <-
18:20:11.202 <- BU.EVENT state t=22.98 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=2 isr_d=0 isr_j=1 isr_a=0
18:20:11.705 <-
18:20:11.705 <- BU.EVENT state t=23.23 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=2 isr_d=0 isr_j=1 isr_a=0
18:20:11.705 <-
18:20:11.705 <- BU.EVENT state t=23.49 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=2 isr_d=0 isr_j=1 isr_a=0
18:20:12.213 <-
18:20:12.213 <- BU.EVENT state t=23.74 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=2 isr_d=0 isr_j=1 isr_a=0
18:20:12.213 <-
18:20:12.213 <- BU.EVENT state t=24.00 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=2 isr_d=0 isr_j=1 isr_a=0
18:20:12.250 ->
18:20:12.708 <-
18:20:12.708 <- BU.EVENT state t=24.25 SAFETY=1 DRIVE=1 JACK=1 AUX=0 isr_s=2 isr_d=0 isr_j=1 isr_a=0
18:20:12.708 <-
18:20:12.708 <- BU.OK sensors.watch sec=-1 SAFETY=both DRIVE=none JACK=none AUX=none
18:20:14.210 -> BU.RELAY SENSORS ON 500
18:20:14.210 <- I (54600) BT_HID: Found 0 HID device(s)
18:20:14.723 <- I (54600) BT_HID: No HID devices found, retrying in 2000ms...
18:20:14.723 <- E rmt: hw buffer too small, received symbols truncated
18:20:14.723 <- I (56600) BT_HID: Scanning for HID devices (3s)...
18:20:15.237 <-
18:20:15.237 <- BU.OK relay bridge=SENSORS ms=500
18:20:15.902 -> BU.RELAY DRIVE FWD 3000
18:20:16.409 <- E rmt: hw buffer too small, received symbols truncated
18:20:16.409 <- E rmt: hw buffer too small, received symbols truncated
18:20:16.921 <- E rmt: hw buffer too small, received symbols truncated
18:20:16.921 <- E rmt: hw buffer too small, received symbols truncated
18:20:16.921 <- E rmt: hw buffer too small, received symbols truncated
18:20:17.429 <- E rmt: hw buffer too small, received symbols truncated
18:20:17.429 <- E rmt: hw buffer too small, received symbols truncated
18:20:17.429 <- E rmt: hw buffer too small, received symbols truncated
18:20:17.933 <- E rmt: hw buffer too small, received symbols truncated
18:20:17.933 <- E rmt: hw buffer too small, received symbols truncated
18:20:17.933 <- I (59610) BT_HID: Found 0 HID device(s)
18:20:17.933 <- I (59610) BT_HID: No HID devices found, retrying in 2000ms...
18:20:18.438 <-
18:20:18.438 <- BU.OK relay bridge=DRIVE dir=FWD ms=2000 actual_ms=2059 stop=time I_before=+0.00 I_mid=+22.73 I_after=+0.00 heat=0.006 tripped=0 edges=34
18:20:19.405 -> BU.RELAY DRIVE REV 3000
18:20:19.710 <- E rmt: hw buffer too small, received symbols truncated
18:20:19.710 <- E rmt: hw buffer too small, received symbols truncated
18:20:19.710 <- E rmt: hw buffer too small, received symbols truncated
18:20:19.710 <- E rmt: hw buffer too small, received symbols truncated
18:20:20.220 <- I (61610) BT_HID: Scanning for HID devices (3s)...
18:20:20.220 <- E rmt: hw buffer too small, received symbols truncated
18:20:20.724 <- E rmt: hw buffer too small, received symbols truncated
18:20:20.724 <- E rmt: hw buffer too small, received symbols truncated
18:20:20.724 <- E rmt: hw buffer too small, received symbols truncated
18:20:20.724 <- E rmt: hw buffer too small, received symbols truncated
18:20:21.230 <- E rmt: hw buffer too small, received symbols truncated
18:20:21.230 <- E rmt: hw buffer too small, received symbols truncated
18:20:21.230 <- E rmt: hw buffer too small, received symbols truncated
18:20:21.547 <- E rmt: hw buffer too small, received symbols truncated
18:20:21.547 <- E rmt: hw buffer too small, received symbols truncated
18:20:21.547 <- E rmt: hw buffer too small, received symbols truncated
18:20:21.547 <-
18:20:22.054 <- BU.OK relay bridge=DRIVE dir=REV ms=2000 actual_ms=2059 stop=time I_before=-0.01 I_mid=+19.38 I_after=-0.01 heat=0.011 tripped=0 edges=34
18:20:23.450 -> BU.RELAY JACK UP 1200
18:20:23.450 <- E rmt: hw buffer too small, received symbols truncated
18:20:23.451 <- E rmt: hw buffer too small, received symbols truncated
18:20:23.451 <- E rmt: hw buffer too small, received symbols truncated
18:20:23.451 <- E rmt: hw buffer too small, received symbols truncated
18:20:23.451 <- E rmt: hw buffer too small, received symbols truncated
18:20:23.452 <- E rmt: hw buffer too small, received symbols truncated
18:20:23.452 <- E rmt: hw buffer too small, received symbols truncated
18:20:23.452 <- E rmt: hw buffer too small, received symbols truncated
18:20:23.452 <- I (64620) BT_HID: Found 0 HID device(s)

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +0,0 @@
Code in this repository is in the Public Domain (or CC0 licensed, at your option.)
Unless required by applicable law or agreed to in writing, this
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied.

194
README-ISSUES.md Normal file
View File

@@ -0,0 +1,194 @@
# README.md Issues
Audit of `README.md` against the actual firmware code. The active board is **V5** (`#define BOARD_V5` in `board_config.h`).
---
## GPIO Map (lines 1328) — Wrong for active board (V5)
The table documents the **V4 pinout**. On V5 the sensor and ADC GPIOs are completely different:
| README says | V4 pin | Actual V5 | Source |
|---|---|---|---|
| GPIO14 = Drive encoder | ISENS2 | **GPIO14 = JACK position sensor** | `sensors.c:26` |
| GPIO16 = Jack position sensor | ISENS3 | **GPIO16 = not used** (V5 uses GPIO14 for JACK) | `sensors.c:26` |
| GPIO19 = Aux sensor 2 (reserved) | BATTERY | **GPIO19 = DRIVE encoder** | `sensors.c:26` |
| GPIO23 = *missing* | — | **GPIO23 = AUX2** (unused, J3 unreliable) | `sensors.c:26` |
| GPIO34 = ADC: jack current sense | ISENS2 | **GPIO34 = V_ISENS_MAIN** (shared ACS) | `power_mgmt.c:49` |
| GPIO35 = ADC: aux current sense | ISENS3 | **GPIO35 = battery voltage** (ADC1_CH7) | `power_mgmt.c:51` |
| GPIO36/VP = ADC: drive current sense | ISENS1 | **GPIO36 = V_VOC** (OC threshold diag) | `power_mgmt.c:50` |
| GPIO39/VN = ADC: battery voltage | BATTERY | **GPIO39 = FAULT** (digital input, ACS37220) | `power_mgmt.c:52` |
The `sensors.h` enum comments (lines 1922) are also stale — they list V4 pins but the V5 pins are assigned at runtime in `sensors.c:26`.
---
## TCA9555 description (line 32) — Wrong
> Port 1 (output): 3× H-bridge relay pairs (DRIVE, JACK, AUX) + LEDs
LEDs are on **Port 0** (P05P07), not Port 1. See `i2c_set_led1()` at `i2c.c:98` writing to `TCA_REG_OUTPUT0`.
---
## ACS chip statement (line 47) — Unqualified
> All power goes through a ACS37220 sense chip (13.2 mV/A)
True for V5 (single shared ACS37220). On V4, JACK and AUX use **ACS37042 (44 mV/A)**`power_mgmt.c:457-458`.
---
## Software Architecture diagram (lines 5366) — Missing steps
The init sequence omits:
- Factory-reset detection loop (`main.c:174-227`)
- `rtc_restore_time()` after `storage_init()` (`main.c:232`)
- `adc_post()` after `log_init()` (`main.c:236`)
- `storage_post()` (`main.c:237`)
- OTA rollback counter check (`main.c:241-278`)
- `send_bat_log()` at boot (`main.c:282`)
---
## Main loop description (lines 6873) — Major omissions
Missing from the described main loop:
- **Soft-idle polling path** (`main.c:340-363`) — handles wake-on-button, wake-on-alarm, solar FSM, and shutdown timer during sleep. This is ~25% of the main loop body.
- Button hold-to-reboot logic (`main.c:388-397`)
- Triple-tap detection (`main.c:411-431`)
- Alarm-triggered `FSM_CMD_START` (`main.c:496-499`)
- Periodic `send_bat_log()` every 120s in IDLE (`main.c:450-452`)
- `esp_task_wdt_reset()` at end of each tick (`main.c:503`)
---
## FreeRTOS Tasks table (lines 7684) — Wrong priorities, missing task
| Task | README says | Actual priority | Source |
|---|---|---|---|
| UART task | "default" | **12** | `uart_comms.c:294` |
| RF 433 task | "default" | **5** | `rf_433.c:223` |
| BT HID task | "default" | **4** | `bt_hid.c:583` |
Missing task: **log_writer** (priority 5, created by `log_init()` at `storage.c:1069-1076`).
---
## Key Files — `hard_ui.c` doesn't exist
`hard_ui.c` listed at line 107 — no such file in `main/`. Either stale or was removed.
---
## FSM state diagram (lines 113129) — Missing state
`STATE_DRIVE_FLUFF_START` is omitted. Actual sequence:
```
START_DELAY → JACK_UP_START → JACK_UP → DRIVE_START_DELAY → DRIVE_FLUFF_START → DRIVE → DRIVE_END_DELAY → JACK_DOWN
```
Cal states listed as `CAL_JACK_DELAY` but actual enum names are `STATE_CALIBRATE_JACK_DELAY`, `STATE_CALIBRATE_JACK_MOVE`, `STATE_CALIBRATE_DRIVE_DELAY`, `STATE_CALIBRATE_DRIVE_MOVE`.
---
## FSM Loop — wrong log size (lines 137143)
> send_fsm_log() — 39-byte timestamped entry
`LOGSIZE = 25` at `control_fsm.c:179`. The actual 25-byte layout is:
```
[0:8] ts_ms (u64)
[8:12] bat_V (f32)
[12:16] current_A (f32) — combined, not per-bridge
[16:18] counter (i16)
[18:19] sensors (u8)
[19:23] heat (f32) — max across bridges
[23:25] i2c_out (u16)
```
---
---
## `/log` HTTP endpoint (line 184) — Wrong method
> `/log` — GET
Registered as `HTTP_ANY` (`webserver.c:870`). Handles both GET and POST (`webserver.c:150-153`).
---
## UART `POST:` example (line 189) — Wrong syntax
> POST: {json}
The UART handler (`uart_comms.c`) receives raw JSON strings, not HTTP-style method prefixes.
---
## Flash partitions (lines 212220) — Wrong offsets and sizes
| Partition | README | Actual (`partitions.csv`) |
|---|---|---|
| post_test | offset 0x310000, 4K | offset **0x3F0000**, 4K |
| params | offset 0x311000, **16K** | offset **0x3F1000**, **32K** |
| log | offset 0x315000, **~4.9MB** | offset **0x400000**, **4096K** |
Missing from table: NVS (0x9000, 16K), otadata (0xD000), phy_init (0xF000), **ota_0 (0x10000, 1984K)**, **ota_1 (0x200000, 1984K)**.
---
## Log entry format (lines 222234) — Describes old 39-byte format
The 39-byte layout with separate per-bridge currents and heats doesn't match `send_fsm_log()` which uses 25 bytes (combined current, single max heat, adds `i2c_out`).
---
## Parameter count — Off by one
> 48-param NVM table (`storage.c/h` description, line 97)
`storage.h:72-121` defines **49** parameters (check `NUM_PARAMS` from the enum).
---
## Key Parameters list (lines 236242) — Missing 30+ params
Missing: `ADC_ALPHA_BATTERY`, `ADC_ALPHA_ISENS`, `ADC_ALPHA_IAZ`, `ADC_DB_IAZ`, `JACK_I_UP`, `JACK_I_DOWN`, `V_SENS_K`, `V_SENS_OFFSET`, `EFUSE_INRUSH_US`, `EFUSE_TAUCOOL`, `FLUFF_PREDRIVE_MS`, `CHG_LOW_V`, `CHG_LOW_S`, `CHG_BULK_S`, `RF_PULSE_LENGTH`, `LOW_PROTECTION_S`, `BUILD_VERSION`, `BOOT_TIME`, `JACK_IS_DOWN`, `WIFI_CHANNEL`, `NET_SSID`, `NET_PASS`.
---
## Deep sleep claim (line 248) — Incorrect
> deep sleep is disabled (soft idle instead)
`hibernate_enter()` at `rtc.c:184` calls `esp_deep_sleep_start()`. Deep sleep is used for hibernate mode (triggered by explicit web/UART command). Soft idle is the inactivity-triggered default, but deep sleep is not disabled.
---
## Factory reset GPIO reference (lines 270, 280, 354) — Wrong pin
> Hold GPIO13 button / power cycle with GPIO13 held
GPIO13 is the **NCA9535 INT line**, not a button. The actual button state is read via I2C (`i2c_button_held_raw(0)` at `main.c:176`). The user holds the physical button on the I2C expander, not GPIO13.
---
## Battery voltage GPIO (line 326) — Wrong for V5
> Battery voltage: GPIO39
On V5, battery voltage is on **GPIO35** (ADC1_CH7). GPIO39 is the **FAULT digital input** (`power_mgmt.c:51-52`). This correctly describes V4 only.
---
## "fluffer motor always running" (line 3) — Overstated
> auxiliary "fluffer" motor always running during operation
The fluffer (AUX) only runs during `STATE_DRIVE_FLUFF_START` and `STATE_DRIVE`. It does not run during jack-up, jack-down, or delay states (`control_fsm.c:716-776`).

216
README.md
View File

@@ -1,8 +1,6 @@
# SC-F001 Firmware
**Solar-powered automated crop harvesting robot** built on the ESP32. Drives a carriage horizontally via a drive motor, lifts/lowers a cutting head via a jack motor, with an auxiliary "fluffer" motor always running during operation. The firmware handles motor sequencing, safety interlocks, remote control, data logging, and a WiFi web interface.
**Primary operational cycle:** Idle → Move Start Delay → Jack Up → Drive → Jack Down → Idle
**Solar-powered autonomous livestock shelter mover** built on the ESP32. Drives horizontally via a motor, lifts/lowers a the structure via a jack motor, with an auxiliary "fluffer" motor always running while driving. The firmware handles motor sequencing, safety interlocks, remote control, data logging, and a WiFi web interface.
---
@@ -11,30 +9,40 @@
**MCU:** ESP32 (Xtensa dual-core), ESP-IDF framework
**GPIO Map:**
| GPIO | Function |
|------|----------|
| 13 | Button interrupt (active low, pull-up) |
| 14 | Drive encoder |
| 16 | Jack position sensor |
| 19 | Aux sensor 2 (reserved) |
| 21/22 | I2C SDA/SCL (400kHz) → TCA9555 I/O expander |
| 25 | 433MHz RF receiver (RMT input) |
| 26 | Solar charger bulk enable (RTC GPIO) |
| 27 | Safety sensor (active low) |
| 32/33 | External 32.768 kHz RTC crystal (on PCB, not used — see RTC section) |
| 36 (VP) | ADC: drive current sense |
| 39 (VN) | ADC: battery voltage |
| 34 | ADC: jack current sense |
| 35 | ADC: aux current sense |
| GPIO | Function |
|---------|-------------------------------------------------------------------------|
| 13 | Button interrupt (active low, pull-up) |
| 14 | Jack position sensor |
| 16 | Not Used |
| 19 | Drive encoder |
| 21/22 | I2C SDA/SCL (400kHz) → TCA9555 I/O expander |
| 25 | 433MHz RF receiver (RMT input) |
| 26 | Solar charger bulk enable (RTC GPIO) |
| 27 | Safety sensor (active low) |
| 32/33 | External 32.768 kHz RTC crystal (on PCB, not used — see RTC section) |
| 34 | ADC: Current Sensor |
| 35 | ADC: Battery Voltage |
| 36 (VP) | ADC: Current Sensor VOC |
| 39 (VN) | ADC: Current Sensor FAULT |
**TCA9555 (I2C at 0x21):**
- Port 0 (input): 2 physical buttons + 2 additional inputs
- Port 1 (output): 3× H-bridge relay pairs (DRIVE, JACK, AUX) + LEDs
- Port 0 (input): 2 physical buttons + 2 additional inputs + LEDs
- Port 1 (output): 3× H-bridge relay pairs (DRIVE, JACK, AUX)
**Motor / Bridge Specs:**
- `BRIDGE_DRIVE` — 100A max, ACS37220 sense chip (13.2 mV/A, inverted polarity)
- `BRIDGE_JACK` — 30A max, ACS37042 sense chip (44 mV/A)
- `BRIDGE_AUX` — 30A max, ACS37042 sense chip (44 mV/A)
- P00: SW1 (has external 4.7kOhm pullup)
- P01: SW2 (not populated on SC-B001-V5)
- P02-P04: N/C
- P05-P07: LEDs (through 100ohm resistors)
- P10: Sensor enable (1=ENABLE, 0=DISABLE)
- P11: KC3 (not connected)
- P12: KB3 (not connected)
- P13: KA3 (aux relay)
- P14: KB2 (jack B)
- P15: KA2 (jack A)
- P16: KB1 (drive B)
- P17: KA1 (drive A)
All power goes through a ACS37220LEZATR-100B3 sense chip (13.2 mV/A)
---
@@ -42,11 +50,14 @@
```
app_main()
├── rtc_xtal_init() Button GPIO setup
├── i2c_init() TCA9555 init (relays off, LEDs off)
├── rtc_xtal_init() Button GPIO setup
├── boot_reset_reason Check boot reason for factory reset
├── adc_init() ADC1 calibration (12dB attenuation, line-fit)
├── storage_init() Flash params
├── log_init() Circular log buffer
├── adc_post()
├── storage_post()
├── solar_run_fsm() (called in main loop too)
├── uart_init() Serial JSON API task
├── sensors_init() GPIO ISR setup for sensors/encoders
@@ -56,45 +67,50 @@ app_main()
└── webserver_init() WiFi softAP + HTTP + mDNS + DNS
Main loop (50ms):
soft-idle check
button hold-to-reboot
triple-tap detection
alarm detection
periodic send_bat_log
i2c_poll_buttons()
fsm_request() based on button events
solar_run_fsm()
drive_leds() status animation
rtc_check_shutdown_timer() → soft idle on inactivity (180s)
esp_task_wdt_reset()
```
**FreeRTOS Tasks:**
| Task | Created by | Priority | Tick | Purpose |
|------|-----------|----------|------|---------|
| `app_main` (main loop) | system | 1 (default) | 50ms | Button polling, LED animation, solar FSM, shutdown timer |
| `control_task` | `fsm_init()` | 10 | 20ms | FSM state machine, relay control, ADC current monitoring, e-fuse |
| UART task | `uart_init()` | default | event-driven | Serial JSON command processing |
| RF 433 task | `rf_433_init()` | default | event-driven | RMT receive + keycode matching |
| BT HID task | `bt_hid_init()` | default | event-driven | BLE HID host scanning + button mapping |
| httpd workers | `webserver_init()` | default | event-driven | HTTP request handling (multiple workers spawned by esp_http_server) |
| Task | Created by | Priority | Tick | Purpose |
|---------------------------|--------------------|---------------|----------------|----------------------------------------------------------------------|
| `app_main` (main loop) | system | 1 (default) | 50ms | Button polling, LED animation, solar FSM, shutdown timer |
| `control_task` | `fsm_init()` | 10 | 20ms | FSM state machine, relay control, ADC current monitoring, e-fuse |
| UART task | `uart_init()` | default | event-driven | Serial JSON command processing |
| RF 433 task | `rf_433_init()` | default | event-driven | RMT receive + keycode matching |
| BT HID task | `bt_hid_init()` | default | event-driven | BLE HID host scanning + button mapping |
| httpd workers | `webserver_init()` | default | event-driven | HTTP request handling (multiple workers spawned by esp_http_server) |
---
## Key Files
| File | Purpose |
|------|---------|
| `main.c` | Entry point, 50ms main loop, factory reset, LED animation |
| `control_fsm.c/h` | State machine, relay control, current monitoring, calibration |
| `power_mgmt.c/h` | ADC reading, e-fuse thermal algorithm, battery voltage |
| `sensors.c/h` | GPIO ISR-based sensor debouncing, encoder counters |
| `i2c.c/h` | TCA9555 relay/LED/button control |
| `storage.c/h` | 48-param NVM table + circular binary log buffer |
| `comms.c/h` | Unified GET/POST JSON API (shared by HTTP and UART) |
| `webserver.c/h` | WiFi softAP, HTTP server, embedded gzip webpage |
| `uart_comms.c/h` | Serial JSON interface (115200 8N1) |
| `rf_433.c/h` | 433MHz OOK receiver, keycode learn/match |
| `bt_hid.c/h` | BLE HID host, media remote button mapping |
| `rtc.c/h` | Unix time, harvest alarms, soft idle, inactivity timer |
| `solar.c/h` | Simple FLOAT/BULK solar charge state machine |
| `sc_err.h` | Error code definitions |
| `log_test.c/h` | Flash log unit tests |
| `hard_ui.c` | Legacy LCD code (unused/obsolete) |
| File | Purpose |
|----------------------|----------------------------------------------------------------------|
| `main.c` | Entry point, 50ms main loop, factory reset, LED animation |
| `control_fsm.c/h` | State machine, relay control, current monitoring, calibration |
| `power_mgmt.c/h` | ADC reading, e-fuse thermal algorithm, battery voltage |
| `sensors.c/h` | GPIO ISR-based sensor debouncing, encoder counters |
| `i2c.c/h` | TCA9555 relay/LED/button control |
| `storage.c/h` | NVM table + circular binary log buffer |
| `comms.c/h` | Unified GET/POST JSON API (shared by HTTP and UART) |
| `webserver.c/h` | WiFi softAP, HTTP server, embedded gzip webpage |
| `uart_comms.c/h` | Serial JSON interface (115200 8N1) |
| `rf_433.c/h` | 433MHz OOK receiver, keycode learn/match |
| `bt_hid.c/h` | BLE HID host, media remote button mapping |
| `rtc.c/h` | Unix time, harvest alarms, soft idle, inactivity timer |
| `solar.c/h` | Simple FLOAT/BULK solar charge state machine |
| `sc_err.h` | Error code definitions |
| `log_test.c/h` | Flash log unit tests |
---
@@ -106,6 +122,7 @@ STATE_MOVE_START_DELAY (1s)
STATE_JACK_UP_START (detect current spike → jack engaged)
STATE_JACK_UP (continue until timer/e-fuse)
STATE_DRIVE_START_DELAY (1s)
STATE_DRIVE_FLUFF_START
STATE_DRIVE (encoder-based distance control)
STATE_DRIVE_END_DELAY (1s)
STATE_JACK_DOWN (reverse until e-fuse/sensor)
@@ -114,8 +131,8 @@ STATE_JACK_DOWN (reverse until e-fuse/sensor)
STATE_UNDO_JACK_START (emergency: reverse jack, run until e-fuse/sensor)
→ back to STATE_IDLE
CAL_JACK_DELAY / CAL_JACK_MOVE (jack calibration sequence)
CAL_DRIVE_DELAY / CAL_DRIVE_MOVE (drive calibration sequence)
STATE_CALIBRATE_JACK_DELAY / STATE_CALIBRATE_JACK_MOVE (jack calibration sequence)
STATE_CALIBRATE_DRIVE_DELAY / STATE_CALIBRATE_DRIVE_MOVE (drive calibration sequence)
```
**Guards before START:**
@@ -130,7 +147,7 @@ CAL_DRIVE_DELAY / CAL_DRIVE_MOVE (drive calibration sequence)
3. `sensors_check()` — drain ISR queue, update counters/debounce
4. State machine transitions (timer + sensor + efuse checks)
5. `drive_relays()` — write relay output from current state
6. `send_fsm_log()` 39-byte timestamped entry to flash
6. `send_fsm_log()` — timestamped entry to flash
---
@@ -166,13 +183,13 @@ Safety break → immediate `STATE_UNDO_JACK_START`.
- HTTP port 80
### HTTP API (port 80)
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/` | GET | Embedded gzip HTML webpage |
| `/get` | GET | JSON system status |
| `/post` | POST | JSON commands + parameter updates |
| `/log` | GET | Binary log download (4B JSON len + JSON + 8B offsets + log data) |
| `/ota` | POST | Firmware update upload |
| Endpoint | Method | Description |
|------------|--------|----------------------------------------------------------------------|
| `/` | GET | Embedded gzip HTML webpage |
| `/get` | GET | JSON system status |
| `/post` | POST | JSON commands + parameter updates |
| `/log` | ANY | Binary log download (4B JSON len + JSON + 8B offsets + log data) |
| `/ota` | POST | Firmware update upload |
### UART (115200 8N1)
- `GET` → same as HTTP GET /get
@@ -201,41 +218,33 @@ Safety break → immediate `STATE_UNDO_JACK_START`.
**Flash partitions (8MB flash):**
| Partition | Offset | Size | Purpose |
|-----------|--------|------|---------|
| post_test | 0x310000 | 4K | Power-on self-test scratch sector |
| params | 0x311000 | 16K | CRC32-protected parameter storage (48 params) |
| log | 0x315000 | ~4.9MB | Circular binary log buffer (head/tail tracked) |
| Partition | Offset | Size | Purpose |
|-------------|-----------|-----------|----------------------------------------------------------------|
| nvs | 0x9000 | 16K | WiFi/BT config, board revision, RTC time backup |
| otadata | 0xD000 | 8K | OTA boot selection |
| phy_init | 0xF000 | 4K | RF calibration data |
| ota_0 | 0x10000 | 1984K | Factory / primary app slot |
| ota_1 | 0x200000 | 1984K | OTA update slot |
| post_test | 0x3F0000 | 4K | Power-on self-test scratch sector |
| params | 0x3F1000 | 32K | CRC32-protected parameter storage (49 params) |
| log | 0x400000 | 4096K | Circular binary log buffer (head/tail tracked) |
Also includes NVS partition (0x9000, 16K) for WiFi/BT config, board revision, and RTC time backup.
**Log entry format (39 bytes typical):**
**Log entry format (25 bytes typical):**
```
[0:8] Timestamp ms (u64 BE)
[8:12] Battery voltage (f32)
[12:16] Drive current (f32)
[16:20] Jack current (f32)
[20:24] Aux current (f32)
[24:26] Drive encoder count (i16)
[26] Sensor states (packed)
[27:31] Drive heat (f32)
[31:35] Jack heat (f32)
[35:39] Aux heat (f32)
[0:8] ts_ms (u64)
[8:12] bat_V (f32)
[12:16] current_A (f32) — combined, not per-bridge
[16:18] counter (i16)
[18:19] sensors (u8)
[19:23] heat (f32) — max across bridges
[23:25] i2c_out (u16)
```
**Key Parameters:**
- Motion: `DRIVE_DIST`, `JACK_DIST`, `DRIVE_KT`, `JACK_KT`, `DRIVE_KE`
- E-fuse: `EFUSE_INOM_1/2/3`, `EFUSE_HEAT_THRESH`, `EFUSE_KINST`, `EFUSE_TCOOL`
- Safety: `SAFETY_BREAK_US`, `SAFETY_MAKE_US`, `LOW_PROTECTION_V`
- RF: `KEYCODE_0``KEYCODE_7`
- WiFi: `WIFI_SSID`, `WIFI_PASS`, `WIFI_CHANNEL`
- Schedule: `NUM_MOVES`, `MOVE_START`, `MOVE_END` (seconds-since-midnight)
---
## RTC & Timekeeping
**Time source:** `esp_timer` (40 MHz APB crystal, ~20 ppm accuracy). The external 32.768 kHz crystal on GPIO32/33 is present on the PCB but **not used** — deep sleep is disabled (soft idle instead), so RTC slow clock accuracy is irrelevant. The RTC slow clock uses the default internal RC oscillator.
**Time source:** `esp_timer` (40 MHz APB crystal, ~20 ppm accuracy). The external 32.768 kHz crystal on GPIO32/33 is present on the PCB but **not used** — deep sleep is not used normally (soft idle instead), so RTC slow clock accuracy is irrelevant. The RTC slow clock uses the default internal RC oscillator.
**`rtc_xtal_init()` in `rtc.c`:** Configures the button GPIO (GPIO13); no crystal bootstrap or sleep wakeup sources.
@@ -283,23 +292,23 @@ P05, P06, P07. Read bottom → top when checking error codes:
A pattern written as `001` (LSB first) means **only the bottom LED is lit**,
`100` means **only the top LED is lit**, and `111` means all three.
| State | Pattern | Timing |
|-------|---------|--------|
| Idle | LED1 blink | 0.5Hz (1s on / 1s off) |
| Error | Rapid all-blink → error code hold | 5Hz for 1s, then code for 2s (3s cycle) |
| Moving / delays | Waterfall 001→011→111→110→100→000 | ~1 cycle/s (167ms per step) |
| Calibrating | All LEDs flash | 1Hz (500ms on / 500ms off) |
| Undo | All LEDs solid on | Continuous |
| Booting | LED1 solid | Until init complete |
| State | Pattern | Timing |
|-------------------|----------------------------------------------|-------------------------------------------|
| Idle | LED1 blink | 0.5Hz (1s on / 1s off) |
| Error | Rapid all-blink → error code hold | 5Hz for 1s, then code for 2s (3s cycle) |
| Moving / delays | Waterfall 001→011→111→110→100→000 | ~1 cycle/s (167ms per step) |
| Calibrating | All LEDs flash | 1Hz (500ms on / 500ms off) |
| Undo | All LEDs solid on | Continuous |
| Booting | LED1 solid | Until init complete |
**Error code bits (during 2s hold phase):**
| LED Pattern (bottom→top) | Meaning |
|--------------------------|---------|
| 001 — only bottom (P05) lit | Efuse tripped (any bridge) or low battery |
| 010 — only middle (P06) lit | RTC/clock not set |
| 100 — only top (P07) lit | Safety sensor break or leash limit hit |
| 111 — all three lit | Unknown FSM error (fallback) |
| LED Pattern (bottom→top) | Meaning |
|--------------------------|--------------------------------------------------------|
| 001 — only bottom (P05) lit | Efuse tripped (any bridge) or low battery |
| 010 — only middle (P06) lit | RTC/clock not set |
| 100 — only top (P07) lit | Safety sensor break or leash limit hit |
| 111 — all three lit | Unknown FSM error (fallback) |
Error codes are also shown on the web interface status field with individual flag names.
@@ -313,7 +322,7 @@ Error codes are also shown on the web interface status field with individual fla
## Power Management
- **Battery voltage:** GPIO39, divider → `V = raw × V_SENS_K + V_SENS_OFFSET` (defaults: K=0.00766̄, offset=0.4)
- **Battery voltage:** GPIO35, thru divider → `V = raw × V_SENS_K + V_SENS_OFFSET` (defaults: K=0.00766̄, offset=0.4)
- **Solar charger:** GPIO26 (RTC hold) — FLOAT/BULK FSM, bulk for 20s when V < 5V for 5s
- **Inactivity shutdown:** 180s **soft idle** (WiFi/BT off, LEDs off not deep sleep). Button press exits soft idle.
- **RTC_DATA_ATTR:** Sync timestamps, alarm times, charge state survive software resets (panics, WDT)
@@ -341,4 +350,3 @@ SC_ERR_LOW_BATTERY = 0x230 // Voltage below threshold
- **IDF requires:** `driver`, `esp_http_server`, `esp_netif`, `lwip`, `json`, `esp_timer`, `esp_adc`, `app_update`, `esp_wifi`, `nvs_flash`, `mdns`, `bt`, `esp_hid`
- **Webpage:** `webpage.html``webpage_compile.py``webpage_gzip.h` (embedded gzip binary). **Must re-run `webpage_compile.py` after any HTML edit before building.**
- **Version:** `version.h.in` filled by CMake from git tags → `FIRMWARE_VERSION`, `BUILD_DATE`
- **Factory reset:** Hold GPIO13 button on cold boot → full parameter + log erase

131
TODO.md
View File

@@ -1,131 +0,0 @@
# SC-F001 Firmware — TODO
1. - [clauded] sdkconfig audit
- [clauded] Enable `CONFIG_ESP_TASK_WDT_PANIC=y` — added to sdkconfig.defaults and sdkconfig
- [clauded] Verify `CONFIG_FREERTOS_CHECK_STACKOVERFLOW=2` — confirmed canary method active
- [clauded] Verify `CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT` — confirmed active
- [clauded] Confirm brownout detector level — ~2.43V is correct (ESP32 rail protection; battery low-V handled by FSM's `LOW_PROTECTION_V`)
- [clauded] Research sdkconfig management best practices — documented in CLAUDE.md "sdkconfig Management" section
2. - [clauded] Fix managed_components: removed unused `littlefs` and `tca95x5` deps, pinned `mdns` to `~1.9.1`, bumped IDF min to `>=5.0`; documented in CLAUDE.md
3. - [clauded] OTA rollback via consecutive-reset counter
- [clauded] Add `RTC_DATA_ATTR uint8_t ota_reset_counter` — incremented on panic/WDT resets, cleared on power-on/ext reset
- [clauded] On counter ≥ 5, call `esp_ota_mark_app_invalid_rollback_and_reboot()`
- [clauded] After POST passes and FSM starts, call `esp_ota_mark_app_valid_cancel_rollback()` and clear counter
- [clauded] Health check = POST passes + all critical inits + FSM task started + non-critical inits attempted
4. - [clauded] Critical init failures (ADC, storage, log, I2C, FSM, UART) → `init_critical()` retries 3×, then `esp_restart()`
5. - [clauded] Non-critical init failures (RF, BT, webserver) → log error, continue booting
- [clauded] WiFi/BT/RF retry once on init failure at boot (200ms delay for RF/BT, 500ms for WiFi), then log and continue
6. - [clauded] Power-on self-test (POST) — `init_critical()` wrapper + dedicated POST checks after init
- [clauded] ADC: `adc_post()` reads all 4 channels twice with 5ms delay, warns if frozen
- [clauded] I2C: `i2c_post()` verifies TCA9555 responds (read port 0)
- [clauded] Flash: `storage_post()` write-read-verify on last sector of storage partition
7. - [clauded] Parameter validation
- [clauded] Add per-param bounds to `PARAM_LIST` macro (min, max) — extended PARAM_DEF 6-arg macro
- [clauded] NaN/Inf → reset to default; out-of-range → clamp to min/max — `validate_param()` in storage.c
- [clauded] Enforce validation in `storage_init()` (after flash load) and `commit_params()` (before flash write)
- [clauded] Audit `set_param_value_t` calls outside comms.c — deleted dead code: `rf_433_set_keycode()`, `FSM_CMD_CALIBRATE_*_FINISH` handlers + FSM cases + `fsm_set_cal_val()` (web JS does cal math client-side, commits via standard param POST)
- [clauded] Audit abandoned parameters — `JACK_IS_DOWN` marked deprecated (may duplicate `JACK_I_DOWN`); `BOOT_TIME` is informational-only
8. - [clauded] Factory reset: erases params + log + post_test partitions, requires 10s button hold on cold boot, LEDs flash during hold → solid when triggered
9. - [clauded] Ensure RTC_DATA_ATTR variables survive panics/WDT resets
- [clauded] Verified `sync_unix_us`, `sync_rtc_us`, `rtc_set` — no init path zeroes them; `rtc_restore_time()` recovers via RTC HW counter
- [clauded] Verified `remaining_distance`, `fsm_error``fsm_init()` does not touch them; only cleared by explicit user action
- [clauded] Verified `log_head_offset`, `log_tail_offset``log_init()` always recovers from flash scan; RTC_DATA_ATTR is historical/harmless
10. - [clauded] Measure flash log write duration — `test_log_write_timing()` in log_test.c, runs 200 iterations of 39-byte writes, reports min/max/avg/sector-crossing times, compares to 5s WDT
11. - [clauded] WiFi STA mode with event-group signaling
- [clauded] STA-first with softAP fallback was already implemented in `start_wifi()`
- [clauded] Added `EventGroupHandle_t comms_event_group` in `comms_events.h` with `WIFI_READY_BIT` / `BT_READY_BIT`
- [clauded] Replaced blind 500ms `vTaskDelay` on alarm wake with `xEventGroupWaitBits(COMMS_ALL_BITS, 5s timeout)`
- [clauded] `soft_idle_exit()``webserver_restart_wifi()` / `bt_hid_resume()` set bits; `webserver_stop()` / `bt_hid_stop()` clear bits
- [clauded] Bits set even on permanent init failure so alarm-wake never blocks forever
12. - [clauded] Verify `sensors_init()` placement and ISR safety
- [clauded] Moved `sensors_init()` to main.c as `init_critical("SENSORS", sensors_init)` — runs before FSM
- [clauded] Removed dead commented-out `sensors_init()` / `sensors_stop()` from sensors.c
- [clauded] Audited ISR: `sensor_isr_handler` is IRAM_ATTR, uses only `esp_timer_get_time()` (IRAM-safe), `gpio_get_level()`, `xQueueSendFromISR()` — no logging/malloc/flash
- [clauded] `sensors_init()` failure is now critical (→ reboot via `init_critical`)
13. - [clauded] External 32kHz crystal not needed (deep sleep disabled, soft idle instead) — removed crystal config from sdkconfig.defaults; `rtc_xtal_init()` already a no-op; crystal remains on PCB but unused
14. - [clauded] Removed `rtc_wakeup_cause()` — was unused (informational only, never called)
15. - [clauded] Confirmed `rtc_check_shutdown_timer()` uses unsigned `TickType_t` subtraction — wraps correctly; removed esp_timer overflow TODO comment from main.c
16. - [test] Logtool GUI output (matplotlib)
17. - [test] Verify naming convention adherence across codebase
18. - [test] Verify WiFi SSID rename triggers comms reboot
19. - [clauded] Documentation restructure
- [clauded] Move project/hardware documentation from CLAUDE.md → README.md; keep CLAUDE.md for AI-specific instructions and conventions only
- [clauded] Document all FreeRTOS tasks and priorities in README.md
- [clauded] Add terse comments to FSM state transitions in `control_fsm.c` (focus on "why", not "what")
20. - [clauded] Fix compile warnings — unused vars (uart_comms.c, rf_433.c), const-correctness (log_write signatures), fallthrough annotation (control_fsm.c)
21. - [clauded] NVS is required: WiFi blob stores RF cal data (CONFIG_ESP_WIFI_NVS_ENABLED), Bluedroid stores bonding/GATT cache unconditionally, bt_hid.c stores last-connected BDA. Cannot remove nvs_flash_init().
22. - [clauded] NVS vs custom params: NVS serves WiFi/BT internals + BDA storage; custom flash partition serves app params with CRC32 protection. Different purposes, no consolidation needed.
23. - [clauded] BUG FIX: `FSM_CMD_START` fallthrough was overwriting `this_move_dist = MIN(...)` with unconditional `DRIVE_DIST` — replaced fallthrough with goto to shared start logic so leash limit is preserved
24. - [clauded] General bug scan (FSM, power, sensors, storage, comms, RTC, peripherals)
- Ran 4 parallel deep-dive reviews across entire codebase. Findings below.
- False positives eliminated: override fallthrough (breaks present), soft idle during motor ops (FSM resets timer), JACK_DOWN_TIME uninitialized first move (jack_finish_us always set before use)
## Suspected Bugs (from item 24 scan)
28. - [ ] **BUG [CRITICAL]:** `get_is_safe()` hardcoded `return true` — safety sensor completely bypassed
- sensors.c:182 — `return true;` with `//return is_safe;` commented out below
- All FSM safety checks (STATE_JACK_UP_START, JACK_UP, DRIVE_START_DELAY, DRIVE, DRIVE_END_DELAY, calibration states) are no-ops
- Safety break will NOT trigger STATE_UNDO_JACK_START — machine runs through hazard conditions
- Debounce logic in sensors_check() still runs but output is discarded
29. - [ ] **BUG [CRITICAL]:** E-fuse INOM params allow min=0.0 → division by zero
- power_mgmt.c:380 — `float I_norm = fabsf(channel->current / I_nominal);`
- storage.h EFUSE_INOM_1/2/3 bounds: min=0.0, max=200.0
- If param=0 → I_norm=Inf → instant trip on any current (motor won't run)
- If param=NaN (flash corruption) → I_norm=NaN → all comparisons false → e-fuse NEVER trips (motor can burn)
- Fix: raise min bound to 0.1 or add explicit NaN/zero guard before division
30. - [ ] **BUG [HIGH]:** No timeout on STATE_UNDO_JACK_START
- control_fsm.c:486-493 — waits for `!efuse_get(BRIDGE_JACK)` with no max wait
- If jack efuse never cools (hardware fault, thermal runaway), FSM stuck indefinitely
- User CAN send FSM_CMD_STOP to escape, but no automatic recovery
- Fix: add timeout (e.g. 30-60s) before forcing transition to IDLE with error
31. - [ ] **BUG [HIGH]:** No e-fuse checks in calibration movement states
- control_fsm.c:495-512 — STATE_CALIBRATE_JACK_MOVE and STATE_CALIBRATE_DRIVE_MOVE
- Only check get_is_safe() and timer_done(), NOT efuse_get()
- Relay outputs (lines 625-640) drive motors regardless of efuse status
- Jack cal runs up to 3s, drive cal up to 6s without overcurrent protection
- Fix: add efuse_get() check and abort calibration on trip
32. - [ ] **BUG [HIGH]:** BLE HID scan task missing watchdog registration
- bt_hid.c — `bt_hid_scan_task()` never calls `esp_task_wdt_add(NULL)`
- Task blocks on `xSemaphoreTake(s_scan_sem, portMAX_DELAY)` — if GAP callback never signals, hangs forever
- Unlike rf_433 task (which registers WDT), BT task has no WDT coverage
- Fix: add `esp_task_wdt_add(NULL)` and periodic `esp_task_wdt_reset()` (or use timeout on semaphore)
33. - [ ] **BUG [HIGH]:** ISR sensor queue full → events silently dropped
- sensors.c:57 — queue size 16, `xQueueSendFromISR()` return value not checked
- If sensors_check() consumer falls behind (4 sensors firing edges), events lost
- Encoder counts become inaccurate → drive distance wrong
- Fix: check return value, optionally increment a dropped-event counter for diagnostics
34. - [ ] **BUG [HIGH]:** Params not validated on set, only on commit — FSM reads unvalidated values
- storage.c:268-273 — `set_param_value_t()` writes directly to `parameter_table[]` with no bounds check
- `validate_param()` only called in `commit_params()` (before flash write)
- Between POST and commit, FSM can read out-of-range values (e.g. DRIVE_DIST=999999)
- Fix: call `validate_param()` inside `set_param_value_t()`, or at least in comms.c after setting
35. - [ ] **BUG [MEDIUM]:** Solar FSM timer uninitialized
- solar.c:17 — `RTC_DATA_ATTR int64_t timer;` has no initializer
- RTC memory may contain garbage on first cold boot before `solar_reset_fsm()` sets it to -1
- `solar_run_fsm()` is called (main.c:253) before `solar_reset_fsm()` has run on first boot path
- Fix: initialize to -1 in declaration: `RTC_DATA_ATTR int64_t timer = -1;`
36. - [ ] **BUG [MEDIUM]:** E-fuse param bounds too loose
- EFUSE_HEAT_THRESH min=0.0 — allows instant trip on any current draw (storage.h)
- EFUSE_INRUSH_US max=10000000 (10s) — allows 10s of unlimited current with no e-fuse protection
- Fix: tighten bounds (e.g. HEAT_THRESH min=1.0, INRUSH_US max=2000000)
37. - [ ] **BUG [MEDIUM]:** No mutex on parameter_table[] — concurrent access from HTTP/UART/FSM tasks
- storage.c — `parameter_table[]` read/written by HTTP POST handlers, UART handlers, and FSM task
- 32-bit aligned reads/writes are atomic on ESP32, so u16/u32/i16/i32/f32 are safe
- f64 (8 bytes) and str16 (16 bytes) could be torn reads — but no f64 or str params are read by FSM in hot path
- Severity is low in practice but architecturally unsound
25. - [ ] Extract pure logic (e-fuse thermal model, param serialization, sensor debounce) into host-testable modules with Unity/CMock?
26. - [ ] UART integration test framework: Python runner + ESP-side test commands
27. - [ ] Bug: WiFi won't want to connect to STA except at first boot

View File

@@ -1,224 +0,0 @@
# SC-F001 Firmware — TODO Tracker
Extracted from `// TODO` comments across the codebase plus legacy items. Excludes third-party managed components.
---
## Legacy Items (from previous TODO.md)
- [test] Seamless crashing — crashes need to not cause RTC to lose time; remaining_distance unaffected; equivalent of try-catch on whole program; should also make a log
- [test] Logtool GUI output (matplotlib)
- [test] Refactor; make sure everything adheres to naming conventions
- [test] Renaming wifi (should reboot the wifi/web comms to take effect)
- [ ] WiFi Network Connection — try STA first, fall back to softAP
- [ ] Hard Reset
---
## 1. Reliability & Crash Recovery
| File | Line | TODO |
|------|------|------|
| `main.c` | 192 | Make sure that this is "crash proof" |
| `main.c` | 193 | OTA rollback (triggered how? preferably with hardware... or if there are 5 resets in a row. also need way to nuke the storage partition or safe boot) |
| `main.c` | 194 | (maybe) recovery partition that allows uploading firmware |
| `storage.c` | 409 | WIPE ENTIRE PARTITION (factory reset only resets params, doesn't erase log) |
**Commentary:**
- OTA rollback is critical for field-deployed devices. ESP-IDF has built-in rollback support via `esp_ota_mark_app_valid_cancel_rollback()` — the app marks itself valid after a health check, otherwise the bootloader reverts on next reboot. This is the standard approach; a "5 resets in a row" counter can be stored in RTC_DATA_ATTR or an NVS counter.
- A recovery partition (minimal firmware with just WiFi + OTA upload) is a strong safety net. ESP-IDF's factory/OTA partition scheme supports this natively — the factory partition acts as the recovery image.
- Factory reset should absolutely erase the log partition. A `esp_partition_erase_range()` over the full log region is straightforward and should be added.
- "Crash proof" is vague — consider defining what this means concretely: e.g., no stuck relays after watchdog reset (already handled by TCA9555 power-on defaults), no corrupted params (CRC32 already protects), log head/tail consistency after power loss.
**Path Forwards:**
1. Implement a 5 reset in a row counter in RTC_DATA_ATTR that will rollback to the previous
2. Make the factory reset erase the storage partition. It should be triggered by the button being held on power on for at least 10 seconds, and should give LED indication (flash all LEDs off and on, then hold on once the reset is triggered)
3. crashproofing should mainly keep any RTC_DATA_ATTR variables from getting reset if anything panics - namely no losing time, no losing remaining position (other RTC_DATA_ATTR vars less important)
---
## 2. Error Handling & Logging
| File | Line | TODO |
|------|------|------|
| `main.c` | 174 | Do things with errors (put in real log? then reset. "assert with LOGE"?) |
| `main.c` | 228 | Seriously, log all the errors on bluetooth |
| `main.c` | 178 | Figure out how long logging takes (for reference, and comp to wdt) |
**Commentary:**
- Currently, init failures are logged but execution continues — this is the right pattern for a field device (degrade gracefully), but errors should be persisted. Use the existing `LOG_TYPE_ERROR` entry type to write a structured error log entry on each init failure, including the module ID and error code.
- BT errors are particularly important because BLE stacks fail silently in many edge cases (connection drops, service discovery timeouts, pairing failures). At minimum, log connection/disconnection events and HID report parse failures.
- Logging duration: flash writes on ESP32 typically take 5-20ms per sector erase + write. With a 10s WDT and 20ms FSM tick, this is fine, but verify empirically with `esp_timer_get_time()` bracketing. Consider using the async log queue (already in architecture) to keep flash writes off the FSM task.
**Path Forwards:**
1. wifi, webserver, rf, and bluetooth failures are acceptable gracefully, though they should try to start again if it still makes sense. All other failures are not acceptable and should cause a system reset.
2. Need to actually test and time the logging duration.
---
## 3. Safety & Robustness Audits
| File | Line | TODO |
|------|------|------|
| `main.c` | 113 | Check wdt stuff |
| `main.c` | 114 | Stack Overflow Detection |
| `main.c` | 273 | Make sure all ISRs are clean (very tight, no blocking functions) |
| `control_fsm.c` | 99 | Make sure this is threadsafe (fsm_request / xQueueSend) |
**Commentary:**
- **WDT:** The 10s timeout is already configured. Verify every task calls `esp_task_wdt_reset()` within its loop. Consider enabling `CONFIG_ESP_TASK_WDT_PANIC=y` in sdkconfig so a WDT timeout triggers a core dump rather than a silent reset.
- **Stack overflow:** Enable `CONFIG_FREERTOS_CHECK_STACKOVERFLOW=2` (canary method) in sdkconfig. This catches overflows at context switch time. Also use `uxTaskGetStackHighWaterMark()` during development to right-size stacks.
- **ISR audit:** ESP-IDF provides `ESP_INTR_FLAG_IRAM` for ISR placement. Ensure no ISR calls `ESP_LOGx`, `printf`, `malloc`, or any flash-access function. The sensor ISR should only do `xQueueSendFromISR()`.
- **Thread safety of `fsm_request`:** `xQueueSend` is inherently thread-safe in FreeRTOS — it's designed for cross-task and ISR-to-task communication. This TODO can likely be closed. Just confirm `fsm_cmd_queue` is created before any caller can invoke `fsm_request()`.
**Path Forwards:**
1. Make the necessary changes to sdkconfig
2. Look at ISRs (I actually don't think we have any but double check)
---
## 4. Power Management & Sleep
| File | Line | TODO |
|------|------|------|
| `main.c` | 208 | Is this reasonable now that we eliminated deep sleep? (solar FSM call) |
| `main.c` | 210 | Do a 12V check and enter deep sleep if there's a problem |
| `main.c` | 365 | Will esp_timer overflow? Handle overflow if needed |
**Commentary:**
- **Solar FSM after eliminating deep sleep:** If deep sleep is no longer used, `solar_run_fsm()` still makes sense — it controls GPIO26 (bulk/float charge switching). Review whether the FLOAT→BULK transitions still trigger correctly without the deep sleep wake cycle.
- **12V check:** A critical low-voltage protection. If battery voltage is dangerously low (below the charger's cutoff), the ESP32 should enter deep sleep to let the panel charge without load. This prevents brown-out damage to flash. Threshold should be configurable via a parameter (it already has `LOW_PROTECTION_V`).
- **`esp_timer_get_time()` overflow:** Returns `int64_t` microseconds. It overflows after ~292,000 years — this is a non-issue. This TODO can be closed after confirming `rtc_check_shutdown_timer()` uses signed subtraction.
**Path Forwards:**
1. Keep solar FSM just in the main loop
2. Don't do any low-voltage checking
3. Confirm that rtc_check_shutdown_timer() uses signed subtraction.
---
## 5. Startup & Initialization Hygiene
| File | Line | TODO |
|------|------|------|
| `main.c` | 115 | Remove XTAL crystal stuff |
| `main.c` | 120 | `rtc_wakeup_cause()` shouldn't be needed anymore |
| `main.c` | 125 | How many tasks do we have? |
| `main.c` | 232 | `sensors_init()` — Why is this off? |
| `control_fsm.c` | 185 | Why is `sensors_init()` here rather than in main? |
**Commentary:**
- **XTAL removal:** The CLAUDE.md documents the crystal bootstrap workaround as essential for RTC accuracy. Don't remove `rtc_xtal_init()` unless you've confirmed the hardware no longer uses the external crystal — removing it would silently degrade RTC accuracy to ±5%.
- **`rtc_wakeup_cause()`:** If it's purely informational logging, it's harmless. Either delete it or keep it — it's one log line at boot.
- **Task count:** Document the task list: main loop (implicit), `control_task`, UART task, RF 433 task, BT HID task, HTTP server workers. Use `uxTaskGetNumberOfTasks()` at boot to log the count.
- **`sensors_init()` location:** It's called inside `control_task()` (line 185) and commented out in `main.c` (line 232). This is intentional — sensors are initialized in the FSM task context because the ISR handlers need to send to queues created in that scope. The comment in main.c should be removed and the one in control_fsm.c clarified.
**Path Forwards:**
1. Confirm that we can stop using the RTC and just use the internal crystal (never go into low power state)
2. Remove wakeup cause
3. Document a list of tasks and put in README.md
4. Double check that sensors_init() shouldn't be called in main. Make sure that the error code from it is handled appropriately (it MUST init properly; if it doesn't, reboot)
---
## 6. Soft Idle & Wake Behavior
| File | Line | TODO |
|------|------|------|
| `main.c` | 243 | Critique & confirm what we do in idle |
| `main.c` | 256 | Do a hard wait until wifi and bluetooth come up, not just blindly wait; might be better to be non-blocking |
**Commentary:**
- **Idle behavior:** The soft idle mode polls at 5s via direct GPIO (no I2C). This saves power but means TCA9555 button state is stale. Confirm that the only wake sources (GPIO13 button, RTC alarm) don't depend on I2C. The current design looks correct.
- **WiFi/BT wake wait:** The 500ms `vTaskDelay` is fragile — WiFi association can take 1-5s depending on the AP. Use event groups: `wifi_event_group` with a `CONNECTED_BIT`, wait with `xEventGroupWaitBits()` and a timeout. This is the standard ESP-IDF pattern. For BT, the scan is already async so it doesn't need blocking.
**Path Forwards:**
1. Do a hard wait until wifi and bluetooth come up rather than blindly. Needs to be non-blocking. Need bluetooth to finish initting, and wifi to have connected to a network or brought up the softap.
---
## 7. Testing & Verification
| File | Line | TODO |
|------|------|------|
| `main.c` | 214 | Test strategy!!! (software verification, and unit bringup) |
| `main.c` | 215 | A→D bringup; sanity check (sum up all inputs, wait 5ms, sum again, make sure there is a change (not frozen)) |
**Commentary:**
- **Test strategy:** For embedded firmware, consider three layers:
1. **Host-side unit tests** — extract pure logic (e-fuse thermal model, param serialization, log format) into testable modules. Run with Unity or CMock on the host.
2. **On-target POST** — a power-on self-test routine that validates ADC readings are in-range, I2C responds, flash is accessible. Run once at boot, log results.
3. **Integration tests** — scripted UART commands that exercise the FSM cycle end-to-end. The existing `log_test.c` is a start.
- **ADC sanity check:** Good idea. Read all ADC channels twice with a short delay; if any channel returns identical values both times (especially the current sense channels, which should have noise), flag it. This catches stuck ADC mux, disconnected sense resistors, or frozen DMA.
**Path Forwards:**
1. Make pure logic for sensors, FSMs, e-fusing. This is an entire project.
2. Make a POST: that would include ADC, I2C, flash accessibility
3. Make a UART integration test, both a python runner, and the requesite ESP code
---
## 8. Storage & Parameters
| File | Line | TODO |
|------|------|------|
| `storage.h` | 7 | Sanity check that the EEPROM is working (sacrifice sector 0?) |
| `storage.h` | 57 | Bounds checking / constraints (especially no division by zero, no NaNs, no infs) |
| `storage.h` | 58 | Abandoned parameters (esp. jack current) |
**Commentary:**
- **Flash health check:** A simple write-read-verify test on a dedicated test sector at boot is a good idea. Alternatively, rely on the CRC32 check already protecting the param sector — if CRC fails, you know flash is degraded.
- **Parameter validation is the highest-priority item here.** Any f32 parameter used as a divisor (e.g., `DRIVE_KT`, `DRIVE_KE`, `EFUSE_INOM_*`) must be validated on load: reject NaN, Inf, and zero. Clamp to sane ranges. A `param_validate()` function called after `storage_init()` and after any `/set` POST would prevent field bricking from a bad parameter write.
- **Abandoned parameters:** Audit the PARAM_LIST. If `JACK_CURRENT` or similar params are no longer used by any code path, remove them to avoid confusion. Verify with grep first — sometimes params are only referenced from the web UI.
**Path Forwards:**
1. Utilize the last sector of the flash as a read-write-verify test
2. Add bounds in the PARAMS_LIST. It should accept a function or macro with arguments. Per-parameter we might want different min/max. and some parameters we will want to check and ensure it is NaN/inf. If Nan/Inf/etc set to default, otherwise clamp to min/max
3. Check in code - is there anywhere we don't immediately commit after setting a parameter? add bounds checking to the commit. This should do it
4. Audit abandoned parameters. Don't outright remove them just put a comment for now
---
## 9. Build & Configuration
| File | Line | TODO |
|------|------|------|
| `main.c` | 217 | Make sure sdkconfig is sane. Make notes. |
| `main.c` | 218 | Fix managed_components |
**Commentary:**
- **sdkconfig audit — key settings to verify:**
- `CONFIG_ESP_TASK_WDT_PANIC=y` (WDT triggers panic + core dump, not silent reset)
- `CONFIG_FREERTOS_CHECK_STACKOVERFLOW=2` (canary-based detection)
- `CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT` (print backtrace then reboot)
- `CONFIG_PARTITION_TABLE_CUSTOM=y` with correct factory/OTA layout
- `CONFIG_RTC_CLK_SRC_EXT_CRYS=y` (already set per CLAUDE.md)
- Confirm brownout detector level matches your minimum operating voltage
- **managed_components:** ESP-IDF's component manager can cause build reproducibility issues. Pin exact versions in `idf_component.yml`. Consider vendoring critical components (mdns, littlefs, tca95x5) into the repo if version drift causes problems.
**Path Forwards:**
1. Research best practices to manage sdkconfig; document in CLAUDE.md
2. Fix managed_components and remove anything that is not being utilized and then make idf.py happy; document in CLAUDE.md
3. Apply best practices to manage sdkconfig
---
## 10. Documentation
| File | Line | TODO |
|------|------|------|
| `control_fsm.c` | 9 | Comment, and even better, produce a README for this. |
**Commentary:**
- The CLAUDE.md already serves as comprehensive FSM documentation. Adding inline comments to `control_fsm.c` describing each state transition's guard conditions and timing rationale would be more valuable than a separate README. Focus comments on the "why" — the state names and relay outputs are self-documenting for the "what."
**Path Forwards:**
1. Copy FSM documentation to README.md
2. Add comments (terse but helpful) to the FSM
---
## 11. OTHER
**Path Forwards:**
1. Fix docs; CLAUDE.md should be claude-specific instructions and such; README.md should contain everything else.

View File

@@ -1,96 +0,0 @@
C:\data\stockcropper-sw\SC-F001\logtool (main -> origin)
λ python logtool.py http://sc.local
Fetching http://sc.local ...
Saved: 08APR2026_1709.bin 08APR2026_1709.txt
Traceback (most recent call last):
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\site-packages\urllib3\connectionpool.py", line 787, in urlopen
response = self._make_request(
conn,
...<10 lines>...
**response_kw,
)
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\site-packages\urllib3\connectionpool.py", line 534, in _make_request
response = conn.getresponse()
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\site-packages\urllib3\connection.py", line 565, in getresponse
httplib_response = super().getresponse()
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 1430, in getresponse
response.begin()
~~~~~~~~~~~~~~^^
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 331, in begin
version, status, reason = self._read_status()
~~~~~~~~~~~~~~~~~^^
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 292, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\socket.py", line 719, in readinto
return self._sock.recv_into(b)
~~~~~~~~~~~~~~~~~~~~^^^
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\adapters.py", line 644, in send
resp = conn.urlopen(
method=request.method,
...<9 lines>...
chunked=chunked,
)
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\site-packages\urllib3\connectionpool.py", line 841, in urlopen
retries = retries.increment(
method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]
)
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\site-packages\urllib3\util\retry.py", line 474, in increment
raise reraise(type(error), error, _stacktrace)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\site-packages\urllib3\util\util.py", line 38, in reraise
raise value.with_traceback(tb)
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\site-packages\urllib3\connectionpool.py", line 787, in urlopen
response = self._make_request(
conn,
...<10 lines>...
**response_kw,
)
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\site-packages\urllib3\connectionpool.py", line 534, in _make_request
response = conn.getresponse()
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\site-packages\urllib3\connection.py", line 565, in getresponse
httplib_response = super().getresponse()
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 1430, in getresponse
response.begin()
~~~~~~~~~~~~~~^^
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 331, in begin
version, status, reason = self._read_status()
~~~~~~~~~~~~~~~~~^^
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 292, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\socket.py", line 719, in readinto
return self._sock.recv_into(b)
~~~~~~~~~~~~~~~~~~~~^^^
urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\data\stockcropper-sw\SC-F001\logtool\logtool.py", line 234, in <module>
main()
~~~~^^
File "C:\data\stockcropper-sw\SC-F001\logtool\logtool.py", line 120, in main
_run(args, is_http, resolved, bin_path, basename)
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\data\stockcropper-sw\SC-F001\logtool\logtool.py", line 203, in _run
blob = src.fetch_full(resolved)
File "C:\data\stockcropper-sw\SC-F001\logtool\source.py", line 29, in fetch_full
resp = requests.get(url, timeout=timeout)
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\api.py", line 73, in get
return request("get", url, params=params, **kwargs)
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
File "C:\Users\Thad\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\adapters.py", line 659, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))

View File

@@ -0,0 +1,96 @@
# This is the CMakeCache file.
# For build in directory: d:/SC/SC-F001/main/build/default
# It was generated by CMake: C:/Espressif/tools/cmake/3.24.0/bin/cmake.exe
# You can edit this file to change values found and used by cmake.
# If you do not want to change any of the values, simply exit the editor.
# If you do want to change a value, simply edit, save, and exit the editor.
# The syntax for the file is as follows:
# KEY:TYPE=VALUE
# KEY is the name of a variable in the cache.
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
# VALUE is the current value for the KEY.
########################
# EXTERNAL cache entries
########################
//For backwards compatibility, what version of CMake commands and
// syntax should this version of CMake try to support.
CMAKE_BACKWARDS_COMPATIBILITY:STRING=2.4
//No help, variable specified on the command line.
CMAKE_EXPORT_COMPILE_COMMANDS:UNINITIALIZED=ON
//Value Computed by CMake.
CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=D:/SC/SC-F001/main/build/default/CMakeFiles/pkgRedirects
//Path to a program.
CMAKE_MAKE_PROGRAM:FILEPATH=CMAKE_MAKE_PROGRAM-NOTFOUND
//Value Computed by CMake
CMAKE_PROJECT_DESCRIPTION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_NAME:STATIC=Project
//Single output directory for building all executables.
EXECUTABLE_OUTPUT_PATH:PATH=
//Single output directory for building all libraries.
LIBRARY_OUTPUT_PATH:PATH=
//Value Computed by CMake
Project_BINARY_DIR:STATIC=D:/SC/SC-F001/main/build/default
//Value Computed by CMake
Project_IS_TOP_LEVEL:STATIC=ON
//Value Computed by CMake
Project_SOURCE_DIR:STATIC=D:/SC/SC-F001/main
########################
# INTERNAL cache entries
########################
//This is the directory where this CMakeCache.txt was created
CMAKE_CACHEFILE_DIR:INTERNAL=d:/SC/SC-F001/main/build/default
//Major version of cmake used to create the current loaded cache
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
//Minor version of cmake used to create the current loaded cache
CMAKE_CACHE_MINOR_VERSION:INTERNAL=24
//Patch version of cmake used to create the current loaded cache
CMAKE_CACHE_PATCH_VERSION:INTERNAL=0
//Path to CMake executable.
CMAKE_COMMAND:INTERNAL=C:/Espressif/tools/cmake/3.24.0/bin/cmake.exe
//Path to cpack program executable.
CMAKE_CPACK_COMMAND:INTERNAL=C:/Espressif/tools/cmake/3.24.0/bin/cpack.exe
//Path to ctest program executable.
CMAKE_CTEST_COMMAND:INTERNAL=C:/Espressif/tools/cmake/3.24.0/bin/ctest.exe
//Path to cache edit program executable.
CMAKE_EDIT_COMMAND:INTERNAL=C:/Espressif/tools/cmake/3.24.0/bin/cmake-gui.exe
//Name of external makefile project generator.
CMAKE_EXTRA_GENERATOR:INTERNAL=
//Name of generator.
CMAKE_GENERATOR:INTERNAL=MinGW Makefiles
//Generator instance identifier.
CMAKE_GENERATOR_INSTANCE:INTERNAL=
//Name of generator platform.
CMAKE_GENERATOR_PLATFORM:INTERNAL=
//Name of generator toolset.
CMAKE_GENERATOR_TOOLSET:INTERNAL=
//Source directory with the top level CMakeLists.txt file for this
// project
CMAKE_HOME_DIRECTORY:INTERNAL=D:/SC/SC-F001/main
//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
//number of local generators
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
//Platform information initialized
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
//Path to CMake installation.
CMAKE_ROOT:INTERNAL=C:/Espressif/tools/cmake/3.24.0/share/cmake-3.24

View File

@@ -0,0 +1,15 @@
set(CMAKE_HOST_SYSTEM "Windows-10.0.19045")
set(CMAKE_HOST_SYSTEM_NAME "Windows")
set(CMAKE_HOST_SYSTEM_VERSION "10.0.19045")
set(CMAKE_HOST_SYSTEM_PROCESSOR "AMD64")
set(CMAKE_SYSTEM "Windows-10.0.19045")
set(CMAKE_SYSTEM_NAME "Windows")
set(CMAKE_SYSTEM_VERSION "10.0.19045")
set(CMAKE_SYSTEM_PROCESSOR "AMD64")
set(CMAKE_CROSSCOMPILING "FALSE")
set(CMAKE_SYSTEM_LOADED 1)

View File

@@ -0,0 +1 @@
The system is: Windows - 10.0.19045 - AMD64

View File

@@ -0,0 +1 @@
# This file is generated by cmake for dependency checking of the CMakeCache.txt file

View File

@@ -15,6 +15,32 @@
static const char *TAG = "COMMS";
/* Decode a single JSON value into the parameter table. Returns true on
* success (param updated), false if the JSON node type doesn't match the
* parameter type (caller bumps params_failed). All numeric integer types
* funnel through valueint, floats through valuedouble — matches what
* cJSON_AddNumberToObject produced on the way out. */
static bool set_param_from_json(param_idx_t idx, cJSON *value_json) {
if (get_param_type(idx) == PARAM_TYPE_str) {
if (!cJSON_IsString(value_json)) return false;
set_param_string(idx, value_json->valuestring);
return true;
}
if (!cJSON_IsNumber(value_json)) return false;
param_value_t v = {0};
switch (get_param_type(idx)) {
case PARAM_TYPE_u16: v.u16 = (uint16_t)value_json->valueint; break;
case PARAM_TYPE_i16: v.i16 = (int16_t)value_json->valueint; break;
case PARAM_TYPE_u32: v.u32 = (uint32_t)value_json->valueint; break;
case PARAM_TYPE_i32: v.i32 = (int32_t)value_json->valueint; break;
case PARAM_TYPE_f32: v.f32 = (float)value_json->valuedouble; break;
case PARAM_TYPE_f64: v.f64 = value_json->valuedouble; break;
default: return false;
}
set_param_value_t(idx, v);
return true;
}
/**
* Build a JSON object containing complete system status
*/
@@ -44,7 +70,7 @@ cJSON* comms_handle_get(void) {
// Structured error flags (match LED error code bits)
cJSON *errors = cJSON_CreateObject();
bool efuse_trip = efuse_get(BRIDGE_AUX) || efuse_get(BRIDGE_JACK) || efuse_get(BRIDGE_DRIVE);
bool efuse_trip = any_efuse_tripped();
float bat_v = get_battery_V();
float low_v = get_param_value_t(PARAM_LOW_PROTECTION_V).f32;
bool low_bat = (bat_v > 0 && bat_v < low_v);
@@ -89,12 +115,17 @@ cJSON* comms_handle_get(void) {
if (leash_hit)
cJSON_AddItemToArray(msg_array, cJSON_CreateString("DISTANCE LIMIT HIT"));
if (efuse_get(BRIDGE_AUX))
cJSON_AddItemToArray(msg_array, cJSON_CreateString("AUX EFUSE TRIP"));
if (efuse_get(BRIDGE_JACK))
cJSON_AddItemToArray(msg_array, cJSON_CreateString("JACK EFUSE TRIP"));
if (efuse_get(BRIDGE_DRIVE))
cJSON_AddItemToArray(msg_array, cJSON_CreateString("DRIVE EFUSE TRIP"));
// Per-bridge efuse messages. Preserve the original AUX → JACK → DRIVE
// order via an explicit walk; bridge_t enum order is the opposite.
static const bridge_t efuse_msg_order[] = { BRIDGE_AUX, BRIDGE_JACK, BRIDGE_DRIVE };
for (size_t i = 0; i < sizeof(efuse_msg_order)/sizeof(efuse_msg_order[0]); i++) {
bridge_t b = efuse_msg_order[i];
if (efuse_get(b)) {
char msg[32];
snprintf(msg, sizeof(msg), "%s EFUSE TRIP", bridge_names[b]);
cJSON_AddItemToArray(msg_array, cJSON_CreateString(msg));
}
}
if (low_bat)
cJSON_AddItemToArray(msg_array, cJSON_CreateString("LOW BATTERY"));
if (!rtc_is_set())
@@ -112,36 +143,15 @@ cJSON* comms_handle_get(void) {
return NULL;
}
// Add all parameters
// Add all parameters. Numeric params funnel through param_to_double() —
// cJSON stores all numbers as double internally, so the type-specific
// accessor was just feeding the same final value.
for (param_idx_t i = 0; i < NUM_PARAMS; i++) {
const char *name = get_param_name(i);
param_value_t value = get_param_value_t(i);
switch (get_param_type(i)) {
case PARAM_TYPE_f32:
cJSON_AddNumberToObject(parameters, name, value.f32);
break;
case PARAM_TYPE_f64:
cJSON_AddNumberToObject(parameters, name, value.f64);
break;
case PARAM_TYPE_i32:
cJSON_AddNumberToObject(parameters, name, value.i32);
break;
case PARAM_TYPE_i16:
cJSON_AddNumberToObject(parameters, name, value.i16);
break;
case PARAM_TYPE_u32:
cJSON_AddNumberToObject(parameters, name, value.u32);
break;
case PARAM_TYPE_u16:
cJSON_AddNumberToObject(parameters, name, value.u16);
break;
case PARAM_TYPE_str:
cJSON_AddStringToObject(parameters, name, get_param_string(i));
break;
default:
cJSON_AddNullToObject(parameters, name);
break;
if (get_param_type(i) == PARAM_TYPE_str) {
cJSON_AddStringToObject(parameters, name, get_param_string(i));
} else {
cJSON_AddNumberToObject(parameters, name, param_to_double(i));
}
}
@@ -376,76 +386,12 @@ esp_err_t comms_handle_post(cJSON *root, cJSON **response_json) {
}
cJSON *value_json = cJSON_GetObjectItem(parameters, key);
// Set parameter value based on type
switch (get_param_type(param_idx)) {
case PARAM_TYPE_f32:
if (cJSON_IsNumber(value_json)) {
set_param_value_t(param_idx, (param_value_t){.f32 = value_json->valuedouble});
params_updated++;
} else {
ESP_LOGW(TAG, "Type mismatch for parameter: %s", key);
params_failed++;
}
break;
case PARAM_TYPE_f64:
if (cJSON_IsNumber(value_json)) {
set_param_value_t(param_idx, (param_value_t){.f64 = value_json->valuedouble});
params_updated++;
} else {
ESP_LOGW(TAG, "Type mismatch for parameter: %s", key);
params_failed++;
}
break;
case PARAM_TYPE_i32:
if (cJSON_IsNumber(value_json)) {
set_param_value_t(param_idx, (param_value_t){.i32 = value_json->valueint});
params_updated++;
} else {
ESP_LOGW(TAG, "Type mismatch for parameter: %s", key);
params_failed++;
}
break;
case PARAM_TYPE_i16:
if (cJSON_IsNumber(value_json)) {
set_param_value_t(param_idx, (param_value_t){.i16 = value_json->valueint});
params_updated++;
} else {
ESP_LOGW(TAG, "Type mismatch for parameter: %s", key);
params_failed++;
}
break;
case PARAM_TYPE_u32:
if (cJSON_IsNumber(value_json)) {
set_param_value_t(param_idx, (param_value_t){.u32 = value_json->valueint});
params_updated++;
} else {
ESP_LOGW(TAG, "Type mismatch for parameter: %s", key);
params_failed++;
}
break;
case PARAM_TYPE_u16:
if (cJSON_IsNumber(value_json)) {
set_param_value_t(param_idx, (param_value_t){.u16 = value_json->valueint});
params_updated++;
} else {
ESP_LOGW(TAG, "Type mismatch for parameter: %s", key);
params_failed++;
}
break;
case PARAM_TYPE_str:
if (cJSON_IsString(value_json)) {
set_param_string(param_idx, value_json->valuestring);
params_updated++;
} else {
ESP_LOGW(TAG, "Type mismatch for parameter: %s", key);
params_failed++;
}
break;
default:
ESP_LOGW(TAG, "Unknown type for parameter: %s", key);
params_failed++;
break;
if (set_param_from_json(param_idx, value_json)) {
params_updated++;
} else {
ESP_LOGW(TAG, "Type mismatch for parameter: %s", key);
params_failed++;
}
}

View File

@@ -33,7 +33,7 @@
static QueueHandle_t fsm_cmd_queue = NULL;
// AUDIT: fsm_init() does not zero these — they persist across panics/WDT resets.
// fsm_init() does not zero these — they persist across panics/WDT resets.
// Only cleared by explicit user action (fsm_clear_error, fsm_set_remaining_distance).
RTC_DATA_ATTR esp_err_t fsm_error = ESP_OK;
esp_err_t fsm_get_error() { return fsm_error; }
@@ -108,6 +108,71 @@ int64_t fsm_cal_t, fsm_cal_e;
int64_t fsm_get_cal_t(){return fsm_cal_t;}
int64_t fsm_get_cal_e(){return fsm_cal_e;}
const char *sc_err_str(esp_err_t e) {
switch (e) {
case ESP_OK: return "OK";
case SC_ERR_EFUSE_TRIP_1: return "EFUSE 1 TRIP";
case SC_ERR_EFUSE_TRIP_2: return "EFUSE 2 TRIP";
case SC_ERR_EFUSE_TRIP_3: return "EFUSE 3 TRIP";
case SC_ERR_SAFETY_TRIP: return "SAFETY NOT SET";
case SC_ERR_LEASH_HIT: return "NO REMAINING DISTANCE";
case SC_ERR_RTC_NOT_SET: return "CLOCK NOT SET";
case SC_ERR_LOW_BATTERY: return "INSUFFICIENT VOLTAGE";
default: return "UNKNOWN";
}
}
const char *fsm_state_str(fsm_state_t s) {
switch (s) {
case STATE_IDLE: return "IDLE";
case STATE_MOVE_START_DELAY: return "MOVE_START_DELAY";
case STATE_JACK_UP_START: return "JACK_UP_START";
case STATE_JACK_UP: return "JACK_UP";
case STATE_DRIVE_START_DELAY: return "DRIVE_START_DELAY";
case STATE_DRIVE_FLUFF_START: return "DRIVE_FLUFF_START";
case STATE_DRIVE: return "DRIVE";
case STATE_DRIVE_END_DELAY: return "DRIVE_END_DELAY";
case STATE_JACK_DOWN: return "JACK_DOWN";
case STATE_UNDO_JACK_START: return "UNDO_JACK_START";
case STATE_CALIBRATE_JACK_DELAY: return "CALIBRATE_JACK_DELAY";
case STATE_CALIBRATE_JACK_MOVE: return "CALIBRATE_JACK_MOVE";
case STATE_CALIBRATE_DRIVE_DELAY: return "CALIBRATE_DRIVE_DELAY";
case STATE_CALIBRATE_DRIVE_MOVE: return "CALIBRATE_DRIVE_MOVE";
default: return "UNKNOWN";
}
}
/* Preconditions for accepting a START command. Returns ESP_OK if every gate
* passes, otherwise the SC_ERR_* code of the first failing gate. Caller is
* expected to assign the returned code into `fsm_error` and skip the start.
* Order matters: most-actionable error first (voltage → safety → efuses) so
* the operator sees the dominant fault when more than one is true. */
static esp_err_t fsm_check_start_preconditions(void) {
esp_err_t code = ESP_OK;
if (get_battery_V() < get_param_value_t(PARAM_LOW_PROTECTION_V).f32) code = SC_ERR_LOW_BATTERY;
else if (!get_is_safe()) code = SC_ERR_SAFETY_TRIP;
else if (efuse_get(BRIDGE_DRIVE)) code = SC_ERR_EFUSE_TRIP_1;
else if (efuse_get(BRIDGE_JACK)) code = SC_ERR_EFUSE_TRIP_2;
else if (efuse_get(BRIDGE_AUX)) code = SC_ERR_EFUSE_TRIP_3;
if (code != ESP_OK) ESP_LOGI(TAG, "FAILED TO START; %s", sc_err_str(code));
return code;
}
/* Gate a calibrate-mode state transition: only accepts the transition from
* `expected` to `next`, optionally requiring battery above LOW_PROTECTION_V.
* Returns true if the transition was made; caller then does per-case work
* (set_timer / save cal data / reset sensor counter) that doesn't fit a
* uniform helper. Battery gate is on for PREP and START (we are about to
* energize a motor); off for END (no motor action). */
static bool fsm_calibrate_transition(fsm_state_t expected, fsm_state_t next,
bool require_battery) {
if (current_state != expected) return false;
if (require_battery &&
get_battery_V() <= get_param_value_t(PARAM_LOW_PROTECTION_V).f32) return false;
current_state = next;
return true;
}
void fsm_request(fsm_cmd_t cmd)
{
// STOP always goes through (safety). All other commands are blocked during soft idle —
@@ -117,7 +182,6 @@ void fsm_request(fsm_cmd_t cmd)
rtc_reset_shutdown_timer(); // any accepted command extends the wake period
if (fsm_cmd_queue != NULL)
xQueueSend(fsm_cmd_queue, &cmd, 0); // safe from any context
// TODO: Make sure this is threadsafe
}
int8_t fsm_get_current_progress(int8_t denominator) {
@@ -188,9 +252,8 @@ esp_err_t send_fsm_log() {
float be_voltage = get_battery_V();
memcpy(&entry[8], &be_voltage, 4);
float current_A = get_bridge_raw_A(BRIDGE_DRIVE)
+ get_bridge_raw_A(BRIDGE_JACK)
+ get_bridge_raw_A(BRIDGE_AUX);
float current_A = 0.0f;
for (bridge_t b = 0; b < N_BRIDGES; b++) current_A += get_bridge_raw_A(b);
memcpy(&entry[12], &current_A, 4);
int16_t be_counter = get_sensor_counter(SENSOR_DRIVE);
@@ -198,11 +261,7 @@ esp_err_t send_fsm_log() {
entry[18] = pack_sensors();
float heat = efuse_get_heat(BRIDGE_DRIVE);
float h2 = efuse_get_heat(BRIDGE_JACK);
float h3 = efuse_get_heat(BRIDGE_AUX);
if (h2 > heat) heat = h2;
if (h3 > heat) heat = h3;
float heat = max_efuse_heat();
memcpy(&entry[19], &heat, 4);
uint16_t i2c_out = i2c_get_outputs();
@@ -254,7 +313,7 @@ void control_task(void *param) {
case FSM_CMD_START:
// Check if we have remaining distance before starting
if (remaining_distance <= 0.0f) {
ESP_LOGI(TAG, "FAILED TO START; NO REMAINING DISTANCE");
ESP_LOGI(TAG, "FAILED TO START; %s", sc_err_str(SC_ERR_LEASH_HIT));
fsm_error = SC_ERR_LEASH_HIT;
log = true;
continue;
@@ -264,34 +323,16 @@ void control_task(void *param) {
case FSM_CMD_START_IGNORE_OVERTRAVEL:
this_move_dist = get_param_value_t(PARAM_DRIVE_DIST).f32;
do_start:
if (current_state == STATE_IDLE) {
if (get_battery_V() < get_param_value_t(PARAM_LOW_PROTECTION_V).f32) {
ESP_LOGI(TAG, "FAILED TO START; INSUFFICIENT VOLTAGE");
fsm_error = SC_ERR_LOW_BATTERY;
/* Silently drop START commands received in any non-idle state
* (e.g. duplicate request while already moving). Preconditions
* are checked only once we know the state is acceptable. */
if (current_state != STATE_IDLE) break;
{
esp_err_t guard = fsm_check_start_preconditions();
if (guard != ESP_OK) {
fsm_error = guard;
continue;
}
if (!get_is_safe()) {
ESP_LOGI(TAG, "FAILED TO START; SAFETY NOT SET");
fsm_error = SC_ERR_SAFETY_TRIP;
continue;
}
if (efuse_get(BRIDGE_DRIVE)) {
ESP_LOGI(TAG, "FAILED TO START; EFUSE 1 TRIP");
fsm_error = SC_ERR_EFUSE_TRIP_1;
continue;
}
if (efuse_get(BRIDGE_JACK)) {
ESP_LOGI(TAG, "FAILED TO START; EFUSE 2 TRIP");
fsm_error = SC_ERR_EFUSE_TRIP_2;
continue;
}
if (efuse_get(BRIDGE_AUX)) {
ESP_LOGI(TAG, "FAILED TO START; EFUSE 3 TRIP");
fsm_error = SC_ERR_EFUSE_TRIP_3;
continue;
}
ESP_LOGI(TAG, "STARTING");
fsm_error = ESP_OK; // if everything is OK now, we're OK.
/* Zero jack timestamps so JACK_DOWN_TIME on this cycle
@@ -300,9 +341,9 @@ void control_task(void *param) {
jack_trans_us = 0;
jack_finish_us = 0;
current_state = STATE_MOVE_START_DELAY;
log = true;
log = true;
set_timer(TRANSITION_DELAY_US);
}
}
break;
case FSM_CMD_STOP:
current_state = STATE_IDLE;
@@ -318,58 +359,54 @@ void control_task(void *param) {
enabled = false;
break;
/* Calibration sub-FSM: PREP arms (IDLE → DELAY), START energizes
* the motor with a hard timeout (DELAY → MOVE), END records
* the result and returns to idle (MOVE → IDLE). PREP/START
* require battery; END doesn't (no motor action). */
case FSM_CMD_CALIBRATE_JACK_PREP:
ESP_LOGI(TAG, "FSM_CMD_CALIBRATE_JACK_PREP");
if (current_state == STATE_IDLE
&& get_battery_V() > get_param_value_t(PARAM_LOW_PROTECTION_V).f32) {
current_state = STATE_CALIBRATE_JACK_DELAY;
log = true;
}
if (fsm_calibrate_transition(STATE_IDLE, STATE_CALIBRATE_JACK_DELAY, true))
log = true;
break;
case FSM_CMD_CALIBRATE_JACK_START:
ESP_LOGI(TAG, "FSM_CMD_CALIBRATE_JACK_START");
if (current_state == STATE_CALIBRATE_JACK_DELAY
&& get_battery_V() > get_param_value_t(PARAM_LOW_PROTECTION_V).f32) {
current_state = STATE_CALIBRATE_JACK_MOVE;
log = true;
if (fsm_calibrate_transition(STATE_CALIBRATE_JACK_DELAY,
STATE_CALIBRATE_JACK_MOVE, true)) {
set_timer(CALIBRATE_JACK_MAX_TIME);
log = true;
}
break;
case FSM_CMD_CALIBRATE_JACK_END:
ESP_LOGI(TAG, "FSM_CMD_CALIBRATE_JACK_END");
if (current_state == STATE_CALIBRATE_JACK_MOVE) {
if (fsm_calibrate_transition(STATE_CALIBRATE_JACK_MOVE,
STATE_IDLE, false)) {
fsm_cal_t = fsm_now - timer_start;
current_state = STATE_IDLE;
log = true;
log = true;
}
break;
case FSM_CMD_CALIBRATE_DRIVE_PREP:
ESP_LOGI(TAG, "FSM_CMD_CALIBRATE_DRIVE_PREP");
if (current_state == STATE_IDLE
&& get_battery_V() > get_param_value_t(PARAM_LOW_PROTECTION_V).f32) {
current_state = STATE_CALIBRATE_DRIVE_DELAY;
log = true;
}
if (fsm_calibrate_transition(STATE_IDLE, STATE_CALIBRATE_DRIVE_DELAY, true))
log = true;
break;
case FSM_CMD_CALIBRATE_DRIVE_START:
ESP_LOGI(TAG, "FSM_CMD_CALIBRATE_DRIVE_START");
if (current_state == STATE_CALIBRATE_DRIVE_DELAY
&& get_battery_V() > get_param_value_t(PARAM_LOW_PROTECTION_V).f32) {
current_state = STATE_CALIBRATE_DRIVE_MOVE;
log = true;
if (fsm_calibrate_transition(STATE_CALIBRATE_DRIVE_DELAY,
STATE_CALIBRATE_DRIVE_MOVE, true)) {
set_timer(CALIBRATE_DRIVE_MAX_TIME);
set_sensor_counter(SENSOR_DRIVE, 0);
log = true;
}
break;
case FSM_CMD_CALIBRATE_DRIVE_END:
ESP_LOGI(TAG, "FSM_CMD_CALIBRATE_DRIVE_END");
if (current_state == STATE_CALIBRATE_DRIVE_MOVE) {
if (fsm_calibrate_transition(STATE_CALIBRATE_DRIVE_MOVE,
STATE_IDLE, false)) {
fsm_cal_t = fsm_now - timer_start;
fsm_cal_e = get_sensor_counter(SENSOR_DRIVE);
current_state = STATE_IDLE;
log = true;
log = true;
}
break;
}

View File

@@ -112,6 +112,10 @@ int8_t fsm_get_current_progress(int8_t remainder);
fsm_state_t fsm_get_state();
bool fsm_is_idle(void);
/* Human-readable name for a fsm_state_t value — used by logs and any web
* UI surface that wants to render a friendly state name. Returns a literal. */
const char *fsm_state_str(fsm_state_t s);
int8_t get_bridge_state(bridge_t bridge);
#endif /* MAIN_CONTROL_FSM_H_ */

View File

@@ -1,797 +0,0 @@
/*
* lcd.c
*
* Created on: Dec 12, 2025
* Author: Thad
*/
/* NOTICE: THIS IS A DUMPING GROUND FOR OBSOLETE CODE SINCE WE NO LONGER HAVE AN LCD
NONE OF THIS IS TESTED.
*/
// Debounce & Repeat Settings
#define DEBOUNCE_MS 50
#define REPEAT_MS 200
#define REPEAT_START_MS 700
static uint8_t lcd_col = 0;
static uint8_t lcd_row = 0;
static bool debounced_state[4] = {false};
static bool last_known_state[4] = {false};
static uint64_t last_stable_time[4] = {0};
static uint64_t last_change_time[4] = {0};
static uint8_t claimed_repeats[4] = {0};
// === DELAY HELPERS ===
static inline void delay_us(uint32_t us) {
esp_rom_delay_us(us);
}
static esp_err_t tca_write_word_16(uint8_t reg, uint16_t value) {
uint8_t data[3] = { reg, (uint8_t)(value & 0xFF), (uint8_t)(value >> 8) };
return i2c_master_write_to_device(I2C_PORT, TCA_ADDR, data, 3, pdMS_TO_TICKS(1000));
}
// === TCA9555 PORT CONTROL ===
static esp_err_t tca_set_config_port0(uint16_t config_port0) {
return tca_write_word_16(TCA_REG_CONFIG0, config_port0);
}
static esp_err_t tca_port_write(uint8_t value) {
return tca_write_word_8(TCA_REG_OUTPUT1, value);
}
static esp_err_t tca_port_read(uint16_t *value) {
uint16_t low, high;
ESP_ERROR_CHECK(tca_read_word(TCA_REG_INPUT0, &low));
ESP_ERROR_CHECK(tca_read_word(TCA_REG_INPUT1, &high));
*value = low | (high << 8);
return ESP_OK;
}
// === LCD NIBBLE & COMMAND ===
static esp_err_t lcd_write_nibble(uint8_t nibble, bool rs) {
uint8_t data_state = 0;
if (rs) data_state |= (1 << LCD_RS);
if (nibble & 0x01) data_state |= (1 << LCD_D4);
if (nibble & 0x02) data_state |= (1 << LCD_D5);
if (nibble & 0x04) data_state |= (1 << LCD_D6);
if (nibble & 0x08) data_state |= (1 << LCD_D7);
ESP_ERROR_CHECK(tca_port_write(data_state));
ESP_ERROR_CHECK(tca_port_write(data_state | (1 << LCD_E)));
ESP_ERROR_CHECK(tca_port_write(data_state));
return ESP_OK;
}
static esp_err_t lcd_command(uint8_t cmd) {
ESP_ERROR_CHECK(lcd_write_nibble(cmd >> 4, false));
ESP_ERROR_CHECK(lcd_write_nibble(cmd & 0x0F, false));
return ESP_OK;
}
static esp_err_t lcd_data(uint8_t data) {
ESP_ERROR_CHECK(lcd_write_nibble(data >> 4, true));
ESP_ERROR_CHECK(lcd_write_nibble(data & 0x0F, true));
return ESP_OK;
}
void lcd_set_cursor(uint8_t row, uint8_t col) {
uint8_t addr = (row == 0) ? 0x00 : 0x40;
addr += col;
lcd_row = row;
lcd_col = col;
lcd_command(0x80 | addr);
delay_us(50);
}
void lcd_printf(const char *fmt, ...) {
char buf[64];
va_list args;
va_start(args, fmt);
vsnprintf(buf, sizeof(buf), fmt, args);
va_end(args);
lcd_set_cursor(0, 0);
for (int i = 0; i < 32 && buf[i]; i++) {
if (i == 16) lcd_set_cursor(1, 0);
lcd_data((uint8_t)buf[i]);
delay_us(50);
}
}
void lcd_print(const char *str) {
lcd_set_cursor(0, 0);
for (int i = 0; i < 32 && str[i]; i++) {
if (i == 16) lcd_set_cursor(1, 0);
lcd_data((uint8_t)str[i]);
delay_us(50);
}
}
void lcd_off(void) {
if (i2c_initted) lcd_command(0x08);
}
esp_err_t lcd_init_4bit(void) {
ESP_LOGI("I2C", "Starting LCD init...");
ESP_ERROR_CHECK(tca_set_config_port0(0xFF));
tca_port_write(0x00);
delay_us(50000);
ESP_ERROR_CHECK(lcd_write_nibble(0x3, false)); delay_us(4500);
ESP_ERROR_CHECK(lcd_write_nibble(0x3, false)); delay_us(150);
ESP_ERROR_CHECK(lcd_write_nibble(0x3, false)); delay_us(150);
ESP_ERROR_CHECK(lcd_write_nibble(0x2, false)); delay_us(150);
ESP_ERROR_CHECK(lcd_command(0x28)); delay_us(150);
ESP_ERROR_CHECK(lcd_command(0x08)); delay_us(150);
ESP_ERROR_CHECK(lcd_command(0x01)); delay_us(2000);
ESP_ERROR_CHECK(lcd_command(0x06)); delay_us(150);
ESP_ERROR_CHECK(lcd_command(0x0C)); delay_us(150);
ESP_LOGI("I2C", "LCD init complete.");
return ESP_OK;
}
// === BUTTON DEBOUNCE & REPEAT ===
void update_buttons(void) {
for (uint8_t btn = 0; btn < 4; ++btn) {
last_known_state[btn] = debounced_state[btn];
}
uint16_t port_val;
ESP_ERROR_CHECK(tca_port_read(&port_val));
uint8_t raw_buttons = (uint8_t)(port_val & 0x0F);
uint8_t raw_states = ~raw_buttons & 0x0F;
uint64_t now = esp_timer_get_time() / 1000;
for (uint8_t btn = 0; btn < 4; ++btn) {
bool raw_pressed = (raw_states & (1 << btn)) != 0;
if (raw_pressed != debounced_state[btn]) {
if (now - last_stable_time[btn] >= DEBOUNCE_MS) {
debounced_state[btn] = raw_pressed;
last_stable_time[btn] = now;
last_change_time[btn] = now;
claimed_repeats[btn] = 0;
}
} else {
last_stable_time[btn] = now;
}
}
}
bool get_button_tripped(uint8_t button) {
return (button < 4) && debounced_state[button] && !last_known_state[button];
}
bool get_button_released(uint8_t button) {
return (button < 4) && !debounced_state[button] && last_known_state[button];
}
bool get_button_state(uint8_t button) {
return (button < 4) && debounced_state[button];
}
bool get_button_repeat(uint8_t btn) {
if (btn >= 4 || !debounced_state[btn]) return false;
uint64_t now = esp_timer_get_time() / 1000;
if (now + DEBOUNCE_MS < last_change_time[btn]) return false;
if ((now - last_change_time[btn]) > (REPEAT_START_MS + REPEAT_MS * claimed_repeats[btn])) {
claimed_repeats[btn]++;
return true;
}
return false;
}
int8_t get_button_repeats(uint8_t btn) {
if (!get_button_state(btn))
return 0;
if (btn >= 4 || !debounced_state[btn]) return false;
uint64_t now = esp_timer_get_time() / 1000;
if (now + DEBOUNCE_MS < last_change_time[btn]) return false;
if ((now - last_change_time[btn]) > (REPEAT_START_MS + REPEAT_MS * claimed_repeats[btn])) {
claimed_repeats[btn]++;
if (claimed_repeats[btn] > 100)
claimed_repeats[btn] = 100;
ESP_LOGI("BTN", "RPT %d", (uint8_t)claimed_repeats[btn]+2);
return claimed_repeats[btn]+1;
}
if (debounced_state[btn] && !last_known_state[btn]) {
ESP_LOGI("BTN", "FST %d", 1);
return 1;
}
//ESP_LOGI("BTN", "RPT %d", 0);
return 0;
}
int64_t get_button_ms(uint8_t btn) {
if (!get_button_state(btn))
return 0;
uint64_t now = esp_timer_get_time() / 1000;
return now - last_change_time[btn];
}
// Parameter descriptor structure
typedef struct {
const char key[24]; // NVS key name (null-terminated)
uint8_t type_size; // Size in bytes: 1=uint8_t, 2=uint16_t, 4=uint32_t/float, 8=uint64_t/double
uint8_t type_flags; // Bitfield: [0:1] signed, [2] float, [3:7] reserved
const void *default_val; // Pointer to default value (matches type)
} param_desc_t;
typedef struct param_group_s param_group_t;
typedef struct param_group_s {
char* (*formatter)(const param_group_t*, uint8_t idx);
const uint8_t num_keys;
const uint8_t indices[8][2];
const char keys[8][20];
void (*launch_functions[8])(char* key, int8_t dir);
} param_group_t;
// temp buffer for formatting stuff onto the LCD
static char formatting_buf[LCD_BUFLEN];
/* MENU DIALOG CONFIG */
char* schedule_format(const param_group_t *pg, uint8_t idx);
char* dist_format (const param_group_t *pg, uint8_t idx);
char* reprog_format (const param_group_t *pg, uint8_t idx);
char* override_format(const param_group_t *pg, uint8_t idx);
char* status_format (const param_group_t *pg, uint8_t idx);
char* cal_format (const param_group_t *pg, uint8_t idx);
char* efuse_format (const param_group_t *pg, uint8_t idx);
char* ftp_format (const param_group_t *pg, uint8_t idx);
// Launch functions (forward declarations)
void trigger_move(char* key, int8_t dir);
void rf_reprogram_remote(char* key, int8_t dir);
void adjust_hour (char* key, int8_t dir);
void adjust_i8_0_99 (char* key, int8_t dir);
void adjust_generic (int idx, int8_t amt);
void dummy_adjuster (char* key, int8_t dir) {}; // do nothing
void launch_ftp (char* key, int8_t dir);
void adjust_i32_smart_0_99999(char* key, int8_t dir);
void adjust_i32_smart_0_999 (char* key, int8_t dir);
// Parameter table (legible, declarative)
const param_desc_t param_table[] = {
{
.key = "sched_start",
.type_size = TYPE_SIZE_1,
.type_flags = TYPE_SIGNED,
.default_val = &(int8_t){0}
},
{
.key = "sched_end",
.type_size = TYPE_SIZE_1,
.type_flags = TYPE_SIGNED,
.default_val = &(int8_t){0}
},
{
.key = "sched_num",
.type_size = TYPE_SIZE_1,
.type_flags = TYPE_SIGNED,
.default_val = &(int8_t){0}
},
{
.key = "efuse_drive_A",
.type_size = TYPE_SIZE_1,
.type_flags = TYPE_SIGNED,
.default_val = &(int8_t){99}
},{
.key = "efuse_jack_A",
.type_size = TYPE_SIZE_1,
.type_flags = TYPE_SIGNED,
.default_val = &(int8_t){99}
},{
.key = "efuse_aux_A",
.type_size = TYPE_SIZE_1,
.type_flags = TYPE_SIGNED,
.default_val = &(int8_t){99}
},
{
.key = "drive_dist",
.type_size = TYPE_SIZE_1,
.type_flags = TYPE_SIGNED,
.default_val = &(int16_t){10}
},{
.key = "drive_tpdf",
.type_size = TYPE_SIZE_4,
.type_flags = 0,
.default_val = &(int32_t){70}
},{
.key = "drive_mspf",
.type_size = TYPE_SIZE_4,
.type_flags = 0,
.default_val = &(int32_t){1000}
},{
.key = "jack_mspi",
.type_size = TYPE_SIZE_4,
.type_flags = 0,
.default_val = &(int32_t){1000}
},{
.key = "jack_dist",
.type_size = TYPE_SIZE_1,
.type_flags = TYPE_SIGNED,
.default_val = &(uint8_t){7}
},
{
.key = "keycode0",
.type_size = TYPE_SIZE_8,
.type_flags = 0,
.default_val = &(uint8_t){0}
},{
.key = "keycode1",
.type_size = TYPE_SIZE_8,
.type_flags = 0,
.default_val = &(uint8_t){0}
},{
.key = "keycode2",
.type_size = TYPE_SIZE_8,
.type_flags = 0,
.default_val = &(uint8_t){0}
},{
.key = "keycode3",
.type_size = TYPE_SIZE_8,
.type_flags = 0,
.default_val = &(uint8_t){0}
}
};
#define PARAM_COUNT (sizeof(param_table)/sizeof(param_table[0]))
// Runtime parameter values
static param_value_t param_values[PARAM_COUNT];
const param_group_t param_group_table[] = {
{
.formatter = status_format,
.num_keys = 3,
.keys = {"","",""},
.launch_functions = {trigger_move, adjust_rtc_hour, adjust_rtc_min}
},{
.formatter = schedule_format,
.num_keys = 3,
.keys = {"sched_start", "sched_end", "sched_num"},
.launch_functions = {adjust_hour, adjust_hour, adjust_i8_0_99}
},
{
.formatter = dist_format,
.num_keys = 2,
.keys = {"drive_dist", "jack_dist"},
.launch_functions = {adjust_i8_0_99, adjust_i8_0_99}
},
{
.formatter = cal_format,
.num_keys = 3,
.keys = { "jack_mspi", "drive_mspf", "drive_tpdf"},
.launch_functions = {adjust_i32_smart_0_99999, adjust_i32_smart_0_99999, adjust_i32_smart_0_999}
},
{
.formatter = efuse_format,
.num_keys = 3,
.keys = { "efuse_aux_A", "efuse_jack_A", "efuse_drive_A"},
.launch_functions = {adjust_i8_0_99, adjust_i8_0_99, adjust_i8_0_99}
},
{
.formatter = override_format,
.num_keys = 3,
.keys = {"","",""},
.launch_functions = {dummy_adjuster, dummy_adjuster, dummy_adjuster}
},
{
.formatter = reprog_format,
.num_keys = 1,
.keys = {""},
.launch_functions = {rf_reprogram_remote}
},
{
.formatter = ftp_format,
.num_keys = 1,
.keys = {""},
.launch_functions = {launch_ftp}
}
};
#define PARAM_GROUP_RUNMTR 5
#define PARAM_GROUP_FTP 7
#define PARAM_GROUP_COUNT (sizeof(param_group_table)/sizeof(param_group_table[0]))
static const char schedule_fmts[3][3][LCD_BUFLEN] = {
{
"Start/End xTimes [-] - x%-2d ",
"Start/End xTimes - [-] x%-2d ",
"Start/End xTimes - - [x%-2d]"
},{
"Start/End xTimes[%2d%cM] - x%-2d ",
"Start/End xTimes %2d%cM [-] x%-2d ",
"Start/End xTimes %2d%cM - [x%-2d]"
},{
"Start/End xTimes[%2d%cM]-%2d%cM x%-2d",
"Start/End xTimes %2d%cM-[%2d%cM] x%-2d",
"Start/End xTimes %2d%cM-%2d%cM [x%-2d]"
}
};
static const char dist_fmts[3][LCD_BUFLEN] = {
"Dist. Drive/Jack[%2d ft] / %2d in ",
"Dist. Drive/Jack %2d ft / [%2d in]"
};
static const char override_fmts[3][LCD_BUFLEN] = {
" Run Motors [AUX]JACK DRIVE ",
" Run Motors AUX[JACK]DRIVE ",
" Run Motors AUX JACK[DRIVE]"
};
static const char cal_fmts[3][LCD_BUFLEN] = {
"Jack ms/in: [%4ld]%4ld %4ld ",
"Drive ms/ft: %4ld[%4ld]%4ld ",
"Drive t/10ft: %4ld %4ld[%4ld]"
};
static const char efuse_fmts[3][LCD_BUFLEN] = {
"E-fuse Aux: [%2dA] %2dA %2dA ",
"E-fuse Jack: %2dA [%2dA] %2dA ",
"E-fuse Drive: %2dA %2dA [%2dA]"
};
/* All function implementations remain unchanged and appear here in original form */
char* schedule_format(const param_group_t *pg, uint8_t idx)
{
/* pg->keys[0..2] → "sched_start", "sched_end", "sched_num" */
int8_t start = (int8_t)get_param_i8(pg->keys[0]); // helper, see below
int8_t end = (int8_t)get_param_i8(pg->keys[1]);
int8_t num = (int8_t)get_param_i8(pg->keys[2]);
char startAP = start<12 ? 'A':'P';
char endAP = end<12 ? 'A':'P';
start %= 12;
end %= 12;
if (start == 0) start = 12;
if (end == 0) end = 12;
if (num == 0) {
snprintf(formatting_buf, sizeof(formatting_buf),
schedule_fmts[0][idx], num);
return formatting_buf;
} else if (num == 1) {
snprintf(formatting_buf, sizeof(formatting_buf),
schedule_fmts[1][idx], start, startAP, num);
return formatting_buf;
} else {
snprintf(formatting_buf, sizeof(formatting_buf),
schedule_fmts[2][idx], start, startAP, end, endAP, num);
return formatting_buf;
}
}
char* dist_format(const param_group_t *pg, uint8_t idx) {
int8_t drive = (int8_t)get_param_i8(pg->keys[0]); // helper, see below
int8_t jack = (int8_t)get_param_i8(pg->keys[1]);
snprintf(formatting_buf, sizeof(formatting_buf),
dist_fmts[idx], drive, jack);
return formatting_buf;
}
char* reprog_format(const param_group_t *pg, uint8_t idx) {
return "Reprogram Keyfob [Press ^ / v ] ";
}
char* override_format(const param_group_t *pg, uint8_t idx) {
return override_fmts[idx];
}
char* ftp_format(const param_group_t *pg, uint8_t idx) {
return " Start Wifi/FTP [Press ^ / v ] ";
}
char charge_indicators[N_CHARGE_STATES] = {
[CHG_STATE_OFF] ='-',
[CHG_STATE_FLOAT] ='F',
[CHG_STATE_BULK] ='B'
};
static const char status_fmts[4][LCD_BUFLEN] = {
"%-6s%2dA %2lu.%02luV[MOVE] %2d:%02d %cM",
"%-6s%2dA %2lu.%02luV MOVE [%2d]:%02d %cM",
"%-6s%2dA %2lu.%02luV MOVE %2d:[%02d]%cM",
"%-6s%2dA %2lu.%02luV[ SET TIME ^/v ]",
};
char* status_format(const param_group_t *pg, uint8_t idx) {
uint32_t vbat = get_battery_mV();
struct tm timeinfo;
rtc_get_time(&timeinfo);
// --- Build 7-char time: " 9:05PM" or "10:05PM" ---
int hour12 = timeinfo.tm_hour % 12;
if (hour12 == 0) hour12 = 12; // 12-hour format
int current_draw = abs(get_bridge_mA(BRIDGE_DRIVE)/1000) + abs(get_bridge_mA(BRIDGE_JACK)/1000) + abs(get_bridge_mA(BRIDGE_AUX)/1000);
if (rtc_is_set())
snprintf(formatting_buf, sizeof(formatting_buf),
status_fmts[idx],
"Idle",
current_draw,
(unsigned long)(vbat / 1000),
(unsigned long)((vbat % 1000) + 99) / 100,
hour12,
timeinfo.tm_min,
timeinfo.tm_hour < 12 ? 'A':'P'
);
else
snprintf(formatting_buf, sizeof(formatting_buf),
status_fmts[3],
"Idle",
current_draw,
(unsigned long)(vbat / 1000),
(unsigned long)((vbat % 1000) + 99) / 100
);
return formatting_buf;
}
char* cal_format(const param_group_t *pg, uint8_t idx) {
int32_t x1 = get_param_i32(pg->keys[0]);
int32_t x2 = get_param_i32(pg->keys[1]);
int32_t x3 = get_param_i32(pg->keys[2]);
snprintf(formatting_buf, sizeof(formatting_buf),
cal_fmts[idx], x1, x2, x3);
return formatting_buf;
}
char* efuse_format(const param_group_t *pg, uint8_t idx) {
int32_t x1 = get_param_i32(pg->keys[0]);
int32_t x2 = get_param_i32(pg->keys[1]);
int32_t x3 = get_param_i32(pg->keys[2]);
snprintf(formatting_buf, sizeof(formatting_buf),
efuse_fmts[idx], x1, x2, x3);
return formatting_buf;
}
// Generic adjustment fallback
void adjust_generic(int idx, int8_t amt) {
const param_desc_t *p = &param_table[idx];
if (p->type_flags & TYPE_FLOAT) {
float step = 0.1f;
param_values[idx].f32 += amt;
} else {
switch (p->type_size) {
case 1: {
int8_t v = (int8_t)param_values[idx].u8;
v += amt;
param_values[idx].u8 = (int8_t)v;
break;
}
case 2: {
int16_t v = (int16_t)param_values[idx].u16;
v += amt;
param_values[idx].u16 = (int16_t)v;
break;
}
}
}
params_save(idx);
}
/**
* adjust_time - Shared adjuster for any time parameter (HH:MM format)
* @idx: Index in param_table[]
* @dir: +1 = increment, -1 = decrement
*
* Assumes value stored as minutes since 00:00 (01439)
* Displays as "HH:MM"
*/
void adjust_hour(char* key, int8_t dir) {
int8_t idx = params_find(key);
if (idx<0) return;
if (dir>0) param_values[idx].i8 += +1;
if (dir<0) param_values[idx].i8 += -1;
// wraparound
if (param_values[idx].i8 > 23) param_values[idx].i8 = 0;
if (param_values[idx].i8 < 0) param_values[idx].i8 = 23;
params_save(idx);
set_next_alarm();
}
void adjust_i8_0_99(char* key, int8_t dir) {
int8_t idx = params_find(key);
if (idx<0) return;
if (dir>0) param_values[idx].i8 += +1;
if (dir<0) param_values[idx].i8 += -1;
// clamp
if (param_values[idx].i8 > 99) param_values[idx].i8 = 99;
if (param_values[idx].i8 < 0) param_values[idx].i8 = 0;
params_save(idx);
set_next_alarm();
}
void adjust_i16_0_9990_by_10(char* key, int8_t dir) {
int8_t idx = params_find(key);
if (idx<0) return;
if (dir>0) param_values[idx].i16 += +1;
if (dir<0) param_values[idx].i16 += -1;
// clamp
if (param_values[idx].i16 > 9990) param_values[idx].i16 = 9990;
if (param_values[idx].i16 < 0) param_values[idx].i16 = 0;
params_save(idx);
set_next_alarm();
}
//inline static int8_t abs(int8_t x) { return x<0?-x:x; }
void adjust_i32_smart_0_99999(char* key, int8_t dir) {
int8_t idx = params_find(key);
if (idx<0) return;
int32_t inc = 1;
if (abs(dir) > 5) inc = 5;
if (abs(dir) > 10) inc = 10;
if (abs(dir) > 13) inc = 50;
if (abs(dir) > 16) inc = 100;
if (abs(dir) > 19) inc = 200;
if (abs(dir) > 22) inc = 1000;
if (dir>0) param_values[idx].i32 += +inc;
if (dir<0) param_values[idx].i32 += -inc;
param_values[idx].i32 = (param_values[idx].i32/inc)*inc;
ESP_LOGI("ADJ", "P[%d] += %d => %ld", (int)idx, (int)inc, (long)param_values[idx].i32);
// clamp
if (param_values[idx].i32 > 99999) param_values[idx].i32 = 99999;
if (param_values[idx].i32 < 0) param_values[idx].i32 = 0;
params_save(idx);
set_next_alarm();
}
void adjust_i32_smart_0_999(char* key, int8_t dir) {
int8_t idx = params_find(key);
if (idx<0) return;
int32_t inc = 1;
if (abs(dir) > 5) inc = 5;
if (abs(dir) > 10) inc = 10;
if (abs(dir) > 13) inc = 50;
if (abs(dir) > 16) inc = 100;
if (abs(dir) > 19) inc = 200;
if (abs(dir) > 22) inc = 1000;
if (dir>0) param_values[idx].i32 += +inc;
if (dir<0) param_values[idx].i32 += -inc;
param_values[idx].i32 = (param_values[idx].i32/inc)*inc;
ESP_LOGI("ADJ", "p[%d] += %d => %ld", (int)idx, (int)inc, (long)param_values[idx].i32);
// clamp
if (param_values[idx].i32 > 999) param_values[idx].i32 = 999;
if (param_values[idx].i32 < 0) param_values[idx].i32 = 0;
params_save(idx);
set_next_alarm();
}
static int8_t group_idx=0, entry_idx=0;
void run_parameter_ui() {
if (get_button_repeats(BTN_L)) {
reset_shutdown_timer();
entry_idx--;
if (entry_idx < 0) {
group_idx--;
if (group_idx < 0) {
group_idx = PARAM_GROUP_COUNT-1;
}
entry_idx = param_group_table[group_idx].num_keys-1;
}
}
if (get_button_repeats(BTN_R)) {
reset_shutdown_timer();
entry_idx++;
if (entry_idx >= param_group_table[group_idx].num_keys) {
group_idx++;
if (group_idx >= PARAM_GROUP_COUNT) {
group_idx = 0;
}
entry_idx = 0;
}
}
// Forbid user from doing anything until they set the time
if (!rtc_is_set()) {
group_idx=0;
entry_idx=1;
}
param_group_t pg = param_group_table[group_idx];
lcd_print(pg.formatter(&pg, entry_idx)); // Formatted with botfmt + values
int8_t n;
if ((n=get_button_repeats(BTN_U))) {
reset_shutdown_timer();
pg.launch_functions[entry_idx](
pg.keys[entry_idx], +n
);
}
if ((n=get_button_repeats(BTN_D))) {
reset_shutdown_timer();
pg.launch_functions[entry_idx](
pg.keys[entry_idx], -n
);
}
/*int64_t ut = get_button_ms(BTN_U);
if (ut) {
reset_shutdown_timer();
pg.launch_functions[entry_idx](
pg.keys[entry_idx], +ut
);
}
int64_t dt = get_button_ms(BTN_D);
if (ut) {
reset_shutdown_timer();
pg.launch_functions[entry_idx](
pg.keys[entry_idx], -ut
);
}*/
}
int8_t parameter_ux_in_override() {
if(group_idx != PARAM_GROUP_RUNMTR)
return -1;
return entry_idx;
}
bool parameter_ux_in_ftp() {
return group_idx == PARAM_GROUP_FTP;
}

View File

@@ -23,13 +23,13 @@
#include "version.h"
#include <string.h>
EventGroupHandle_t comms_event_group = NULL;
EventGroupHandle_t comms_event_group = NULL; // synchronizing tasks
#define TAG "MAIN"
#define POST_MAX_RETRIES 3
#define OTA_ROLLBACK_THRESHOLD 5
#define FACTORY_RESET_HOLD_MS 10000
#define POST_MAX_RETRIES 3 // how many times to try an init function
#define OTA_ROLLBACK_THRESHOLD 5 // how many resets in a row required to deem the boot partition faulty and switch to the other
#define FACTORY_RESET_HOLD_MS 10000 // how many ms is required to hold the button during cold boot to initialize factory reset
// Survives resets (panic, WDT, sw reset) but NOT power-on or external reset
RTC_DATA_ATTR static uint8_t ota_reset_counter = 0;
@@ -85,9 +85,7 @@ esp_err_t send_bat_log() {
// LED error code bits: LED1=efuse/battery, LED2=RTC, LED3=safety/leash
static uint8_t error_code_from_state(void) {
uint8_t code = 0;
if (efuse_get(BRIDGE_JACK) != EFUSE_OK ||
efuse_get(BRIDGE_AUX) != EFUSE_OK ||
efuse_get(BRIDGE_DRIVE) != EFUSE_OK) code |= 0b001; // LED1: efuse
if (any_efuse_tripped()) code |= 0b001; // LED1: efuse
float bat_v = get_battery_V();
float low_v = get_param_value_t(PARAM_LOW_PROTECTION_V).f32;
if (bat_v > 0 && bat_v < low_v) code |= 0b001; // LED1: low battery
@@ -154,9 +152,9 @@ void app_main(void) {
esp_task_wdt_add(NULL);
ESP_LOGI(TAG, "Firmware: %s", FIRMWARE_STRING);
ESP_LOGI(TAG, "Version: %s", FIRMWARE_VERSION);
ESP_LOGI(TAG, "Branch: %s", FIRMWARE_BRANCH);
ESP_LOGI(TAG, "Built: %s", BUILD_DATE);
ESP_LOGI(TAG, "Version: %s", FIRMWARE_VERSION);
ESP_LOGI(TAG, "Branch: %s", FIRMWARE_BRANCH);
ESP_LOGI(TAG, "Built: %s", BUILD_DATE);
// I2C first so we can light the LED immediately
init_critical("I2C", i2c_init);
@@ -168,7 +166,6 @@ void app_main(void) {
if (rtc_xtal_init() != ESP_OK) ESP_LOGE(TAG, "RTC FAILED");
// Factory reset: cold boot + button held for 10s
// LEDs flash while waiting, go solid when triggered
esp_reset_reason_t boot_reset_reason = esp_reset_reason();
@@ -238,8 +235,8 @@ void app_main(void) {
//run_all_log_tests();
esp_reset_reason_t reset_reason = esp_reset_reason();
esp_sleep_wakeup_cause_t wake_cause = esp_sleep_get_wakeup_cause();
esp_reset_reason_t reset_reason = esp_reset_reason();
esp_sleep_wakeup_cause_t wake_cause = esp_sleep_get_wakeup_cause();
// Log every boot: boot_info = wake_cause[7:4] | reset_reason[3:0]
{
@@ -320,7 +317,7 @@ void app_main(void) {
esp_ota_mark_app_valid_cancel_rollback();
/*** MAIN LOOP ***/
uint8_t tap_count = 0;
uint8_t tap_count = 0;
int64_t tap_window_start = 0;
TickType_t xLastWakeTime = xTaskGetTickCount();
@@ -332,23 +329,31 @@ void app_main(void) {
/* Bring-up tool owns the LEDs, buttons, and relays while active. */
if (bringup_mode_is_active()) {
esp_task_wdt_reset();
continue;
continue; // while in bringup, don't do anything more
}
/* In soft idle: slow poll (5s) via direct GPIO, no I2C. */
// TODO: Critique & confirm what we do in idle
if (soft_idle_is_active()) {
//vTaskDelay(pdMS_TO_TICKS(1000));
// Button wake: just exit idle and fall through to the normal main
// loop. The user is physically present, so any actual movement
// happens later via triple-tap / RF / web — by then WiFi+BT have
// had plenty of time to come back up on their own.
if (soft_idle_button_raw()) {
rtc_reset_shutdown_timer();
soft_idle_exit();
i2c_poll_buttons(); /* sync TCA9555 state after idle */
xLastWakeTime = xTaskGetTickCount();
}
// Alarm wake: must immediately issue FSM_CMD_START — nobody is
// here to press a button. soft_idle_enter() tore down WiFi+BT
// (see rtc.c soft_idle_enter); soft_idle_exit() restarts them
// but they come up asynchronously. Block up to 5 s for both
// event-group bits so telemetry/abort paths are live before the
// automated move begins. Past timeout we start anyway — the
// physical safety/efuse interlocks still protect the hardware.
if (rtc_alarm_tripped()) {
soft_idle_exit();
xLastWakeTime = xTaskGetTickCount();
// Wait for WiFi + BT to come back up (or timeout after 5s)
if (comms_event_group) {
xEventGroupWaitBits(comms_event_group, COMMS_ALL_BITS,
pdFALSE, pdTRUE, pdMS_TO_TICKS(5000));
@@ -360,14 +365,14 @@ void app_main(void) {
solar_run_fsm();
rtc_check_shutdown_timer();
esp_task_wdt_reset();
continue;
continue; // while in idle, don't do anything more
}
i2c_poll_buttons();
if (i2c_get_button_state(0)) {
rtc_reset_shutdown_timer();
soft_idle_exit();
// soft_idle_exit(); // this should be superfluous
}
// --- Button logic: triple-tap, hold-to-reboot, cancel/stop ---
@@ -435,9 +440,7 @@ void app_main(void) {
if (!btn_pressed && tap_count == 0) {
if (
rtc_is_set() &&
efuse_get(BRIDGE_JACK)==EFUSE_OK &&
efuse_get(BRIDGE_AUX)==EFUSE_OK &&
efuse_get(BRIDGE_DRIVE)==EFUSE_OK &&
!any_efuse_tripped() &&
fsm_get_error() == ESP_OK
) {
drive_leds(LED_IDLE);

View File

@@ -433,13 +433,13 @@ esp_err_t process_bridge_current(bridge_t bridge) {
int adc_raw = 0;
int voltage_mv = 0;
adc_channel_t pin;
switch(bridge) {
case BRIDGE_DRIVE: pin = PIN_V_ISENS1; break;
case BRIDGE_JACK: pin = PIN_V_ISENS2; break;
case BRIDGE_AUX: pin = PIN_V_ISENS3; break;
default: return ESP_ERR_INVALID_ARG;
}
static const adc_channel_t bridge_isens_pins[N_BRIDGES] = {
[BRIDGE_DRIVE] = PIN_V_ISENS1,
[BRIDGE_JACK] = PIN_V_ISENS2,
[BRIDGE_AUX] = PIN_V_ISENS3,
};
if (bridge >= N_BRIDGES) return ESP_ERR_INVALID_ARG;
adc_channel_t pin = bridge_isens_pins[bridge];
if (adc_oneshot_read(adc1_handle, pin, &adc_raw) != ESP_OK) {
return 0;
@@ -528,19 +528,14 @@ esp_err_t process_bridge_current(bridge_t bridge) {
// PARAM_EFUSE_TAUCOOL : speed of cooldown for heating (units are 1/s; bigger = faster cooldown)
// Monitor E-fusing
float I_nominal = NAN;
switch(bridge) {
case BRIDGE_DRIVE:
I_nominal = get_param_value_t(PARAM_EFUSE_INOM_1).f32;
break;
case BRIDGE_JACK:
I_nominal = get_param_value_t(PARAM_EFUSE_INOM_2).f32;
break;
case BRIDGE_AUX:
I_nominal = get_param_value_t(PARAM_EFUSE_INOM_3).f32;
break;
default: break;
}
static const param_idx_t bridge_inom[N_BRIDGES] = {
[BRIDGE_DRIVE] = PARAM_EFUSE_INOM_1,
[BRIDGE_JACK] = PARAM_EFUSE_INOM_2,
[BRIDGE_AUX] = PARAM_EFUSE_INOM_3,
};
float I_nominal = (bridge < N_BRIDGES)
? get_param_value_t(bridge_inom[bridge]).f32
: NAN;
// Normalize the current as a fraction of rated current
float I_norm = fabsf(channel->current / I_nominal);
@@ -675,4 +670,26 @@ void efuse_set(bridge_t bridge, efuse_trip_t state)
if (bridge >= N_BRIDGES) return;
isens[bridge].tripped = state;
isens[bridge].trip_time = fsm_now;
}
const char *const bridge_names[N_BRIDGES] = {
[BRIDGE_DRIVE] = "DRIVE",
[BRIDGE_JACK] = "JACK",
[BRIDGE_AUX] = "AUX",
};
bool any_efuse_tripped(void) {
for (bridge_t b = 0; b < N_BRIDGES; b++) {
if (efuse_get(b)) return true;
}
return false;
}
float max_efuse_heat(void) {
float m = efuse_get_heat(0);
for (bridge_t b = 1; b < N_BRIDGES; b++) {
float h = efuse_get_heat(b);
if (h > m) m = h;
}
return m;
}

View File

@@ -26,6 +26,15 @@ efuse_trip_t efuse_get (bridge_t bridge); // Query if bridge is currently
float efuse_get_heat(bridge_t bridge);
void efuse_set(bridge_t bridge, efuse_trip_t state);
/* True if any of the N_BRIDGES bridges is currently tripped. */
bool any_efuse_tripped(void);
/* Max heat across all bridges — used for telemetry logging. */
float max_efuse_heat(void);
/* Human name per bridge_t index ("DRIVE" / "JACK" / "AUX"). */
extern const char *const bridge_names[N_BRIDGES];
float get_bridge_A(bridge_t bridge);
float get_bridge_raw_A(bridge_t bridge);
float get_battery_V();

View File

@@ -50,7 +50,7 @@ static uint64_t rtc_hw_time_us(void)
uint64_t last_activity_tick = 0;
// RTC_DATA_ATTR keeps these in RTC memory; persists across software resets (panics, WDT).
// AUDIT: no init path zeroes these — rtc_restore_time() recovers via RTC HW counter,
// no init path zeroes these — rtc_restore_time() recovers via RTC HW counter,
// rtc_set_s() is only called explicitly by the user. Verified 2026-03-12.
RTC_DATA_ATTR int64_t next_alarm_time_s = -1;
RTC_DATA_ATTR bool rtc_set = false;
@@ -308,62 +308,50 @@ void adjust_rtc_min(char *key, int8_t dir)
void rtc_schedule_next_alarm(void) {
int64_t start_sec = get_param_value_t(PARAM_MOVE_START).u32;
int64_t end_sec = get_param_value_t(PARAM_MOVE_END).u32;
int16_t num = get_param_value_t(PARAM_NUM_MOVES).i16;
/* Walk MOVE_TIME_0..MOVE_TIME_(NUM_MOVE_TIMES-1). Each slot is either
* -1 (disabled) or a 0..86399 seconds-into-day offset. For each enabled
* slot we compute its absolute Unix time for today and tomorrow, keep
* whichever is the soonest still-future timestamp, and take the minimum
* across all enabled slots. If no slot is enabled, the device has no
* schedule and next_alarm_time_s is set to -1 (web UI renders DISABLED).
*
* The slots are sorted by commit_params() so the first non-negative is
* the smallest seconds-into-day, but we DON'T short-circuit on the first
* future hit — slot[0]'s "today" can already be past while a later slot
* (smaller offset that wrapped) could be the soonest. Walking all 12 is
* cheap (~1µs) and removes that subtlety entirely. */
if (num <= 0) {
if (!rtc_is_set()) {
/* Without a valid wall clock, "seconds into day" is meaningless. */
next_alarm_time_s = -1;
return;
}
// Current time info
int64_t s_into_day = rtc_get_s_in_day();
time_t current_time = rtc_get_s();
time_t today_midnight = current_time - s_into_day;
int64_t s_into_day = rtc_get_s_in_day();
time_t current_time = rtc_get_s();
time_t today_midnight = current_time - s_into_day;
bool overnight = (start_sec > end_sec);
int64_t total_duration = overnight ? (86400 - start_sec) + end_sec : end_sec - start_sec;
time_t best = -1;
for (int i = 0; i < NUM_MOVE_TIMES; i++) {
int32_t slot = get_param_value_t(PARAM_MOVE_TIME_0 + i).i32;
if (slot < 0) continue; // disabled
// Determine period start
time_t period_start;
if (overnight && s_into_day < end_sec) {
// Current time is within overnight period → started yesterday
period_start = (today_midnight - 86400) + start_sec;
/* Candidate is today's occurrence if still in the future, else
* tomorrow's occurrence. >= keeps a "fire exactly at the matching
* second" semantic without arming twice. */
time_t candidate = today_midnight + slot;
if (candidate <= current_time) candidate += 86400;
if (best < 0 || candidate < best) best = candidate;
}
next_alarm_time_s = best;
if (best > 0) {
ESP_LOGI("ALARM", "SET FOR %lld (in %lld s)", (long long)best, (long long)(best - current_time));
} else {
// Normal or after end → starts today
period_start = today_midnight + start_sec;
ESP_LOGI("ALARM", "No enabled MOVE_TIME_* slots — schedule disabled");
}
//time_t period_end = period_start + total_duration;
if (num == 1) {
// Single alarm: at period start, if passed, next day
next_alarm_time_s = (current_time < period_start) ? period_start : period_start + 86400;
ESP_LOGI("ALARM", "SET FOR %lld (in %lld s)", next_alarm_time_s, next_alarm_time_s - current_time);
return;
}
// Find next alarm
int64_t spacing = total_duration / (num - 1);
time_t next_alarm = -1;
for (int16_t i = 0; i < num; i++) {
time_t alarm_time = period_start + spacing * i;
if (alarm_time > current_time) {
next_alarm = alarm_time;
break;
}
}
// If all passed, first of next period
if (next_alarm == -1) {
next_alarm = period_start + 86400;
}
next_alarm_time_s = next_alarm;
ESP_LOGI("ALARM", "SET FOR %lld (in %lld s)", next_alarm_time_s, next_alarm_time_s - current_time);
}
int64_t rtc_get_next_alarm_s() {

View File

@@ -22,5 +22,12 @@
#define SC_ERR_RTC_NOT_SET 0x220
#define SC_ERR_LOW_BATTERY 0x230
#include "esp_err.h"
/* Human-readable name for an SC_ERR_* code (or ESP_OK). Used by FSM log
* messages and the web UI so error strings live in one place. Returns a
* literal — no allocation, safe to use anywhere. */
const char *sc_err_str(esp_err_t e);
#endif /* MAIN_SC_ERR_H_ */

View File

@@ -149,52 +149,23 @@ static bool validate_param(param_idx_t id) {
// Clamp to [min, max] per type
bool clamped = false;
#define CLAMP_FIELD(field) do { \
if (parameter_table[id].field < parameter_mins[id].field) { \
parameter_table[id].field = parameter_mins[id].field; clamped = true; \
} else if (parameter_table[id].field > parameter_maxs[id].field) { \
parameter_table[id].field = parameter_maxs[id].field; clamped = true; \
} \
} while (0)
switch (type) {
case PARAM_TYPE_u16:
if (parameter_table[id].u16 < parameter_mins[id].u16) {
parameter_table[id].u16 = parameter_mins[id].u16; clamped = true;
} else if (parameter_table[id].u16 > parameter_maxs[id].u16) {
parameter_table[id].u16 = parameter_maxs[id].u16; clamped = true;
}
break;
case PARAM_TYPE_i16:
if (parameter_table[id].i16 < parameter_mins[id].i16) {
parameter_table[id].i16 = parameter_mins[id].i16; clamped = true;
} else if (parameter_table[id].i16 > parameter_maxs[id].i16) {
parameter_table[id].i16 = parameter_maxs[id].i16; clamped = true;
}
break;
case PARAM_TYPE_u32:
if (parameter_table[id].u32 < parameter_mins[id].u32) {
parameter_table[id].u32 = parameter_mins[id].u32; clamped = true;
} else if (parameter_table[id].u32 > parameter_maxs[id].u32) {
parameter_table[id].u32 = parameter_maxs[id].u32; clamped = true;
}
break;
case PARAM_TYPE_i32:
if (parameter_table[id].i32 < parameter_mins[id].i32) {
parameter_table[id].i32 = parameter_mins[id].i32; clamped = true;
} else if (parameter_table[id].i32 > parameter_maxs[id].i32) {
parameter_table[id].i32 = parameter_maxs[id].i32; clamped = true;
}
break;
case PARAM_TYPE_f32:
if (parameter_table[id].f32 < parameter_mins[id].f32) {
parameter_table[id].f32 = parameter_mins[id].f32; clamped = true;
} else if (parameter_table[id].f32 > parameter_maxs[id].f32) {
parameter_table[id].f32 = parameter_maxs[id].f32; clamped = true;
}
break;
case PARAM_TYPE_f64:
if (parameter_table[id].f64 < parameter_mins[id].f64) {
parameter_table[id].f64 = parameter_mins[id].f64; clamped = true;
} else if (parameter_table[id].f64 > parameter_maxs[id].f64) {
parameter_table[id].f64 = parameter_maxs[id].f64; clamped = true;
}
break;
default:
break;
case PARAM_TYPE_u16: CLAMP_FIELD(u16); break;
case PARAM_TYPE_i16: CLAMP_FIELD(i16); break;
case PARAM_TYPE_u32: CLAMP_FIELD(u32); break;
case PARAM_TYPE_i32: CLAMP_FIELD(i32); break;
case PARAM_TYPE_f32: CLAMP_FIELD(f32); break;
case PARAM_TYPE_f64: CLAMP_FIELD(f64); break;
default: break;
}
#undef CLAMP_FIELD
if (clamped) {
ESP_LOGW(TAG, "Param %s: out of range, clamped", parameter_names[id]);
@@ -387,70 +358,72 @@ const char* get_param_unit(param_idx_t id) {
}
// ============================================================================
// STORAGE HELPER: Pack parameter value into buffer
// STORAGE HELPERS: Pack / unpack parameter value into a fixed buffer
// ============================================================================
// All param_value_t fields share offset 0 of the union, so a single memcpy of
// param_type_size() bytes covers every type. Strings get an explicit
// null-termination on unpack to defend against a corrupted flash entry.
static void pack_param(uint8_t *dest, param_idx_t id) {
param_type_e type = parameter_types[id];
switch(type) {
case PARAM_TYPE_u16:
memcpy(dest, &parameter_table[id].u16, 2);
break;
case PARAM_TYPE_i16:
memcpy(dest, &parameter_table[id].i16, 2);
break;
case PARAM_TYPE_u32:
memcpy(dest, &parameter_table[id].u32, 4);
break;
case PARAM_TYPE_i32:
memcpy(dest, &parameter_table[id].i32, 4);
break;
case PARAM_TYPE_f32:
memcpy(dest, &parameter_table[id].f32, 4);
break;
case PARAM_TYPE_f64:
memcpy(dest, &parameter_table[id].f64, 8);
break;
case PARAM_TYPE_str:
memcpy(dest, parameter_table[id].str, 16);
break;
default:
memset(dest, 0, 16);
break;
size_t sz = param_type_size(type);
if (sz == 0 || sz > sizeof(param_value_t)) { memset(dest, 0, sizeof(param_value_t)); return; }
memcpy(dest, &parameter_table[id], sz);
}
static void unpack_param(const uint8_t *src, param_idx_t id) {
param_type_e type = parameter_types[id];
size_t sz = param_type_size(type);
if (sz == 0 || sz > sizeof(param_value_t)) return;
memcpy(&parameter_table[id], src, sz);
if (type == PARAM_TYPE_str) parameter_table[id].str[PARAM_STR_SIZE - 1] = '\0';
}
// ============================================================================
// Promote a numeric parameter to double for callers that don't care about
// the underlying integer/float width (cJSON, UI display). Returns 0.0 for
// string params — caller must check get_param_type() first when that matters.
// ============================================================================
double param_to_double(param_idx_t id) {
if (id >= NUM_PARAMS) return 0.0;
param_value_t v = parameter_table[id];
switch (parameter_types[id]) {
case PARAM_TYPE_u16: return (double)v.u16;
case PARAM_TYPE_i16: return (double)v.i16;
case PARAM_TYPE_u32: return (double)v.u32;
case PARAM_TYPE_i32: return (double)v.i32;
case PARAM_TYPE_f32: return (double)v.f32;
case PARAM_TYPE_f64: return v.f64;
default: return 0.0;
}
}
// ============================================================================
// STORAGE HELPER: Unpack parameter value from buffer
// Sort the 12 MOVE_TIME_* slots: ascending non-negative values first, then
// every -1 (disabled) entry. Insertion sort over a tiny fixed-width array
// — N=12 makes algorithmic complexity irrelevant. Treating -1 as +infinity
// keeps both the "rank by time" and "disabled goes last" behavior in a
// single comparator. Called by commit_params() so on-disk layout is always
// the canonical sorted order; UI can read MOVE_TIME_0..N back in order.
// ============================================================================
static void unpack_param(const uint8_t *src, param_idx_t id) {
param_type_e type = parameter_types[id];
switch(type) {
case PARAM_TYPE_u16:
memcpy(&parameter_table[id].u16, src, 2);
break;
case PARAM_TYPE_i16:
memcpy(&parameter_table[id].i16, src, 2);
break;
case PARAM_TYPE_u32:
memcpy(&parameter_table[id].u32, src, 4);
break;
case PARAM_TYPE_i32:
memcpy(&parameter_table[id].i32, src, 4);
break;
case PARAM_TYPE_f32:
memcpy(&parameter_table[id].f32, src, 4);
break;
case PARAM_TYPE_f64:
memcpy(&parameter_table[id].f64, src, 8);
break;
case PARAM_TYPE_str:
memcpy(parameter_table[id].str, src, 16);
parameter_table[id].str[15] = '\0'; // Ensure null termination
break;
default:
break;
void sort_move_schedule(void) {
int32_t v[NUM_MOVE_TIMES];
for (int i = 0; i < NUM_MOVE_TIMES; i++) {
v[i] = parameter_table[PARAM_MOVE_TIME_0 + i].i32;
}
for (int i = 1; i < NUM_MOVE_TIMES; i++) {
int32_t key = v[i];
int32_t key_rank = (key < 0) ? INT32_MAX : key;
int j = i - 1;
while (j >= 0) {
int32_t j_rank = (v[j] < 0) ? INT32_MAX : v[j];
if (j_rank <= key_rank) break;
v[j + 1] = v[j];
j--;
}
v[j + 1] = key;
}
for (int i = 0; i < NUM_MOVE_TIMES; i++) {
parameter_table[PARAM_MOVE_TIME_0 + i].i32 = v[i];
}
}
@@ -463,6 +436,11 @@ esp_err_t commit_params(void) {
return ESP_ERR_INVALID_STATE;
}
/* Canonicalize the schedule before writing — on-disk layout is always
* sorted, so anything that reads MOVE_TIME_0..N back can iterate in
* time order without re-sorting. */
sort_move_schedule();
ESP_LOGI(TAG, "Committing %d parameters to flash...", NUM_PARAMS);
// Erase entire params partition
@@ -1157,10 +1135,6 @@ static uint32_t log_read_cursor = 0;
* @return ESP_OK on success, ESP_ERR_NOT_FOUND if no more entries, error code otherwise
*/
esp_err_t log_read(uint8_t* len, uint8_t* buf, uint8_t* type) {
// NOTE: log_read_cursor must be declared as a file-scope static variable
// Add this declaration near the other log static variables in storage.c:
// static uint32_t log_read_cursor = 0;
if (!log_initialized || log_partition == NULL) {
ESP_LOGE(TAG, "Logging not initialized");
return ESP_ERR_INVALID_STATE;

View File

@@ -4,8 +4,6 @@
#include <stdint.h>
#include "esp_err.h"
// TODO: Sanity check that the EEPROM is working (sacrifice sector 0?)
// ============================================================================
// FLASH LAYOUT CONSTANTS
// ============================================================================
@@ -118,7 +116,31 @@ typedef struct {
PARAM_DEF(SAFETY_BREAK_US, u32, 300000, "", 0, 10000000) \
PARAM_DEF(SAFETY_MAKE_US, u32, 1000000, "", 0, 10000000) \
PARAM_DEF(JACK_IS_DOWN, f32, 8.0, "A", 0.0, 200.0) /* deprecated: may duplicate JACK_I_DOWN */ \
PARAM_DEF(FLUFF_PREDRIVE_MS, u32, 2000, "ms", 0, 60000)
PARAM_DEF(FLUFF_PREDRIVE_MS, u32, 2000, "ms", 0, 60000) \
/* Tabular schedule: up to 12 daily move times (seconds since local midnight). \
* A value of -1 marks the slot as disabled — the default. Slots are sorted \
* by commit_params() so non-negative values appear first in ascending order, \
* with -1 entries pushed to the end. Range allows the validator to clamp \
* out-of-band negatives (e.g. -2) back to -1 = disabled. Appended at the \
* end of PARAM_LIST so existing flash layout / CRC offsets stay stable. \
* MOVE_START / MOVE_END / NUM_MOVES above are deprecated; the scheduler \
* no longer reads them and the web UI no longer surfaces them. */ \
PARAM_DEF(MOVE_TIME_0, i32, -1, "s", -1, 86399) \
PARAM_DEF(MOVE_TIME_1, i32, -1, "s", -1, 86399) \
PARAM_DEF(MOVE_TIME_2, i32, -1, "s", -1, 86399) \
PARAM_DEF(MOVE_TIME_3, i32, -1, "s", -1, 86399) \
PARAM_DEF(MOVE_TIME_4, i32, -1, "s", -1, 86399) \
PARAM_DEF(MOVE_TIME_5, i32, -1, "s", -1, 86399) \
PARAM_DEF(MOVE_TIME_6, i32, -1, "s", -1, 86399) \
PARAM_DEF(MOVE_TIME_7, i32, -1, "s", -1, 86399) \
PARAM_DEF(MOVE_TIME_8, i32, -1, "s", -1, 86399) \
PARAM_DEF(MOVE_TIME_9, i32, -1, "s", -1, 86399) \
PARAM_DEF(MOVE_TIME_10, i32, -1, "s", -1, 86399) \
PARAM_DEF(MOVE_TIME_11, i32, -1, "s", -1, 86399)
/* Tabular schedule width. The enum entries above must remain contiguous so
* PARAM_MOVE_TIME_0 + i indexes slot i. */
#define NUM_MOVE_TIMES 12
// Generate enum for parameter indices
#define PARAM_DEF(name, type, default_val, unit, min, max) PARAM_##name,
@@ -179,10 +201,17 @@ const char* get_param_name(param_idx_t id);
param_value_t get_param_default(param_idx_t id);
const char* get_param_unit(param_idx_t id);
const char* get_param_json_string(param_idx_t id, char* buffer, size_t buf_size);
double param_to_double(param_idx_t id); // numeric params only — see storage.c
// Parameter commit to flash
esp_err_t commit_params(void);
/* In-place sort of MOVE_TIME_0..MOVE_TIME_(NUM_MOVE_TIMES-1) so that
* non-negative entries come first in ascending order, with -1 (disabled)
* entries pushed to the end. Called automatically by commit_params() —
* exposed separately for tests / migrations. */
void sort_move_schedule(void);
// Logging functions
esp_err_t log_init(void);
esp_err_t log_write(const uint8_t* buf, uint8_t len, uint8_t type);

File diff suppressed because one or more lines are too long

View File

@@ -270,16 +270,19 @@
<button id="now_btn" onclick="setTimeToNow()">Sync Time</button></td>
</tr>
<tr>
<td>Schedule Start</td>
<td><input type="time" id="UX_MOVE_START" onchange="changeSchedule(this)"/></td>
</tr>
<tr>
<td>Schedule End</td>
<td><input type="time" id="UX_MOVE_END" onchange="changeSchedule(this)"/></td>
</tr>
<tr>
<td># Moves/Day</td>
<td><input type="number" min="0" id="UX_NUM_MOVES" onchange="changeSchedule(this)"/></td>
<td>Schedule</td>
<td>
<!-- Visible rows are rendered by renderSchedule() from the
12 hidden PARAM_MOVE_TIME_N inputs below. -->
<div id="schedule_rows"></div>
<button id="schedule_add_btn" onclick="addScheduleSlot()">+ Add move</button>
<!-- Hidden inputs hold the seconds-of-day value for each of
the 12 schedule slots (-1 = disabled). They participate
in the regular PARAM_* save flow: when the user edits
a row we mark the corresponding hidden input .changed,
and commitParams() picks it up like any other param. -->
<div style="display:none" id="schedule_hidden_inputs"></div>
</td>
</tr>
<tr>
<td>Next Move At</td>
@@ -839,7 +842,140 @@
markChanged(input);
}
const scheduleInputs = ['MOVE_START', 'MOVE_END', 'NUM_MOVES', 'DRIVE_DIST', 'JACK_DIST'];
const scheduleInputs = ['DRIVE_DIST', 'JACK_DIST'];
// ============================================================
// Tabular schedule (up to 12 daily move times)
// ============================================================
// The user thinks in "list of times-of-day". The firmware stores
// 12 i32 params (MOVE_TIME_0..MOVE_TIME_11), each holding either
// seconds-since-local-midnight (0..86399) or -1 = disabled. The
// device sorts the array ascending after every commit so on every
// poll the enabled slots arrive packed at the front in time order.
//
// We back the UI with 12 hidden `<input id="PARAM_MOVE_TIME_N">`
// elements so the values plug into the existing PARAM_* save flow:
// editing a row marks its hidden input .changed, commitParams()
// picks it up like any other param.
const NUM_MOVE_TIMES = 12;
(function initScheduleHiddenInputs() {
const host = ge('schedule_hidden_inputs');
if (!host) return;
for (let i = 0; i < NUM_MOVE_TIMES; i++) {
const inp = document.createElement('input');
inp.type = 'hidden';
inp.id = `PARAM_MOVE_TIME_${i}`;
inp.value = -1;
host.appendChild(inp);
}
})();
function readScheduleSlot(i) {
const inp = ge(`PARAM_MOVE_TIME_${i}`);
return inp ? parseInt(inp.value, 10) : -1;
}
function writeScheduleSlot(i, value) {
const inp = ge(`PARAM_MOVE_TIME_${i}`);
if (!inp) return;
inp.value = value;
markChanged(inp);
}
// Format seconds-of-day as HH:MM for an <input type="time">.
function secondsToHM(seconds) {
const h = Math.floor(seconds / 3600);
const m = Math.floor((seconds % 3600) / 60);
return `${String(h).padStart(2,'0')}:${String(m).padStart(2,'0')}`;
}
function renderSchedule() {
const host = ge('schedule_rows');
if (!host) return;
// If any time input inside the schedule is currently focused,
// the user is mid-edit; re-rendering would steal focus on every
// 2-second poll. Skip — the next poll after blur picks it up.
if (host.contains(document.activeElement)
&& document.activeElement.type === 'time') return;
host.innerHTML = '';
let enabledCount = 0;
for (let i = 0; i < NUM_MOVE_TIMES; i++) {
const v = readScheduleSlot(i);
if (v < 0) continue;
enabledCount++;
const row = document.createElement('div');
row.style.display = 'flex';
row.style.alignItems = 'center';
row.style.gap = '4px';
const t = document.createElement('input');
t.type = 'time';
t.value = secondsToHM(v);
// Capture the slot index — at render time `i` is the slot,
// which is also where the hidden input lives.
t.oninput = ((slot) => () => onScheduleTimeEdit(slot, t.value))(i);
row.appendChild(t);
const x = document.createElement('button');
x.textContent = '✕'; // ✕
x.style.width = '40px';
x.style.flexShrink = '0';
x.onclick = ((slot) => () => onScheduleRemove(slot))(i);
row.appendChild(x);
host.appendChild(row);
}
// The + Add button is disabled when all 12 slots are in use.
const addBtn = ge('schedule_add_btn');
if (addBtn) addBtn.disabled = enabledCount >= NUM_MOVE_TIMES;
}
function onScheduleTimeEdit(slot, hhmm) {
if (!hhmm) return; // empty edit — leave previous value
const parts = hhmm.split(':').map(Number);
if (parts.length < 2 || Number.isNaN(parts[0]) || Number.isNaN(parts[1])) return;
writeScheduleSlot(slot, parts[0] * 3600 + parts[1] * 60);
// Don't re-render: the visible <input> already shows the new
// value and a rebuild would steal focus mid-edit.
}
function onScheduleRemove(slot) {
writeScheduleSlot(slot, -1);
renderSchedule();
}
function addScheduleSlot() {
// Find the first disabled slot and arm it with a default of
// 12:00. Visible rows are sorted alphabetically by storage
// index so the new row appears at whatever position holds the
// first -1 — the device will re-sort canonically on commit.
for (let i = 0; i < NUM_MOVE_TIMES; i++) {
if (readScheduleSlot(i) < 0) {
writeScheduleSlot(i, 12 * 3600);
renderSchedule();
return;
}
}
}
// Called once per /get poll from updateUI(). Syncs the 12 hidden
// inputs from the server's `parameters` object using _safeSet so
// any slot the user has edited (marked .changed) survives the
// sync. renderSchedule() then redraws the visible rows.
function updateScheduleFromServer() {
if (!data.parameters) return;
for (let i = 0; i < NUM_MOVE_TIMES; i++) {
const inp = ge(`PARAM_MOVE_TIME_${i}`);
const v = data.parameters[`MOVE_TIME_${i}`];
if (typeof v === 'number') _safeSet(inp, v);
}
renderSchedule();
}
function changeSchedule(ux_input) {
@@ -1074,7 +1210,8 @@
const seconds = String(dt.getUTCSeconds()).padStart(2, '0');
timeOutput.value = `${year}-${month}-${day}T${hours}:${minutes}:${seconds}`;
} else {
// <=0 means firmware has no alarm scheduled (e.g. NUM_MOVES=0).
// <=0 means firmware has no alarm scheduled — either every
// MOVE_TIME_* slot is -1, or the RTC isn't set yet.
if (timeOutput.type !== 'text') timeOutput.type = 'text';
timeOutput.value = 'DISABLED';
}
@@ -1084,6 +1221,7 @@
if (data.parameters) {
updateParamTable();
updateScheduleInputs();
updateScheduleFromServer();
}
// Update remaining distance (special parameter)
@@ -1095,11 +1233,24 @@
}
// Keys whose inputs live OUTSIDE the auto-generated DANGER ZONE
// table (in the dedicated WiFi section, or commented out entirely).
// Must be filtered in BOTH the build and update paths — otherwise a
// poll sees "no input for NET_SSID" and force-rebuilds the whole
// table every tick, wiping every in-progress edit.
const PARAM_TABLE_SKIP = new Set(['NET_SSID', 'NET_PASS', 'WIFI_SSID', 'WIFI_PASS']);
// table (in the dedicated WiFi section, in the Schedule section, or
// commented out entirely). Must be filtered in BOTH the build and
// update paths — otherwise a poll sees "no input for X" and force-
// rebuilds the whole table every tick, wiping every in-progress edit.
//
// MOVE_START / MOVE_END / NUM_MOVES are kept in firmware for storage
// compatibility but no longer read by the scheduler or surfaced here.
const PARAM_TABLE_SKIP = new Set([
'NET_SSID', 'NET_PASS', 'WIFI_SSID', 'WIFI_PASS',
'MOVE_START', 'MOVE_END', 'NUM_MOVES',
]);
// MOVE_TIME_0..11 are rendered in the dedicated Schedule section;
// exclude them from the DANGER ZONE table the same way (kept as a
// prefix check so we don't have to maintain a 12-entry list).
function paramSkipped(key) {
return PARAM_TABLE_SKIP.has(key) || key.startsWith('MOVE_TIME_');
}
function updateParamTable() {
const table = ge('table');
@@ -1107,7 +1258,7 @@
// Sort parameters alphabetically, pre-filtering keys that don't
// belong in the auto-generated DANGER ZONE table.
const sortedParams = Object.entries(data.parameters)
.filter(([k]) => !PARAM_TABLE_SKIP.has(k))
.filter(([k]) => !paramSkipped(k))
.sort((a, b) => a[0].localeCompare(b[0]));
if (!paramTableCreated) {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -71,6 +71,68 @@ static httpd_handle_t http_server_instance = NULL;
char http_buffer[4096];
static SemaphoreHandle_t http_buffer_mutex = NULL;
/* Run an httpd call; on non-OK, log a "Failed to <what>" message and
* return the error code from the enclosing function. Replaces the
* three-line set_type / log / return triples that dominated handlers. */
#define HTTPD_RET_ON_ERR(expr, what) do { \
esp_err_t _e = (expr); \
if (_e != ESP_OK) { \
ESP_LOGE(TAG, "Failed to %s: %s", what, esp_err_to_name(_e)); \
return _e; \
} \
} while (0)
/* Same but only warns (used when the handler can plausibly proceed even
* if the call failed — typically the trailing Connection: close header). */
#define HTTPD_WARN_ON_ERR(expr, what) do { \
esp_err_t _e = (expr); \
if (_e != ESP_OK) { \
ESP_LOGW(TAG, "Failed to %s: %s", what, esp_err_to_name(_e)); \
} \
} while (0)
/* Read [from, to) from `part` into http_buffer in chunks and stream each
* chunk as an HTTP body fragment. The shared http_buffer is already held
* by the caller via with_http_buffer(). Returns the first error to abort
* the caller's response (and arranges a 500 if the partition read fails). */
static esp_err_t stream_partition_range(httpd_req_t *req,
const esp_partition_t *part,
int32_t from, int32_t to) {
int32_t offset = from;
while (offset < to) {
size_t to_read = MIN(sizeof(http_buffer), (size_t)(to - offset));
esp_err_t err = esp_partition_read(part, offset, http_buffer, to_read);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to read partition at offset %ld: %s",
(long)offset, esp_err_to_name(err));
return httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR,
"Failed to read storage");
}
err = httpd_resp_send_chunk(req, (const char *)http_buffer, to_read);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to send chunk at offset %ld: %s",
(long)offset, esp_err_to_name(err));
return err;
}
offset += to_read;
}
return ESP_OK;
}
/* Schedule a one-shot esp_timer to invoke `cb` `delay_us` from now. Used
* to defer sleep/hibernate/wifi_restart calls until the httpd handler has
* returned — calling httpd_stop()/webserver_stop() inside a handler dead-
* locks because httpd_stop waits for all handlers to drain. `*slot` is
* cached across calls so we don't leak timer handles on repeated requests. */
static void defer_call(esp_timer_handle_t *slot, const char *name,
esp_timer_cb_t cb, uint64_t delay_us) {
if (*slot == NULL) {
esp_timer_create_args_t ta = { .callback = cb, .name = name };
esp_timer_create(&ta, slot);
}
if (*slot != NULL) esp_timer_start_once(*slot, delay_us);
}
static esp_err_t with_http_buffer(httpd_req_t *req,
esp_err_t (*body)(httpd_req_t *)) {
if (http_buffer_mutex != NULL) {
@@ -99,33 +161,13 @@ static esp_err_t root_get_handler(httpd_req_t *req) {
}
bringup_notify_http_request();
// Send the HTML response
esp_err_t err = httpd_resp_set_type(req, "text/html");
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to set response type: %s", esp_err_to_name(err));
return err;
}
err = httpd_resp_set_hdr(req, "Content-Encoding", "gzip");
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to set content encoding header: %s", esp_err_to_name(err));
return err;
}
err = httpd_resp_send(req, (const char *)html_content, html_content_len);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to send HTML response: %s", esp_err_to_name(err));
return err;
}
err = httpd_resp_set_hdr(req, "Connection", "close");
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to set connection header: %s", esp_err_to_name(err));
// Continue anyway
}
return err;
HTTPD_RET_ON_ERR(httpd_resp_set_type(req, "text/html"), "set response type");
HTTPD_RET_ON_ERR(httpd_resp_set_hdr(req, "Content-Encoding", "gzip"), "set content encoding header");
HTTPD_RET_ON_ERR(httpd_resp_send(req, (const char *)html_content, html_content_len),
"send HTML response");
HTTPD_WARN_ON_ERR(httpd_resp_set_hdr(req, "Connection", "close"), "set connection header");
return ESP_OK;
}
// Cache the storage partition pointer to avoid repeated lookups
@@ -294,92 +336,24 @@ static esp_err_t log_handler_locked(httpd_req_t *req) {
return err;
}
// Send log data (same as before)
int32_t offset = tail;
if (tail == head) {
// Empty log, nothing more to send
// Send log data. Three cases:
// tail == head: log is empty, nothing more to stream.
// tail < head: contiguous run [tail, head).
// tail > head: wrapped — stream [tail, partition_end) then [log_start, head).
if (tail < head) {
err = stream_partition_range(req, log_part, tail, head);
if (err != ESP_OK) return err;
} else if (tail > head) {
err = stream_partition_range(req, log_part, tail, (int32_t)log_part->size);
if (err != ESP_OK) return err;
err = stream_partition_range(req, log_part, log_start, head);
if (err != ESP_OK) return err;
}
else if (tail < head) {
// Normal case: tail before head
while (offset < head) {
size_t to_read = MIN(sizeof(http_buffer), head - offset);
err = esp_partition_read(log_part, offset, http_buffer, to_read);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to read partition at offset %ld: %s",
(long)offset, esp_err_to_name(err));
return httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR,
"Failed to read storage");
}
err = httpd_resp_send_chunk(req, (const char *)http_buffer, to_read);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to send chunk at offset %ld: %s",
(long)offset, esp_err_to_name(err));
return err;
}
offset += to_read;
}
}
else {
// Wrapped case: tail after head, read from tail to end, then start to head
while (offset < (int32_t)log_part->size) {
size_t to_read = MIN(sizeof(http_buffer), log_part->size - offset);
err = esp_partition_read(log_part, offset, http_buffer, to_read);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to read partition at offset %ld: %s",
(long)offset, esp_err_to_name(err));
return httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR,
"Failed to read storage");
}
err = httpd_resp_send_chunk(req, (const char *)http_buffer, to_read);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to send chunk at offset %ld: %s",
(long)offset, esp_err_to_name(err));
return err;
}
offset += to_read;
}
// Now read from start to head
offset = log_start;
while (offset < head) {
size_t to_read = MIN(sizeof(http_buffer), head - offset);
err = esp_partition_read(log_part, offset, http_buffer, to_read);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to read partition at offset %ld: %s",
(long)offset, esp_err_to_name(err));
return httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR,
"Failed to read storage");
}
err = httpd_resp_send_chunk(req, (const char *)http_buffer, to_read);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to send chunk at offset %ld: %s",
(long)offset, esp_err_to_name(err));
return err;
}
offset += to_read;
}
}
// Send empty chunk to signal end
err = httpd_resp_send_chunk(req, NULL, 0);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to send final chunk: %s", esp_err_to_name(err));
return err;
}
err = httpd_resp_set_hdr(req, "Connection", "close");
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to set connection header: %s", esp_err_to_name(err));
}
return err;
HTTPD_RET_ON_ERR(httpd_resp_send_chunk(req, NULL, 0), "send final chunk");
HTTPD_WARN_ON_ERR(httpd_resp_set_hdr(req, "Connection", "close"), "set connection header");
return ESP_OK;
}
/**
@@ -567,66 +541,30 @@ static esp_err_t post_handler_locked(httpd_req_t *req) {
return ESP_OK; // Never reached
}
/* All three of these have the same deadlock concern: calling
* httpd_stop() (directly or via webserver_stop / soft_idle_enter /
* hibernate_enter) from inside a handler blocks because httpd_stop()
* waits for all handlers to drain. Defer to a one-shot timer so this
* handler returns first and the httpd task becomes free. */
if (should_restart_wifi) {
/* Same deadlock risk as should_sleep — httpd_stop() inside
* webserver_restart_wifi() cannot be called from within a handler. */
static esp_timer_handle_t s_wifi_restart_timer = NULL;
if (s_wifi_restart_timer == NULL) {
esp_timer_create_args_t ta = {
.callback = webserver_restart_wifi_cb,
.name = "wifi_restart",
};
esp_timer_create(&ta, &s_wifi_restart_timer);
}
if (s_wifi_restart_timer != NULL) {
esp_timer_start_once(s_wifi_restart_timer, 500 * 1000); /* 500 ms in µs */
}
defer_call(&s_wifi_restart_timer, "wifi_restart", webserver_restart_wifi_cb, 500 * 1000);
return ESP_OK;
}
if (should_sleep) {
ESP_LOGI(TAG, "Entering soft idle in 2 seconds...");
/* Cannot call soft_idle_enter() (→ httpd_stop()) from within an httpd
* handler — httpd_stop() waits for all handlers to finish, causing a
* deadlock. Schedule via a one-shot timer so this handler returns
* first and the httpd task is free. */
static esp_timer_handle_t s_sleep_timer = NULL;
if (s_sleep_timer == NULL) {
esp_timer_create_args_t ta = {
.callback = soft_idle_enter_cb,
.name = "soft_idle",
};
esp_timer_create(&ta, &s_sleep_timer);
}
if (s_sleep_timer != NULL) {
esp_timer_start_once(s_sleep_timer, 2000 * 1000); /* 2 s in µs */
}
defer_call(&s_sleep_timer, "soft_idle", soft_idle_enter_cb, 2000 * 1000);
return ESP_OK;
}
if (should_hibernate) {
ESP_LOGI(TAG, "Hibernating in 2 seconds...");
static esp_timer_handle_t s_hibernate_timer = NULL;
defer_call(&s_hibernate_timer, "hibernate", hibernate_enter_cb, 2000 * 1000);
return ESP_OK;
}
if (should_hibernate) {
ESP_LOGI(TAG, "Hibernating in 2 seconds...");
/* Same deadlock concern as soft_idle: webserver_stop() inside
* hibernate_enter() blocks on the httpd task; defer via timer. */
static esp_timer_handle_t s_hibernate_timer = NULL;
if (s_hibernate_timer == NULL) {
esp_timer_create_args_t ta = {
.callback = hibernate_enter_cb,
.name = "hibernate",
};
esp_timer_create(&ta, &s_hibernate_timer);
}
if (s_hibernate_timer != NULL) {
esp_timer_start_once(s_hibernate_timer, 2000 * 1000); /* 2 s in µs */
}
return ESP_OK;
}
err = httpd_resp_set_hdr(req, "Connection", "close");
if (err != ESP_OK) {
ESP_LOGW(TAG, "Failed to set connection header: %s", esp_err_to_name(err));
}
HTTPD_WARN_ON_ERR(httpd_resp_set_hdr(req, "Connection", "close"), "set connection header");
return err;
}

View File

@@ -1,49 +0,0 @@
@echo off
REM ESP32 OTA Deployment Script for Windows
setlocal
REM Configuration
set ESP32_IP=192.168.4.1
set PROJECT_NAME=SC-F001
set BUILD_DIR=build
set BINARY_FILE=%BUILD_DIR%\%PROJECT_NAME%.bin
echo ========================================
echo ESP32 OTA Deployment Script
echo ========================================
REM Step 1: Check if binary exists
if not exist "%BINARY_FILE%" (
echo Error: Binary file not found at %BINARY_FILE%
echo Please update PROJECT_NAME in this script
exit /b 1
)
for %%A in ("%BINARY_FILE%") do set BINARY_SIZE=%%~zA
echo Binary size: %BINARY_SIZE% bytes
REM Step 2: Upload via OTA
echo.
echo [2/3] Uploading to ESP32 at %ESP32_IP%...
curl -X POST --data-binary @"%BINARY_FILE%" -w "HTTP Code: %%{http_code}\n" -o nul "http://%ESP32_IP%/ota"
if %ERRORLEVEL% NEQ 0 (
echo Upload failed! Is the ESP32 reachable at %ESP32_IP%?
exit /b 1
)
echo Upload successful!
echo ESP32 should be rebooting now...
REM Step 3: Wait for reboot
echo.
echo [3/3] Waiting for ESP32 to reboot...
timeout /t 5 /nobreak > nul
echo Deployment complete!
echo Check your device to verify it's running the new firmware.
exit /b 0

145
temp.txt

File diff suppressed because one or more lines are too long