rtc craziness

This commit is contained in:
Thaddeus Hughes
2026-03-11 09:01:32 -05:00
parent e2451fce78
commit f4077e5e26
40 changed files with 45559 additions and 131 deletions

BIN
logtool/04MAR2026_1505.bin Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,4 @@
requests
matplotlib
tabulate
pyserial

View File

@@ -0,0 +1,45 @@
Raw serial log : logtool/rtc_raw_20260310_132756.txt
Analysis log : logtool/rtc_analysis_20260310_132756.txt
[1] Opening COM3 at 115200 baud and resetting board...
EN pulsed. Waiting for boot... Boot complete.
[SYNC] Setting device RTC to host time 1773167278 (2026-03-10 18:27:58 UTC)...
OK
[BASE] Baseline RTCDEBUG:
device_time : 1773167278 (2026-03-10 18:27:58 UTC)
host_time : 1773167279 (2026-03-10 18:27:59 UTC)
slow_clk_src : NOT XTAL32K — check crystal!
crystal_ok : True
[sleep] Sending sleep command...
[wait] 135s until wakeup (cycle 1/1, ETA 13:28:02 + 135s) 135s 130s 125s 120s 115s 110s 105s 100s 95s 90s 85s 80s 75s 70s 65s 60s 55s 50s 45s 40s 35s 30s 25s 20s 15s 10s 5s
[wake] Reconnecting to COM3...
Prompt not seen — forcing board reset...
[POST] Post-sleep RTCDEBUG:
device_time : 3 (1970-01-01 00:00:03 UTC)
host_time : 1773167436 (2026-03-10 18:30:36 UTC)
slow_clk_src : NOT XTAL32K — check crystal!
sleep_add : 0s
reset_reason : POWER_ON
Cycle Host time (UTC) Device time (UTC) CycDrift CumDrift Rate s/hr XTAL Notes
----- ------------------- ------------------- -------- -------- ---------- ------ -----
1 2026-03-10 18:30:36 1970-01-01 00:00:03 -1773167432s -1773167432s -40658616275.2 OK
=== RESULT ===
host elapsed : 157s
device elapsed: -1773167275s
drift : -1773167432s
[FAIL] Clock accuracy (-1773167432s (tolerance +/-5s))
[FAIL] reset_reason == DEEP_SLEEP (POWER_ON)
[FAIL] sleep_add == 120s (0s)
[PASS] 32kHz crystal running (NOT XTAL32K — check crystal!)
[FAIL] rtc_set == true (false)
Overall: FAIL

View File

@@ -0,0 +1,49 @@
Raw serial log : logtool/rtc_raw_20260310_133445.txt
Analysis log : logtool/rtc_analysis_20260310_133445.txt
[1] Opening COM3 at 115200 baud and resetting board...
EN pulsed. Waiting for boot prompt... OK
[SYNC] Setting device RTC to 1773167687 (2026-03-10 18:34:47 UTC)...
OK
[BASE] Baseline RTCDEBUG:
device_time : 1773167687 (2026-03-10 18:34:47 UTC)
host_time : 1773167688 (2026-03-10 18:34:48 UTC)
slow_clk_src : NOT XTAL32K — check crystal!
crystal_ok : False
clock_offset : 1773167686s (device_time - uptime)
[sleep] Sending sleep command at 13:34:48.234...
[wait] 130s (cycle 1/1, countdown from 13:34:53) 130s 125s 120s 115s 110s 105s 100s 95s 90s 85s 80s 75s 70s 65s 60s 55s 50s 45s 40s 35s 30s 25s 20s 15s 10s 5s
[wake] Listening for boot prompt (up to 30s)...
No prompt -- closing and reopening port (explicit DTR/RTS control)...
Connected (NOTE: port was reopened -- reset_reason may be POWER_ON)
[POST] Post-sleep RTCDEBUG:
device_time : 0 (N/A UTC)
host_time : 1773167856 (2026-03-10 18:37:36 UTC)
slow_clk_src : ?
sleep_add : 0s
reset_reason : POWER_ON
clock_offset : 0s
Cycle Host time (UTC) Device time (UTC) CycDrift CumDrift Rate s/hr XTAL Notes
----- ------------------- ------------------- --------- --------- ---------- ------- -----
1 2026-03-10 18:37:36 N/A -1773167855s -1773167855s -37996454035.7 OK
=== RESULT ===
host elapsed : 168s
device elapsed : -1773167687s
drift : -1773167855s
[FAIL] Clock accuracy (-1773167855s (tolerance +/-5s))
[FAIL] reset_reason == DEEP_SLEEP (POWER_ON)
[FAIL] sleep_add == 120s (0s)
[PASS] 32kHz crystal running
[FAIL] rtc_set == true (false)
Overall: FAIL

View File

@@ -0,0 +1,43 @@
Raw serial log : logtool/rtc_raw_20260310_134529.txt
Analysis log : logtool/rtc_analysis_20260310_134529.txt
[1] Opening COM3 at 115200 baud and resetting board...
EN pulsed. Waiting for boot prompt... OK
Multi-cycle mode: 30 cycles x 120s = ~60 min
[INIT] Syncing device RTC to 1773168335 (2026-03-10 18:45:35 UTC)...
OK
[INIT] Baseline RTCDEBUG:
device_t0 : 1773168335 (2026-03-10 18:45:35 UTC)
host_t0 : 1773168336 (2026-03-10 18:45:36 UTC)
slow_clk_src : XTAL32K (OK)
crystal_ok : True
clock_offset : 1773168331s (should stay near-constant if clock tracks correctly)
Starting 30 cycles x ~175s = ~87 min
ETA: 13:45 + 87m (finish ~15:13)
Clock will NOT be re-synced -- drift accumulates intentionally.
Cycle Host time (UTC) Device time (UTC) CycDrift CumDrift Rate s/hr XTAL Notes
----- ------------------- ------------------- --------- --------- ---------- ------- -----
[sleep] Sending sleep command at 13:45:36.371...
[wait] 105s countdown (cycle 1/30, from 13:45:41, device wakes ~15s after countdown ends) 105s 100s 95s 90s 85s 80s 75s 70s 65s 60s 55s 50s 45s 40s 35s 30s 25s 20s 15s 10s 5s
[wake] Listening for boot prompt (up to 55s)...
No prompt after wait -- performing controlled board reset (port stays open)...
NOTE: reset_reason will be POWER_ON for this cycle, not DEEP_SLEEP.
1 2026-03-10 18:48:24 1970-01-01 00:00:01 -1773168502s -1773168502s -37996467900.0 OK reason=POWER_ON offset_chg=-1773168331s
[sleep] Sending sleep command at 13:48:24.581...
[wait] 105s countdown (cycle 2/30, from 13:48:29, device wakes ~15s after countdown ends) 105s 100s 95s 90s 85s 80s 75s 70s 65s 60s 55s 50s 45s 40s 35s 30s 25s 20s 15s 10s 5s
[wake] Listening for boot prompt (up to 55s)...
No prompt after wait -- performing controlled board reset (port stays open)...
NOTE: reset_reason will be POWER_ON for this cycle, not DEEP_SLEEP.
WARNING: RTCDEBUG parse failed on cycle 2 -- skipping
[sleep] Sending sleep command at 13:51:14.819...
[wait] 105s countdown (cycle 3/30, from 13:51:19, device wakes ~15s after countdown ends) 105s 100s 95s 90s 85s 80s 75s

View File

@@ -0,0 +1,21 @@
Raw log : logtool/rtc_raw_20260310_135504.txt
Analysis log : logtool/rtc_analysis_20260310_135504.txt
Port : COM3 115200 baud
Ctrl+C to stop.
[13:55:04.538] Resetting board...
[13:55:07.288] Boot complete.
[13:55:07.288] Syncing device RTC to host: 1773168907 (2026-03-10 18:55:07 UTC)...
[13:55:07.615] Sync OK.
# Wall clock (host) Device time (UTC) Diff Source Uptime
-- ------------------- ------------------- ------ -------- ------
Streaming... (device will sleep after 180s inactivity, wake every 120s)
[14:04:29.495] Stopped by user.
No TIME events captured.

View File

@@ -0,0 +1,31 @@
Raw log : logtool/rtc_raw_20260310_144044.txt
Analysis log : logtool/rtc_analysis_20260310_144044.txt
Port : COM3 115200 baud
Ctrl+C to stop.
[14:40:44.532] Resetting board...
[14:40:47.184] Boot complete.
[14:40:47.184] Syncing device RTC to host: 1773171647 (2026-03-10 19:40:47 UTC)...
[14:40:47.514] Sync OK.
# Wall clock (host) Device time (UTC) Diff Source Uptime
-- ------------------- ------------------- ------ -------- ------
Streaming... (device will sleep after 180s inactivity, wake every 120s)
1 2026-03-10 19:41:49 2026-03-10 19:43:44 +115s SLEEP 1s
2 2026-03-10 19:43:07 2026-03-10 19:46:57 +230s SLEEP 1s
3 2026-03-10 19:43:23 2026-03-10 19:49:10 +347s SLEEP 1s
4 2026-03-10 19:44:00 2026-03-10 19:51:41 +461s SLEEP 1s
5 2026-03-10 19:50:42 2026-03-10 20:00:17 +575s SLEEP 1s
6 2026-03-10 19:56:44 2026-03-10 20:06:19 +575s SLEEP 1s
7 2026-03-10 19:58:45 2026-03-10 20:08:19 +574s SLEEP 1s
8 2026-03-10 20:00:47 2026-03-10 20:10:19 +572s SLEEP 1s
9 2026-03-10 20:02:48 2026-03-10 20:12:19 +571s SLEEP 1s
10 2026-03-10 20:08:19 2026-03-10 20:17:50 +571s SLEEP 1s
[15:10:04.323] Stopped by user.
10 event(s) logged to logtool/rtc_analysis_20260310_144044.txt

View File

@@ -0,0 +1,24 @@
Raw log : logtool/rtc_raw_20260310_154958.txt
Analysis log : logtool/rtc_analysis_20260310_154958.txt
Port : COM3 115200 baud
Ctrl+C to stop.
[15:49:58.745] Resetting board...
[15:50:01.425] Boot complete.
[15:50:01.426] Syncing device RTC to host: 1773175801 (2026-03-10 20:50:01 UTC)...
[15:50:01.756] Sync OK.
# Wall clock (host) Device time (UTC) Diff Source Uptime
-- ------------------- ------------------- ------ -------- ------
Streaming... (device will sleep after 180s inactivity, wake every 120s)
1 2026-03-10 20:50:36 2026-03-10 20:50:35 -1s SLEEP 1s
2 2026-03-10 20:50:50 2026-03-10 20:50:49 -1s SLEEP 1s
3 2026-03-10 21:08:36 2026-03-10 21:08:30 -6s SLEEP 1s
[16:10:53.545] Stopped by user.
3 event(s) logged to logtool/rtc_analysis_20260310_154958.txt

View File

@@ -0,0 +1,17 @@
Raw log : logtool/rtc_raw_20260310_161314.txt
Analysis log : logtool/rtc_analysis_20260310_161314.txt
Port : COM3 115200 baud
Ctrl+C to stop.
[16:13:14.819] Resetting board...
[16:13:17.490] Boot complete.
[16:13:17.491] Syncing device RTC to host: 1773177197 (2026-03-10 21:13:17 UTC)...
[16:13:17.779] Sync OK.
# Wall clock (host) Device time (UTC) Diff Source Uptime
-- ------------------- ------------------- ------ -------- ------
Streaming... (device will sleep after 180s inactivity, wake every 120s)

View File

@@ -0,0 +1,21 @@
Raw log : logtool/rtc_raw_20260310_162229.txt
Analysis log : logtool/rtc_analysis_20260310_162229.txt
Port : COM3 115200 baud
Ctrl+C to stop.
[16:22:29.657] Resetting board...
[16:22:32.317] Boot complete.
[16:22:32.318] Syncing device RTC to host: 1773177752 (2026-03-10 21:22:32 UTC)...
[16:22:32.647] Sync OK.
# Wall clock (host) Device time (UTC) Diff Source Uptime
-- ------------------- ------------------- ------ -------- ------
Streaming... (device will sleep after 180s inactivity, wake every 120s)
[16:23:07.577] Stopped by user.
No TIME events captured.

View File

@@ -0,0 +1,5 @@
Raw log : logtool/rtc_raw_20260311_085444.txt
Analysis log : logtool/rtc_analysis_20260311_085444.txt
Port : COM3 115200 baud
Ctrl+C to stop.

View File

@@ -0,0 +1,2 @@
cycle,host_ts,host_utc,device_ts,device_utc,cycle_host_elapsed,cycle_device_elapsed,cycle_drift,cumulative_drift,drift_rate_s_per_hr,clock_offset,clock_offset_delta,sleep_add,reset_reason,slow_clk_src
1,1773168504,2026-03-10 18:48:24,1,1970-01-01 00:00:01,168,-1773168334,-1773168502,-1773168502,-37996467900.00,0,-1773168331,0,POWER_ON,XTAL32K (OK)
1 cycle host_ts host_utc device_ts device_utc cycle_host_elapsed cycle_device_elapsed cycle_drift cumulative_drift drift_rate_s_per_hr clock_offset clock_offset_delta sleep_add reset_reason slow_clk_src
2 1 1773168504 2026-03-10 18:48:24 1 1970-01-01 00:00:01 168 -1773168334 -1773168502 -1773168502 -37996467900.00 0 -1773168331 0 POWER_ON XTAL32K (OK)

358
logtool/rtc_drift_run.txt Normal file
View File

@@ -0,0 +1,358 @@
[1] Opening COM3 at 115200 baud and resetting board...
EN pulsed. Waiting for boot output...
ets Jul 29 2019 12:21:46
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:7176
load:0x40078000,len:16092
ho 0 tail 12 room 4
load:0x40080400,len:4
load:0x40080404,len:3912
entry 0x40080640
I (31) boot: ESP-IDF v5.3.1-dirty 2nd stage bootloader
I (31) boot: compile time Mar 4 2026 13:08:05
I (31) boot: Multicore bootloader
I (36) boot: chip revision: v3.1
I (40) boot.esp32: SPI Speed : 40MHz
I (44) boot.esp32: SPI Mode : DIO
I (49) boot.esp32: SPI Flash Size : 8MB
I (53) boot: Enabling RNG early entropy source...
I (59) boot: Partition Table:
I (62) boot: ## Label Usage Type ST Offset Length
I (70) boot: 0 nvs WiFi data 01 02 00009000 00004000
I (77) boot: 1 otadata OTA data 01 00 0000d000 00002000
I (84) boot: 2 phy_init RF data 01 01 0000f000 00001000
I (92) boot: 3 ota_0 OTA app 00 10 00010000 00180000
I (99) boot: 4 ota_1 OTA app 00 11 00190000 00180000
I (107) boot: 5 storage Unknown data 01 40 00310000 00020000
I (114) boot: End of partition table
I (119) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=409d0h (264656) map
I (218) esp_image: segment 1: paddr=000509f8 vaddr=3ff80063 size=00008h ( 8) load
I (218) esp_image: segment 2: paddr=00050a08 vaddr=3ffbdb60 size=0648ch ( 25740) load
I (233) esp_image: segment 3: paddr=00056e9c vaddr=40080000 size=0917ch ( 37244) load
I (248) esp_image: segment 4: paddr=00060020 vaddr=400d0020 size=ffbf0h (1047536) map
I (607) esp_image: segment 5: paddr=0015fc18 vaddr=4008917c size=11f50h ( 73552) load
I (636) esp_image: segment 6: paddr=00171b70 vaddr=400c0000 size=00064h ( 100) load
I (637) esp_image: segment 7: paddr=00171bdc vaddr=50000000 size=0004ch ( 76) load
I (656) boot: Loaded app from partition at offset 0x10000
I (656) boot: Disabling RNG early entropy source...
I (668) cpu_start: Multicore app
W (830) clk: 32 kHz XTAL not found, switching to internal 150 kHz oscillator
I (838) cpu_start: Pro cpu start user code
I (838) cpu_start: cpu freq: 160000000 Hz
I (839) app_init: Application information:
I (843) app_init: Project name: SC-F001
I (848) app_init: App version: e2451fc-dirty
I (853) app_init: Compile time: Mar 5 2026 16:20:24
I (859) app_init: ELF file SHA256: 3aee52b89...
I (865) app_init: ESP-IDF: v5.3.1-dirty
I (870) efuse_init: Min chip rev: v0.0
I (875) efuse_init: Max chip rev: v3.99 
I (880) efuse_init: Chip rev: v3.1
I (885) heap_init: Initializing. RAM available for dynamic allocation:
I (892) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM
I (898) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM
I (904) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM
I (910) heap_init: At 3FFCDD48 len 000122B8 (72 KiB): DRAM
I (916) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (922) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (929) heap_init: At 4009B0CC len 00004F34 (19 KiB): IRAM
I (937) spi_flash: detected chip: generic
I (940) spi_flash: flash io: dio
W (944) i2c: This driver is an old driver, please migrate your application code to adapt `driver/i2c_master.h`
I (955) coexist: coex firmware version: 4482466
I (960) main_task: Started on CPU0
I (970) main_task: Calling app_main()
W (970) RTC: Slow clock source is 0 — expected XTAL32K (1). Check sdkconfig.
I (970) RTC: Wakeup: normal boot
I (980) MAIN: Firmware: V_e2451fc-dirty (2026-03-05 22:20:22)
I (980) MAIN: Version: e2451fc-dirty
I (990) MAIN: Branch: main
I (990) MAIN: Built: 2026-03-05 22:20:22
I (990) STORAGE: Initializing storage system...
I (1000) STORAGE: Storage partition found: size=131072 bytes
I (1010) STORAGE: Log init: scanning 28 sectors with bisection
I (1030) STORAGE: Log system initialized (bisection). Head: 131072, Tail: 16384
I (1030) STORAGE: Log writer task started
I (1030) STORAGE: Log wr
========================================
UART JSON Interface Ready
========================================
Type 'HELP' for available commands
Type 'GET' to see system status
> I (1050) UART: UART interface started
I (1050) gpio: GPIO[25]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 
I (1060) RF: RF receiver task started on core 0
I (1070) BTDM_INIT: BT controller compile version [b022216]
I (1070) BTDM_INIT: Bluetooth MAC: 94:54:c5:38:c4:3a
I (1080) phy_init: phy_version 4830,54550f7,Jun 20 2024,14:22:08
E (1090) phy_init: esp_phy_load_cal_data_from_nvs: NVS has not been initialized. Call nvs_flash_init before starting WiFi/BT.
W (1100) phy_init: failed to load RF calibration data (0x1101), falling back to full calibration
W (1170) phy_init: saving new calibration data because of checksum failure, mode(2)
E (1410) BT_OSI: config_new: NVS not initialized. Call nvs_flash_init before initializing bluetooth.
W (1410) BT_BTC: btc_config_init unable to load config file; starting unconfigured.

E (1410) BT_OSI: config_save: NVS not initialized. Call nvs_flash_init before initializing bluetooth.
E (1420) BT_OSI: config_save, err_code: 0x2

E (1480) BT_APPL: bta_gattc_co_cache_addr_init, Line = 436, nvs flash open fail, err_code = 1101
E (1500) BT_OSI: config_save: NVS not initialized. Call nvs_flash_init before initializing bluetooth.
E (1500) BT_OSI: config_save, err_code: 0x2

E (1510) BT_OSI: config_save: NVS not initialized. Call nvs_flash_init before initializing bluetooth.
E (1520) BT_OSI: config_save, err_code: 0x2

E (1520) BT_OSI: config_save: NVS not initialized. Call nvs_flash_init before initializing bluetooth.
E (1530) BT_OSI: config_save, err_code: 0x2

E (1540) BT_OSI: config_save: NVS not initialized. Call nvs_flash_init before initializing bluetooth.
E (1550) BT_OSI: config_save, err_code: 0x2

I (1560) BT_HID: Scanning for HID devices (3s)...
I (1560) BT_HID: BLE HID host initialised
I (1560) gpio: GPIO[14]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:3 
I (1570) WEBSERVER: Initializing webserver...
I (1570) gpio: GPIO[27]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:3 
I (1590) WEBSERVER: AP LAUNCHING
I (1610) WEBSERVER: AP LAUNCHING...
I (1610) WEBSERVER: HI THERE
I (1630) wifi:wifi driver task: 3ffe2808, prio:23, stack:6656, core=0
I (1640) wifi:wifi firmware version: ccaebfa
I (1640) wifi:wifi certification version: v7.0
I (1640) wifi:config NVS flash: enabled
I (1640) wifi:config nano formating: disabled
I (1640) wifi:Init data frame dynamic rx buffer num: 32
I (1650) wifi:Init static rx mgmt buffer num: 5
I (1650) wifi:Init management short buffer num: 32
I (1650) wifi:Init dynamic tx buffer num: 32
I (1660) wifi:Init static rx buffer size: 1600
I (1660) wifi:Init static rx buffer num: 10
I (1670) wifi:Init dynamic rx buffer num: 32
I (1680) wifi_init: rx ba win: 6
I (1680) wifi_init: accept mbox: 6
I (1680) wifi_init: tcpip mbox: 32
I (1680) wifi_init: udp mbox: 6
I (1690) wifi_init: tcp mbox: 6
I (1690) wifi_init: tcp tx win: 5760
I (1690) wifi_init: tcp rx win: 5760
I (1700) wifi_init: tcp mss: 1440
I (1710) wifi:mode : softAP (94:54:c5:38:c4:39)
I (1720) wifi:Total power save buffer number: 16
I (1720) wifi:Init max length of beacon: 752/752
I (1720) wifi:Init max length of beacon: 752/752
I (1730) esp_netif_lwip: DHCP server started on interface WIFI_AP_DEF with IP: 192.168.4.1
I (1730) DNS_SERVER: DNS server started on port 53
I (1740) mdns_mem: mDNS task will be created from internal RAM
I (1740) WEBSERVER: SoftAP ready. SSID: sc.local, Channel: 6, Password: password
I (1760) WEBSERVER: Access at: http://sc.local or http://sc.local.local or http://192.168.4.1
I (1760) WEBSERVER: AP LAUNCHED
I (1760) WEBSERVER: STARTING HTTP
I (1770) WEBSERVER: HTTP server started successfully
I (1770) WEBSERVER: Registered URI handler: /
I (1780) WEBSERVER: Registered URI handler: /get
I (1780) WEBSERVER: Registered URI handler: /post
I (1790) WEBSERVER: Registered URI handler: /log
I (1790) WEBSERVER: Registered URI handler: /ota
I (1800) WEBSERVER: Registered URI handler: /*
I (1800) WEBSERVER: Webserver initialization complete
E rmt: hw buffer too small, received symbols truncated
E rmt: hw buffer too small, received symbols truncated
I (2110) wifi:new:<6,1>, old:<6,1>, ap:<6,1>, sta:<255,255>, prof:6, snd_ch_cfg:0x0
I (2110) wifi:station: 84:5c:f3:b4:49:ed join, AID=1, bgn, 40U
E rmt: hw buffer too small, received symbols truncated
I (2170) WEBSERVER: Station connected, AID=1
I (2210) esp_netif_lwip: DHCP server assigned IP to a client, IP is: 192.168.4.2
I (2670) wifi:<ba-add>idx:2 (ifx:1, 84:5c:f3:b4:49:ed), tid:0, ssn:23, winSize:64
E rmt: hw buffer too small, received symbols truncated
>
> W (3320) httpd_txrx: httpd_resp_send_err: 404 Not Found - Nothing matches the given URI
W (3420) httpd_txrx: httpd_resp_send_err: 404 Not Found - Nothing matches the given URI
E rmt: hw buffer too small, received symbols truncated

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,369 @@
[13:34:45.721 RX] ets Jul 29 2019 12:21:46
[13:34:45.721 RX]
[13:34:45.721 RX] rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
[13:34:45.721 RX] configsip: 0, SPIWP:0xee
[13:34:45.721 RX] clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
[13:34:45.721 RX] mode:DIO, clock div:2
[13:34:45.721 RX] load:0x3fff0030,len:7176
[13:34:45.721 RX] load:0x40078000,len:160
[13:34:45.771 RX] 92
[13:34:45.771 RX] ho 0 tail 12 room 4
[13:34:45.771 RX] load:0x40080400,len:4
[13:34:45.771 RX] load:0x40080404,len:3912
[13:34:45.771 RX] entry 0x40080640
[13:34:45.771 RX] I (31) boot: ESP-IDF v5.3.1-dirty 2nd stage bootloader
[13:34:45.771 RX] I (31) boot: compile time Mar 4 2026 13:08:05
[13:34:45.771 RX] I (31) boot: Multicore bootload
[13:34:45.822 RX] er
[13:34:45.822 RX] I (36) boot: chip revision: v3.1
[13:34:45.822 RX] I (40) boot.esp32: SPI Speed : 40MHz
[13:34:45.822 RX] I (44) boot.esp32: SPI Mode : DIO
[13:34:45.822 RX] I (49) boot.esp32: SPI Flash Size : 8MB
[13:34:45.822 RX] I (53) boot: Enabling RNG early entrop
[13:34:45.872 RX] y source...
[13:34:45.872 RX] I (59) boot: Partition Table:
[13:34:45.872 RX] I (62) boot: ## Label Usage Type ST Offset Length
[13:34:45.872 RX] I (70) boot: 0 nvs WiFi data 01 02 00009000 00004000
[13:34:45.872 RX] I (77) boot: 1 otad
[13:34:45.923 RX] ata OTA data 01 00 0000d000 00002000
[13:34:45.923 RX] I (84) boot: 2 phy_init RF data 01 01 0000f000 00001000
[13:34:45.923 RX] I (92) boot: 3 ota_0 OTA app 00 10 00010000 00180000
[13:34:45.923 RX] I (99) boot: 4 ot
[13:34:45.973 RX] a_1 OTA app 00 11 00190000 00180000
[13:34:45.973 RX] I (107) boot: 5 storage Unknown data 01 40 00310000 00020000
[13:34:45.973 RX] I (114) boot: End of partition table
[13:34:45.973 RX] I (119) esp_image: segment 0: paddr=00010020 vaddr=3
[13:34:46.024 RX] f400020 size=409d0h (264656) map
[13:34:46.024 RX] I (218) esp_image: segment 1: paddr=000509f8 vaddr=3ff80063 size=00008h ( 8) load
[13:34:46.024 RX] I (218) esp_image: segment 2: paddr=00050a08 vaddr=3ffbdb60 size=0648ch ( 25740) load
[13:34:46.024 RX] I (233) esp_ima
[13:34:46.286 RX] ge: segment 3: paddr=00056e9c vaddr=40080000 size=0917ch ( 37244) load
[13:34:46.286 RX] I (248) esp_image: segment 4: paddr=00060020 vaddr=400d0020 size=ffbf0h (1047536) map
[13:34:46.286 RX] I (607) esp_image: segment 5: paddr=0015fc18 vaddr=4008
[13:34:46.336 RX] 917c size=11f50h ( 73552) load
[13:34:46.337 RX] I (636) esp_image: segment 6: paddr=00171b70 vaddr=400c0000 size=00064h ( 100) load
[13:34:46.337 RX] I (637) esp_image: segment 7: paddr=00171bdc vaddr=50000000 size=0004ch ( 76) load
[13:34:46.337 RX] I (656) boot: Loa
[13:34:46.517 RX] ded app from partition at offset 0x10000
[13:34:46.517 RX] I (656) boot: Disabling RNG early entropy source...
[13:34:46.517 RX] I (668) cpu_start: Multicore app
[13:34:46.517 RX] W (830) clk: 32 kHz XTAL not found, switching to internal 150 kHz oscillator
[13:34:46.517 RX] I (83
[13:34:46.568 RX] 8) cpu_start: Pro cpu start user code
[13:34:46.568 RX] I (838) cpu_start: cpu freq: 160000000 Hz
[13:34:46.568 RX] I (838) app_init: Application information:
[13:34:46.568 RX] I (843) app_init: Project name: SC-F001
[13:34:46.568 RX] I (848) app_init: App version: e2451
[13:34:46.618 RX] fc-dirty
[13:34:46.618 RX] I (853) app_init: Compile time: Mar 5 2026 16:20:24
[13:34:46.618 RX] I (859) app_init: ELF file SHA256: 3aee52b89...
[13:34:46.618 RX] I (865) app_init: ESP-IDF: v5.3.1-dirty
[13:34:46.618 RX] I (870) efuse_init: Min chip rev: v0.0[
[13:34:46.668 RX] 0m
[13:34:46.668 RX] I (875) efuse_init: Max chip rev: v3.99
[13:34:46.668 RX] I (880) efuse_init: Chip rev: v3.1
[13:34:46.668 RX] I (885) heap_init: Initializing. RAM available for dynamic allocation:
[13:34:46.668 RX] I (892) heap_init: At 3FFAFF10 len 000000F0 (0 KiB
[13:34:46.718 RX] ): DRAM
[13:34:46.718 RX] I (898) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM
[13:34:46.718 RX] I (904) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM
[13:34:46.718 RX] I (910) heap_init: At 3FFCDD48 len 000122B8 (72 KiB): DRAM
[13:34:46.718 RX] I (916) heap_init: At 3F
[13:34:46.769 RX] FE0440 len 00003AE0 (14 KiB): D/IRAM
[13:34:46.769 RX] I (922) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
[13:34:46.769 RX] I (929) heap_init: At 4009B0CC len 00004F34 (19 KiB): IRAM
[13:34:46.769 RX] I (937) spi_flash: detected chip: generic
[13:34:46.769 RX] I (940)
[13:34:46.819 RX] spi_flash: flash io: dio
[13:34:46.819 RX] W (944) i2c: This driver is an old driver, please migrate your application code to adapt `driver/i2c_master.h`
[13:34:46.819 RX] I (955) coexist: coex firmware version: 4482466
[13:34:46.819 RX] I (960) main_task: Started on CPU0[
[13:34:46.869 RX] 0m
[13:34:46.869 RX] I (970) main_task: Calling app_main()
[13:34:46.869 RX] W (970) RTC: Slow clock source is 0 — expected XTAL32K (1). Check sdkconfig.
[13:34:46.869 RX] I (970) RTC: Wakeup: normal boot
[13:34:46.869 RX] I (980) MAIN: Firmware: V_e2451fc-dirty (2026-03-05 22:20:2
[13:34:46.920 RX] 2)
[13:34:46.920 RX] I (980) MAIN: Version: e2451fc-dirty
[13:34:46.920 RX] I (990) MAIN: Branch: main
[13:34:46.920 RX] I (990) MAIN: Built: 2026-03-05 22:20:22
[13:34:46.920 RX] I (990) STORAGE: Initializing storage system...
[13:34:46.920 RX] I (1000) STORAGE: Storage partition foun
[13:34:46.970 RX] d: size=131072 bytes
[13:34:46.970 RX] I (1010) STORAGE: Log init: scanning 28 sectors with bisection
[13:34:46.970 RX] I (1030) STORAGE: Log system initialized (bisection). Head: 131072, Tail: 16384
[13:34:46.970 RX] I (1030) STORAGE: Log writer task started
[13:34:46.970 RX] I
[13:34:47.021 RX] (1030) STORAGE: Log wr
[13:34:47.021 RX]
[13:34:47.021 RX] ========================================
[13:34:47.021 RX] UART JSON Interface Ready
[13:34:47.021 RX] ========================================
[13:34:47.021 RX] Type 'HELP' for available commands
[13:34:47.021 RX] Type 'GET' to see system status
[13:34:47.021 RX]
[13:34:47.021 RX] > I (1050) UART: UART interface started
[13:34:47.072 RX]
[13:34:47.072 RX] I (1050) gpio: GPIO[25]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
[13:34:47.072 RX] I (1060) RF: RF receiver task started on core 0
[13:34:47.072 RX] I (1070) BTDM_INIT: BT controller compile version [b022216]
[13:34:47.072 RX] I (
[13:34:47.123 RX] 1070) BTDM_INIT: Bluetooth MAC: 94:54:c5:38:c4:3a
[13:34:47.123 RX] I (1080) phy_init: phy_version 4830,54550f7,Jun 20 2024,14:22:08
[13:34:47.123 RX] E (1090) phy_init: esp_phy_load_cal_data_from_nvs: NVS has not been initialized. Call nvs_flash_init before starting
[13:34:47.174 RX] WiFi/BT.
[13:34:47.174 RX] W (1100) phy_init: failed to load RF calibration data (0x1101), falling back to full calibration
[13:34:47.174 RX] W (1170) phy_init: saving new calibration data because of checksum failure, mode(2)
[13:34:47.174 RX] E (1410) BT_OSI: config_new: N
[13:34:47.224 RX] VS not initialized. Call nvs_flash_init before initializing bluetooth.
[13:34:47.224 RX] W (1410) BT_BTC: btc_config_init unable to load config file; starting unconfigured.
[13:34:47.224 RX]
[13:34:47.224 RX] E (1420) BT_OSI: config_save: NVS not initialized. Call nvs_flash_init befo
[13:34:47.225 TX] POST: {"time": 1773167687}
[13:34:47.250 RX] alizing bluetooth.
[13:34:47.250 RX] E (1540) BT_OSI: config_save, err_code: 0x2
[13:34:47.250 RX]
[13:34:47.250 RX] E (1540) BT_OSI: config_save: NVS not initialized. Call nvs_flash_init before initializing bluetooth.
[13:34:47.250 RX] E (1550) BT_OSI: config_save, err_code: 0x2
[13:34:47.250 RX]
[13:34:47.250 RX] [
[13:34:47.301 RX] 0;32mI (1560) BT_HID: Scanning for HID devices (3s)...
[13:34:47.301 RX] I (1560) BT_HID: BLE HID host initialised
[13:34:47.301 RX] POST: {"time": 1773167687}
[13:34:47.301 RX]
[13:34:47.301 RX]
[13:34:47.301 RX] I (1570) gpio: GPIO[14]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:3
[13:34:47.301 RX] [0
[13:34:47.351 RX] ;32mI (1570) COMMS: Setting time to 1773167687
[13:34:47.351 RX] I (1580) ALARM: SET FOR 1773168516 (in 829 s)
[13:34:47.351 RX] I (1580) gpio: GPIO[27]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:3
[13:34:47.351 RX] {
[13:34:47.351 RX] "status": "ok",
[13:34:47.351 RX] "params_updated"
[13:34:47.402 RX] : 0,
[13:34:47.402 RX] "params_failed": 0,
[13:34:47.402 RX] "cmd_executed": false
[13:34:47.402 RX] }
[13:34:47.402 RX] I (1590) STORAGE: Wrote; Tail/Head are now 16384/131093
[13:34:47.402 RX]
[13:34:47.402 RX] >
[13:34:47.402 RX]
[13:34:47.402 RX]
[13:34:47.402 RX] > I (1570) WEBSERVER: Initializing webserver...
[13:34:47.402 RX] I (1620) WEBSERVER: AP LAUNCHING
[13:34:47.402 RX] I (1640) WE
[13:34:47.452 RX] BSERVER: AP LAUNCHING...
[13:34:47.452 RX] I (1640) WEBSERVER: HI THERE
[13:34:47.452 RX] I (1660) wifi:wifi driver task: 3ffe2808, prio:23, stack:6656, core=0
[13:34:47.452 RX] I (1670) wifi:wifi firmware version: ccaebfa
[13:34:47.452 RX] I (1670) wifi:wifi certification version: v7.0
[13:34:47.452 RX] I (1670) wifi:config
[13:34:47.502 RX] NVS flash: enabled
[13:34:47.502 RX] I (1670) wifi:config nano formating: disabled
[13:34:47.502 RX] I (1670) wifi:Init data frame dynamic rx buffer num: 32
[13:34:47.502 RX] I (1680) wifi:Init static rx mgmt buffer num: 5
[13:34:47.502 RX] I (1680) wifi:Init management short buffer num: 32
[13:34:47.502 RX] I (1680) wifi:Init dynamic tx
[13:34:47.553 RX] buffer num: 32
[13:34:47.553 RX] I (1690) wifi:Init static rx buffer size: 1600
[13:34:47.553 RX] I (1690) wifi:Init static rx buffer num: 10
[13:34:47.553 RX] I (1700) wifi:Init dynamic rx buffer num: 32
[13:34:47.553 RX] I (1700) wifi_init: rx ba win: 6
[13:34:47.553 RX] I (1700) wifi_init: accept mbox: 6
[13:34:47.553 RX] I
[13:34:47.603 RX] (1710) wifi_init: tcpip mbox: 32
[13:34:47.603 RX] I (1710) wifi_init: udp mbox: 6
[13:34:47.603 RX] I (1720) wifi_init: tcp mbox: 6
[13:34:47.603 RX] I (1720) wifi_init: tcp tx win: 5760
[13:34:47.603 RX] I (1720) wifi_init: tcp rx win: 5760
[13:34:47.603 RX] I (1730) wifi_init: tcp m
[13:34:47.604 TX] RTCDEBUG
[13:34:47.645 RX] RTCDEBUG
[13:34:47.645 RX]
[13:34:47.645 RX]
[13:34:47.645 RX] === RTC DEBUG ===
[13:34:47.645 RX] reset_reason: POWER_ON (1)
[13:34:47.645 RX] wakeup_cause: UNDEFINED (normal boot/reset) (0)
[13:34:47.645 RX] slow_clk_src: NOT XTAL32K — check crystal! (0)
[13:34:47.645 RX]
[13:34:47.645 RX] rtc_set: true
[13:34:47.645 RX] current_time: 1773167687 (2026-03-10 18
[13:34:47.695 RX] :34:47 UTC)
[13:34:47.695 RX] rtc_backup_s: 1773167687 (2026-03-10 18:34:47 UTC)
[13:34:47.695 RX] rtc_sleep_entry_s: 0 (N/A UTC)
[13:34:47.695 RX] next_alarm_s: 1773168516 (2026-03-10 18:48:36 UTC)
[13:34:47.695 RX]
[13:34:47.695 RX] uptime: 1s
[13:34:47.695 RX] clock_offset: 1773167686s (current - uptime; stable =
[13:34:47.959 RX] good)
[13:34:47.959 RX] sleep_add: 0s (added to entry_s on this boot, 0 if no sleep)
[13:34:47.960 RX] =================
[13:34:47.960 RX]
[13:34:47.960 RX]
[13:34:47.960 RX] >

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,294 @@
[16:13:14.971 RX] ets Jul 29 2019 12:21:46
[16:13:14.971 RX]
[16:13:14.971 RX] rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
[16:13:14.972 RX] configsip: 0, SPIWP:0xee
[16:13:14.972 RX] clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
[16:13:14.972 RX] mode:DIO, clock div:2
[16:13:14.972 RX] load:0x3fff0030,len:7176
[16:13:14.972 RX] load:0x40078000,len:160
[16:13:15.022 RX] 92
[16:13:15.022 RX] ho 0 tail 12 room 4
[16:13:15.022 RX] load:0x40080400,len:4
[16:13:15.022 RX] load:0x40080404,len:3912
[16:13:15.022 RX] entry 0x40080640
[16:13:15.022 RX] I (31) boot: ESP-IDF v5.3.1-dirty 2nd stage bootloader
[16:13:15.022 RX] I (31) boot: compile time Mar 4 2026 13:08:05
[16:13:15.022 RX] I (31) boot: Multicore bootload
[16:13:15.082 RX] er
[16:13:15.082 RX] I (36) boot: chip revision: v3.1
[16:13:15.082 RX] I (40) boot.esp32: SPI Speed : 40MHz
[16:13:15.082 RX] I (44) boot.esp32: SPI Mode : DIO
[16:13:15.082 RX] I (49) boot.esp32: SPI Flash Size : 8MB
[16:13:15.082 RX] I (53) boot: Enabling RNG early entrop
[16:13:15.133 RX] y source...
[16:13:15.133 RX] I (59) boot: Partition Table:
[16:13:15.133 RX] I (62) boot: ## Label Usage Type ST Offset Length
[16:13:15.133 RX] I (70) boot: 0 nvs WiFi data 01 02 00009000 00004000
[16:13:15.133 RX] I (77) boot: 1 otad
[16:13:15.183 RX] ata OTA data 01 00 0000d000 00002000
[16:13:15.183 RX] I (84) boot: 2 phy_init RF data 01 01 0000f000 00001000
[16:13:15.183 RX] I (92) boot: 3 ota_0 OTA app 00 10 00010000 00180000
[16:13:15.183 RX] I (99) boot: 4 ot
[16:13:15.234 RX] a_1 OTA app 00 11 00190000 00180000
[16:13:15.234 RX] I (107) boot: 5 storage Unknown data 01 40 00310000 00020000
[16:13:15.234 RX] I (114) boot: End of partition table
[16:13:15.234 RX] I (119) esp_image: segment 0: paddr=00010020 vaddr=3
[16:13:15.284 RX] f400020 size=40a70h (264816) map
[16:13:15.284 RX] I (218) esp_image: segment 1: paddr=00050a98 vaddr=3ff80063 size=00008h ( 8) load
[16:13:15.284 RX] I (218) esp_image: segment 2: paddr=00050aa8 vaddr=3ffbdb60 size=0648ch ( 25740) load
[16:13:15.284 RX] I (233) esp_ima
[16:13:15.538 RX] ge: segment 3: paddr=00056f3c vaddr=40080000 size=090dch ( 37084) load
[16:13:15.538 RX] I (248) esp_image: segment 4: paddr=00060020 vaddr=400d0020 size=ffc84h (1047684) map
[16:13:15.538 RX] I (607) esp_image: segment 5: paddr=0015fcac vaddr=400890dc size=12200h ( 7
[16:13:15.588 RX] 4240) load
[16:13:15.588 RX] I (637) esp_image: segment 6: paddr=00171eb4 vaddr=400c0000 size=00064h ( 100) load
[16:13:15.588 RX] I (637) esp_image: segment 7: paddr=00171f20 vaddr=50000000 size=0004ch ( 76) load
[16:13:15.588 RX] I (657) boot: Loaded app from partiti
[16:13:15.767 RX] on at offset 0x10000
[16:13:15.768 RX] I (657) boot: Disabling RNG early entropy source...
[16:13:15.768 RX] I (669) cpu_start: Multicore app
[16:13:15.768 RX] W (830) clk: 32 kHz XTAL not found, switching to internal 150 kHz oscillator
[16:13:15.768 RX] I (839) cpu_start: Pro cp
[16:13:15.818 RX] u start user code
[16:13:15.818 RX] I (839) cpu_start: cpu freq: 160000000 Hz
[16:13:15.818 RX] I (839) app_init: Application information:
[16:13:15.818 RX] I (843) app_init: Project name: SC-F001
[16:13:15.818 RX] I (848) app_init: App version: e2451fc-dirty
[16:13:15.818 RX] [0;32
[16:13:15.869 RX] mI (854) app_init: Compile time: Mar 5 2026 16:20:24
[16:13:15.869 RX] I (860) app_init: ELF file SHA256: dafdfaaee...
[16:13:15.869 RX] I (865) app_init: ESP-IDF: v5.3.1-dirty
[16:13:15.869 RX] I (870) efuse_init: Min chip rev: v0.0
[16:13:15.869 RX] I (875) e
[16:13:15.920 RX] fuse_init: Max chip rev: v3.99
[16:13:15.920 RX] I (880) efuse_init: Chip rev: v3.1
[16:13:15.920 RX] I (885) heap_init: Initializing. RAM available for dynamic allocation:
[16:13:15.920 RX] I (892) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM
[16:13:15.920 RX]
[16:13:15.970 RX] I (898) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM
[16:13:15.970 RX] I (904) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM
[16:13:15.970 RX] I (910) heap_init: At 3FFCDD48 len 000122B8 (72 KiB): DRAM
[16:13:15.970 RX] I (916) heap_init: At 3FFE0440 len 00003AE0
[16:13:16.020 RX] (14 KiB): D/IRAM
[16:13:16.020 RX] I (923) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
[16:13:16.020 RX] I (929) heap_init: At 4009B2DC len 00004D24 (19 KiB): IRAM
[16:13:16.020 RX] I (937) spi_flash: detected chip: generic
[16:13:16.020 RX] I (940) spi_flash: flash io:
[16:13:16.071 RX] dio
[16:13:16.071 RX] W (944) i2c: This driver is an old driver, please migrate your application code to adapt `driver/i2c_master.h`
[16:13:16.071 RX] I (955) coexist: coex firmware version: 4482466
[16:13:16.071 RX] I (961) main_task: Started on CPU0
[16:13:16.071 RX] I (971) m
[16:13:16.328 RX] ain_task: Calling app_main()
[16:13:16.328 RX] W (971) RTC: Crystal not running at boot (src=0), attempting bootstrap...
[16:13:17.056 RX] E (2101) RTC: Crystal not oscillating after bootstrap (cal=0) — staying on RC, timekeeping inaccurate
[16:13:17.057 RX] I (2101) RTC: Wakeup: normal boot
[16:13:17.057 RX] I (2111) MAIN: Firmware: V_e2451fc-dirty (2026-03-05 22:20:22)
[16:13:17.057 RX] I (2111) MAI
[16:13:17.107 RX] N: Version: e2451fc-dirty
[16:13:17.107 RX] I (2121) MAIN: Branch: main
[16:13:17.107 RX] I (2121) MAIN: Built: 2026-03-05 22:20:22
[16:13:17.107 RX] I (2121) STORAGE: Initializing storage system...
[16:13:17.107 RX] I (2131) STORAGE: Storage partition found: size=131072 bytes[0
[16:13:17.157 RX] m
[16:13:17.157 RX] I (2141) STORAGE: Log init: scanning 28 sectors with bisection
[16:13:17.157 RX] I (2161) STORAGE: Log system initialized (bisection). Head: 131072, Tail: 16384
[16:13:17.157 RX] I (2161) STORAGE: Log writer task started
[16:13:17.157 RX] I (2161) STORAGE: Log wri
[16:13:17.208 RX]
[16:13:17.208 RX]
[16:13:17.208 RX] ========================================
[16:13:17.208 RX] UART JSON Interface Ready
[16:13:17.208 RX] ========================================
[16:13:17.208 RX] Type 'HELP' for available commands
[16:13:17.208 RX] Type 'GET' to see system status
[16:13:17.208 RX]
[16:13:17.208 RX] > I (2181) UART: UART interface started
[16:13:17.208 RX] I (2181)
[16:13:17.258 RX] gpio: GPIO[25]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
[16:13:17.258 RX] I (2191) RF: RF receiver task started on core 0
[16:13:17.258 RX] I (2201) BTDM_INIT: BT controller compile version [b022216]
[16:13:17.258 RX] I (2211) BTDM_INIT: Bluet
[16:13:17.309 RX] ooth MAC: 94:54:c5:38:c4:3a
[16:13:17.309 RX] I (2211) phy_init: phy_version 4830,54550f7,Jun 20 2024,14:22:08
[16:13:17.309 RX] E (2221) phy_init: esp_phy_load_cal_data_from_nvs: NVS has not been initialized. Call nvs_flash_init before starting WiFi/BT.
[16:13:17.309 RX] W
[16:13:17.360 RX] (2231) phy_init: failed to load RF calibration data (0x1101), falling back to full calibration
[16:13:17.360 RX] W (2301) phy_init: saving new calibration data because of checksum failure, mode(2)
[16:13:17.360 RX] E rmt: hw buffer too small, received symbols truncated
[16:13:17.360 RX] E r
[16:13:17.490 RX] mt: hw buffer too small, received symbols truncated
[16:13:17.490 RX] E (2541) BT_OSI: config_new: NVS not initialized. Call nvs_flash_init before initializing bluetooth.
[16:13:17.490 RX] W (2541) BT_BTC: btc_config_init unable to load config file; starting unconfigured.
[16:13:17.491 TX] POST: {"time": 1773177197}
[16:13:17.527 RX] NVS not initialized. Call nvs_flash_init before initializing bluetooth.
[16:13:17.527 RX] E (2561) BT_OSI: config_save, err_code: 0x2
[16:13:17.527 RX]
[16:13:17.527 RX] POST: {"time": 1773177197}
[16:13:17.527 RX]
[16:13:17.527 RX]
[16:13:17.527 RX] I (2591) COMMS: Setting time to 1773177197
[16:13:17.527 RX] I (2591) ALARM: SET FOR 1773
[16:13:17.577 RX] 177712 (in 515 s)
[16:13:17.577 RX] I (2591) RTC: TIME unix=1773177197 src=SYNC uptime=1s
[16:13:17.577 RX] I (2591) STORAGE: Wrote; Tail/Head are now 16384/131093
[16:13:17.577 RX] {
[16:13:17.577 RX] "status": "ok",
[16:13:17.577 RX] "params_updated": 0,
[16:13:17.577 RX] "params_failed": 0,
[16:13:17.577 RX] "cmd_executed": false
[16:13:17.577 RX] }
[16:13:17.577 RX]
[16:13:17.577 RX] >
[16:13:17.628 RX]
[16:13:17.628 RX]
[16:13:17.628 RX] > E (2621) BT_APPL: bta_gattc_co_cache_addr_init, Line = 436, nvs flash open fail, err_code = 1101
[16:13:17.628 RX] E (2641) BT_OSI: config_save: NVS not initialized. Call nvs_flash_init before initializing bluetooth.
[16:13:17.628 RX] E (2641) BT_OSI: con
[16:13:17.678 RX] fig_save, err_code: 0x2
[16:13:17.678 RX]
[16:13:17.678 RX] E (2651) BT_OSI: config_save: NVS not initialized. Call nvs_flash_init before initializing bluetooth.
[16:13:17.678 RX] E (2661) BT_OSI: config_save, err_code: 0x2
[16:13:17.678 RX]
[16:13:17.678 RX] E (2661) BT_OSI: config_save: NVS not initiali
[16:13:17.729 RX] zed. Call nvs_flash_init before initializing bluetooth.
[16:13:17.729 RX] E (2671) BT_OSI: config_save, err_code: 0x2
[16:13:17.729 RX]
[16:13:17.729 RX] E (2681) BT_OSI: config_save: NVS not initialized. Call nvs_flash_init before initializing bluetooth.
[16:13:17.729 RX] E (2691) BT_OSI:
[16:13:17.779 RX] config_save, err_code: 0x2
[16:13:17.779 RX]
[16:13:17.779 RX] I (2691) BT_HID: Scanning for HID devices (3s)...
[16:13:17.779 RX] I (2701) BT_HID: BLE HID host initialised

View File

@@ -0,0 +1,276 @@
[16:22:29.810 RX] ets Jul 29 2019 12:21:46
[16:22:29.810 RX]
[16:22:29.810 RX] rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
[16:22:29.810 RX] configsip: 0, SPIWP:0xee
[16:22:29.810 RX] clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
[16:22:29.810 RX] mode:DIO, clock div:2
[16:22:29.810 RX] load:0x3fff0030,len:7176
[16:22:29.810 RX] load:0x40078000,len:160
[16:22:29.860 RX] 92
[16:22:29.860 RX] ho 0 tail 12 room 4
[16:22:29.860 RX] load:0x40080400,len:4
[16:22:29.860 RX] load:0x40080404,len:3912
[16:22:29.860 RX] entry 0x40080640
[16:22:29.860 RX] I (31) boot: ESP-IDF v5.3.1-dirty 2nd stage bootloader
[16:22:29.860 RX] I (31) boot: compile time Mar 4 2026 13:08:05
[16:22:29.860 RX] I (31) boot: Multicore bootload
[16:22:29.921 RX] er
[16:22:29.921 RX] I (36) boot: chip revision: v3.1
[16:22:29.921 RX] I (40) boot.esp32: SPI Speed : 40MHz
[16:22:29.921 RX] I (44) boot.esp32: SPI Mode : DIO
[16:22:29.921 RX] I (49) boot.esp32: SPI Flash Size : 8MB
[16:22:29.921 RX] I (53) boot: Enabling RNG early entrop
[16:22:29.971 RX] y source...
[16:22:29.971 RX] I (59) boot: Partition Table:
[16:22:29.971 RX] I (62) boot: ## Label Usage Type ST Offset Length
[16:22:29.971 RX] I (70) boot: 0 nvs WiFi data 01 02 00009000 00004000
[16:22:29.971 RX] I (77) boot: 1 otad
[16:22:30.022 RX] ata OTA data 01 00 0000d000 00002000
[16:22:30.022 RX] I (84) boot: 2 phy_init RF data 01 01 0000f000 00001000
[16:22:30.022 RX] I (92) boot: 3 ota_0 OTA app 00 10 00010000 00180000
[16:22:30.022 RX] I (99) boot: 4 ot
[16:22:30.073 RX] a_1 OTA app 00 11 00190000 00180000
[16:22:30.073 RX] I (107) boot: 5 storage Unknown data 01 40 00310000 00020000
[16:22:30.073 RX] I (114) boot: End of partition table
[16:22:30.073 RX] I (119) esp_image: segment 0: paddr=00010020 vaddr=3
[16:22:30.123 RX] f400020 size=40a70h (264816) map
[16:22:30.123 RX] I (218) esp_image: segment 1: paddr=00050a98 vaddr=3ff80063 size=00008h ( 8) load
[16:22:30.123 RX] I (218) esp_image: segment 2: paddr=00050aa8 vaddr=3ffbdb60 size=0648ch ( 25740) load
[16:22:30.123 RX] I (233) esp_ima
[16:22:30.376 RX] ge: segment 3: paddr=00056f3c vaddr=40080000 size=090dch ( 37084) load
[16:22:30.376 RX] I (248) esp_image: segment 4: paddr=00060020 vaddr=400d0020 size=ffc84h (1047684) map
[16:22:30.376 RX] I (607) esp_image: segment 5: paddr=0015fcac vaddr=400890dc size=12200h ( 7
[16:22:30.427 RX] 4240) load
[16:22:30.427 RX] I (637) esp_image: segment 6: paddr=00171eb4 vaddr=400c0000 size=00064h ( 100) load
[16:22:30.427 RX] I (637) esp_image: segment 7: paddr=00171f20 vaddr=50000000 size=0004ch ( 76) load
[16:22:30.427 RX] I (657) boot: Loaded app from partiti
[16:22:30.606 RX] on at offset 0x10000
[16:22:30.606 RX] I (657) boot: Disabling RNG early entropy source...
[16:22:30.606 RX] I (669) cpu_start: Multicore app
[16:22:30.606 RX] W (830) clk: 32 kHz XTAL not found, switching to internal 150 kHz oscillator
[16:22:30.606 RX] I (839) cpu_start: Pro cp
[16:22:30.657 RX] u start user code
[16:22:30.657 RX] I (839) cpu_start: cpu freq: 160000000 Hz
[16:22:30.657 RX] I (839) app_init: Application information:
[16:22:30.657 RX] I (843) app_init: Project name: SC-F001
[16:22:30.657 RX] I (848) app_init: App version: e2451fc-dirty
[16:22:30.657 RX] [0;32
[16:22:30.707 RX] mI (854) app_init: Compile time: Mar 5 2026 16:20:24
[16:22:30.707 RX] I (860) app_init: ELF file SHA256: dafdfaaee...
[16:22:30.707 RX] I (865) app_init: ESP-IDF: v5.3.1-dirty
[16:22:30.707 RX] I (870) efuse_init: Min chip rev: v0.0
[16:22:30.707 RX] I (875) e
[16:22:30.758 RX] fuse_init: Max chip rev: v3.99
[16:22:30.758 RX] I (880) efuse_init: Chip rev: v3.1
[16:22:30.758 RX] I (885) heap_init: Initializing. RAM available for dynamic allocation:
[16:22:30.758 RX] I (892) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM
[16:22:30.758 RX]
[16:22:30.808 RX] I (898) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM
[16:22:30.808 RX] I (904) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM
[16:22:30.808 RX] I (910) heap_init: At 3FFCDD48 len 000122B8 (72 KiB): DRAM
[16:22:30.808 RX] I (916) heap_init: At 3FFE0440 len 00003AE0
[16:22:30.858 RX] (14 KiB): D/IRAM
[16:22:30.858 RX] I (923) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
[16:22:30.858 RX] I (929) heap_init: At 4009B2DC len 00004D24 (19 KiB): IRAM
[16:22:30.858 RX] I (937) spi_flash: detected chip: generic
[16:22:30.858 RX] I (940) spi_flash: flash io:
[16:22:30.910 RX] dio
[16:22:30.910 RX] W (944) i2c: This driver is an old driver, please migrate your application code to adapt `driver/i2c_master.h`
[16:22:30.910 RX] I (955) coexist: coex firmware version: 4482466
[16:22:30.910 RX] I (961) main_task: Started on CPU0
[16:22:30.910 RX] I (971) m
[16:22:31.170 RX] ain_task: Calling app_main()
[16:22:31.170 RX] W (971) RTC: Crystal not running at boot (src=0), attempting bootstrap...
[16:22:31.895 RX] E (2101) RTC: Crystal not oscillating after bootstrap (cal=0) — staying on RC, timekeeping inaccurate
[16:22:31.895 RX] I (2101) RTC: Wakeup: normal boot
[16:22:31.895 RX] I (2111) MAIN: Firmware: V_e2451fc-dirty (2026-03-05 22:20:22)
[16:22:31.895 RX] I (2111) MAI
[16:22:31.946 RX] N: Version: e2451fc-dirty
[16:22:31.946 RX] I (2121) MAIN: Branch: main
[16:22:31.946 RX] I (2121) MAIN: Built: 2026-03-05 22:20:22
[16:22:31.946 RX] I (2121) STORAGE: Initializing storage system...
[16:22:31.946 RX] I (2131) STORAGE: Storage partition found: size=131072 bytes[0
[16:22:31.996 RX] m
[16:22:31.996 RX] I (2141) STORAGE: Log init: scanning 28 sectors with bisection
[16:22:31.996 RX] I (2161) STORAGE: Log system initialized (bisection). Head: 131072, Tail: 16384
[16:22:31.996 RX] I (2161) STORAGE: Log writer task started
[16:22:31.996 RX] I (2161) STORAGE: Log wri
[16:22:32.046 RX]
[16:22:32.046 RX]
[16:22:32.046 RX] ========================================
[16:22:32.046 RX] UART JSON Interface Ready
[16:22:32.046 RX] ========================================
[16:22:32.046 RX] Type 'HELP' for available commands
[16:22:32.046 RX] Type 'GET' to see system status
[16:22:32.046 RX]
[16:22:32.046 RX] > I (2181) UART: UART interface started
[16:22:32.046 RX] I (2181)
[16:22:32.097 RX] gpio: GPIO[25]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
[16:22:32.097 RX] I (2191) RF: RF receiver task started on core 0
[16:22:32.097 RX] I (2201) BTDM_INIT: BT controller compile version [b022216]
[16:22:32.097 RX] I (2211) BTDM_INIT: Bluet
[16:22:32.147 RX] ooth MAC: 94:54:c5:38:c4:3a
[16:22:32.147 RX] I (2211) phy_init: phy_version 4830,54550f7,Jun 20 2024,14:22:08
[16:22:32.147 RX] E (2221) phy_init: esp_phy_load_cal_data_from_nvs: NVS has not been initialized. Call nvs_flash_init before starting WiFi/BT.
[16:22:32.147 RX] W
[16:22:32.317 RX] (2231) phy_init: failed to load RF calibration data (0x1101), falling back to full calibration
[16:22:32.317 RX] E rmt: hw buffer too small, received symbols truncated
[16:22:32.317 RX] W (2301) phy_init: saving new calibration data because of checksum failure, mode(2)
[16:22:32.317 RX] [0
[16:22:32.318 TX] POST: {"time": 1773177752}
[16:22:32.344 RX] nvs_flash_init before initializing bluetooth.
[16:22:32.344 RX] W (2551) BT_BTC: btc_config_init unable to load config file; starting unconfigured.
[16:22:32.344 RX]
[16:22:32.344 RX] E (2551) BT_OSI: config_save: NVS not initialized. Call nvs_flash_init before initializing bluetooth
[16:22:32.394 RX] .
[16:22:32.394 RX] E (2561) BT_OSI: config_save, err_code: 0x2
[16:22:32.394 RX]
[16:22:32.394 RX] E rmt: hw buffer too small, received symbols truncated
[16:22:32.394 RX] POST: {"time": 1773177752}
[16:22:32.394 RX]
[16:22:32.394 RX]
[16:22:32.394 RX] I (2581) COMMS: Setting time to 1773177752
[16:22:32.394 RX] I (2581) ALARM: SET FOR 1773178549 (in 797
[16:22:32.444 RX] s)
[16:22:32.444 RX] I (2581) RTC: TIME unix=1773177752 src=SYNC uptime=1s
[16:22:32.444 RX] I (2581) STORAGE: Wrote; Tail/Head are now 16384/131093
[16:22:32.444 RX] {
[16:22:32.444 RX] "status": "ok",
[16:22:32.444 RX] "params_updated": 0,
[16:22:32.444 RX] "params_failed": 0,
[16:22:32.444 RX] "cmd_executed": false
[16:22:32.444 RX] }
[16:22:32.444 RX]
[16:22:32.444 RX] >
[16:22:32.444 RX]
[16:22:32.444 RX]
[16:22:32.444 RX] > E
[16:22:32.496 RX] (2621) BT_APPL: bta_gattc_co_cache_addr_init, Line = 436, nvs flash open fail, err_code = 1101
[16:22:32.496 RX] E rmt: hw buffer too small, received symbols truncated
[16:22:32.496 RX] E (2641) BT_OSI: config_save: NVS not initialized. Call nvs_flash_init before initializing b
[16:22:32.546 RX] luetooth.
[16:22:32.546 RX] E (2651) BT_OSI: config_save, err_code: 0x2

View File

290
logtool/rtc_test.py Normal file
View File

@@ -0,0 +1,290 @@
#!/usr/bin/env python3
"""
rtc_test.py -- SC-F001 RTC timekeeping monitor
1. Reset board and wait for boot
2. Sync device RTC to host clock
3. Stream UART continuously -- no sleep commands issued
4. Every time the firmware logs a TIME line, record host time vs device time and print diff
5. Ctrl+C to stop
The device will sleep naturally after 180s of inactivity and wake every 120s,
producing a TIME line on each wakeup. This script catches each one.
Firmware emits parseable lines of the form:
I (uptime) RTC: TIME unix=<seconds> src=<SYNC|SLEEP|CRASH> uptime=<seconds>s
Generates two log files automatically:
rtc_raw_TIMESTAMP.txt -- every UART byte in/out, wall-clock timestamped
rtc_analysis_TIMESTAMP.txt -- clean parsed comparison table, no ANSI codes
Usage:
pip install pyserial
python logtool/rtc_test.py COM3
python logtool/rtc_test.py COM3 --verbose # also print raw device output
"""
import serial
import time
import re
import sys
import argparse
from datetime import datetime, timezone
if hasattr(sys.stdout, "reconfigure"):
sys.stdout.reconfigure(encoding="utf-8", errors="replace")
BAUD = 115200
BOOT_TIMEOUT = 35 # seconds to wait for prompt after reset
_ANSI = re.compile(r"\x1b\[[0-9;]*[A-Za-z]")
# Matches: I (123) RTC: TIME unix=1773167687 src=SLEEP uptime=5s
_TIME_RE = re.compile(r"TIME unix=(\d+) src=(\S+) uptime=(\d+)s")
def _strip(s):
return _ANSI.sub("", s)
def _ts():
return datetime.now().strftime("%H:%M:%S.%f")[:-3]
def _utc(unix_s):
return datetime.fromtimestamp(int(unix_s), tz=timezone.utc).strftime("%Y-%m-%d %H:%M:%S")
# ---------------------------------------------------------------------------
# Log handles
# ---------------------------------------------------------------------------
_raw_log = None
_analysis_log = None
def _rawlog(direction, text):
if not _raw_log:
return
for line in text.splitlines(keepends=True):
_raw_log.write(f"[{_ts()} {direction}] {_strip(line)}")
if text and not text.endswith("\n"):
_raw_log.write("\n")
_raw_log.flush()
def aprint(*args, **kwargs):
"""Print to console AND analysis log (ANSI stripped in file)."""
end = kwargs.get("end", "\n")
text = " ".join(str(a) for a in args) + end
sys.stdout.write(text)
sys.stdout.flush()
if _analysis_log:
_analysis_log.write(_strip(text))
_analysis_log.flush()
# ---------------------------------------------------------------------------
# Serial helpers
# ---------------------------------------------------------------------------
def reset_board(ser):
"""Pulse EN via RTS; keep DTR=False so GPIO0 stays HIGH (normal boot)."""
ser.dtr = False
ser.rts = True
time.sleep(0.1)
ser.rts = False
time.sleep(0.05)
def wait_for_boot(ser, timeout=BOOT_TIMEOUT, verbose=False):
"""
Read until the UART prompt (\\n> ) appears anywhere in the buffer.
Nudges the device every 3s in case the prompt is buried under log spam.
"""
buf = ""
deadline = time.time() + timeout
last_nudge = time.time()
prompt_seen_at = None
while time.time() < deadline:
chunk = ser.read(256).decode(errors="replace")
if chunk:
buf += chunk
_rawlog("RX", chunk)
if verbose:
sys.stdout.write(chunk)
sys.stdout.flush()
if prompt_seen_at is None and ("\n> " in buf or "\r\n> " in buf):
prompt_seen_at = time.time()
if prompt_seen_at is not None and time.time() - prompt_seen_at >= 0.20:
return buf
if time.time() - last_nudge > 3.0:
ser.write(b"\r\n")
_rawlog("TX", "\r\n")
last_nudge = time.time()
time.sleep(0.05)
raise TimeoutError(f"Boot prompt not seen within {timeout}s")
def send_cmd(ser, cmd, timeout=10.0, verbose=False):
"""Send a command and wait for the next prompt."""
ser.read_all()
ser.write((cmd + "\r\n").encode())
_rawlog("TX", cmd + "\r\n")
buf = ""
deadline = time.time() + timeout
prompt_seen_at = None
while time.time() < deadline:
chunk = ser.read(256).decode(errors="replace")
if chunk:
buf += chunk
_rawlog("RX", chunk)
if verbose:
sys.stdout.write(chunk)
sys.stdout.flush()
if prompt_seen_at is None and ("\n> " in buf or "\r\n> " in buf):
prompt_seen_at = time.time()
if prompt_seen_at is not None and time.time() - prompt_seen_at >= 0.20:
return buf
time.sleep(0.05)
return buf # return whatever we got even on timeout
# ---------------------------------------------------------------------------
# Comparison table
# ---------------------------------------------------------------------------
_HDR = (
"\n"
" # Wall clock (host) Device time (UTC) Diff Source Uptime\n"
" -- ------------------- ------------------- ------ -------- ------"
)
_ROW = " {n:>2} {ht:<19} {dt:<19} {diff:>+6}s {src:<8} {up}s"
def _table_row(n, host_ts, device_unix, src, uptime_s):
diff = device_unix - host_ts
return _ROW.format(
n = n,
ht = _utc(host_ts),
dt = _utc(device_unix),
diff = diff,
src = src,
up = uptime_s,
)
# ---------------------------------------------------------------------------
# Main
# ---------------------------------------------------------------------------
def main():
global _raw_log, _analysis_log
parser = argparse.ArgumentParser(description="SC-F001 RTC timekeeping monitor")
parser.add_argument("port", help="Serial port, e.g. COM3 or /dev/ttyUSB0")
parser.add_argument("--boot-timeout", type=float, default=BOOT_TIMEOUT)
parser.add_argument("--verbose", action="store_true",
help="Print raw device output to console (always in raw log)")
args = parser.parse_args()
stamp = datetime.now().strftime("%Y%m%d_%H%M%S")
raw_path = f"logtool/rtc_raw_{stamp}.txt"
analysis_path = f"logtool/rtc_analysis_{stamp}.txt"
_raw_log = open(raw_path, "w", encoding="utf-8", errors="replace")
_analysis_log = open(analysis_path, "w", encoding="utf-8", errors="replace")
aprint(f"Raw log : {raw_path}")
aprint(f"Analysis log : {analysis_path}")
aprint(f"Port : {args.port} {BAUD} baud")
aprint(f"Ctrl+C to stop.\n")
# ---- Open port -------------------------------------------------------- #
ser = serial.Serial(args.port, BAUD, timeout=0.2)
ser.dtr = False
ser.rts = False
time.sleep(0.2)
ser.read_all()
# ---- Reset and wait for boot ------------------------------------------ #
aprint(f"[{_ts()}] Resetting board...")
reset_board(ser)
try:
wait_for_boot(ser, timeout=args.boot_timeout, verbose=args.verbose)
except TimeoutError as e:
aprint(f"ERROR: {e}")
ser.close(); sys.exit(1)
aprint(f"[{_ts()}] Boot complete.\n")
# ---- Sync RTC --------------------------------------------------------- #
host_sync = int(time.time())
aprint(f"[{_ts()}] Syncing device RTC to host: {host_sync} ({_utc(host_sync)} UTC)...")
resp = send_cmd(ser, f'POST: {{"time": {host_sync}}}', verbose=args.verbose)
if "ok" in resp.lower():
aprint(f"[{_ts()}] Sync OK.\n")
else:
aprint(f"[{_ts()}] WARNING: unexpected response: {_strip(resp.strip())}\n")
# ---- Table header ----------------------------------------------------- #
aprint(_HDR)
# ---- Stream loop ------------------------------------------------------ #
event_n = 0
line_buf = ""
aprint()
aprint("Streaming... (device will sleep after 180s inactivity, wake every 120s)")
aprint()
try:
while True:
chunk = ser.read(256).decode(errors="replace")
if not chunk:
continue
_rawlog("RX", chunk)
if args.verbose:
sys.stdout.write(chunk)
sys.stdout.flush()
line_buf += chunk
# Process complete lines
while "\n" in line_buf:
line, line_buf = line_buf.split("\n", 1)
line = line.rstrip("\r")
m = _TIME_RE.search(_strip(line))
if not m:
continue
# Got a TIME event
host_ts = int(time.time())
device_unix = int(m.group(1))
src = m.group(2)
uptime_s = m.group(3)
event_n += 1
row = _table_row(event_n, host_ts, device_unix, src, uptime_s)
aprint(row)
except KeyboardInterrupt:
aprint(f"\n\n[{_ts()}] Stopped by user.")
if event_n == 0:
aprint("No TIME events captured.")
else:
aprint(f"{event_n} event(s) logged to {analysis_path}")
ser.close()
_raw_log.close()
_analysis_log.close()
if __name__ == "__main__":
main()

Binary file not shown.