From 7e77c6809ad7bf0934a199c628635bf2b3248ec7 Mon Sep 17 00:00:00 2001 From: admin Date: Thu, 30 Apr 2026 00:38:05 +0800 Subject: [PATCH] fix(printer): limit thermal print power draw --- components/domain/src/product_test_service.c | 21 +- .../domain/src/voice_interaction_marker.c | 5 +- components/platform/include/platform.h | 1 + components/platform/src/runtime_policy.c | 10 +- components/platform/src/thermal_printer.c | 109 +++++- .../fix_final_verify_20260430_002322.jsonl | 201 ++++++++++ .../fix_round1_verify_20260430_000041.jsonl | 171 +++++++++ .../fix_round2_verify_20260430_000553.jsonl | 350 ++++++++++++++++++ .../fix_round3_verify_20260430_001523.jsonl | 208 +++++++++++ .../fix_round4_verify_20260430_001948.jsonl | 201 ++++++++++ .../reboot_force_print_20260429_234807.jsonl | 22 ++ .../reboot_print_image_20260429_234506.jsonl | 1 + ..._print_image_noreset_20260429_234654.jsonl | 40 ++ .../reboot_repro_20260429_234348.jsonl | 33 ++ main/Kconfig.projbuild | 7 +- sdkconfig.defaults | 2 + 16 files changed, 1372 insertions(+), 10 deletions(-) create mode 100644 docs/product_test_reports/fix_final_verify_20260430_002322.jsonl create mode 100644 docs/product_test_reports/fix_round1_verify_20260430_000041.jsonl create mode 100644 docs/product_test_reports/fix_round2_verify_20260430_000553.jsonl create mode 100644 docs/product_test_reports/fix_round3_verify_20260430_001523.jsonl create mode 100644 docs/product_test_reports/fix_round4_verify_20260430_001948.jsonl create mode 100644 docs/product_test_reports/reboot_force_print_20260429_234807.jsonl create mode 100644 docs/product_test_reports/reboot_print_image_20260429_234506.jsonl create mode 100644 docs/product_test_reports/reboot_print_image_noreset_20260429_234654.jsonl create mode 100644 docs/product_test_reports/reboot_repro_20260429_234348.jsonl diff --git a/components/domain/src/product_test_service.c b/components/domain/src/product_test_service.c index 1ac3492..9e4d1d0 100644 --- a/components/domain/src/product_test_service.c +++ b/components/domain/src/product_test_service.c @@ -261,6 +261,21 @@ static bool json_get_bool(cJSON *obj, const char *key, bool fallback) { return fallback; } +static const char *json_get_print_density(cJSON *obj, const char *key, const char *fallback) { + const char *density = json_get_str(obj, key, fallback); + if (density == NULL || density[0] == '\0') { + return fallback; + } + if (strcmp(density, "test") == 0 || + strcmp(density, "较淡") == 0 || + strcmp(density, "中等") == 0 || + strcmp(density, "较浓") == 0 || + strcmp(density, "最深") == 0) { + return density; + } + return fallback; +} + static void add_printer_status_fields(cJSON *obj, const printer_runtime_status_t *printer) { if (obj == NULL || printer == NULL) { return; @@ -526,6 +541,7 @@ static void handle_print_pattern(uint32_t seq, const char *name, cJSON *payload) uint16_t height = (uint16_t)clamp_u32(height_arg, 16, 512); bool wait_done = json_get_bool(payload, "wait_done", true); bool ignore_precheck = json_get_bool(payload, "ignore_precheck", false); + const char *density = json_get_print_density(payload, "density", "test"); int64_t start = now_ms(); emit_progress(seq, name, "build_pattern", NULL); @@ -548,7 +564,7 @@ static void handle_print_pattern(uint32_t seq, const char *name, cJSON *payload) raster_len, 384, height, - "test", + density, &options, &job_id, err, @@ -599,6 +615,7 @@ static void handle_image_generate(uint32_t seq, const char *name, cJSON *payload bool prompt_extend = json_get_bool(payload, "prompt_extend", true); bool ignore_precheck = json_get_bool(payload, "ignore_precheck", false); bool wait_done = json_get_bool(payload, "wait_done", true); + const char *density = json_get_print_density(payload, "density", "test"); int64_t start = now_ms(); emit_progress(seq, name, "image_generate", NULL); @@ -693,7 +710,7 @@ static void handle_image_generate(uint32_t seq, const char *name, cJSON *payload raster_len, raster_width, raster_height, - "test", + density, &options, &job_id, err, diff --git a/components/domain/src/voice_interaction_marker.c b/components/domain/src/voice_interaction_marker.c index 0a62186..43dd2e9 100644 --- a/components/domain/src/voice_interaction_marker.c +++ b/components/domain/src/voice_interaction_marker.c @@ -21,6 +21,7 @@ static const char *TAG = "voice_interaction"; #define VOICE_IMAGE_MARKER_TEMPLATE \ "%s,线稿风格,白色背景,边缘清晰,细节简洁,高对比,避免大面积阴影和灰度渐变,适配热敏打印机打印。" #define VOICE_IMAGE_MARKER_TEMPLATE_FALLBACK_SUBJECT "简洁卡通图案" +#define VOICE_IMAGE_PRINT_DENSITY "较淡" typedef struct { char prompt[VOICE_IMAGE_MARKER_PROMPT_MAX_LEN + 1]; @@ -285,13 +286,13 @@ static esp_err_t voice_submit_marker_generated_image(const voice_image_generatio uint32_t job_id = 0; char submit_err[128] = {0}; printer_print_options_t print_opt = { - .ignore_precheck = true, + .ignore_precheck = false, }; esp_err_t submit_rc = printer_protocol_submit_raster_job_ex(raster, raster_len, raster_width, raster_height, - NULL, + VOICE_IMAGE_PRINT_DENSITY, &print_opt, &job_id, submit_err, diff --git a/components/platform/include/platform.h b/components/platform/include/platform.h index 42acae3..9ae2103 100644 --- a/components/platform/include/platform.h +++ b/components/platform/include/platform.h @@ -159,6 +159,7 @@ uint32_t runtime_policy_printer_stop_timeout_ms(void); uint32_t runtime_policy_printer_operation_timeout_ms(void); uint16_t runtime_policy_printer_strobe_on_us(void); uint16_t runtime_policy_printer_strobe_interval_us(void); +uint16_t runtime_policy_printer_max_dots_per_pulse(void); uint16_t runtime_policy_printer_motor_step_us(void); bool runtime_policy_printer_motor_reverse(void); uint8_t runtime_policy_printer_steps_per_line(void); diff --git a/components/platform/src/runtime_policy.c b/components/platform/src/runtime_policy.c index fe5917c..1e261d6 100644 --- a/components/platform/src/runtime_policy.c +++ b/components/platform/src/runtime_policy.c @@ -46,6 +46,10 @@ #define CONFIG_TQ_PRINTER_STROBE_INTERVAL_US 200 #endif +#ifndef CONFIG_TQ_PRINTER_MAX_DOTS_PER_PULSE +#define CONFIG_TQ_PRINTER_MAX_DOTS_PER_PULSE 32 +#endif + #ifndef CONFIG_TQ_PRINTER_MOTOR_STEP_US #define CONFIG_TQ_PRINTER_MOTOR_STEP_US 2000 #endif @@ -95,7 +99,7 @@ #endif #ifndef CONFIG_TQ_PRINTER_NTC_R25_OHMS -#define CONFIG_TQ_PRINTER_NTC_R25_OHMS 10000 +#define CONFIG_TQ_PRINTER_NTC_R25_OHMS 30000 #endif #ifndef CONFIG_TQ_PRINTER_NTC_BETA @@ -193,6 +197,10 @@ uint16_t runtime_policy_printer_strobe_interval_us(void) { return clamp_u16((uint16_t)CONFIG_TQ_PRINTER_STROBE_INTERVAL_US, 0, 10000); } +uint16_t runtime_policy_printer_max_dots_per_pulse(void) { + return clamp_u16((uint16_t)CONFIG_TQ_PRINTER_MAX_DOTS_PER_PULSE, 1, 384); +} + uint16_t runtime_policy_printer_motor_step_us(void) { return clamp_u16((uint16_t)CONFIG_TQ_PRINTER_MOTOR_STEP_US, 100, 20000); } diff --git a/components/platform/src/thermal_printer.c b/components/platform/src/thermal_printer.c index 8dfbf53..769be70 100644 --- a/components/platform/src/thermal_printer.c +++ b/components/platform/src/thermal_printer.c @@ -32,7 +32,7 @@ static const uint16_t k_latch_pulse_us = 1; static const bool k_strobe_active_high = true; static const char *TAG = "printer_driver"; -static const uint8_t k_print_yield_lines = 8; +static const uint8_t k_print_yield_lines = 1; static const uint16_t k_gap_yield_steps = 32; typedef struct { @@ -196,6 +196,84 @@ static void fire_strobe_locked(uint16_t on_us, uint16_t interval_us) { fire_strobe_pin_locked(CONFIG_TQ_PRINT_STB_56_PIN, on_us, interval_us); } +static void write_line_bits_locked(const uint8_t *line, size_t line_bytes); + +static uint16_t count_black_dots(const uint8_t *line, size_t line_bytes) { + uint16_t count = 0; + for (size_t i = 0; i < line_bytes; ++i) { + count = (uint16_t)(count + (uint16_t)__builtin_popcount((unsigned int)line[i])); + } + return count; +} + +static bool build_black_dot_slice(const uint8_t *line, + size_t line_bytes, + uint16_t first_black_dot, + uint16_t max_black_dots, + uint8_t *out_line) { + if (line == NULL || out_line == NULL || max_black_dots == 0) { + return false; + } + + memset(out_line, 0, line_bytes); + uint16_t seen = 0; + uint16_t copied = 0; + for (size_t i = 0; i < line_bytes; ++i) { + uint8_t byte = line[i]; + if (byte == 0) { + continue; + } + for (int bit = 7; bit >= 0; --bit) { + uint8_t mask = (uint8_t)(1u << bit); + if ((byte & mask) == 0) { + continue; + } + if (seen >= first_black_dot) { + out_line[i] |= mask; + copied++; + if (copied >= max_black_dots) { + return true; + } + } + seen++; + } + } + return copied > 0; +} + +static uint16_t print_line_with_power_limit_locked(const uint8_t *line, + size_t line_bytes, + uint16_t black_dots, + uint16_t max_dots_per_pulse, + uint16_t strobe_on_us, + uint16_t strobe_interval_us) { + if (black_dots == 0) { + write_line_bits_locked(line, line_bytes); + pulse_latch_locked(); + return 0; + } + + if (max_dots_per_pulse >= black_dots) { + write_line_bits_locked(line, line_bytes); + pulse_latch_locked(); + fire_strobe_locked(strobe_on_us, strobe_interval_us); + return 1; + } + + uint8_t limited_line[48]; + uint16_t subpulses = 0; + for (uint16_t first = 0; first < black_dots; first = (uint16_t)(first + max_dots_per_pulse)) { + if (!build_black_dot_slice(line, line_bytes, first, max_dots_per_pulse, limited_line)) { + break; + } + write_line_bits_locked(limited_line, line_bytes); + pulse_latch_locked(); + fire_strobe_locked(strobe_on_us, strobe_interval_us); + subpulses++; + } + return subpulses; +} + static void motor_step_once_locked(uint16_t step_delay_us) { uint8_t pattern = k_motor_step_table[s_state.motor_phase & 0x03]; motor_apply_pattern_locked(pattern); @@ -618,6 +696,7 @@ esp_err_t platform_printer_print(const platform_printer_print_request_t *request uint8_t steps_per_line = (request->motor_steps_per_line > 0) ? request->motor_steps_per_line : runtime_policy_printer_steps_per_line(); + uint16_t max_dots_per_pulse = runtime_policy_printer_max_dots_per_pulse(); rc = ESP_OK; if (!request->ignore_precheck) { @@ -630,6 +709,9 @@ esp_err_t platform_printer_print(const platform_printer_print_request_t *request } int64_t deadline_ms = (int64_t)(esp_timer_get_time() / 1000) + (int64_t)timeout_ms; + uint32_t power_limited_lines = 0; + uint32_t total_subpulses = 0; + uint16_t max_black_dots = 0; for (uint16_t line = 0; line < request->height; ++line) { if (request->cancel_flag != NULL && *request->cancel_flag) { @@ -651,9 +733,20 @@ esp_err_t platform_printer_print(const platform_printer_print_request_t *request } const uint8_t *line_ptr = &request->raster[(size_t)line * line_bytes]; - write_line_bits_locked(line_ptr, line_bytes); - pulse_latch_locked(); - fire_strobe_locked(strobe_on_us, strobe_interval_us); + uint16_t black_dots = count_black_dots(line_ptr, line_bytes); + if (black_dots > max_black_dots) { + max_black_dots = black_dots; + } + uint16_t subpulses = print_line_with_power_limit_locked(line_ptr, + line_bytes, + black_dots, + max_dots_per_pulse, + strobe_on_us, + strobe_interval_us); + if (subpulses > 1) { + power_limited_lines++; + } + total_subpulses += subpulses; for (uint8_t i = 0; i < steps_per_line; ++i) { if (request->cancel_flag != NULL && *request->cancel_flag) { @@ -679,6 +772,14 @@ esp_err_t platform_printer_print(const platform_printer_print_request_t *request } safe_drive_off_locked(true); + if (power_limited_lines > 0) { + ESP_LOGI(TAG, + "print power limited: lines=%u max_black_dots=%u max_dots_per_pulse=%u subpulses=%u", + (unsigned)power_limited_lines, + (unsigned)max_black_dots, + (unsigned)max_dots_per_pulse, + (unsigned)total_subpulses); + } xSemaphoreGive(s_state.lock); return rc; } diff --git a/docs/product_test_reports/fix_final_verify_20260430_002322.jsonl b/docs/product_test_reports/fix_final_verify_20260430_002322.jsonl new file mode 100644 index 0000000..f6203d5 --- /dev/null +++ b/docs/product_test_reports/fix_final_verify_20260430_002322.jsonl @@ -0,0 +1,201 @@ +{"ts":1777479805.615344,"direction":"tx","raw":"TQTEST_CMD {\"seq\":1,\"cmd\":\"PING\",\"payload\":{}}","seq":1,"cmd":"PING"} +{"ts":1777479805.6221068,"direction":"rx","raw":"0001000"} +{"ts":1777479805.622881,"direction":"rx","raw":"I (124) boot: 3 ota_0 OTA app 00 10 00030000 00780000"} +{"ts":1777479805.623567,"direction":"rx","raw":"I (131) boot: 4 ota_1 OTA app 00 11 007b0000 00780000"} +{"ts":1777479805.6242309,"direction":"rx","raw":"I (137) boot: 5 nvs_key NVS keys 01 04 00f30000 00001000"} +{"ts":1777479805.624595,"direction":"rx","raw":"I (144) boot: End of partition table"} +{"ts":1777479805.6251352,"direction":"rx","raw":"I (148) esp_image: segment 0: paddr=00030020 vaddr=3c110020 size=99cbch (629948) map"} +{"ts":1777479805.625646,"direction":"rx","raw":"I (278) esp_image: segment 1: paddr=000c9ce4 vaddr=3fc9f600 size=05a48h ( 23112) load"} +{"ts":1777479805.626125,"direction":"rx","raw":"I (284) esp_image: segment 2: paddr=000cf734 vaddr=40374000 size=008e4h ( 2276) load"} +{"ts":1777479805.626593,"direction":"rx","raw":"I (285) esp_image: segment 3: paddr=000d0020 vaddr=42000020 size=10654ch (1074508) map"} +{"ts":1777479805.627,"direction":"rx","raw":"I (501) esp_image: segment 4: paddr=001d6574 vaddr=403748e4 size=1ac80h (109696) load"} +{"ts":1777479805.6273248,"direction":"rx","raw":"I (527) esp_image: segment 5: paddr=001f11fc vaddr=50000000 size=00020h ( 32) load"} +{"ts":1777479805.627668,"direction":"rx","raw":"I (527) esp_image: segment 6: paddr=001f1224 vaddr=00000000 size=0edach ( 60844) "} +{"ts":1777479805.6279628,"direction":"rx","raw":"I (543) esp_image: Verifying image signature..."} +{"ts":1777479805.62819,"direction":"rx","raw":"I (543) secure_boot_v2: Verifying with RSA-PSS..."} +{"ts":1777479805.628427,"direction":"rx","raw":"I (546) secure_boot_v2: Signature verified successfully!"} +{"ts":1777479805.628685,"direction":"rx","raw":"I (557) boot: Loaded app from partition at offset 0x30000"} +{"ts":1777479805.628899,"direction":"rx","raw":"I (557) secure_boot_v2: enabling secure boot v2..."} +{"ts":1777479805.629188,"direction":"rx","raw":"I (557) secure_boot_v2: secure boot v2 is already enabled, continuing.."} +{"ts":1777479805.629367,"direction":"rx","raw":"I (561) boot: Checking flash encryption..."} +{"ts":1777479805.6296709,"direction":"rx","raw":"I (565) flash_encrypt: flash encryption is enabled (1 plaintext flashes left)"} +{"ts":1777479805.62988,"direction":"rx","raw":"I (572) boot: Disabling RNG early entropy source..."} +{"ts":1777479805.63007,"direction":"rx","raw":"I (589) octal_psram: vendor id : 0x0d (AP)"} +{"ts":1777479805.630292,"direction":"rx","raw":"I (589) octal_psram: dev id : 0x02 (generation 3)"} +{"ts":1777479805.630496,"direction":"rx","raw":"I (589) octal_psram: density : 0x03 (64 Mbit)"} +{"ts":1777479805.630691,"direction":"rx","raw":"I (591) octal_psram: good-die : 0x01 (Pass)"} +{"ts":1777479805.63089,"direction":"rx","raw":"I (595) octal_psram: Latency : 0x01 (Fixed)"} +{"ts":1777479805.631088,"direction":"rx","raw":"I (599) octal_psram: VCC : 0x01 (3V)"} +{"ts":1777479805.631289,"direction":"rx","raw":"I (604) octal_psram: SRF : 0x01 (Fast Refresh)"} +{"ts":1777479805.6314828,"direction":"rx","raw":"I (608) octal_psram: BurstType : 0x01 (Hybrid Wrap)"} +{"ts":1777479805.631663,"direction":"rx","raw":"I (613) octal_psram: BurstLen : 0x01 (32 Byte)"} +{"ts":1777479805.6318731,"direction":"rx","raw":"I (618) octal_psram: Readlatency : 0x02 (10 cycles@Fixed)"} +{"ts":1777479805.632067,"direction":"rx","raw":"I (623) octal_psram: DriveStrength: 0x00 (1/1)"} +{"ts":1777479805.632237,"direction":"rx","raw":"I (627) MSPI Timing: Enter psram timing tuning"} +{"ts":1777479805.632389,"direction":"rx","raw":"I (632) esp_psram: Found 8MB PSRAM device"} +{"ts":1777479805.632514,"direction":"rx","raw":"I (635) esp_psram: Speed: 80MHz"} +{"ts":1777479805.632638,"direction":"rx","raw":"I (638) cpu_start: Multicore app"} +{"ts":1777479805.6327949,"direction":"rx","raw":"I (1372) esp_psram: SPI SRAM memory test OK"} +{"ts":1777479805.633051,"direction":"rx","raw":"I (1380) cpu_start: GPIO 44 and 43 are used as console UART I/O pins"} +{"ts":1777479805.633209,"direction":"rx","raw":"I (1381) cpu_start: Pro cpu start user code"} +{"ts":1777479805.633364,"direction":"rx","raw":"I (1381) cpu_start: cpu freq: 160000000 Hz"} +{"ts":1777479805.633524,"direction":"rx","raw":"I (1383) app_init: Application information:"} +{"ts":1777479805.6336908,"direction":"rx","raw":"I (1387) app_init: Project name: TQ_printer"} +{"ts":1777479805.6338692,"direction":"rx","raw":"I (1391) app_init: App version: d735446-dirty"} +{"ts":1777479805.6340659,"direction":"rx","raw":"I (1395) app_init: Compile time: Apr 30 2026 00:13:05"} +{"ts":1777479805.634239,"direction":"rx","raw":"I (1400) app_init: ELF file SHA256: 6bee451c4..."} +{"ts":1777479805.634395,"direction":"rx","raw":"I (1405) app_init: ESP-IDF: v5.5.3"} +{"ts":1777479805.63455,"direction":"rx","raw":"I (1409) efuse_init: Min chip rev: v0.0"} +{"ts":1777479805.6347158,"direction":"rx","raw":"I (1413) efuse_init: Max chip rev: v0.99 "} +{"ts":1777479805.634877,"direction":"rx","raw":"I (1417) efuse_init: Chip rev: v0.2"} +{"ts":1777479805.635149,"direction":"rx","raw":"I (1421) heap_init: Initializing. RAM available for dynamic allocation:"} +{"ts":1777479805.6353621,"direction":"rx","raw":"I (1427) heap_init: At 3FCAA660 len 0003F0B0 (252 KiB): RAM"} +{"ts":1777479805.635575,"direction":"rx","raw":"I (1432) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM"} +{"ts":1777479805.635788,"direction":"rx","raw":"I (1438) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM"} +{"ts":1777479805.636001,"direction":"rx","raw":"I (1443) heap_init: At 600FE000 len 00001FE8 (7 KiB): RTCRAM"} +{"ts":1777479805.6362581,"direction":"rx","raw":"I (1448) esp_psram: Adding pool of 8192K of PSRAM memory to heap allocator"} +{"ts":1777479805.636416,"direction":"rx","raw":"I (1456) spi_flash: detected chip: generic"} +{"ts":1777479805.6365461,"direction":"rx","raw":"I (1459) spi_flash: flash io: dio"} +{"ts":1777479805.636802,"direction":"rx","raw":"W (1462) flash_encrypt: Flash encryption mode is DEVELOPMENT (not secure)"} +{"ts":1777479805.637045,"direction":"rx","raw":"I (1469) sleep_gpio: Configure to isolate all GPIO pins in sleep state"} +{"ts":1777479805.637315,"direction":"rx","raw":"I (1475) sleep_gpio: Enable automatic switching of GPIO sleep configuration"} +{"ts":1777479805.63763,"direction":"rx","raw":"I (1481) nvs_sec_provider: NVS Encryption - Registering Flash encryption-based scheme..."} +{"ts":1777479805.637763,"direction":"rx","raw":"I (1490) main_task: Started on CPU0"} +{"ts":1777479805.638058,"direction":"rx","raw":"I (1500) esp_psram: Reserving pool of 32K of internal memory for DMA/internal allocations"} +{"ts":1777479805.638199,"direction":"rx","raw":"I (1500) main_task: Calling app_main()"} +{"ts":1777479805.638908,"direction":"rx","raw":"I (1500) platform_bootstrap: board gpio mapped: hold=1 pwr_key=47 key_print=0 boost_mode=1 led_r=2 led_g=21 spi(mosi=9,miso=10,clk=11) screen(dc=12,cs=13,bk=48) i2c(sda=6,scl=7) i2s(mclk=38,bclk=39,ws=41,di=40,do=42) pa=20"} +{"ts":1777479805.639081,"direction":"rx","raw":"I (1540) nvs: NVS partition \"nvs\" is encrypted."} +{"ts":1777479805.639325,"direction":"rx","raw":"I (1540) platform_bootstrap: extmem malloc threshold set to 4096 bytes"} +{"ts":1777479805.639616,"direction":"rx","raw":"I (1540) platform_bootstrap: mbedtls calloc/free redirected to PSRAM-preferred allocator"} +{"ts":1777479805.6401012,"direction":"rx","raw":"I (1950) lcd_module: st7789p3 ready: spi_host=1 mosi=9 clk=11 miso=10 dc=12 cs=13 rst=48 bk=48 pclk=10000000 mode=0 res=320x240 madctl=0x60 gap=0,0 invert=1 swap_bytes=1"} +{"ts":1777479805.6402812,"direction":"rx","raw":"I (2340) lcd_module: preview drawn directly: size=320x240"} +{"ts":1777479805.64043,"direction":"rx","raw":"I (2350) button: IoT Button Version: 4.1.5"} +{"ts":1777479805.6407108,"direction":"rx","raw":"I (2350) platform_power_key: POWER_KEY initialized: gpio=47 active_level=low long_press_ms=2000"} +{"ts":1777479805.640853,"direction":"rx","raw":"I (2360) pp: pp rom version: e7ae62f"} +{"ts":1777479805.6410072,"direction":"rx","raw":"I (2360) net80211: net80211 rom version: e7ae62f"} +{"ts":1777479805.641218,"direction":"rx","raw":"I (2370) wifi:wifi driver task: 3fceebc0, prio:23, stack:6656, core=0"} +{"ts":1777479805.6413598,"direction":"rx","raw":"I (2370) wifi:wifi firmware version: 4df78f2"} +{"ts":1777479805.6415071,"direction":"rx","raw":"I (2370) wifi:wifi certification version: v7.0"} +{"ts":1777479805.641637,"direction":"rx","raw":"I (2370) wifi:config NVS flash: enabled"} +{"ts":1777479805.6418939,"direction":"rx","raw":"I (2380) wifi:config nano formatting: disabled"} +{"ts":1777479805.642179,"direction":"rx","raw":"I (2380) wifi:Init data frame dynamic rx buffer num: 256"} +{"ts":1777479805.64238,"direction":"rx","raw":"I (2390) wifi:Init static rx mgmt buffer num: 5"} +{"ts":1777479805.6425788,"direction":"rx","raw":"I (2390) wifi:Init management short buffer num: 32"} +{"ts":1777479805.6427588,"direction":"rx","raw":"I (2400) wifi:Init static tx buffer num: 32"} +{"ts":1777479805.6429288,"direction":"rx","raw":"I (2400) wifi:Init tx cache buffer num: 64"} +{"ts":1777479805.643106,"direction":"rx","raw":"I (2400) wifi:Init static tx FG buffer num: 2"} +{"ts":1777479805.643295,"direction":"rx","raw":"I (2410) wifi:Init static rx buffer size: 1600"} +{"ts":1777479805.6434681,"direction":"rx","raw":"I (2410) wifi:Init static rx buffer num: 24"} +{"ts":1777479805.643743,"direction":"rx","raw":"I (2410) wifi:Init dynamic rx buffer num: 256"} +{"ts":1777479805.643886,"direction":"rx","raw":"I (2420) wifi_init: rx ba win: 32"} +{"ts":1777479805.644025,"direction":"rx","raw":"I (2420) wifi_init: accept mbox: 6"} +{"ts":1777479805.644166,"direction":"rx","raw":"I (2420) wifi_init: tcpip mbox: 256"} +{"ts":1777479805.644293,"direction":"rx","raw":"I (2430) wifi_init: udp mbox: 6"} +{"ts":1777479805.644437,"direction":"rx","raw":"I (2430) wifi_init: tcp mbox: 192"} +{"ts":1777479805.644586,"direction":"rx","raw":"I (2430) wifi_init: tcp tx win: 57344"} +{"ts":1777479805.644738,"direction":"rx","raw":"I (2440) wifi_init: tcp rx win: 262144"} +{"ts":1777479805.644883,"direction":"rx","raw":"I (2440) wifi_init: tcp mss: 1440"} +{"ts":1777479805.64505,"direction":"rx","raw":"I (2440) wifi_init: WiFi/LWIP prefer SPIRAM"} +{"ts":1777479805.645213,"direction":"rx","raw":"I (2450) wifi_init: WiFi IRAM OP enabled"} +{"ts":1777479805.645386,"direction":"rx","raw":"I (2450) wifi_init: WiFi RX IRAM OP enabled"} +{"ts":1777479805.645634,"direction":"rx","raw":"I (2460) wifi_manager: found saved Wi-Fi credentials for SSID:TalkingQ"} +{"ts":1777479805.645936,"direction":"rx","raw":"W (2460) wifi:Password length matches WPA2 standards, authmode threshold changes from OPEN to WPA2"} +{"ts":1777479805.646137,"direction":"rx","raw":"I (2470) phy_init: phy_version 711,97bcf0a2,Aug 25 2025,19:04:10"} +{"ts":1777479805.64628,"direction":"rx","raw":"I (2530) wifi:mode : sta (3c:dc:75:5c:1c:9c)"} +{"ts":1777479805.646367,"direction":"rx","raw":"I (2530) wifi:enable tsf"} +{"ts":1777479805.6466181,"direction":"rx","raw":"I (2700) wifi:new:<1,1>, old:<1,0>, ap:<255,255>, sta:<1,1>, prof:1, snd_ch_cfg:0x0"} +{"ts":1777479805.646751,"direction":"rx","raw":"I (2700) wifi:state: init -> auth (0xb0)"} +{"ts":1777479805.6468842,"direction":"rx","raw":"I (2700) wifi:state: auth -> assoc (0x0)"} +{"ts":1777479805.6470149,"direction":"rx","raw":"I (2710) wifi:state: assoc -> run (0x10)"} +{"ts":1777479805.647289,"direction":"rx","raw":"I (2730) wifi:connected with TalkingQ, aid = 90, channel 1, 40U, bssid = a8:e5:44:d7:1a:64"} +{"ts":1777479805.647459,"direction":"rx","raw":"I (2730) wifi:security: WPA2-PSK, phy: bgn, rssi: -38"} +{"ts":1777479805.647567,"direction":"rx","raw":"I (2730) wifi:pm start, type: 1"} +{"ts":1777479805.6478431,"direction":"rx","raw":"I (2730) wifi:dp: 1, bi: 102400, li: 3, scale listen interval from 307200 us to 307200 us"} +{"ts":1777479805.648142,"direction":"rx","raw":"I (2740) wifi:set rx beacon pti, rx_bcn_pti: 0, bcn_timeout: 25000, mt_pti: 0, mt_time: 10000"} +{"ts":1777479805.648347,"direction":"rx","raw":"I (2820) wifi:AP's beacon interval = 102400 us, DTIM period = 1"} +{"ts":1777479805.648522,"direction":"rx","raw":"I (2840) lcd_module: preview drawn directly: size=320x55"} +{"ts":1777479805.6487,"direction":"rx","raw":"I (2840) wifi_manager: trying to connect to SSID:TalkingQ"} +{"ts":1777479806.416215,"direction":"rx","raw":"I (3800) esp_netif_handlers: sta ip: 192.168.101.16, mask: 255.255.255.0, gw: 192.168.101.1"} +{"ts":1777479806.416928,"direction":"rx","raw":"I (3800) wifi_manager: got ip:192.168.101.16"} +{"ts":1777479806.422893,"direction":"rx","raw":"I (3810) wifi_manager: connected to AP SSID:TalkingQ"} +{"ts":1777479806.428388,"direction":"rx","raw":"I (3810) wifi_manager: Wi-Fi protocol mask set to 11b/11g/11n"} +{"ts":1777479806.43418,"direction":"rx","raw":"I (3810) wifi_manager: Wi-Fi bandwidth set to HT40"} +{"ts":1777479806.439557,"direction":"rx","raw":"I (3810) wifi:Set ps type: 0, coexist: 0"} +{"ts":1777479806.445097,"direction":"rx","raw":"I (3820) wifi_manager: Wi-Fi power save disabled (WIFI_PS_NONE)"} +{"ts":1777479806.4505181,"direction":"rx","raw":"I (3830) printer_driver: printer initialized"} +{"ts":1777479806.451088,"direction":"rx","raw":"I (3830) printer_protocol: printer driver ready at startup"} +{"ts":1777479806.456479,"direction":"rx","raw":"I (3830) printer_protocol: printer protocol initialized"} +{"ts":1777479806.47392,"direction":"rx","raw":"I (3840) platform_mic_key: MIC_KEY initialized: gpio=14 active_level=low sh��I (3850) product_test_uart: product test uart ready: port=0 baud=115200 tx=-1 rx=-1"} +{"ts":1777479806.479465,"direction":"rx","raw":"TQTEST_READY {\"version\":1,\"device\":\"TQ_printer\",\"idf_free_heap\":8293956,\"uart_port\":0,\"baud\":115200}"} +{"ts":1777479806.479716,"direction":"tx","raw":"TQTEST_CMD {\"seq\":2,\"cmd\":\"PING\",\"payload\":{}}","seq":2,"cmd":"PING"} +{"ts":1777479806.485308,"direction":"rx","raw":"I (3860) product_test: product test service started"} +{"ts":1777479806.49601,"direction":"rx","raw":"I (3870) control_plane_lifecycle: control-plane lifecycle started"} +{"ts":1777479806.4962828,"direction":"rx","raw":"I (3880) app_main: TQ printer runtime started"} +{"ts":1777479806.501945,"direction":"rx","raw":"I (3880) main_task: Returned from app_main()"} +{"ts":1777479806.512017,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":2,\"name\":\"PING\",\"ms\":2430,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":0,\"data\":{\"version\":1,\"free_heap\":8222432}}"} +{"ts":1777479806.512269,"direction":"tx","raw":"TQTEST_CMD {\"seq\":3,\"cmd\":\"WAIT_WIFI\",\"payload\":{\"timeout_ms\":20000}}","seq":3,"cmd":"WAIT_WIFI"} +{"ts":1777479806.5227258,"direction":"rx","raw":"I (3880) websocket_client: Started"} +{"ts":1777479806.52931,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":3,\"name\":\"WAIT_WIFI\",\"ms\":2464,\"stage\":\"wait_wifi\"}"} +{"ts":1777479806.5442529,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":3,\"name\":\"WAIT_WIFI\",\"ms\":2472,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":8,\"data\":{\"wifi_ready\":true,\"ip\":\"192.168.101.16\"}}"} +{"ts":1777479806.544511,"direction":"tx","raw":"TQTEST_CMD {\"seq\":4,\"cmd\":\"STATUS\",\"payload\":{}}","seq":4,"cmd":"STATUS"} +{"ts":1777479806.640675,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":4,\"name\":\"STATUS\",\"ms\":2499,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":5,\"data\":{\"wifi_ready\":true,\"ip\":\"192.168.101.16\",\"printer\":{\"busy\":false,\"has_paper\":true,\"paper_gpio_level\":0,\"paper_present_level\":0,\"battery_adc_ready\":true,\"ntc_adc_ready\":true,\"battery_adc_raw\":2420,\"ntc_adc_raw\":2891,\"battery_mv\":3900,\"battery_percent\":66,\"temperature_c\":30.096527099609375,\"temperature_min_c\":15,\"temperature_max_c\":55,\"battery_min_percent\":5,\"ntc_pullup_ohms\":10000,\"ntc_r25_ohms\":30000,\"ntc_beta\":3950,\"queue_depth\":0,\"last_status_ms\":2495},\"voice\":{\"ready\":true,\"session_active\":true,\"ws_connected\":false,\"started\":false,\"tap_active\":false,\"marker_image_gen_running\":false,\"dialog_state\":\"Idle\",\"upstream_packets\":0,\"downstream_packets\":0,\"task_id\":\"dac9c8c6-7081-4ea1-86bb-0d2fd694eef1\",\"dialog_id\":\"\",\"last_error\":\"\",\"last_event_ms\":2428},\"free_heap\":8122496,\"min_free_heap\":7993228}}"} +{"ts":1777479806.641114,"direction":"tx","raw":"TQTEST_CMD {\"seq\":5,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":96,\"wait_done\":true,\"ignore_precheck\":false,\"density\":\"较淡\",\"timeout_ms\":120000}}","seq":5,"cmd":"PRINT_PATTERN"} +{"ts":1777479806.659316,"direction":"rx","raw":"I (4000) wifi:idx:0 (ifx:0, a8:e5:44:d7:1a:64), tid:5, ssn:1476, winSize:64"} +{"ts":1777479806.6599889,"direction":"rx","raw":"I (3990) lcd_module: preview drawn directly: size=320x47"} +{"ts":1777479806.6656141,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":2600,\"stage\":\"build_pattern\"}"} +{"ts":1777479806.674423,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":2609,\"stage\":\"submit_print\"}"} +{"ts":1777479806.687198,"direction":"rx","raw":"I (4070) printer_protocol: job 1 running, queue_wait_ms=0, raster_bytes=4608, size=384x96, density=较淡"} +{"ts":1777479806.695014,"direction":"rx","raw":"I (4070) printer_protocol: job 1 print start, raster_bytes=4608, size=384x96, density=较淡, ignore_precheck=0"} +{"ts":1777479806.728533,"direction":"rx","raw":"I (4070) printer_protocol: job queued, job_id=1, raster_bytes=4608, size=384x96, density=较淡, ignore_precheck=0, queue_depth=1"} +{"ts":1777479806.7328901,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":2655,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":1}}"} +{"ts":1777479806.7478569,"direction":"rx","raw":"I (4130) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777479807.25035,"direction":"rx","raw":"I (4640) voice_interaction: voice session prewarm ready"} +{"ts":1777479807.438507,"direction":"rx","raw":"I (4820) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777479808.997662,"direction":"rx","raw":"I (6380) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777479809.5807219,"direction":"rx","raw":"I (6960) printer_driver: print power limited: lines=96 max_black_dots=36 max_dots_per_pulse=32 subpulses=192"} +{"ts":1777479809.585531,"direction":"rx","raw":"I (6960) printer_protocol: job 1 done, state=success, duration_ms=2895"} +{"ts":1777479809.7548668,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":5676,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":3076,\"data\":{\"job_id\":1,\"job_state\":\"success\",\"progress\":100,\"width\":384,\"height\":96,\"data_len\":4608,\"error\":\"\"}}"} +{"ts":1777479809.755208,"direction":"tx","raw":"TQTEST_CMD {\"seq\":6,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":256,\"wait_done\":true,\"ignore_precheck\":false,\"density\":\"较淡\",\"timeout_ms\":120000}}","seq":6,"cmd":"PRINT_PATTERN"} +{"ts":1777479809.7796822,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":5714,\"stage\":\"build_pattern\"}"} +{"ts":1777479809.78927,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":5724,\"stage\":\"submit_print\"}"} +{"ts":1777479809.806935,"direction":"rx","raw":"I (7180) printer_protocol: job queued, job_id=2, raster_bytes=12288, size=384x256, density=较淡, ignore_precheck=0, queue_depth=1"} +{"ts":1777479809.812866,"direction":"rx","raw":"I (7180) printer_protocol: job 2 running, queue_wait_ms=0, raster_bytes=12288, size=384x256, density=较淡"} +{"ts":1777479809.820812,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":5733,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":2}}"} +{"ts":1777479809.8312871,"direction":"rx","raw":"I (7190) printer_protocol: job 2 print start, raster_bytes=12288, size=384x256, density=较淡, ignore_precheck=0"} +{"ts":1777479809.8544939,"direction":"rx","raw":"I (7240) wifi:idx:1 (ifx:0, a8:e5:44:d7:1a:64), tid:0, ssn:1684, winSize:64"} +{"ts":1777479809.903905,"direction":"rx","raw":"I (7290) image_generation: https prewarm done, gen_rc=0x0, oss_rc=0x0, cost_ms=3416"} +{"ts":1777479817.510742,"direction":"rx","raw":"I (14890) printer_driver: print power limited: lines=256 max_black_dots=36 max_dots_per_pulse=32 subpulses=512"} +{"ts":1777479817.515929,"direction":"rx","raw":"I (14890) printer_protocol: job 2 done, state=success, duration_ms=7710"} +{"ts":1777479817.5852852,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":13506,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":7792,\"data\":{\"job_id\":2,\"job_state\":\"success\",\"progress\":100,\"width\":384,\"height\":256,\"data_len\":12288,\"error\":\"\"}}"} +{"ts":1777479817.5856462,"direction":"tx","raw":"TQTEST_CMD {\"seq\":7,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":96,\"wait_done\":true,\"ignore_precheck\":false,\"density\":\"中等\",\"timeout_ms\":120000}}","seq":7,"cmd":"PRINT_PATTERN"} +{"ts":1777479817.609887,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":7,\"name\":\"PRINT_PATTERN\",\"ms\":13544,\"stage\":\"build_pattern\"}"} +{"ts":1777479817.63193,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":7,\"name\":\"PRINT_PATTERN\",\"ms\":13553,\"stage\":\"submit_print\"}"} +{"ts":1777479817.635777,"direction":"rx","raw":"I (15010) printer_protocol: job queued, job_id=3, raster_bytes=4608, size=384x96, density=中等, ignore_precheck=0, queue_depth=0"} +{"ts":1777479817.641427,"direction":"rx","raw":"I (15010) printer_protocol: job 3 running, queue_wait_ms=0, raster_bytes=4608, size=384x96, density=中等"} +{"ts":1777479817.6493282,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":7,\"name\":\"PRINT_PATTERN\",\"ms\":13562,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":3}}"} +{"ts":1777479817.659651,"direction":"rx","raw":"I (15020) printer_protocol: job 3 print start, raster_bytes=4608, size=384x96, density=中等, ignore_precheck=0"} +{"ts":1777479820.550956,"direction":"rx","raw":"I (17930) printer_driver: print power limited: lines=96 max_black_dots=36 max_dots_per_pulse=32 subpulses=192"} +{"ts":1777479820.555915,"direction":"rx","raw":"I (17930) printer_protocol: job 3 done, state=success, duration_ms=2921"} +{"ts":1777479820.664994,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":7,\"name\":\"PRINT_PATTERN\",\"ms\":16586,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":3042,\"data\":{\"job_id\":3,\"job_state\":\"success\",\"progress\":100,\"width\":384,\"height\":96,\"data_len\":4608,\"error\":\"\"}}"} +{"ts":1777479820.665282,"direction":"tx","raw":"TQTEST_CMD {\"seq\":8,\"cmd\":\"IMAGE_PRINT\",\"payload\":{\"prompt\":\"简单黑白线稿,小猫,白色背景,适合热敏打印\",\"size\":\"512*768\",\"prompt_extend\":true,\"ignore_precheck\":false,\"density\":\"较淡\",\"generation_timeout_ms\":120000,\"download_timeout_ms\":45000,\"print_timeout_ms\":120000}}","seq":8,"cmd":"IMAGE_PRINT"} +{"ts":1777479820.704034,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":16638,\"stage\":\"image_generate\"}"} +{"ts":1777479820.7211678,"direction":"rx","raw":"I (18090) image_generation: image generate start, prompt_len=63, size=512*768, prompt_extend=1, seed=auto, gen_timeout_ms=120000, fetch_timeout_ms=45000"} +{"ts":1777479820.724131,"direction":"rx","raw":"I (18100) image_generation: z-image request start, timeout_ms=120000"} +{"ts":1777479820.940682,"direction":"rx","raw":"I (18330) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777479847.770726,"direction":"rx","raw":"I (45140) image_generation: z-image response ready, request_id=a0f604bb-8aa7-9d59-90c8-d5c57a6fde62, model_size=512x768, image_url_len=229"} +{"ts":1777479847.7819011,"direction":"rx","raw":"I (45150) image_generation: image generate stage done, request_id=a0f604bb-8aa7-9d59-90c8-d5c57a6fde62, gen_cost_ms=27048"} +{"ts":1777479847.783903,"direction":"rx","raw":"I (45160) image_generation: generated image download start, timeout_ms=45000"} +{"ts":1777479847.9440708,"direction":"rx","raw":"I (45330) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777479848.848634,"direction":"rx","raw":"I (46230) image_generation: generated image download done, png_bytes=219269"} +{"ts":1777479848.859636,"direction":"rx","raw":"I (46230) image_generation: image generation pipeline done, request_id=a0f604bb-8aa7-9d59-90c8-d5c57a6fde62, png_bytes=219269, gen_ms=27048, download_ms=1082, total_ms=28130"} +{"ts":1777479848.8665369,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":44790,\"stage\":\"image_preview\"}"} +{"ts":1777479849.710887,"direction":"rx","raw":"I (47100) lcd_module: preview drawn directly: size=160x240"} +{"ts":1777479849.7173629,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":45647,\"stage\":\"image_rasterize\"}"} +{"ts":1777479850.3385758,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":46273,\"stage\":\"submit_print\"}"} +{"ts":1777479850.356519,"direction":"rx","raw":"I (47730) printer_protocol: job queued, job_id=4, raster_bytes=12288, size=384x256, density=较淡, ignore_precheck=0, queue_depth=1"} +{"ts":1777479850.362466,"direction":"rx","raw":"I (47730) printer_protocol: job 4 running, queue_wait_ms=0, raster_bytes=12288, size=384x256, density=较淡"} +{"ts":1777479850.370382,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":46283,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":4}}"} +{"ts":1777479850.381043,"direction":"rx","raw":"I (47740) printer_protocol: job 4 print start, raster_bytes=12288, size=384x256, density=较淡, ignore_precheck=0"} +{"ts":1777479856.080981,"direction":"rx","raw":"I (53460) printer_driver: print power limited: lines=48 max_black_dots=107 max_dots_per_pulse=32 subpulses=245"} +{"ts":1777479856.08596,"direction":"rx","raw":"I (53460) printer_protocol: job 4 done, state=success, duration_ms=5731"} +{"ts":1777479856.1663349,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":52056,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":35418,\"data\":{\"request_id\":\"a0f604bb-8aa7-9d59-90c8-d5c57a6fde62\",\"png_len\":219269,\"width\":512,\"height\":768,\"image_url\":\"https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/7d/25/20260430/448165f2/a0f604bb-8aa7-9d59-90c8-d5c57a6fde62864014877.png?Expires=1778085647&OSSAccessKeyId=LTAI5tPxpiCM2hjmWrFXrym1&Signature=fxJWS8VElWsAbXN29mDiISBOA78%3D\",\"job_id\":4,\"raster_width\":384,\"raster_height\":256,\"raster_len\":12288,\"job_state\":\"success\",\"progress\":100,\"job_error\":\"\"}}"} diff --git a/docs/product_test_reports/fix_round1_verify_20260430_000041.jsonl b/docs/product_test_reports/fix_round1_verify_20260430_000041.jsonl new file mode 100644 index 0000000..5937591 --- /dev/null +++ b/docs/product_test_reports/fix_round1_verify_20260430_000041.jsonl @@ -0,0 +1,171 @@ +{"ts":1777478444.807286,"direction":"tx","raw":"TQTEST_CMD {\"seq\":1,\"cmd\":\"PING\",\"payload\":{}}","seq":1,"cmd":"PING"} +{"ts":1777478444.813379,"direction":"rx","raw":"0001000"} +{"ts":1777478444.814177,"direction":"rx","raw":"I (124) boot: 3 ota_0 OTA app 00 10 00030000 00780000"} +{"ts":1777478444.814875,"direction":"rx","raw":"I (131) boot: 4 ota_1 OTA app 00 11 007b0000 00780000"} +{"ts":1777478444.8155441,"direction":"rx","raw":"I (137) boot: 5 nvs_key NVS keys 01 04 00f30000 00001000"} +{"ts":1777478444.8158798,"direction":"rx","raw":"I (144) boot: End of partition table"} +{"ts":1777478444.816334,"direction":"rx","raw":"I (148) esp_image: segment 0: paddr=00030020 vaddr=3c110020 size=99c5ch (629852) map"} +{"ts":1777478444.8168051,"direction":"rx","raw":"I (278) esp_image: segment 1: paddr=000c9c84 vaddr=3fc9f600 size=05a48h ( 23112) load"} +{"ts":1777478444.817268,"direction":"rx","raw":"I (284) esp_image: segment 2: paddr=000cf6d4 vaddr=40374000 size=00944h ( 2372) load"} +{"ts":1777478444.817775,"direction":"rx","raw":"I (285) esp_image: segment 3: paddr=000d0020 vaddr=42000020 size=1063b8h (1074104) map"} +{"ts":1777478444.8181849,"direction":"rx","raw":"I (500) esp_image: segment 4: paddr=001d63e0 vaddr=40374944 size=1ac20h (109600) load"} +{"ts":1777478444.8185651,"direction":"rx","raw":"I (527) esp_image: segment 5: paddr=001f1008 vaddr=50000000 size=00020h ( 32) load"} +{"ts":1777478444.8189209,"direction":"rx","raw":"I (527) esp_image: segment 6: paddr=001f1030 vaddr=00000000 size=0efa0h ( 61344) "} +{"ts":1777478444.819145,"direction":"rx","raw":"I (542) esp_image: Verifying image signature..."} +{"ts":1777478444.819372,"direction":"rx","raw":"I (543) secure_boot_v2: Verifying with RSA-PSS..."} +{"ts":1777478444.819635,"direction":"rx","raw":"I (546) secure_boot_v2: Signature verified successfully!"} +{"ts":1777478444.819893,"direction":"rx","raw":"I (557) boot: Loaded app from partition at offset 0x30000"} +{"ts":1777478444.820103,"direction":"rx","raw":"I (557) secure_boot_v2: enabling secure boot v2..."} +{"ts":1777478444.820384,"direction":"rx","raw":"I (557) secure_boot_v2: secure boot v2 is already enabled, continuing.."} +{"ts":1777478444.820555,"direction":"rx","raw":"I (561) boot: Checking flash encryption..."} +{"ts":1777478444.8208451,"direction":"rx","raw":"I (565) flash_encrypt: flash encryption is enabled (1 plaintext flashes left)"} +{"ts":1777478444.821049,"direction":"rx","raw":"I (572) boot: Disabling RNG early entropy source..."} +{"ts":1777478444.8212311,"direction":"rx","raw":"I (589) octal_psram: vendor id : 0x0d (AP)"} +{"ts":1777478444.8214421,"direction":"rx","raw":"I (589) octal_psram: dev id : 0x02 (generation 3)"} +{"ts":1777478444.8216388,"direction":"rx","raw":"I (589) octal_psram: density : 0x03 (64 Mbit)"} +{"ts":1777478444.821829,"direction":"rx","raw":"I (591) octal_psram: good-die : 0x01 (Pass)"} +{"ts":1777478444.822022,"direction":"rx","raw":"I (595) octal_psram: Latency : 0x01 (Fixed)"} +{"ts":1777478444.8222039,"direction":"rx","raw":"I (599) octal_psram: VCC : 0x01 (3V)"} +{"ts":1777478444.822418,"direction":"rx","raw":"I (604) octal_psram: SRF : 0x01 (Fast Refresh)"} +{"ts":1777478444.822628,"direction":"rx","raw":"I (608) octal_psram: BurstType : 0x01 (Hybrid Wrap)"} +{"ts":1777478444.822825,"direction":"rx","raw":"I (613) octal_psram: BurstLen : 0x01 (32 Byte)"} +{"ts":1777478444.8230531,"direction":"rx","raw":"I (618) octal_psram: Readlatency : 0x02 (10 cycles@Fixed)"} +{"ts":1777478444.823248,"direction":"rx","raw":"I (623) octal_psram: DriveStrength: 0x00 (1/1)"} +{"ts":1777478444.823432,"direction":"rx","raw":"I (627) MSPI Timing: Enter psram timing tuning"} +{"ts":1777478444.8236,"direction":"rx","raw":"I (632) esp_psram: Found 8MB PSRAM device"} +{"ts":1777478444.823738,"direction":"rx","raw":"I (635) esp_psram: Speed: 80MHz"} +{"ts":1777478444.823858,"direction":"rx","raw":"I (638) cpu_start: Multicore app"} +{"ts":1777478444.824009,"direction":"rx","raw":"I (1372) esp_psram: SPI SRAM memory test OK"} +{"ts":1777478444.8242528,"direction":"rx","raw":"I (1380) cpu_start: GPIO 44 and 43 are used as console UART I/O pins"} +{"ts":1777478444.824404,"direction":"rx","raw":"I (1381) cpu_start: Pro cpu start user code"} +{"ts":1777478444.8245509,"direction":"rx","raw":"I (1381) cpu_start: cpu freq: 160000000 Hz"} +{"ts":1777478444.824703,"direction":"rx","raw":"I (1383) app_init: Application information:"} +{"ts":1777478444.824865,"direction":"rx","raw":"I (1387) app_init: Project name: TQ_printer"} +{"ts":1777478444.825019,"direction":"rx","raw":"I (1391) app_init: App version: d735446"} +{"ts":1777478444.82521,"direction":"rx","raw":"I (1395) app_init: Compile time: Apr 29 2026 23:43:54"} +{"ts":1777478444.825378,"direction":"rx","raw":"I (1400) app_init: ELF file SHA256: bad2e547b..."} +{"ts":1777478444.82553,"direction":"rx","raw":"I (1404) app_init: ESP-IDF: v5.5.3"} +{"ts":1777478444.8256829,"direction":"rx","raw":"I (1408) efuse_init: Min chip rev: v0.0"} +{"ts":1777478444.825841,"direction":"rx","raw":"I (1412) efuse_init: Max chip rev: v0.99 "} +{"ts":1777478444.8260381,"direction":"rx","raw":"I (1416) efuse_init: Chip rev: v0.2"} +{"ts":1777478444.8263092,"direction":"rx","raw":"I (1420) heap_init: Initializing. RAM available for dynamic allocation:"} +{"ts":1777478444.826517,"direction":"rx","raw":"I (1427) heap_init: At 3FCAA660 len 0003F0B0 (252 KiB): RAM"} +{"ts":1777478444.826716,"direction":"rx","raw":"I (1432) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM"} +{"ts":1777478444.82692,"direction":"rx","raw":"I (1437) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM"} +{"ts":1777478444.827125,"direction":"rx","raw":"I (1442) heap_init: At 600FE000 len 00001FE8 (7 KiB): RTCRAM"} +{"ts":1777478444.82737,"direction":"rx","raw":"I (1448) esp_psram: Adding pool of 8192K of PSRAM memory to heap allocator"} +{"ts":1777478444.82752,"direction":"rx","raw":"I (1455) spi_flash: detected chip: generic"} +{"ts":1777478444.8276448,"direction":"rx","raw":"I (1458) spi_flash: flash io: dio"} +{"ts":1777478444.8278909,"direction":"rx","raw":"W (1461) flash_encrypt: Flash encryption mode is DEVELOPMENT (not secure)"} +{"ts":1777478444.828129,"direction":"rx","raw":"I (1469) sleep_gpio: Configure to isolate all GPIO pins in sleep state"} +{"ts":1777478444.828376,"direction":"rx","raw":"I (1474) sleep_gpio: Enable automatic switching of GPIO sleep configuration"} +{"ts":1777478444.828662,"direction":"rx","raw":"I (1481) nvs_sec_provider: NVS Encryption - Registering Flash encryption-based scheme..."} +{"ts":1777478444.828792,"direction":"rx","raw":"I (1489) main_task: Started on CPU0"} +{"ts":1777478444.829081,"direction":"rx","raw":"I (1499) esp_psram: Reserving pool of 32K of internal memory for DMA/internal allocations"} +{"ts":1777478444.829228,"direction":"rx","raw":"I (1499) main_task: Calling app_main()"} +{"ts":1777478444.829927,"direction":"rx","raw":"I (1499) platform_bootstrap: board gpio mapped: hold=1 pwr_key=47 key_print=0 boost_mode=1 led_r=2 led_g=21 spi(mosi=9,miso=10,clk=11) screen(dc=12,cs=13,bk=48) i2c(sda=6,scl=7) i2s(mclk=38,bclk=39,ws=41,di=40,do=42) pa=20"} +{"ts":1777478444.8300989,"direction":"rx","raw":"I (1539) nvs: NVS partition \"nvs\" is encrypted."} +{"ts":1777478444.830339,"direction":"rx","raw":"I (1539) platform_bootstrap: extmem malloc threshold set to 4096 bytes"} +{"ts":1777478444.8306282,"direction":"rx","raw":"I (1539) platform_bootstrap: mbedtls calloc/free redirected to PSRAM-preferred allocator"} +{"ts":1777478444.8311622,"direction":"rx","raw":"I (1949) lcd_module: st7789p3 ready: spi_host=1 mosi=9 clk=11 miso=10 dc=12 cs=13 rst=48 bk=48 pclk=10000000 mode=0 res=320x240 madctl=0x60 gap=0,0 invert=1 swap_bytes=1"} +{"ts":1777478444.831359,"direction":"rx","raw":"I (2339) lcd_module: preview drawn directly: size=320x240"} +{"ts":1777478444.831511,"direction":"rx","raw":"I (2349) button: IoT Button Version: 4.1.5"} +{"ts":1777478444.831798,"direction":"rx","raw":"I (2349) platform_power_key: POWER_KEY initialized: gpio=47 active_level=low long_press_ms=2000"} +{"ts":1777478444.831935,"direction":"rx","raw":"I (2359) pp: pp rom version: e7ae62f"} +{"ts":1777478444.832082,"direction":"rx","raw":"I (2359) net80211: net80211 rom version: e7ae62f"} +{"ts":1777478444.832289,"direction":"rx","raw":"I (2369) wifi:wifi driver task: 3fceebc0, prio:23, stack:6656, core=0"} +{"ts":1777478444.832428,"direction":"rx","raw":"I (2369) wifi:wifi firmware version: 4df78f2"} +{"ts":1777478444.832572,"direction":"rx","raw":"I (2369) wifi:wifi certification version: v7.0"} +{"ts":1777478444.8327,"direction":"rx","raw":"I (2369) wifi:config NVS flash: enabled"} +{"ts":1777478444.832845,"direction":"rx","raw":"I (2379) wifi:config nano formatting: disabled"} +{"ts":1777478444.833025,"direction":"rx","raw":"I (2379) wifi:Init data frame dynamic rx buffer num: 256"} +{"ts":1777478444.833179,"direction":"rx","raw":"I (2389) wifi:Init static rx mgmt buffer num: 5"} +{"ts":1777478444.833332,"direction":"rx","raw":"I (2389) wifi:Init management short buffer num: 32"} +{"ts":1777478444.833473,"direction":"rx","raw":"I (2399) wifi:Init static tx buffer num: 32"} +{"ts":1777478444.8337111,"direction":"rx","raw":"I (2399) wifi:Init tx cache buffer num: 64"} +{"ts":1777478444.833979,"direction":"rx","raw":"I (2399) wifi:Init static tx FG buffer num: 2"} +{"ts":1777478444.834183,"direction":"rx","raw":"I (2409) wifi:Init static rx buffer size: 1600"} +{"ts":1777478444.834359,"direction":"rx","raw":"I (2409) wifi:Init static rx buffer num: 24"} +{"ts":1777478444.834543,"direction":"rx","raw":"I (2409) wifi:Init dynamic rx buffer num: 256"} +{"ts":1777478444.834792,"direction":"rx","raw":"I (2419) wifi_init: rx ba win: 32"} +{"ts":1777478444.834986,"direction":"rx","raw":"I (2419) wifi_init: accept mbox: 6"} +{"ts":1777478444.8351429,"direction":"rx","raw":"I (2419) wifi_init: tcpip mbox: 256"} +{"ts":1777478444.8352919,"direction":"rx","raw":"I (2429) wifi_init: udp mbox: 6"} +{"ts":1777478444.835437,"direction":"rx","raw":"I (2429) wifi_init: tcp mbox: 192"} +{"ts":1777478444.8355908,"direction":"rx","raw":"I (2429) wifi_init: tcp tx win: 57344"} +{"ts":1777478444.8357198,"direction":"rx","raw":"I (2439) wifi_init: tcp rx win: 262144"} +{"ts":1777478444.835837,"direction":"rx","raw":"I (2439) wifi_init: tcp mss: 1440"} +{"ts":1777478444.835978,"direction":"rx","raw":"I (2439) wifi_init: WiFi/LWIP prefer SPIRAM"} +{"ts":1777478444.836111,"direction":"rx","raw":"I (2449) wifi_init: WiFi IRAM OP enabled"} +{"ts":1777478444.836258,"direction":"rx","raw":"I (2449) wifi_init: WiFi RX IRAM OP enabled"} +{"ts":1777478444.836477,"direction":"rx","raw":"I (2459) wifi_manager: found saved Wi-Fi credentials for SSID:TalkingQ"} +{"ts":1777478444.836789,"direction":"rx","raw":"W (2459) wifi:Password length matches WPA2 standards, authmode threshold changes from OPEN to WPA2"} +{"ts":1777478444.836996,"direction":"rx","raw":"I (2469) phy_init: phy_version 711,97bcf0a2,Aug 25 2025,19:04:10"} +{"ts":1777478444.83714,"direction":"rx","raw":"I (2529) wifi:mode : sta (3c:dc:75:5c:1c:9c)"} +{"ts":1777478444.837226,"direction":"rx","raw":"I (2529) wifi:enable tsf"} +{"ts":1777478444.837478,"direction":"rx","raw":"I (2619) wifi:new:<1,1>, old:<1,0>, ap:<255,255>, sta:<1,1>, prof:1, snd_ch_cfg:0x0"} +{"ts":1777478444.837612,"direction":"rx","raw":"I (2629) wifi:state: init -> auth (0xb0)"} +{"ts":1777478444.837742,"direction":"rx","raw":"I (2629) wifi:state: auth -> assoc (0x0)"} +{"ts":1777478444.837873,"direction":"rx","raw":"I (2629) wifi:state: assoc -> run (0x10)"} +{"ts":1777478444.838145,"direction":"rx","raw":"I (2649) wifi:connected with TalkingQ, aid = 90, channel 1, 40U, bssid = a8:e5:44:d7:1a:64"} +{"ts":1777478444.838314,"direction":"rx","raw":"I (2649) wifi:security: WPA2-PSK, phy: bgn, rssi: -37"} +{"ts":1777478444.838419,"direction":"rx","raw":"I (2649) wifi:pm start, type: 1"} +{"ts":1777478444.8386948,"direction":"rx","raw":"I (2649) wifi:dp: 1, bi: 102400, li: 3, scale listen interval from 307200 us to 307200 us"} +{"ts":1777478444.838976,"direction":"rx","raw":"I (2659) wifi:set rx beacon pti, rx_bcn_pti: 0, bcn_timeout: 25000, mt_pti: 0, mt_time: 10000"} +{"ts":1777478444.839185,"direction":"rx","raw":"I (2699) wifi:AP's beacon interval = 102400 us, DTIM period = 1"} +{"ts":1777478444.839361,"direction":"rx","raw":"I (2839) lcd_module: preview drawn directly: size=320x55"} +{"ts":1777478444.839541,"direction":"rx","raw":"I (2839) wifi_manager: trying to connect to SSID:TalkingQ"} +{"ts":1777478445.54246,"direction":"rx","raw":"I (3729) esp_netif_handlers: sta ip: 192.168.101.16, mask: 255.255.255.0, gw: 192.168.101.1"} +{"ts":1777478445.543675,"direction":"rx","raw":"I (3729) wifi_manager: got ip:192.168.101.16"} +{"ts":1777478445.54913,"direction":"rx","raw":"I (3739) wifi_manager: connected to AP SSID:TalkingQ"} +{"ts":1777478445.5549388,"direction":"rx","raw":"I (3739) wifi_manager: Wi-Fi protocol mask set to 11b/11g/11n"} +{"ts":1777478445.5601962,"direction":"rx","raw":"I (3739) wifi_manager: Wi-Fi bandwidth set to HT40"} +{"ts":1777478445.565621,"direction":"rx","raw":"I (3739) wifi:Set ps type: 0, coexist: 0"} +{"ts":1777478445.5711439,"direction":"rx","raw":"I (3749) wifi_manager: Wi-Fi power save disabled (WIFI_PS_NONE)"} +{"ts":1777478445.5766668,"direction":"rx","raw":"I (3759) printer_driver: printer initialized"} +{"ts":1777478445.576948,"direction":"rx","raw":"I (3759) printer_protocol: printer driver ready at startup"} +{"ts":1777478445.5823061,"direction":"rx","raw":"I (3759) printer_protocol: printer protocol initialized"} +{"ts":1777478445.5999732,"direction":"rx","raw":"I (3769) platform_mic_key: MIC_KEY initialized: gpio=14 active_level=low sh��I (3779) product_test_uart: product test uart ready: port=0 baud=115200 tx=-1 rx=-1"} +{"ts":1777478445.605275,"direction":"rx","raw":"TQTEST_READY {\"version\":1,\"device\":\"TQ_printer\",\"idf_free_heap\":8293956,\"uart_port\":0,\"baud\":115200}"} +{"ts":1777478445.605421,"direction":"tx","raw":"TQTEST_CMD {\"seq\":2,\"cmd\":\"PING\",\"payload\":{}}","seq":2,"cmd":"PING"} +{"ts":1777478445.6113448,"direction":"rx","raw":"I (3779) product_test: product test service started"} +{"ts":1777478445.626393,"direction":"rx","raw":"I (3799) control_plane_lifecycle: control-plane lifecycle started"} +{"ts":1777478445.633984,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":2,\"name\":\"PING\",\"ms\":2360,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":0,\"data\":{\"version\":1,\"free_heap\":8220340}}"} +{"ts":1777478445.634152,"direction":"tx","raw":"TQTEST_CMD {\"seq\":3,\"cmd\":\"WAIT_WIFI\",\"payload\":{\"timeout_ms\":20000}}","seq":3,"cmd":"WAIT_WIFI"} +{"ts":1777478445.64337,"direction":"rx","raw":"I (3809) websocket_client: Started"} +{"ts":1777478445.645494,"direction":"rx","raw":"I (3809) app_main: TQ printer runtime started"} +{"ts":1777478445.65111,"direction":"rx","raw":"I (3829) main_task: Returned from app_main()"} +{"ts":1777478445.652364,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":3,\"name\":\"WAIT_WIFI\",\"ms\":2390,\"stage\":\"wait_wifi\"}"} +{"ts":1777478445.667242,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":3,\"name\":\"WAIT_WIFI\",\"ms\":2399,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":9,\"data\":{\"wifi_ready\":true,\"ip\":\"192.168.101.16\"}}"} +{"ts":1777478445.667489,"direction":"tx","raw":"TQTEST_CMD {\"seq\":4,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":96,\"wait_done\":true,\"ignore_precheck\":false,\"density\":\"较淡\",\"timeout_ms\":120000}}","seq":4,"cmd":"PRINT_PATTERN"} +{"ts":1777478445.693519,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":4,\"name\":\"PRINT_PATTERN\",\"ms\":2431,\"stage\":\"build_pattern\"}"} +{"ts":1777478445.70268,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":4,\"name\":\"PRINT_PATTERN\",\"ms\":2441,\"stage\":\"submit_print\"}"} +{"ts":1777478445.720396,"direction":"rx","raw":"I (3899) printer_protocol: job queued, job_id=1, raster_bytes=4608, size=384x96, density=较淡, ignore_precheck=0, queue_depth=1"} +{"ts":1777478445.726322,"direction":"rx","raw":"I (3899) printer_protocol: job 1 running, queue_wait_ms=0, raster_bytes=4608, size=384x96, density=较淡"} +{"ts":1777478445.7338712,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":4,\"name\":\"PRINT_PATTERN\",\"ms\":2450,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":1}}"} +{"ts":1777478445.740201,"direction":"rx","raw":"I (3919) lcd_module: preview drawn directly: size=320x47"} +{"ts":1777478445.7467232,"direction":"rx","raw":"I (3929) wifi:idx:0 (ifx:0, a8:e5:44:d7:1a:64), tid:5, ssn:1159, winSize:64"} +{"ts":1777478445.767204,"direction":"rx","raw":"I (3909) printer_protocol: job 1 print start, raster_bytes=4608, size=384x96, density=较淡, ignore_precheck=0"} +{"ts":1777478445.864622,"direction":"rx","raw":"I (4049) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777478445.8935502,"direction":"rx","raw":"W (4079) printer_protocol: job 1 done, state=canceled, duration_ms=131, error=Printer temperature abnormal. Wait and retry."} +{"ts":1777478446.020511,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":4,\"name\":\"PRINT_PATTERN\",\"ms\":2736,\"status\":\"fail\",\"rc\":-1,\"esp_err\":\"ESP_FAIL\",\"duration_ms\":305,\"message\":\"Printer temperature abnormal. Wait and retry.\",\"data\":{\"job_id\":1,\"job_state\":\"canceled\",\"progress\":100,\"width\":384,\"height\":96,\"data_len\":4608,\"error\":\"Printer temperature abnormal. Wait and retry.\"}}"} +{"ts":1777478446.02078,"direction":"tx","raw":"TQTEST_CMD {\"seq\":5,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":96,\"wait_done\":true,\"ignore_precheck\":true,\"density\":\"较淡\",\"timeout_ms\":120000}}","seq":5,"cmd":"PRINT_PATTERN"} +{"ts":1777478446.045229,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":2783,\"stage\":\"build_pattern\"}"} +{"ts":1777478446.054257,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":2792,\"stage\":\"submit_print\"}"} +{"ts":1777478446.071548,"direction":"rx","raw":"I (4249) printer_protocol: job queued, job_id=2, raster_bytes=4608, size=384x96, density=较淡, ignore_precheck=1, queue_depth=1"} +{"ts":1777478446.0758772,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":2801,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":2}}"} +{"ts":1777478446.159806,"direction":"rx","raw":"I (4339) printer_protocol: job 2 running, queue_wait_ms=94, raster_bytes=4608, size=384x96, density=较淡"} +{"ts":1777478446.167875,"direction":"rx","raw":"I (4339) printer_protocol: job 2 print start, raster_bytes=4608, size=384x96, density=较淡, ignore_precheck=1"} +{"ts":1777478446.43626,"direction":"rx","raw":"I (4629) voice_interaction: voice session prewarm ready"} +{"ts":1777478447.3593411,"direction":"rx","raw":"I (5549) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777478447.480431,"direction":"rx","raw":"I (5669) printer_protocol: job 2 done, state=success, duration_ms=1326"} +{"ts":1777478447.591255,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":4316,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":1533,\"data\":{\"job_id\":2,\"job_state\":\"success\",\"progress\":100,\"width\":384,\"height\":96,\"data_len\":4608,\"error\":\"\"}}"} +{"ts":1777478447.5917099,"direction":"tx","raw":"TQTEST_CMD {\"seq\":6,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":96,\"wait_done\":true,\"ignore_precheck\":true,\"density\":\"中等\",\"timeout_ms\":120000}}","seq":6,"cmd":"PRINT_PATTERN"} +{"ts":1777478447.616313,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":4354,\"stage\":\"build_pattern\"}"} +{"ts":1777478447.625109,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":4364,\"stage\":\"submit_print\"}"} +{"ts":1777478447.63715,"direction":"rx","raw":"I (5819) printer_protocol: job 3 running, queue_wait_ms=1, raster_bytes=4608, size=384x96, density=中等"} +{"ts":1777478447.648332,"direction":"rx","raw":"I (5819) printer_protocol: job queued, job_id=3, raster_bytes=4608, size=384x96, density=中等, ignore_precheck=1, queue_depth=0"} +{"ts":1777478447.659364,"direction":"rx","raw":"I (5819) printer_protocol: job 3 print start, raster_bytes=4608, size=384x96, density=中等, ignore_precheck=1"} +{"ts":1777478447.665567,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":4382,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":3}}"} +{"ts":1777478449.091734,"direction":"rx","raw":"I (7279) printer_protocol: job 3 done, state=success, duration_ms=1459"} +{"ts":1777478449.181937,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":5907,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":1553,\"data\":{\"job_id\":3,\"job_state\":\"success\",\"progress\":100,\"width\":384,\"height\":96,\"data_len\":4608,\"error\":\"\"}}"} diff --git a/docs/product_test_reports/fix_round2_verify_20260430_000553.jsonl b/docs/product_test_reports/fix_round2_verify_20260430_000553.jsonl new file mode 100644 index 0000000..e84caea --- /dev/null +++ b/docs/product_test_reports/fix_round2_verify_20260430_000553.jsonl @@ -0,0 +1,350 @@ +{"ts":1777478756.201324,"direction":"tx","raw":"TQTEST_CMD {\"seq\":1,\"cmd\":\"PING\",\"payload\":{}}","seq":1,"cmd":"PING"} +{"ts":1777478756.2073631,"direction":"rx","raw":"0001000"} +{"ts":1777478756.20789,"direction":"rx","raw":"I (124) boot: 3 ota_0 OTA app 00 10 00030000 00780000"} +{"ts":1777478756.2083259,"direction":"rx","raw":"I (131) boot: 4 ota_1 OTA app 00 11 007b0000 00780000"} +{"ts":1777478756.2087831,"direction":"rx","raw":"I (137) boot: 5 nvs_key NVS keys 01 04 00f30000 00001000"} +{"ts":1777478756.209027,"direction":"rx","raw":"I (144) boot: End of partition table"} +{"ts":1777478756.209527,"direction":"rx","raw":"I (148) esp_image: segment 0: paddr=00030020 vaddr=3c110020 size=99c5ch (629852) map"} +{"ts":1777478756.2100348,"direction":"rx","raw":"I (278) esp_image: segment 1: paddr=000c9c84 vaddr=3fc9f600 size=05a48h ( 23112) load"} +{"ts":1777478756.210512,"direction":"rx","raw":"I (284) esp_image: segment 2: paddr=000cf6d4 vaddr=40374000 size=00944h ( 2372) load"} +{"ts":1777478756.2109902,"direction":"rx","raw":"I (285) esp_image: segment 3: paddr=000d0020 vaddr=42000020 size=1063b8h (1074104) map"} +{"ts":1777478756.211509,"direction":"rx","raw":"I (500) esp_image: segment 4: paddr=001d63e0 vaddr=40374944 size=1ac20h (109600) load"} +{"ts":1777478756.211966,"direction":"rx","raw":"I (527) esp_image: segment 5: paddr=001f1008 vaddr=50000000 size=00020h ( 32) load"} +{"ts":1777478756.212338,"direction":"rx","raw":"I (527) esp_image: segment 6: paddr=001f1030 vaddr=00000000 size=0efa0h ( 61344) "} +{"ts":1777478756.212567,"direction":"rx","raw":"I (542) esp_image: Verifying image signature..."} +{"ts":1777478756.212797,"direction":"rx","raw":"I (543) secure_boot_v2: Verifying with RSA-PSS..."} +{"ts":1777478756.213058,"direction":"rx","raw":"I (546) secure_boot_v2: Signature verified successfully!"} +{"ts":1777478756.21332,"direction":"rx","raw":"I (557) boot: Loaded app from partition at offset 0x30000"} +{"ts":1777478756.213553,"direction":"rx","raw":"I (557) secure_boot_v2: enabling secure boot v2..."} +{"ts":1777478756.213841,"direction":"rx","raw":"I (557) secure_boot_v2: secure boot v2 is already enabled, continuing.."} +{"ts":1777478756.214015,"direction":"rx","raw":"I (561) boot: Checking flash encryption..."} +{"ts":1777478756.214308,"direction":"rx","raw":"I (565) flash_encrypt: flash encryption is enabled (1 plaintext flashes left)"} +{"ts":1777478756.214512,"direction":"rx","raw":"I (572) boot: Disabling RNG early entropy source..."} +{"ts":1777478756.2147021,"direction":"rx","raw":"I (589) octal_psram: vendor id : 0x0d (AP)"} +{"ts":1777478756.21492,"direction":"rx","raw":"I (589) octal_psram: dev id : 0x02 (generation 3)"} +{"ts":1777478756.2151208,"direction":"rx","raw":"I (589) octal_psram: density : 0x03 (64 Mbit)"} +{"ts":1777478756.215322,"direction":"rx","raw":"I (591) octal_psram: good-die : 0x01 (Pass)"} +{"ts":1777478756.215519,"direction":"rx","raw":"I (595) octal_psram: Latency : 0x01 (Fixed)"} +{"ts":1777478756.215714,"direction":"rx","raw":"I (599) octal_psram: VCC : 0x01 (3V)"} +{"ts":1777478756.2159328,"direction":"rx","raw":"I (604) octal_psram: SRF : 0x01 (Fast Refresh)"} +{"ts":1777478756.216146,"direction":"rx","raw":"I (608) octal_psram: BurstType : 0x01 (Hybrid Wrap)"} +{"ts":1777478756.216347,"direction":"rx","raw":"I (613) octal_psram: BurstLen : 0x01 (32 Byte)"} +{"ts":1777478756.216575,"direction":"rx","raw":"I (618) octal_psram: Readlatency : 0x02 (10 cycles@Fixed)"} +{"ts":1777478756.2167628,"direction":"rx","raw":"I (623) octal_psram: DriveStrength: 0x00 (1/1)"} +{"ts":1777478756.2169511,"direction":"rx","raw":"I (627) MSPI Timing: Enter psram timing tuning"} +{"ts":1777478756.217119,"direction":"rx","raw":"I (632) esp_psram: Found 8MB PSRAM device"} +{"ts":1777478756.217261,"direction":"rx","raw":"I (635) esp_psram: Speed: 80MHz"} +{"ts":1777478756.2174,"direction":"rx","raw":"I (638) cpu_start: Multicore app"} +{"ts":1777478756.217587,"direction":"rx","raw":"I (1372) esp_psram: SPI SRAM memory test OK"} +{"ts":1777478756.217847,"direction":"rx","raw":"I (1380) cpu_start: GPIO 44 and 43 are used as console UART I/O pins"} +{"ts":1777478756.2179992,"direction":"rx","raw":"I (1381) cpu_start: Pro cpu start user code"} +{"ts":1777478756.218153,"direction":"rx","raw":"I (1381) cpu_start: cpu freq: 160000000 Hz"} +{"ts":1777478756.2183099,"direction":"rx","raw":"I (1383) app_init: Application information:"} +{"ts":1777478756.218476,"direction":"rx","raw":"I (1387) app_init: Project name: TQ_printer"} +{"ts":1777478756.218658,"direction":"rx","raw":"I (1391) app_init: App version: d735446-dirty"} +{"ts":1777478756.218854,"direction":"rx","raw":"I (1395) app_init: Compile time: Apr 30 2026 00:03:39"} +{"ts":1777478756.2190259,"direction":"rx","raw":"I (1400) app_init: ELF file SHA256: b8d120bec..."} +{"ts":1777478756.219182,"direction":"rx","raw":"I (1405) app_init: ESP-IDF: v5.5.3"} +{"ts":1777478756.219338,"direction":"rx","raw":"I (1409) efuse_init: Min chip rev: v0.0"} +{"ts":1777478756.219502,"direction":"rx","raw":"I (1413) efuse_init: Max chip rev: v0.99 "} +{"ts":1777478756.21966,"direction":"rx","raw":"I (1417) efuse_init: Chip rev: v0.2"} +{"ts":1777478756.219897,"direction":"rx","raw":"I (1421) heap_init: Initializing. RAM available for dynamic allocation:"} +{"ts":1777478756.2201102,"direction":"rx","raw":"I (1427) heap_init: At 3FCAA660 len 0003F0B0 (252 KiB): RAM"} +{"ts":1777478756.220319,"direction":"rx","raw":"I (1432) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM"} +{"ts":1777478756.220535,"direction":"rx","raw":"I (1438) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM"} +{"ts":1777478756.220738,"direction":"rx","raw":"I (1443) heap_init: At 600FE000 len 00001FE8 (7 KiB): RTCRAM"} +{"ts":1777478756.220992,"direction":"rx","raw":"I (1448) esp_psram: Adding pool of 8192K of PSRAM memory to heap allocator"} +{"ts":1777478756.221148,"direction":"rx","raw":"I (1456) spi_flash: detected chip: generic"} +{"ts":1777478756.221299,"direction":"rx","raw":"I (1459) spi_flash: flash io: dio"} +{"ts":1777478756.2215848,"direction":"rx","raw":"W (1462) flash_encrypt: Flash encryption mode is DEVELOPMENT (not secure)"} +{"ts":1777478756.221853,"direction":"rx","raw":"I (1469) sleep_gpio: Configure to isolate all GPIO pins in sleep state"} +{"ts":1777478756.2221189,"direction":"rx","raw":"I (1475) sleep_gpio: Enable automatic switching of GPIO sleep configuration"} +{"ts":1777478756.2224069,"direction":"rx","raw":"I (1481) nvs_sec_provider: NVS Encryption - Registering Flash encryption-based scheme..."} +{"ts":1777478756.222537,"direction":"rx","raw":"I (1490) main_task: Started on CPU0"} +{"ts":1777478756.222827,"direction":"rx","raw":"I (1500) esp_psram: Reserving pool of 32K of internal memory for DMA/internal allocations"} +{"ts":1777478756.222966,"direction":"rx","raw":"I (1500) main_task: Calling app_main()"} +{"ts":1777478756.223655,"direction":"rx","raw":"I (1500) platform_bootstrap: board gpio mapped: hold=1 pwr_key=47 key_print=0 boost_mode=1 led_r=2 led_g=21 spi(mosi=9,miso=10,clk=11) screen(dc=12,cs=13,bk=48) i2c(sda=6,scl=7) i2s(mclk=38,bclk=39,ws=41,di=40,do=42) pa=20"} +{"ts":1777478756.223829,"direction":"rx","raw":"I (1540) nvs: NVS partition \"nvs\" is encrypted."} +{"ts":1777478756.224067,"direction":"rx","raw":"I (1540) platform_bootstrap: extmem malloc threshold set to 4096 bytes"} +{"ts":1777478756.2243571,"direction":"rx","raw":"I (1540) platform_bootstrap: mbedtls calloc/free redirected to PSRAM-preferred allocator"} +{"ts":1777478756.224881,"direction":"rx","raw":"I (1950) lcd_module: st7789p3 ready: spi_host=1 mosi=9 clk=11 miso=10 dc=12 cs=13 rst=48 bk=48 pclk=10000000 mode=0 res=320x240 madctl=0x60 gap=0,0 invert=1 swap_bytes=1"} +{"ts":1777478756.225079,"direction":"rx","raw":"I (2340) lcd_module: preview drawn directly: size=320x240"} +{"ts":1777478756.2252312,"direction":"rx","raw":"I (2350) button: IoT Button Version: 4.1.5"} +{"ts":1777478756.2255318,"direction":"rx","raw":"I (2350) platform_power_key: POWER_KEY initialized: gpio=47 active_level=low long_press_ms=2000"} +{"ts":1777478756.2256708,"direction":"rx","raw":"I (2360) pp: pp rom version: e7ae62f"} +{"ts":1777478756.2258308,"direction":"rx","raw":"I (2360) net80211: net80211 rom version: e7ae62f"} +{"ts":1777478756.226043,"direction":"rx","raw":"I (2370) wifi:wifi driver task: 3fceebc0, prio:23, stack:6656, core=0"} +{"ts":1777478756.226182,"direction":"rx","raw":"I (2370) wifi:wifi firmware version: 4df78f2"} +{"ts":1777478756.226331,"direction":"rx","raw":"I (2370) wifi:wifi certification version: v7.0"} +{"ts":1777478756.226462,"direction":"rx","raw":"I (2370) wifi:config NVS flash: enabled"} +{"ts":1777478756.2266061,"direction":"rx","raw":"I (2380) wifi:config nano formatting: disabled"} +{"ts":1777478756.226778,"direction":"rx","raw":"I (2380) wifi:Init data frame dynamic rx buffer num: 256"} +{"ts":1777478756.22693,"direction":"rx","raw":"I (2390) wifi:Init static rx mgmt buffer num: 5"} +{"ts":1777478756.227089,"direction":"rx","raw":"I (2390) wifi:Init management short buffer num: 32"} +{"ts":1777478756.227232,"direction":"rx","raw":"I (2400) wifi:Init static tx buffer num: 32"} +{"ts":1777478756.227366,"direction":"rx","raw":"I (2400) wifi:Init tx cache buffer num: 64"} +{"ts":1777478756.227602,"direction":"rx","raw":"I (2400) wifi:Init static tx FG buffer num: 2"} +{"ts":1777478756.227852,"direction":"rx","raw":"I (2410) wifi:Init static rx buffer size: 1600"} +{"ts":1777478756.2280362,"direction":"rx","raw":"I (2410) wifi:Init static rx buffer num: 24"} +{"ts":1777478756.228228,"direction":"rx","raw":"I (2410) wifi:Init dynamic rx buffer num: 256"} +{"ts":1777478756.228374,"direction":"rx","raw":"I (2420) wifi_init: rx ba win: 32"} +{"ts":1777478756.2285178,"direction":"rx","raw":"I (2420) wifi_init: accept mbox: 6"} +{"ts":1777478756.2286599,"direction":"rx","raw":"I (2420) wifi_init: tcpip mbox: 256"} +{"ts":1777478756.2287989,"direction":"rx","raw":"I (2430) wifi_init: udp mbox: 6"} +{"ts":1777478756.228938,"direction":"rx","raw":"I (2430) wifi_init: tcp mbox: 192"} +{"ts":1777478756.229085,"direction":"rx","raw":"I (2430) wifi_init: tcp tx win: 57344"} +{"ts":1777478756.229246,"direction":"rx","raw":"I (2440) wifi_init: tcp rx win: 262144"} +{"ts":1777478756.229385,"direction":"rx","raw":"I (2440) wifi_init: tcp mss: 1440"} +{"ts":1777478756.229547,"direction":"rx","raw":"I (2440) wifi_init: WiFi/LWIP prefer SPIRAM"} +{"ts":1777478756.2296908,"direction":"rx","raw":"I (2450) wifi_init: WiFi IRAM OP enabled"} +{"ts":1777478756.22985,"direction":"rx","raw":"I (2450) wifi_init: WiFi RX IRAM OP enabled"} +{"ts":1777478756.230062,"direction":"rx","raw":"I (2460) wifi_manager: found saved Wi-Fi credentials for SSID:TalkingQ"} +{"ts":1777478756.230365,"direction":"rx","raw":"W (2460) wifi:Password length matches WPA2 standards, authmode threshold changes from OPEN to WPA2"} +{"ts":1777478756.230561,"direction":"rx","raw":"I (2470) phy_init: phy_version 711,97bcf0a2,Aug 25 2025,19:04:10"} +{"ts":1777478756.2307,"direction":"rx","raw":"I (2530) wifi:mode : sta (3c:dc:75:5c:1c:9c)"} +{"ts":1777478756.230783,"direction":"rx","raw":"I (2530) wifi:enable tsf"} +{"ts":1777478756.2310772,"direction":"rx","raw":"I (2630) wifi:new:<1,1>, old:<1,0>, ap:<255,255>, sta:<1,1>, prof:1, snd_ch_cfg:0x0"} +{"ts":1777478756.2312498,"direction":"rx","raw":"I (2630) wifi:state: init -> auth (0xb0)"} +{"ts":1777478756.2314,"direction":"rx","raw":"I (2630) wifi:state: auth -> assoc (0x0)"} +{"ts":1777478756.2315369,"direction":"rx","raw":"I (2640) wifi:state: assoc -> run (0x10)"} +{"ts":1777478756.23181,"direction":"rx","raw":"I (2660) wifi:connected with TalkingQ, aid = 90, channel 1, 40U, bssid = a8:e5:44:d7:1a:64"} +{"ts":1777478756.231979,"direction":"rx","raw":"I (2660) wifi:security: WPA2-PSK, phy: bgn, rssi: -40"} +{"ts":1777478756.232086,"direction":"rx","raw":"I (2660) wifi:pm start, type: 1"} +{"ts":1777478756.232361,"direction":"rx","raw":"I (2670) wifi:dp: 1, bi: 102400, li: 3, scale listen interval from 307200 us to 307200 us"} +{"ts":1777478756.23264,"direction":"rx","raw":"I (2670) wifi:set rx beacon pti, rx_bcn_pti: 0, bcn_timeout: 25000, mt_pti: 0, mt_time: 10000"} +{"ts":1777478756.232855,"direction":"rx","raw":"I (2710) wifi:AP's beacon interval = 102400 us, DTIM period = 1"} +{"ts":1777478756.2330291,"direction":"rx","raw":"I (2850) lcd_module: preview drawn directly: size=320x55"} +{"ts":1777478756.233207,"direction":"rx","raw":"I (2850) wifi_manager: trying to connect to SSID:TalkingQ"} +{"ts":1777478756.927051,"direction":"rx","raw":"I (3720) esp_netif_handlers: sta ip: 192.168.101.16, mask: 255.255.255.0, gw: 192.168.101.1"} +{"ts":1777478756.928025,"direction":"rx","raw":"I (3720) wifi_manager: got ip:192.168.101.16"} +{"ts":1777478756.934743,"direction":"rx","raw":"I (3730) wifi_manager: connected to AP SSID:TalkingQ"} +{"ts":1777478756.940274,"direction":"rx","raw":"I (3730) wifi_manager: Wi-Fi protocol mask set to 11b/11g/11n"} +{"ts":1777478756.9457479,"direction":"rx","raw":"I (3730) wifi_manager: Wi-Fi bandwidth set to HT40"} +{"ts":1777478756.951108,"direction":"rx","raw":"I (3730) wifi:Set ps type: 0, coexist: 0"} +{"ts":1777478756.9531,"direction":"rx","raw":"I (3740) wifi_manager: Wi-Fi power save disabled (WIFI_PS_NONE)"} +{"ts":1777478756.960832,"direction":"rx","raw":"I (3760) printer_driver: printer initialized"} +{"ts":1777478756.966322,"direction":"rx","raw":"I (3760) printer_protocol: printer driver ready at startup"} +{"ts":1777478756.9718819,"direction":"rx","raw":"I (3760) printer_protocol: printer protocol initialized"} +{"ts":1777478756.987791,"direction":"rx","raw":"I (3760) platform_mic_key: MIC_KEY initialized: gpio=14 active_level=low sh�.�I (3780) product_test_uart: product test uart ready: port=0 baud=115200 tx=-1 rx=-1"} +{"ts":1777478756.993314,"direction":"rx","raw":"TQTEST_READY {\"version\":1,\"device\":\"TQ_printer\",\"idf_free_heap\":8293956,\"uart_port\":0,\"baud\":115200}"} +{"ts":1777478756.993521,"direction":"tx","raw":"TQTEST_CMD {\"seq\":2,\"cmd\":\"PING\",\"payload\":{}}","seq":2,"cmd":"PING"} +{"ts":1777478756.999379,"direction":"rx","raw":"I (3780) product_test: product test service started"} +{"ts":1777478757.009702,"direction":"rx","raw":"I (3800) control_plane_lifecycle: control-plane lifecycle started"} +{"ts":1777478757.0100229,"direction":"rx","raw":"I (3800) app_main: TQ printer runtime started"} +{"ts":1777478757.0153449,"direction":"rx","raw":"I (3800) main_task: Returned from app_main()"} +{"ts":1777478757.025536,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":2,\"name\":\"PING\",\"ms\":2353,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":0,\"data\":{\"version\":1,\"free_heap\":8222444}}"} +{"ts":1777478757.0257752,"direction":"tx","raw":"TQTEST_CMD {\"seq\":3,\"cmd\":\"WAIT_WIFI\",\"payload\":{\"timeout_ms\":20000}}","seq":3,"cmd":"WAIT_WIFI"} +{"ts":1777478757.03517,"direction":"rx","raw":"I (3800) websocket_client: Started"} +{"ts":1777478757.0430489,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":3,\"name\":\"WAIT_WIFI\",\"ms\":2387,\"stage\":\"wait_wifi\"}"} +{"ts":1777478757.057751,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":3,\"name\":\"WAIT_WIFI\",\"ms\":2395,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":8,\"data\":{\"wifi_ready\":true,\"ip\":\"192.168.101.16\"}}"} +{"ts":1777478757.057962,"direction":"tx","raw":"TQTEST_CMD {\"seq\":4,\"cmd\":\"STATUS\",\"payload\":{}}","seq":4,"cmd":"STATUS"} +{"ts":1777478757.156847,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":4,\"name\":\"STATUS\",\"ms\":2424,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":3,\"data\":{\"wifi_ready\":true,\"ip\":\"192.168.101.16\",\"printer\":{\"busy\":false,\"has_paper\":true,\"paper_gpio_level\":0,\"paper_present_level\":0,\"battery_adc_ready\":true,\"ntc_adc_ready\":true,\"battery_adc_raw\":2423,\"ntc_adc_raw\":2955,\"battery_mv\":3905,\"battery_percent\":67,\"temperature_c\":28.3255615234375,\"temperature_min_c\":15,\"temperature_max_c\":55,\"battery_min_percent\":5,\"ntc_pullup_ohms\":10000,\"ntc_r25_ohms\":30000,\"ntc_beta\":3950,\"queue_depth\":0,\"last_status_ms\":2422},\"voice\":{\"ready\":true,\"session_active\":true,\"ws_connected\":false,\"started\":false,\"tap_active\":false,\"marker_image_gen_running\":false,\"dialog_state\":\"Idle\",\"upstream_packets\":0,\"downstream_packets\":0,\"task_id\":\"4c72e66a-a091-4f7d-bb3a-ef0a721a5ea4\",\"dialog_id\":\"\",\"last_error\":\"\",\"last_event_ms\":2351},\"free_heap\":8122224,\"min_free_heap\":7993232}}"} +{"ts":1777478757.157181,"direction":"tx","raw":"TQTEST_CMD {\"seq\":5,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":96,\"wait_done\":true,\"ignore_precheck\":false,\"density\":\"较淡\",\"timeout_ms\":120000}}","seq":5,"cmd":"PRINT_PATTERN"} +{"ts":1777478757.17467,"direction":"rx","raw":"I (3930) wifi:idx:0 (ifx:0, a8:e5:44:d7:1a:64), tid:5, ssn:1211, winSize:64"} +{"ts":1777478757.1750221,"direction":"rx","raw":"I (3910) lcd_module: preview drawn directly: size=320x47"} +{"ts":1777478757.181685,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":2525,\"stage\":\"build_pattern\"}"} +{"ts":1777478757.19053,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":2534,\"stage\":\"submit_print\"}"} +{"ts":1777478757.207968,"direction":"rx","raw":"I (3990) printer_protocol: job queued, job_id=1, raster_bytes=4608, size=384x96, density=较淡, ignore_precheck=0, queue_depth=1"} +{"ts":1777478757.2122781,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":2543,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":1}}"} +{"ts":1777478757.232791,"direction":"rx","raw":"I (4020) printer_protocol: job 1 running, queue_wait_ms=30, raster_bytes=4608, size=384x96, density=较淡"} +{"ts":1777478757.2506702,"direction":"rx","raw":"I (4020) printer_protocol: job 1 print start, raster_bytes=4608, size=384x96, density=较淡, ignore_precheck=0"} +{"ts":1777478757.2543502,"direction":"rx","raw":"I (4050) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777478757.7714581,"direction":"rx","raw":"I (4570) voice_interaction: voice session prewarm ready"} +{"ts":1777478758.650513,"direction":"rx","raw":"I (5450) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777478758.756639,"direction":"rx","raw":"I (5550) printer_protocol: job 1 done, state=success, duration_ms=1529"} +{"ts":1777478758.97597,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":4306,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":1781,\"data\":{\"job_id\":1,\"job_state\":\"success\",\"progress\":100,\"width\":384,\"height\":96,\"data_len\":4608,\"error\":\"\"}}"} +{"ts":1777478758.976297,"direction":"tx","raw":"TQTEST_CMD {\"seq\":6,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":256,\"wait_done\":true,\"ignore_precheck\":false,\"density\":\"较淡\",\"timeout_ms\":120000}}","seq":6,"cmd":"PRINT_PATTERN"} +{"ts":1777478759.000902,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":4344,\"stage\":\"build_pattern\"}"} +{"ts":1777478759.0116282,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":4355,\"stage\":\"submit_print\"}"} +{"ts":1777478759.02953,"direction":"rx","raw":"I (5810) printer_protocol: job queued, job_id=2, raster_bytes=12288, size=384x256, density=较淡, ignore_precheck=0, queue_depth=1"} +{"ts":1777478759.035297,"direction":"rx","raw":"I (5810) printer_protocol: job 2 running, queue_wait_ms=0, raster_bytes=12288, size=384x256, density=较淡"} +{"ts":1777478759.043179,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":4365,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":2}}"} +{"ts":1777478759.0538912,"direction":"rx","raw":"I (5820) printer_protocol: job 2 print start, raster_bytes=12288, size=384x256, density=较淡, ignore_precheck=0"} +{"ts":1777478760.649089,"direction":"rx","raw":"I (7440) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777478762.526711,"direction":"rx","raw":"I (9320) printer_protocol: job 2 done, state=success, duration_ms=3508"} +{"ts":1777478762.556042,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":7886,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":3542,\"data\":{\"job_id\":2,\"job_state\":\"success\",\"progress\":100,\"width\":384,\"height\":256,\"data_len\":12288,\"error\":\"\"}}"} +{"ts":1777478762.556353,"direction":"tx","raw":"TQTEST_CMD {\"seq\":7,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":96,\"wait_done\":true,\"ignore_precheck\":false,\"density\":\"中等\",\"timeout_ms\":120000}}","seq":7,"cmd":"PRINT_PATTERN"} +{"ts":1777478762.580768,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":7,\"name\":\"PRINT_PATTERN\",\"ms\":7924,\"stage\":\"build_pattern\"}"} +{"ts":1777478762.589719,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":7,\"name\":\"PRINT_PATTERN\",\"ms\":7933,\"stage\":\"submit_print\"}"} +{"ts":1777478762.607082,"direction":"rx","raw":"I (9390) printer_protocol: job queued, job_id=3, raster_bytes=4608, size=384x96, density=中等, ignore_precheck=0, queue_depth=1"} +{"ts":1777478762.6129751,"direction":"rx","raw":"I (9390) printer_protocol: job 3 running, queue_wait_ms=0, raster_bytes=4608, size=384x96, density=中等"} +{"ts":1777478762.6204731,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":7,\"name\":\"PRINT_PATTERN\",\"ms\":7942,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":3}}"} +{"ts":1777478762.6310668,"direction":"rx","raw":"I (9400) printer_protocol: job 3 print start, raster_bytes=4608, size=384x96, density=中等, ignore_precheck=0"} +{"ts":1777478762.7844632,"direction":"rx","raw":"I (9580) wifi:idx:1 (ifx:0, a8:e5:44:d7:1a:64), tid:0, ssn:1080, winSize:64"} +{"ts":1777478762.974776,"direction":"rx","raw":"I (9770) image_generation: https prewarm done, gen_rc=0x0, oss_rc=0x0, cost_ms=5973"} +{"ts":1777478764.0667431,"direction":"rx","raw":"I (10860) printer_protocol: job 3 done, state=success, duration_ms=1470"} +{"ts":1777478764.135833,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":7,\"name\":\"PRINT_PATTERN\",\"ms\":9466,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":1542,\"data\":{\"job_id\":3,\"job_state\":\"success\",\"progress\":100,\"width\":384,\"height\":96,\"data_len\":4608,\"error\":\"\"}}"} +{"ts":1777478764.1361978,"direction":"tx","raw":"TQTEST_CMD {\"seq\":8,\"cmd\":\"IMAGE_PRINT\",\"payload\":{\"prompt\":\"简单黑白线稿,小猫,白色背景,适合热敏打印\",\"size\":\"512*768\",\"prompt_extend\":true,\"ignore_precheck\":false,\"density\":\"较淡\",\"generation_timeout_ms\":120000,\"download_timeout_ms\":45000,\"print_timeout_ms\":120000}}","seq":8,"cmd":"IMAGE_PRINT"} +{"ts":1777478764.1746151,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":9518,\"stage\":\"image_generate\"}"} +{"ts":1777478764.1919591,"direction":"rx","raw":"I (10970) image_generation: image generate start, prompt_len=63, size=512*768, prompt_extend=1, seed=auto, gen_timeout_ms=120000, fetch_timeout_ms=45000"} +{"ts":1777478764.1946728,"direction":"rx","raw":"I (10980) image_generation: z-image request start, timeout_ms=120000"} +{"ts":1777478764.421331,"direction":"rx","raw":"I (11220) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777478796.8371599,"direction":"rx","raw":"I (43620) image_generation: z-image response ready, request_id=e2bc021b-4611-934c-8272-852f9bbfc989, model_size=512x768, image_url_len=230"} +{"ts":1777478796.848199,"direction":"rx","raw":"I (43620) image_generation: image generate stage done, request_id=e2bc021b-4611-934c-8272-852f9bbfc989, gen_cost_ms=32644"} +{"ts":1777478796.850237,"direction":"rx","raw":"I (43630) image_generation: generated image download start, timeout_ms=45000"} +{"ts":1777478797.020262,"direction":"rx","raw":"I (43810) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777478797.870188,"direction":"rx","raw":"I (44660) image_generation: generated image download done, png_bytes=185342"} +{"ts":1777478797.881273,"direction":"rx","raw":"I (44660) image_generation: image generation pipeline done, request_id=e2bc021b-4611-934c-8272-852f9bbfc989, png_bytes=185342, gen_ms=32644, download_ms=1037, total_ms=33681"} +{"ts":1777478797.88796,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":43221,\"stage\":\"image_preview\"}"} +{"ts":1777478798.697802,"direction":"rx","raw":"I (45490) lcd_module: preview drawn directly: size=160x240"} +{"ts":1777478798.7043169,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":44043,\"stage\":\"image_rasterize\"}"} +{"ts":1777478799.2905128,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":44629,\"stage\":\"submit_print\"}"} +{"ts":1777478799.303534,"direction":"rx","raw":"I (46090) printer_protocol: job queued, job_id=4, raster_bytes=12288, size=384x256, density=较淡, ignore_precheck=0, queue_depth=1"} +{"ts":1777478799.309581,"direction":"rx","raw":"I (46090) printer_protocol: job 4 running, queue_wait_ms=0, raster_bytes=12288, size=384x256, density=较淡"} +{"ts":1777478799.317408,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":44639,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":4}}"} +{"ts":1777478799.3278878,"direction":"rx","raw":"I (46100) printer_protocol: job 4 print start, raster_bytes=12288, size=384x256, density=较淡, ignore_precheck=0"} +{"ts":1777478800.213575,"direction":"rx","raw":"ESP-ROM:esp32s3-20210327"} +{"ts":1777478800.221998,"direction":"rx","raw":"Build:Mar 27 2021"} +{"ts":1777478800.222582,"direction":"rx","raw":"rst:0x1 (POWERON),boot:0x9 (SPI_FAST_FLASH_BOOT)"} +{"ts":1777478800.2282932,"direction":"rx","raw":"SP�ESP-ROM:esp32s3-20210327"} +{"ts":1777478800.2367759,"direction":"rx","raw":"Build:Mar 27 2021"} +{"ts":1777478800.242195,"direction":"rx","raw":"rst:0xf (BROWNOUT_RST),boot:0x9 (SPI_FAST_FLASH_BOOT)"} +{"ts":1777478800.242411,"direction":"rx","raw":"SPIWP:0xee"} +{"ts":1777478800.2426581,"direction":"rx","raw":"mode:DIO, clock div:1"} +{"ts":1777478800.243457,"direction":"rx","raw":"Valid secure boot key blocks: 0"} +{"ts":1777478800.285084,"direction":"rx","raw":"secure boot verification succeeded"} +{"ts":1777478800.285353,"direction":"rx","raw":"load:0x3fce2980,len:0x34f4"} +{"ts":1777478800.289841,"direction":"rx","raw":"load:0x403c8700,len:0xd24"} +{"ts":1777478800.290029,"direction":"rx","raw":"load:0x403cb700,len:0x55d0"} +{"ts":1777478800.296928,"direction":"rx","raw":"entry 0x403c8924"} +{"ts":1777478800.303293,"direction":"rx","raw":"I (72) boot: ESP-IDF v5.5.2-dirty 2nd stage bootloader"} +{"ts":1777478800.3087401,"direction":"rx","raw":"I (72) boot: compile time Mar 1 2026 22:09:26"} +{"ts":1777478800.3141792,"direction":"rx","raw":"I (73) boot: Multicore bootloader"} +{"ts":1777478800.3145568,"direction":"rx","raw":"I (73) boot: chip revision: v0.2"} +{"ts":1777478800.3197289,"direction":"rx","raw":"I (76) boot: efuse block revision: v1.3"} +{"ts":1777478800.3251579,"direction":"rx","raw":"I (80) boot.esp32s3: Boot SPI Speed : 80MHz"} +{"ts":1777478800.325599,"direction":"rx","raw":"I (84) boot.esp32s3: SPI Mode : DIO"} +{"ts":1777478800.3308,"direction":"rx","raw":"I (87) boot.esp32s3: SPI Flash Size : 16MB"} +{"ts":1777478800.336313,"direction":"rx","raw":"I (91) boot: Enabling RNG early entropy source..."} +{"ts":1777478800.336548,"direction":"rx","raw":"I (96) boot: Partition Table:"} +{"ts":1777478800.342179,"direction":"rx","raw":"I (98) boot: ## Label Usage Type ST Offset Length"} +{"ts":1777478800.352839,"direction":"rx","raw":"I (105) boot: 0 nvs WiFi data 01 02 00011000 00010000"} +{"ts":1777478800.358474,"direction":"rx","raw":"I (111) boot: 1 otadata OTA data 01 00 00021000 00002000"} +{"ts":1777478800.364274,"direction":"rx","raw":"I (118) boot: 2 phy_init RF data 01 01 00023000 00001000"} +{"ts":1777478800.369836,"direction":"rx","raw":"I (124) boot: 3 ota_0 OTA app 00 10 00030000 00780000"} +{"ts":1777478800.375476,"direction":"rx","raw":"I (131) boot: 4 ota_1 OTA app 00 11 007b0000 00780000"} +{"ts":1777478800.3811588,"direction":"rx","raw":"I (138) boot: 5 nvs_key NVS keys 01 04 00f30000 00001000"} +{"ts":1777478800.386303,"direction":"rx","raw":"I (144) boot: End of partition table"} +{"ts":1777478800.391393,"direction":"rx","raw":"I (148) esp_image: segment 0: paddr=00030020 vaddr=3c110020 size=99c5ch (629852) map"} +{"ts":1777478800.5148768,"direction":"rx","raw":"I (278) esp_image: segment 1: paddr=000c9c84 vaddr=3fc9f600 size=05a48h ( 23112) load"} +{"ts":1777478800.5203168,"direction":"rx","raw":"I (284) esp_image: segment 2: paddr=000cf6d4 vaddr=40374000 size=00944h ( 2372) load"} +{"ts":1777478800.526247,"direction":"rx","raw":"I (285) esp_image: segment 3: paddr=000d0020 vaddr=42000020 size=1063b8h (1074104) map"} +{"ts":1777478800.73315,"direction":"rx","raw":"I (501) esp_image: segment 4: paddr=001d63e0 vaddr=40374944 size=1ac20h (109600) load"} +{"ts":1777478800.762922,"direction":"rx","raw":"I (527) esp_image: segment 5: paddr=001f1008 vaddr=50000000 size=00020h ( 32) load"} +{"ts":1777478800.766693,"direction":"rx","raw":"I (527) esp_image: segment 6: paddr=001f1030 vaddr=00000000 size=0efa0h ( 61344) "} +{"ts":1777478800.773272,"direction":"rx","raw":"I (543) esp_image: Verifying image signature..."} +{"ts":1777478800.778822,"direction":"rx","raw":"I (543) secure_boot_v2: Verifying with RSA-PSS..."} +{"ts":1777478800.78142,"direction":"rx","raw":"I (546) secure_boot_v2: Signature verified successfully!"} +{"ts":1777478800.787358,"direction":"rx","raw":"I (557) boot: Loaded app from partition at offset 0x30000"} +{"ts":1777478800.7929118,"direction":"rx","raw":"I (557) secure_boot_v2: enabling secure boot v2..."} +{"ts":1777478800.798482,"direction":"rx","raw":"I (557) secure_boot_v2: secure boot v2 is already enabled, continuing.."} +{"ts":1777478800.803964,"direction":"rx","raw":"I (561) boot: Checking flash encryption..."} +{"ts":1777478800.8096151,"direction":"rx","raw":"I (565) flash_encrypt: flash encryption is enabled (1 plaintext flashes left)"} +{"ts":1777478800.813111,"direction":"rx","raw":"I (572) boot: Disabling RNG early entropy source..."} +{"ts":1777478800.819359,"direction":"rx","raw":"I (589) octal_psram: vendor id : 0x0d (AP)"} +{"ts":1777478800.824928,"direction":"rx","raw":"I (589) octal_psram: dev id : 0x02 (generation 3)"} +{"ts":1777478800.830503,"direction":"rx","raw":"I (589) octal_psram: density : 0x03 (64 Mbit)"} +{"ts":1777478800.835943,"direction":"rx","raw":"I (591) octal_psram: good-die : 0x01 (Pass)"} +{"ts":1777478800.83615,"direction":"rx","raw":"I (595) octal_psram: Latency : 0x01 (Fixed)"} +{"ts":1777478800.84149,"direction":"rx","raw":"I (599) octal_psram: VCC : 0x01 (3V)"} +{"ts":1777478800.847164,"direction":"rx","raw":"I (604) octal_psram: SRF : 0x01 (Fast Refresh)"} +{"ts":1777478800.8525472,"direction":"rx","raw":"I (608) octal_psram: BurstType : 0x01 (Hybrid Wrap)"} +{"ts":1777478800.858161,"direction":"rx","raw":"I (613) octal_psram: BurstLen : 0x01 (32 Byte)"} +{"ts":1777478800.8636632,"direction":"rx","raw":"I (618) octal_psram: Readlatency : 0x02 (10 cycles@Fixed)"} +{"ts":1777478800.863907,"direction":"rx","raw":"I (623) octal_psram: DriveStrength: 0x00 (1/1)"} +{"ts":1777478800.8696718,"direction":"rx","raw":"I (627) MSPI Timing: Enter psram timing tuning"} +{"ts":1777478800.8749871,"direction":"rx","raw":"I (632) esp_psram: Found 8MB PSRAM device"} +{"ts":1777478800.87534,"direction":"rx","raw":"I (635) esp_psram: Speed: 80MHz"} +{"ts":1777478800.877629,"direction":"rx","raw":"I (638) cpu_start: Multicore app"} +{"ts":1777478801.601595,"direction":"rx","raw":"I (1372) esp_psram: SPI SRAM memory test OK"} +{"ts":1777478801.616468,"direction":"rx","raw":"I (1380) cpu_start: GPIO 44 and 43 are used as console UART I/O pins"} +{"ts":1777478801.617001,"direction":"rx","raw":"I (1381) cpu_start: Pro cpu start user code"} +{"ts":1777478801.622206,"direction":"rx","raw":"I (1381) cpu_start: cpu freq: 160000000 Hz"} +{"ts":1777478801.6275752,"direction":"rx","raw":"I (1383) app_init: Application information:"} +{"ts":1777478801.6281002,"direction":"rx","raw":"I (1387) app_init: Project name: TQ_printer"} +{"ts":1777478801.633497,"direction":"rx","raw":"I (1391) app_init: App version: d735446-dirty"} +{"ts":1777478801.6389198,"direction":"rx","raw":"I (1395) app_init: Compile time: Apr 30 2026 00:03:39"} +{"ts":1777478801.644368,"direction":"rx","raw":"I (1400) app_init: ELF file SHA256: b8d120bec..."} +{"ts":1777478801.649821,"direction":"rx","raw":"I (1405) app_init: ESP-IDF: v5.5.3"} +{"ts":1777478801.6503181,"direction":"rx","raw":"I (1409) efuse_init: Min chip rev: v0.0"} +{"ts":1777478801.655404,"direction":"rx","raw":"I (1413) efuse_init: Max chip rev: v0.99 "} +{"ts":1777478801.660924,"direction":"rx","raw":"I (1417) efuse_init: Chip rev: v0.2"} +{"ts":1777478801.6665978,"direction":"rx","raw":"I (1421) heap_init: Initializing. RAM available for dynamic allocation:"} +{"ts":1777478801.6721542,"direction":"rx","raw":"I (1427) heap_init: At 3FCAA660 len 0003F0B0 (252 KiB): RAM"} +{"ts":1777478801.6774678,"direction":"rx","raw":"I (1432) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM"} +{"ts":1777478801.683085,"direction":"rx","raw":"I (1438) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM"} +{"ts":1777478801.688663,"direction":"rx","raw":"I (1443) heap_init: At 600FE000 len 00001FE8 (7 KiB): RTCRAM"} +{"ts":1777478801.6942148,"direction":"rx","raw":"I (1448) esp_psram: Adding pool of 8192K of PSRAM memory to heap allocator"} +{"ts":1777478801.699706,"direction":"rx","raw":"I (1456) spi_flash: detected chip: generic"} +{"ts":1777478801.699828,"direction":"rx","raw":"I (1459) spi_flash: flash io: dio"} +{"ts":1777478801.705323,"direction":"rx","raw":"W (1462) flash_encrypt: Flash encryption mode is DEVELOPMENT (not secure)"} +{"ts":1777478801.710863,"direction":"rx","raw":"I (1469) sleep_gpio: Configure to isolate all GPIO pins in sleep state"} +{"ts":1777478801.721876,"direction":"rx","raw":"I (1475) sleep_gpio: Enable automatic switching of GPIO sleep configuration"} +{"ts":1777478801.727519,"direction":"rx","raw":"I (1481) nvs_sec_provider: NVS Encryption - Registering Flash encryption-based scheme..."} +{"ts":1777478801.733092,"direction":"rx","raw":"I (1490) main_task: Started on CPU0"} +{"ts":1777478801.738629,"direction":"rx","raw":"I (1500) esp_psram: Reserving pool of 32K of internal memory for DMA/internal allocations"} +{"ts":1777478801.744121,"direction":"rx","raw":"I (1500) main_task: Calling app_main()"} +{"ts":1777478801.7595022,"direction":"rx","raw":"I (1500) platform_bootstrap: board gpio mapped: hold=1 pwr_key=47 key_print=0 boost_mode=1 led_r=2 led_g=21 spi(mosi=9,miso=10,clk=11) screen(dc=12,cs=13,bk=48) i2c(sda=6,scl=7) i2s(mclk=38,bclk=39,ws=41,di=40,do=42) pa=20"} +{"ts":1777478801.772466,"direction":"rx","raw":"I (1540) nvs: NVS partition \"nvs\" is encrypted."} +{"ts":1777478801.777965,"direction":"rx","raw":"I (1540) platform_bootstrap: extmem malloc threshold set to 4096 bytes"} +{"ts":1777478801.785217,"direction":"rx","raw":"I (1540) platform_bootstrap: mbedtls calloc/free redirected to PSRAM-preferred allocator"} +{"ts":1777478802.185823,"direction":"rx","raw":"I (1950) lcd_module: st7789p3 ready: spi_host=1 mosi=9 clk=11 miso=10 dc=12 cs=13 rst=48 bk=48 pclk=10000000 mode=0 res=320x240 madctl=0x60 gap=0,0 invert=1 swap_bytes=1"} +{"ts":1777478802.575851,"direction":"rx","raw":"I (2340) lcd_module: preview drawn directly: size=320x240"} +{"ts":1777478802.5814242,"direction":"rx","raw":"I (2350) button: IoT Button Version: 4.1.5"} +{"ts":1777478802.592191,"direction":"rx","raw":"I (2350) platform_power_key: POWER_KEY initialized: gpio=47 active_level=low long_press_ms=2000"} +{"ts":1777478802.5926342,"direction":"rx","raw":"I (2360) pp: pp rom version: e7ae62f"} +{"ts":1777478802.597909,"direction":"rx","raw":"I (2360) net80211: net80211 rom version: e7ae62f"} +{"ts":1777478802.6035368,"direction":"rx","raw":"I (2370) wifi:wifi driver task: 3fceebc0, prio:23, stack:6656, core=0"} +{"ts":1777478802.608882,"direction":"rx","raw":"I (2370) wifi:wifi firmware version: 4df78f2"} +{"ts":1777478802.6142879,"direction":"rx","raw":"I (2370) wifi:wifi certification version: v7.0"} +{"ts":1777478802.614614,"direction":"rx","raw":"I (2370) wifi:config NVS flash: enabled"} +{"ts":1777478802.620044,"direction":"rx","raw":"I (2380) wifi:config nano formatting: disabled"} +{"ts":1777478802.625642,"direction":"rx","raw":"I (2380) wifi:Init data frame dynamic rx buffer num: 256"} +{"ts":1777478802.631243,"direction":"rx","raw":"I (2390) wifi:Init static rx mgmt buffer num: 5"} +{"ts":1777478802.6318662,"direction":"rx","raw":"I (2390) wifi:Init management short buffer num: 32"} +{"ts":1777478802.636872,"direction":"rx","raw":"I (2400) wifi:Init static tx buffer num: 32"} +{"ts":1777478802.642185,"direction":"rx","raw":"I (2400) wifi:Init tx cache buffer num: 64"} +{"ts":1777478802.6477041,"direction":"rx","raw":"I (2400) wifi:Init static tx FG buffer num: 2"} +{"ts":1777478802.6479769,"direction":"rx","raw":"I (2410) wifi:Init static rx buffer size: 1600"} +{"ts":1777478802.653552,"direction":"rx","raw":"I (2410) wifi:Init static rx buffer num: 24"} +{"ts":1777478802.6589272,"direction":"rx","raw":"I (2410) wifi:Init dynamic rx buffer num: 256"} +{"ts":1777478802.659307,"direction":"rx","raw":"I (2420) wifi_init: rx ba win: 32"} +{"ts":1777478802.664483,"direction":"rx","raw":"I (2420) wifi_init: accept mbox: 6"} +{"ts":1777478802.6648488,"direction":"rx","raw":"I (2420) wifi_init: tcpip mbox: 256"} +{"ts":1777478802.670115,"direction":"rx","raw":"I (2430) wifi_init: udp mbox: 6"} +{"ts":1777478802.675405,"direction":"rx","raw":"I (2430) wifi_init: tcp mbox: 192"} +{"ts":1777478802.675804,"direction":"rx","raw":"I (2430) wifi_init: tcp tx win: 57344"} +{"ts":1777478802.681171,"direction":"rx","raw":"I (2440) wifi_init: tcp rx win: 262144"} +{"ts":1777478802.6815228,"direction":"rx","raw":"I (2440) wifi_init: tcp mss: 1440"} +{"ts":1777478802.686652,"direction":"rx","raw":"I (2440) wifi_init: WiFi/LWIP prefer SPIRAM"} +{"ts":1777478802.6921751,"direction":"rx","raw":"I (2450) wifi_init: WiFi IRAM OP enabled"} +{"ts":1777478802.6926239,"direction":"rx","raw":"I (2450) wifi_init: WiFi RX IRAM OP enabled"} +{"ts":1777478802.6981602,"direction":"rx","raw":"I (2460) wifi_manager: found saved Wi-Fi credentials for SSID:TalkingQ"} +{"ts":1777478802.709034,"direction":"rx","raw":"W (2460) wifi:Password length matches WPA2 standards, authmode threshold changes from OPEN to WPA2"} +{"ts":1777478802.712127,"direction":"rx","raw":"I (2470) phy_init: phy_version 711,97bcf0a2,Aug 25 2025,19:04:10"} +{"ts":1777478802.760406,"direction":"rx","raw":"I (2530) wifi:mode : sta (3c:dc:75:5c:1c:9c)"} +{"ts":1777478802.76083,"direction":"rx","raw":"I (2530) wifi:enable tsf"} +{"ts":1777478802.8604002,"direction":"rx","raw":"I (2620) wifi:new:<1,1>, old:<1,0>, ap:<255,255>, sta:<1,1>, prof:1, snd_ch_cfg:0x0"} +{"ts":1777478802.8607109,"direction":"rx","raw":"I (2620) wifi:state: init -> auth (0xb0)"} +{"ts":1777478802.865977,"direction":"rx","raw":"I (2630) wifi:state: auth -> assoc (0x0)"} +{"ts":1777478802.867599,"direction":"rx","raw":"I (2630) wifi:state: assoc -> run (0x10)"} +{"ts":1777478802.88572,"direction":"rx","raw":"I (2650) wifi:connected with TalkingQ, aid = 90, channel 1, 40U, bssid = a8:e5:44:d7:1a:64"} +{"ts":1777478802.891274,"direction":"rx","raw":"I (2650) wifi:security: WPA2-PSK, phy: bgn, rssi: -37"} +{"ts":1777478802.891541,"direction":"rx","raw":"I (2650) wifi:pm start, type: 1"} +{"ts":1777478802.9023402,"direction":"rx","raw":"I (2650) wifi:dp: 1, bi: 102400, li: 3, scale listen interval from 307200 us to 307200 us"} +{"ts":1777478802.906964,"direction":"rx","raw":"I (2660) wifi:set rx beacon pti, rx_bcn_pti: 0, bcn_timeout: 25000, mt_pti: 0, mt_time: 10000"} +{"ts":1777478802.914819,"direction":"rx","raw":"I (2680) wifi:AP's beacon interval = 102400 us, DTIM period = 1"} +{"ts":1777478803.071445,"direction":"rx","raw":"I (2840) lcd_module: preview drawn directly: size=320x55"} +{"ts":1777478803.076055,"direction":"rx","raw":"I (2840) wifi_manager: trying to connect to SSID:TalkingQ"} +{"ts":1777478803.9924018,"direction":"rx","raw":"I (3760) esp_netif_handlers: sta ip: 192.168.101.16, mask: 255.255.255.0, gw: 192.168.101.1"} +{"ts":1777478803.99305,"direction":"rx","raw":"I (3760) wifi_manager: got ip:192.168.101.16"} +{"ts":1777478803.999378,"direction":"rx","raw":"I (3770) wifi_manager: connected to AP SSID:TalkingQ"} +{"ts":1777478804.004918,"direction":"rx","raw":"I (3770) wifi_manager: Wi-Fi protocol mask set to 11b/11g/11n"} +{"ts":1777478804.0101829,"direction":"rx","raw":"I (3770) wifi_manager: Wi-Fi bandwidth set to HT40"} +{"ts":1777478804.015585,"direction":"rx","raw":"I (3770) wifi:Set ps type: 0, coexist: 0"} +{"ts":1777478804.0212228,"direction":"rx","raw":"I (3780) wifi_manager: Wi-Fi power save disabled (WIFI_PS_NONE)"} +{"ts":1777478804.026622,"direction":"rx","raw":"I (3790) printer_driver: printer initialized"} +{"ts":1777478804.026926,"direction":"rx","raw":"I (3790) printer_protocol: printer driver ready at startup"} +{"ts":1777478804.032405,"direction":"rx","raw":"I (3790) printer_protocol: printer protocol initialized"} +{"ts":1777478804.050187,"direction":"rx","raw":"I (3800) platform_mic_key: MIC_KEY initialized: gpio=14 active_level=low sh�.�I (3810) product_test_uart: product test uart ready: port=0 baud=115200 tx=-1 rx=-1"} +{"ts":1777478804.0557172,"direction":"rx","raw":"TQTEST_READY {\"version\":1,\"device\":\"TQ_printer\",\"idf_free_heap\":8293956,\"uart_port\":0,\"baud\":115200}"} diff --git a/docs/product_test_reports/fix_round3_verify_20260430_001523.jsonl b/docs/product_test_reports/fix_round3_verify_20260430_001523.jsonl new file mode 100644 index 0000000..6709d31 --- /dev/null +++ b/docs/product_test_reports/fix_round3_verify_20260430_001523.jsonl @@ -0,0 +1,208 @@ +{"ts":1777479326.714723,"direction":"tx","raw":"TQTEST_CMD {\"seq\":1,\"cmd\":\"PING\",\"payload\":{}}","seq":1,"cmd":"PING"} +{"ts":1777479326.720515,"direction":"rx","raw":"0001000"} +{"ts":1777479326.7212942,"direction":"rx","raw":"I (124) boot: 3 ota_0 OTA app 00 10 00030000 00780000"} +{"ts":1777479326.721909,"direction":"rx","raw":"I (131) boot: 4 ota_1 OTA app 00 11 007b0000 00780000"} +{"ts":1777479326.7225559,"direction":"rx","raw":"I (137) boot: 5 nvs_key NVS keys 01 04 00f30000 00001000"} +{"ts":1777479326.722893,"direction":"rx","raw":"I (144) boot: End of partition table"} +{"ts":1777479326.7234602,"direction":"rx","raw":"I (148) esp_image: segment 0: paddr=00030020 vaddr=3c110020 size=99cbch (629948) map"} +{"ts":1777479326.723993,"direction":"rx","raw":"I (278) esp_image: segment 1: paddr=000c9ce4 vaddr=3fc9f600 size=05a48h ( 23112) load"} +{"ts":1777479326.724478,"direction":"rx","raw":"I (284) esp_image: segment 2: paddr=000cf734 vaddr=40374000 size=008e4h ( 2276) load"} +{"ts":1777479326.724951,"direction":"rx","raw":"I (285) esp_image: segment 3: paddr=000d0020 vaddr=42000020 size=106560h (1074528) map"} +{"ts":1777479326.725363,"direction":"rx","raw":"I (501) esp_image: segment 4: paddr=001d6588 vaddr=403748e4 size=1ac80h (109696) load"} +{"ts":1777479326.725732,"direction":"rx","raw":"I (527) esp_image: segment 5: paddr=001f1210 vaddr=50000000 size=00020h ( 32) load"} +{"ts":1777479326.726082,"direction":"rx","raw":"I (527) esp_image: segment 6: paddr=001f1238 vaddr=00000000 size=0ed98h ( 60824) "} +{"ts":1777479326.7263029,"direction":"rx","raw":"I (543) esp_image: Verifying image signature..."} +{"ts":1777479326.72653,"direction":"rx","raw":"I (543) secure_boot_v2: Verifying with RSA-PSS..."} +{"ts":1777479326.7268422,"direction":"rx","raw":"I (546) secure_boot_v2: Signature verified successfully!"} +{"ts":1777479326.727147,"direction":"rx","raw":"I (557) boot: Loaded app from partition at offset 0x30000"} +{"ts":1777479326.727365,"direction":"rx","raw":"I (557) secure_boot_v2: enabling secure boot v2..."} +{"ts":1777479326.727648,"direction":"rx","raw":"I (557) secure_boot_v2: secure boot v2 is already enabled, continuing.."} +{"ts":1777479326.72783,"direction":"rx","raw":"I (561) boot: Checking flash encryption..."} +{"ts":1777479326.728129,"direction":"rx","raw":"I (565) flash_encrypt: flash encryption is enabled (1 plaintext flashes left)"} +{"ts":1777479326.728331,"direction":"rx","raw":"I (572) boot: Disabling RNG early entropy source..."} +{"ts":1777479326.7285178,"direction":"rx","raw":"I (589) octal_psram: vendor id : 0x0d (AP)"} +{"ts":1777479326.728735,"direction":"rx","raw":"I (589) octal_psram: dev id : 0x02 (generation 3)"} +{"ts":1777479326.728935,"direction":"rx","raw":"I (589) octal_psram: density : 0x03 (64 Mbit)"} +{"ts":1777479326.729126,"direction":"rx","raw":"I (591) octal_psram: good-die : 0x01 (Pass)"} +{"ts":1777479326.72932,"direction":"rx","raw":"I (595) octal_psram: Latency : 0x01 (Fixed)"} +{"ts":1777479326.729505,"direction":"rx","raw":"I (599) octal_psram: VCC : 0x01 (3V)"} +{"ts":1777479326.729723,"direction":"rx","raw":"I (604) octal_psram: SRF : 0x01 (Fast Refresh)"} +{"ts":1777479326.729944,"direction":"rx","raw":"I (608) octal_psram: BurstType : 0x01 (Hybrid Wrap)"} +{"ts":1777479326.730148,"direction":"rx","raw":"I (613) octal_psram: BurstLen : 0x01 (32 Byte)"} +{"ts":1777479326.730379,"direction":"rx","raw":"I (618) octal_psram: Readlatency : 0x02 (10 cycles@Fixed)"} +{"ts":1777479326.730568,"direction":"rx","raw":"I (623) octal_psram: DriveStrength: 0x00 (1/1)"} +{"ts":1777479326.7307541,"direction":"rx","raw":"I (627) MSPI Timing: Enter psram timing tuning"} +{"ts":1777479326.7309241,"direction":"rx","raw":"I (632) esp_psram: Found 8MB PSRAM device"} +{"ts":1777479326.731065,"direction":"rx","raw":"I (635) esp_psram: Speed: 80MHz"} +{"ts":1777479326.731193,"direction":"rx","raw":"I (638) cpu_start: Multicore app"} +{"ts":1777479326.731346,"direction":"rx","raw":"I (1372) esp_psram: SPI SRAM memory test OK"} +{"ts":1777479326.731589,"direction":"rx","raw":"I (1380) cpu_start: GPIO 44 and 43 are used as console UART I/O pins"} +{"ts":1777479326.731742,"direction":"rx","raw":"I (1381) cpu_start: Pro cpu start user code"} +{"ts":1777479326.731891,"direction":"rx","raw":"I (1381) cpu_start: cpu freq: 160000000 Hz"} +{"ts":1777479326.732049,"direction":"rx","raw":"I (1383) app_init: Application information:"} +{"ts":1777479326.732213,"direction":"rx","raw":"I (1387) app_init: Project name: TQ_printer"} +{"ts":1777479326.7323892,"direction":"rx","raw":"I (1391) app_init: App version: d735446-dirty"} +{"ts":1777479326.7325811,"direction":"rx","raw":"I (1395) app_init: Compile time: Apr 30 2026 00:13:05"} +{"ts":1777479326.732755,"direction":"rx","raw":"I (1400) app_init: ELF file SHA256: 05f912e1e..."} +{"ts":1777479326.7329159,"direction":"rx","raw":"I (1405) app_init: ESP-IDF: v5.5.3"} +{"ts":1777479326.733073,"direction":"rx","raw":"I (1409) efuse_init: Min chip rev: v0.0"} +{"ts":1777479326.733245,"direction":"rx","raw":"I (1413) efuse_init: Max chip rev: v0.99 "} +{"ts":1777479326.733407,"direction":"rx","raw":"I (1417) efuse_init: Chip rev: v0.2"} +{"ts":1777479326.73366,"direction":"rx","raw":"I (1421) heap_init: Initializing. RAM available for dynamic allocation:"} +{"ts":1777479326.7338612,"direction":"rx","raw":"I (1427) heap_init: At 3FCAA660 len 0003F0B0 (252 KiB): RAM"} +{"ts":1777479326.734059,"direction":"rx","raw":"I (1432) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM"} +{"ts":1777479326.734262,"direction":"rx","raw":"I (1438) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM"} +{"ts":1777479326.734464,"direction":"rx","raw":"I (1443) heap_init: At 600FE000 len 00001FE8 (7 KiB): RTCRAM"} +{"ts":1777479326.734711,"direction":"rx","raw":"I (1448) esp_psram: Adding pool of 8192K of PSRAM memory to heap allocator"} +{"ts":1777479326.734872,"direction":"rx","raw":"I (1456) spi_flash: detected chip: generic"} +{"ts":1777479326.734997,"direction":"rx","raw":"I (1459) spi_flash: flash io: dio"} +{"ts":1777479326.7352479,"direction":"rx","raw":"W (1462) flash_encrypt: Flash encryption mode is DEVELOPMENT (not secure)"} +{"ts":1777479326.7354822,"direction":"rx","raw":"I (1469) sleep_gpio: Configure to isolate all GPIO pins in sleep state"} +{"ts":1777479326.73573,"direction":"rx","raw":"I (1475) sleep_gpio: Enable automatic switching of GPIO sleep configuration"} +{"ts":1777479326.736018,"direction":"rx","raw":"I (1481) nvs_sec_provider: NVS Encryption - Registering Flash encryption-based scheme..."} +{"ts":1777479326.7361479,"direction":"rx","raw":"I (1490) main_task: Started on CPU0"} +{"ts":1777479326.7364428,"direction":"rx","raw":"I (1500) esp_psram: Reserving pool of 32K of internal memory for DMA/internal allocations"} +{"ts":1777479326.736581,"direction":"rx","raw":"I (1500) main_task: Calling app_main()"} +{"ts":1777479326.737282,"direction":"rx","raw":"I (1500) platform_bootstrap: board gpio mapped: hold=1 pwr_key=47 key_print=0 boost_mode=1 led_r=2 led_g=21 spi(mosi=9,miso=10,clk=11) screen(dc=12,cs=13,bk=48) i2c(sda=6,scl=7) i2s(mclk=38,bclk=39,ws=41,di=40,do=42) pa=20"} +{"ts":1777479326.737451,"direction":"rx","raw":"I (1540) nvs: NVS partition \"nvs\" is encrypted."} +{"ts":1777479326.7376928,"direction":"rx","raw":"I (1540) platform_bootstrap: extmem malloc threshold set to 4096 bytes"} +{"ts":1777479326.7379892,"direction":"rx","raw":"I (1540) platform_bootstrap: mbedtls calloc/free redirected to PSRAM-preferred allocator"} +{"ts":1777479326.738524,"direction":"rx","raw":"I (1950) lcd_module: st7789p3 ready: spi_host=1 mosi=9 clk=11 miso=10 dc=12 cs=13 rst=48 bk=48 pclk=10000000 mode=0 res=320x240 madctl=0x60 gap=0,0 invert=1 swap_bytes=1"} +{"ts":1777479326.738726,"direction":"rx","raw":"I (2340) lcd_module: preview drawn directly: size=320x240"} +{"ts":1777479326.738881,"direction":"rx","raw":"I (2350) button: IoT Button Version: 4.1.5"} +{"ts":1777479326.739191,"direction":"rx","raw":"I (2350) platform_power_key: POWER_KEY initialized: gpio=47 active_level=low long_press_ms=2000"} +{"ts":1777479326.73935,"direction":"rx","raw":"I (2360) pp: pp rom version: e7ae62f"} +{"ts":1777479326.7395132,"direction":"rx","raw":"I (2360) net80211: net80211 rom version: e7ae62f"} +{"ts":1777479326.7397308,"direction":"rx","raw":"I (2370) wifi:wifi driver task: 3fceebc0, prio:23, stack:6656, core=0"} +{"ts":1777479326.739887,"direction":"rx","raw":"I (2370) wifi:wifi firmware version: 4df78f2"} +{"ts":1777479326.740049,"direction":"rx","raw":"I (2370) wifi:wifi certification version: v7.0"} +{"ts":1777479326.74019,"direction":"rx","raw":"I (2370) wifi:config NVS flash: enabled"} +{"ts":1777479326.7403378,"direction":"rx","raw":"I (2380) wifi:config nano formatting: disabled"} +{"ts":1777479326.740534,"direction":"rx","raw":"I (2380) wifi:Init data frame dynamic rx buffer num: 256"} +{"ts":1777479326.740692,"direction":"rx","raw":"I (2390) wifi:Init static rx mgmt buffer num: 5"} +{"ts":1777479326.74085,"direction":"rx","raw":"I (2390) wifi:Init management short buffer num: 32"} +{"ts":1777479326.7411141,"direction":"rx","raw":"I (2400) wifi:Init static tx buffer num: 32"} +{"ts":1777479326.741358,"direction":"rx","raw":"I (2400) wifi:Init tx cache buffer num: 64"} +{"ts":1777479326.741548,"direction":"rx","raw":"I (2400) wifi:Init static tx FG buffer num: 2"} +{"ts":1777479326.741744,"direction":"rx","raw":"I (2410) wifi:Init static rx buffer size: 1600"} +{"ts":1777479326.741919,"direction":"rx","raw":"I (2410) wifi:Init static rx buffer num: 24"} +{"ts":1777479326.742104,"direction":"rx","raw":"I (2410) wifi:Init dynamic rx buffer num: 256"} +{"ts":1777479326.742252,"direction":"rx","raw":"I (2420) wifi_init: rx ba win: 32"} +{"ts":1777479326.7423959,"direction":"rx","raw":"I (2420) wifi_init: accept mbox: 6"} +{"ts":1777479326.742624,"direction":"rx","raw":"I (2420) wifi_init: tcpip mbox: 256"} +{"ts":1777479326.742796,"direction":"rx","raw":"I (2430) wifi_init: udp mbox: 6"} +{"ts":1777479326.742945,"direction":"rx","raw":"I (2430) wifi_init: tcp mbox: 192"} +{"ts":1777479326.743076,"direction":"rx","raw":"I (2430) wifi_init: tcp tx win: 57344"} +{"ts":1777479326.743208,"direction":"rx","raw":"I (2440) wifi_init: tcp rx win: 262144"} +{"ts":1777479326.743336,"direction":"rx","raw":"I (2440) wifi_init: tcp mss: 1440"} +{"ts":1777479326.743484,"direction":"rx","raw":"I (2440) wifi_init: WiFi/LWIP prefer SPIRAM"} +{"ts":1777479326.743621,"direction":"rx","raw":"I (2450) wifi_init: WiFi IRAM OP enabled"} +{"ts":1777479326.7437718,"direction":"rx","raw":"I (2450) wifi_init: WiFi RX IRAM OP enabled"} +{"ts":1777479326.7439911,"direction":"rx","raw":"I (2460) wifi_manager: found saved Wi-Fi credentials for SSID:TalkingQ"} +{"ts":1777479326.7443001,"direction":"rx","raw":"W (2460) wifi:Password length matches WPA2 standards, authmode threshold changes from OPEN to WPA2"} +{"ts":1777479326.744503,"direction":"rx","raw":"I (2470) phy_init: phy_version 711,97bcf0a2,Aug 25 2025,19:04:10"} +{"ts":1777479326.744649,"direction":"rx","raw":"I (2530) wifi:mode : sta (3c:dc:75:5c:1c:9c)"} +{"ts":1777479326.744738,"direction":"rx","raw":"I (2530) wifi:enable tsf"} +{"ts":1777479326.744998,"direction":"rx","raw":"I (2660) wifi:new:<1,1>, old:<1,0>, ap:<255,255>, sta:<1,1>, prof:1, snd_ch_cfg:0x0"} +{"ts":1777479326.745134,"direction":"rx","raw":"I (2660) wifi:state: init -> auth (0xb0)"} +{"ts":1777479326.745269,"direction":"rx","raw":"I (2670) wifi:state: auth -> assoc (0x0)"} +{"ts":1777479326.745402,"direction":"rx","raw":"I (2670) wifi:state: assoc -> run (0x10)"} +{"ts":1777479326.745677,"direction":"rx","raw":"I (2690) wifi:connected with TalkingQ, aid = 90, channel 1, 40U, bssid = a8:e5:44:d7:1a:64"} +{"ts":1777479326.745852,"direction":"rx","raw":"I (2690) wifi:security: WPA2-PSK, phy: bgn, rssi: -38"} +{"ts":1777479326.7459588,"direction":"rx","raw":"I (2690) wifi:pm start, type: 1"} +{"ts":1777479326.746238,"direction":"rx","raw":"I (2700) wifi:dp: 1, bi: 102400, li: 3, scale listen interval from 307200 us to 307200 us"} +{"ts":1777479326.746526,"direction":"rx","raw":"I (2710) wifi:set rx beacon pti, rx_bcn_pti: 0, bcn_timeout: 25000, mt_pti: 0, mt_time: 10000"} +{"ts":1777479326.7467468,"direction":"rx","raw":"I (2780) wifi:AP's beacon interval = 102400 us, DTIM period = 1"} +{"ts":1777479326.7469308,"direction":"rx","raw":"I (2840) lcd_module: preview drawn directly: size=320x55"} +{"ts":1777479326.747112,"direction":"rx","raw":"I (2840) wifi_manager: trying to connect to SSID:TalkingQ"} +{"ts":1777479327.4902809,"direction":"rx","raw":"I (3770) esp_netif_handlers: sta ip: 192.168.101.16, mask: 255.255.255.0, gw: 192.168.101.1"} +{"ts":1777479327.491081,"direction":"rx","raw":"I (3770) wifi_manager: got ip:192.168.101.16"} +{"ts":1777479327.497312,"direction":"rx","raw":"I (3780) wifi_manager: connected to AP SSID:TalkingQ"} +{"ts":1777479327.502859,"direction":"rx","raw":"I (3780) wifi_manager: Wi-Fi protocol mask set to 11b/11g/11n"} +{"ts":1777479327.508296,"direction":"rx","raw":"I (3780) wifi_manager: Wi-Fi bandwidth set to HT40"} +{"ts":1777479327.513664,"direction":"rx","raw":"I (3780) wifi:Set ps type: 0, coexist: 0"} +{"ts":1777479327.519242,"direction":"rx","raw":"I (3790) wifi_manager: Wi-Fi power save disabled (WIFI_PS_NONE)"} +{"ts":1777479327.524671,"direction":"rx","raw":"I (3800) printer_driver: printer initialized"} +{"ts":1777479327.525252,"direction":"rx","raw":"I (3800) printer_protocol: printer driver ready at startup"} +{"ts":1777479327.530506,"direction":"rx","raw":"I (3800) printer_protocol: printer protocol initialized"} +{"ts":1777479327.548022,"direction":"rx","raw":"I (3810) platform_mic_key: MIC_KEY initialized: gpio=14 active_level=low sh��I (3820) product_test_uart: product test uart ready: port=0 baud=115200 tx=-1 rx=-1"} +{"ts":1777479327.55332,"direction":"rx","raw":"TQTEST_READY {\"version\":1,\"device\":\"TQ_printer\",\"idf_free_heap\":8293956,\"uart_port\":0,\"baud\":115200}"} +{"ts":1777479327.553535,"direction":"tx","raw":"TQTEST_CMD {\"seq\":2,\"cmd\":\"PING\",\"payload\":{}}","seq":2,"cmd":"PING"} +{"ts":1777479327.559417,"direction":"rx","raw":"I (3820) product_test: product test service started"} +{"ts":1777479327.569715,"direction":"rx","raw":"I (3840) control_plane_lifecycle: control-plane lifecycle started"} +{"ts":1777479327.5699048,"direction":"rx","raw":"I (3850) app_main: TQ printer runtime started"} +{"ts":1777479327.575341,"direction":"rx","raw":"I (3850) main_task: Returned from app_main()"} +{"ts":1777479327.585351,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":2,\"name\":\"PING\",\"ms\":2400,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":0,\"data\":{\"version\":1,\"free_heap\":8223320}}"} +{"ts":1777479327.585471,"direction":"tx","raw":"TQTEST_CMD {\"seq\":3,\"cmd\":\"WAIT_WIFI\",\"payload\":{\"timeout_ms\":20000}}","seq":3,"cmd":"WAIT_WIFI"} +{"ts":1777479327.594742,"direction":"rx","raw":"I (3850) websocket_client: Started"} +{"ts":1777479327.602192,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":3,\"name\":\"WAIT_WIFI\",\"ms\":2433,\"stage\":\"wait_wifi\"}"} +{"ts":1777479327.617107,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":3,\"name\":\"WAIT_WIFI\",\"ms\":2441,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":8,\"data\":{\"wifi_ready\":true,\"ip\":\"192.168.101.16\"}}"} +{"ts":1777479327.617294,"direction":"tx","raw":"TQTEST_CMD {\"seq\":4,\"cmd\":\"STATUS\",\"payload\":{}}","seq":4,"cmd":"STATUS"} +{"ts":1777479327.714966,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":4,\"name\":\"STATUS\",\"ms\":2467,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":3,\"data\":{\"wifi_ready\":true,\"ip\":\"192.168.101.16\",\"printer\":{\"busy\":false,\"has_paper\":true,\"paper_gpio_level\":0,\"paper_present_level\":0,\"battery_adc_ready\":true,\"ntc_adc_ready\":true,\"battery_adc_raw\":2421,\"ntc_adc_raw\":2943,\"battery_mv\":3901,\"battery_percent\":66,\"temperature_c\":28.660491943359375,\"temperature_min_c\":15,\"temperature_max_c\":55,\"battery_min_percent\":5,\"ntc_pullup_ohms\":10000,\"ntc_r25_ohms\":30000,\"ntc_beta\":3950,\"queue_depth\":0,\"last_status_ms\":2464},\"voice\":{\"ready\":true,\"session_active\":true,\"ws_connected\":false,\"started\":false,\"tap_active\":false,\"marker_image_gen_running\":false,\"dialog_state\":\"Idle\",\"upstream_packets\":0,\"downstream_packets\":0,\"task_id\":\"f4a5198c-5f69-44c9-85bf-578ce8cfd11d\",\"dialog_id\":\"\",\"last_error\":\"\",\"last_event_ms\":2399},\"free_heap\":8123772,\"min_free_heap\":7993228}}"} +{"ts":1777479327.715126,"direction":"tx","raw":"TQTEST_CMD {\"seq\":5,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":96,\"wait_done\":true,\"ignore_precheck\":false,\"density\":\"较淡\",\"timeout_ms\":120000}}","seq":5,"cmd":"PRINT_PATTERN"} +{"ts":1777479327.732481,"direction":"rx","raw":"I (3980) wifi:idx:0 (ifx:0, a8:e5:44:d7:1a:64), tid:5, ssn:1338, winSize:64"} +{"ts":1777479327.732664,"direction":"rx","raw":"I (3960) lcd_module: preview drawn directly: size=320x47"} +{"ts":1777479327.739449,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":2569,\"stage\":\"build_pattern\"}"} +{"ts":1777479327.7482848,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":2579,\"stage\":\"submit_print\"}"} +{"ts":1777479327.765783,"direction":"rx","raw":"I (4040) printer_protocol: job queued, job_id=1, raster_bytes=4608, size=384x96, density=较淡, ignore_precheck=0, queue_depth=1"} +{"ts":1777479327.771473,"direction":"rx","raw":"I (4040) printer_protocol: job 1 running, queue_wait_ms=0, raster_bytes=4608, size=384x96, density=较淡"} +{"ts":1777479327.779754,"direction":"rx","raw":"I (4050) printer_protocol: job 1 print start, raster_bytes=4608, size=384x96, density=较淡, ignore_precheck=0"} +{"ts":1777479327.800283,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":2588,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":1}}"} +{"ts":1777479327.8219001,"direction":"rx","raw":"I (4100) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777479328.4264908,"direction":"rx","raw":"I (4710) voice_interaction: voice session prewarm ready"} +{"ts":1777479329.845031,"direction":"rx","raw":"I (6120) printer_driver: print power limited: lines=96 max_black_dots=36 max_dots_per_pulse=32 subpulses=192"} +{"ts":1777479329.8497841,"direction":"rx","raw":"I (6120) printer_protocol: job 1 done, state=success, duration_ms=2085"} +{"ts":1777479329.88896,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":4706,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":2137,\"data\":{\"job_id\":1,\"job_state\":\"success\",\"progress\":100,\"width\":384,\"height\":96,\"data_len\":4608,\"error\":\"\"}}"} +{"ts":1777479329.889218,"direction":"tx","raw":"TQTEST_CMD {\"seq\":6,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":256,\"wait_done\":true,\"ignore_precheck\":false,\"density\":\"较淡\",\"timeout_ms\":120000}}","seq":6,"cmd":"PRINT_PATTERN"} +{"ts":1777479329.906827,"direction":"rx","raw":"I (6170) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777479329.913802,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":4744,\"stage\":\"build_pattern\"}"} +{"ts":1777479329.924906,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":4755,\"stage\":\"submit_print\"}"} +{"ts":1777479329.942869,"direction":"rx","raw":"I (6210) printer_protocol: job queued, job_id=2, raster_bytes=12288, size=384x256, density=较淡, ignore_precheck=0, queue_depth=1"} +{"ts":1777479329.94883,"direction":"rx","raw":"I (6210) printer_protocol: job 2 running, queue_wait_ms=0, raster_bytes=12288, size=384x256, density=较淡"} +{"ts":1777479329.956459,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":4765,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":2}}"} +{"ts":1777479329.9672692,"direction":"rx","raw":"I (6220) printer_protocol: job 2 print start, raster_bytes=12288, size=384x256, density=较淡, ignore_precheck=0"} +{"ts":1777479334.924014,"direction":"rx","raw":"E (11200) task_wdt: Task watchdog got triggered. The following tasks/users did not reset the watchdog in time:"} +{"ts":1777479334.9294348,"direction":"rx","raw":"E (11200) task_wdt: - IDLE1 (CPU 1)"} +{"ts":1777479334.934956,"direction":"rx","raw":"E (11200) task_wdt: Tasks currently running:"} +{"ts":1777479334.935147,"direction":"rx","raw":"E (11200) task_wdt: CPU 0: IDLE0"} +{"ts":1777479334.9406269,"direction":"rx","raw":"E (11200) task_wdt: CPU 1: print_worker"} +{"ts":1777479334.940856,"direction":"rx","raw":"E (11200) task_wdt: Print CPU 1 backtrace"} +{"ts":1777479334.9630232,"direction":"rx","raw":"Backtrace: 0x40378522:0x3FCA2360 0x40377801:0x3FCA2380 0x40041A76:0x3C1DF7F0 0x4201F216:0x3C1DF810 0x4201F249:0x3C1DF830 0x4201F2A5:0x3C1DF850 0x4201F7CD:0x3C1DF8B0 0x42011025:0x3C1DF920 0x4201110C:0x3C1DFAD0 0x42011331:0x3C1DFB10 0x40380649:0x3C1DFCB0"} +{"ts":1777479335.434658,"direction":"rx","raw":"I (11710) printer_driver: print power limited: lines=256 max_black_dots=36 max_dots_per_pulse=32 subpulses=512"} +{"ts":1777479335.439726,"direction":"rx","raw":"I (11710) printer_protocol: job 2 done, state=success, duration_ms=5498"} +{"ts":1777479335.4692008,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":10286,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":5542,\"data\":{\"job_id\":2,\"job_state\":\"success\",\"progress\":100,\"width\":384,\"height\":256,\"data_len\":12288,\"error\":\"\"}}"} +{"ts":1777479335.469337,"direction":"tx","raw":"TQTEST_CMD {\"seq\":7,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":96,\"wait_done\":true,\"ignore_precheck\":false,\"density\":\"中等\",\"timeout_ms\":120000}}","seq":7,"cmd":"PRINT_PATTERN"} +{"ts":1777479335.4934862,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":7,\"name\":\"PRINT_PATTERN\",\"ms\":10324,\"stage\":\"build_pattern\"}"} +{"ts":1777479335.501927,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":7,\"name\":\"PRINT_PATTERN\",\"ms\":10332,\"stage\":\"submit_print\"}"} +{"ts":1777479335.513838,"direction":"rx","raw":"I (11790) printer_protocol: job 3 running, queue_wait_ms=0, raster_bytes=4608, size=384x96, density=中等"} +{"ts":1777479335.524961,"direction":"rx","raw":"I (11790) printer_protocol: job queued, job_id=3, raster_bytes=4608, size=384x96, density=中等, ignore_precheck=0, queue_depth=0"} +{"ts":1777479335.536007,"direction":"rx","raw":"I (11790) printer_protocol: job 3 print start, raster_bytes=4608, size=384x96, density=中等, ignore_precheck=0"} +{"ts":1777479335.542681,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":7,\"name\":\"PRINT_PATTERN\",\"ms\":10351,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":3}}"} +{"ts":1777479337.897853,"direction":"rx","raw":"I (14180) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777479337.914803,"direction":"rx","raw":"I (14190) printer_driver: print power limited: lines=96 max_black_dots=36 max_dots_per_pulse=32 subpulses=192"} +{"ts":1777479337.919822,"direction":"rx","raw":"I (14190) printer_protocol: job 3 done, state=success, duration_ms=2402"} +{"ts":1777479338.059205,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":7,\"name\":\"PRINT_PATTERN\",\"ms\":12876,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":2552,\"data\":{\"job_id\":3,\"job_state\":\"success\",\"progress\":100,\"width\":384,\"height\":96,\"data_len\":4608,\"error\":\"\"}}"} +{"ts":1777479338.059455,"direction":"tx","raw":"TQTEST_CMD {\"seq\":8,\"cmd\":\"IMAGE_PRINT\",\"payload\":{\"prompt\":\"简单黑白线稿,小猫,白色背景,适合热敏打印\",\"size\":\"512*768\",\"prompt_extend\":true,\"ignore_precheck\":false,\"density\":\"较淡\",\"generation_timeout_ms\":120000,\"download_timeout_ms\":45000,\"print_timeout_ms\":120000}}","seq":8,"cmd":"IMAGE_PRINT"} +{"ts":1777479338.0984,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":12928,\"stage\":\"image_generate\"}"} +{"ts":1777479338.115829,"direction":"rx","raw":"I (14390) image_generation: image generate start, prompt_len=63, size=512*768, prompt_extend=1, seed=auto, gen_timeout_ms=120000, fetch_timeout_ms=45000"} +{"ts":1777479338.1186821,"direction":"rx","raw":"I (14390) image_generation: z-image request start, timeout_ms=120000"} +{"ts":1777479338.342709,"direction":"rx","raw":"I (14620) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777479338.362721,"direction":"rx","raw":"I (14640) wifi:idx:1 (ifx:0, a8:e5:44:d7:1a:64), tid:0, ssn:1254, winSize:64"} +{"ts":1777479338.37227,"direction":"rx","raw":"I (14650) image_generation: https prewarm done, gen_rc=0x0, oss_rc=0x0, cost_ms=10810"} +{"ts":1777479363.573791,"direction":"rx","raw":"I (39840) image_generation: z-image response ready, request_id=afe1f3f2-de3f-9e71-b1da-8b067585e3c7, model_size=512x768, image_url_len=238"} +{"ts":1777479363.584682,"direction":"rx","raw":"I (39840) image_generation: image generate stage done, request_id=afe1f3f2-de3f-9e71-b1da-8b067585e3c7, gen_cost_ms=25457"} +{"ts":1777479363.586646,"direction":"rx","raw":"I (39860) image_generation: generated image download start, timeout_ms=45000"} +{"ts":1777479363.74427,"direction":"rx","raw":"I (40030) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777479364.635865,"direction":"rx","raw":"I (40910) image_generation: generated image download done, png_bytes=202325"} +{"ts":1777479364.6473742,"direction":"rx","raw":"I (40910) image_generation: image generation pipeline done, request_id=afe1f3f2-de3f-9e71-b1da-8b067585e3c7, png_bytes=202325, gen_ms=25457, download_ms=1066, total_ms=26523"} +{"ts":1777479364.653814,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":39473,\"stage\":\"image_preview\"}"} +{"ts":1777479365.483027,"direction":"rx","raw":"I (41760) lcd_module: preview drawn directly: size=160x240"} +{"ts":1777479365.489685,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":40315,\"stage\":\"image_rasterize\"}"} +{"ts":1777479366.087241,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":40917,\"stage\":\"submit_print\"}"} +{"ts":1777479366.105072,"direction":"rx","raw":"I (42370) printer_protocol: job queued, job_id=4, raster_bytes=12288, size=384x256, density=较淡, ignore_precheck=0, queue_depth=1"} +{"ts":1777479366.110827,"direction":"rx","raw":"I (42370) printer_protocol: job 4 running, queue_wait_ms=0, raster_bytes=12288, size=384x256, density=较淡"} +{"ts":1777479366.118933,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":40927,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":4}}"} +{"ts":1777479366.129575,"direction":"rx","raw":"I (42390) printer_protocol: job 4 print start, raster_bytes=12288, size=384x256, density=较淡, ignore_precheck=0"} +{"ts":1777479370.475314,"direction":"rx","raw":"I (46750) printer_driver: print power limited: lines=78 max_black_dots=167 max_dots_per_pulse=32 subpulses=324"} +{"ts":1777479370.480408,"direction":"rx","raw":"I (46750) printer_protocol: job 4 done, state=success, duration_ms=4376"} +{"ts":1777479370.671206,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":45456,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":32528,\"data\":{\"request_id\":\"afe1f3f2-de3f-9e71-b1da-8b067585e3c7\",\"png_len\":202325,\"width\":512,\"height\":768,\"image_url\":\"https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/7d/ab/20260430/448165f2/afe1f3f2-de3f-9e71-b1da-8b067585e3c72081890897.png?Expires=1778085163&OSSAccessKeyId=LTAI5tPxpiCM2hjmWrFXrym1&Signature=%2FLbVt%2BlwCl2fTx%2FY%2FeQcw4LFJzc%3D\",\"job_id\":4,\"raster_width\":384,\"raster_height\":256,\"raster_len\":12288,\"job_state\":\"success\",\"progress\":100,\"job_error\":\"\"}}"} diff --git a/docs/product_test_reports/fix_round4_verify_20260430_001948.jsonl b/docs/product_test_reports/fix_round4_verify_20260430_001948.jsonl new file mode 100644 index 0000000..457768f --- /dev/null +++ b/docs/product_test_reports/fix_round4_verify_20260430_001948.jsonl @@ -0,0 +1,201 @@ +{"ts":1777479591.487328,"direction":"tx","raw":"TQTEST_CMD {\"seq\":1,\"cmd\":\"PING\",\"payload\":{}}","seq":1,"cmd":"PING"} +{"ts":1777479591.493216,"direction":"rx","raw":"0001000"} +{"ts":1777479591.493472,"direction":"rx","raw":"I (124) boot: 3 ota_0 OTA app 00 10 00030000 00780000"} +{"ts":1777479591.493717,"direction":"rx","raw":"I (131) boot: 4 ota_1 OTA app 00 11 007b0000 00780000"} +{"ts":1777479591.493953,"direction":"rx","raw":"I (137) boot: 5 nvs_key NVS keys 01 04 00f30000 00001000"} +{"ts":1777479591.4940832,"direction":"rx","raw":"I (144) boot: End of partition table"} +{"ts":1777479591.494344,"direction":"rx","raw":"I (148) esp_image: segment 0: paddr=00030020 vaddr=3c110020 size=99cbch (629948) map"} +{"ts":1777479591.4946098,"direction":"rx","raw":"I (278) esp_image: segment 1: paddr=000c9ce4 vaddr=3fc9f600 size=05a48h ( 23112) load"} +{"ts":1777479591.494881,"direction":"rx","raw":"I (284) esp_image: segment 2: paddr=000cf734 vaddr=40374000 size=008e4h ( 2276) load"} +{"ts":1777479591.4951448,"direction":"rx","raw":"I (285) esp_image: segment 3: paddr=000d0020 vaddr=42000020 size=10654ch (1074508) map"} +{"ts":1777479591.495415,"direction":"rx","raw":"I (501) esp_image: segment 4: paddr=001d6574 vaddr=403748e4 size=1ac80h (109696) load"} +{"ts":1777479591.495683,"direction":"rx","raw":"I (527) esp_image: segment 5: paddr=001f11fc vaddr=50000000 size=00020h ( 32) load"} +{"ts":1777479591.4959302,"direction":"rx","raw":"I (527) esp_image: segment 6: paddr=001f1224 vaddr=00000000 size=0edach ( 60844) "} +{"ts":1777479591.496089,"direction":"rx","raw":"I (543) esp_image: Verifying image signature..."} +{"ts":1777479591.496246,"direction":"rx","raw":"I (543) secure_boot_v2: Verifying with RSA-PSS..."} +{"ts":1777479591.496424,"direction":"rx","raw":"I (546) secure_boot_v2: Signature verified successfully!"} +{"ts":1777479591.496612,"direction":"rx","raw":"I (557) boot: Loaded app from partition at offset 0x30000"} +{"ts":1777479591.496774,"direction":"rx","raw":"I (557) secure_boot_v2: enabling secure boot v2..."} +{"ts":1777479591.497003,"direction":"rx","raw":"I (557) secure_boot_v2: secure boot v2 is already enabled, continuing.."} +{"ts":1777479591.497143,"direction":"rx","raw":"I (561) boot: Checking flash encryption..."} +{"ts":1777479591.497391,"direction":"rx","raw":"I (565) flash_encrypt: flash encryption is enabled (1 plaintext flashes left)"} +{"ts":1777479591.497557,"direction":"rx","raw":"I (572) boot: Disabling RNG early entropy source..."} +{"ts":1777479591.497702,"direction":"rx","raw":"I (589) octal_psram: vendor id : 0x0d (AP)"} +{"ts":1777479591.4978838,"direction":"rx","raw":"I (589) octal_psram: dev id : 0x02 (generation 3)"} +{"ts":1777479591.498046,"direction":"rx","raw":"I (589) octal_psram: density : 0x03 (64 Mbit)"} +{"ts":1777479591.498187,"direction":"rx","raw":"I (591) octal_psram: good-die : 0x01 (Pass)"} +{"ts":1777479591.4983191,"direction":"rx","raw":"I (595) octal_psram: Latency : 0x01 (Fixed)"} +{"ts":1777479591.4984431,"direction":"rx","raw":"I (599) octal_psram: VCC : 0x01 (3V)"} +{"ts":1777479591.4985988,"direction":"rx","raw":"I (604) octal_psram: SRF : 0x01 (Fast Refresh)"} +{"ts":1777479591.498751,"direction":"rx","raw":"I (608) octal_psram: BurstType : 0x01 (Hybrid Wrap)"} +{"ts":1777479591.498898,"direction":"rx","raw":"I (613) octal_psram: BurstLen : 0x01 (32 Byte)"} +{"ts":1777479591.4990542,"direction":"rx","raw":"I (618) octal_psram: Readlatency : 0x02 (10 cycles@Fixed)"} +{"ts":1777479591.49918,"direction":"rx","raw":"I (623) octal_psram: DriveStrength: 0x00 (1/1)"} +{"ts":1777479591.499319,"direction":"rx","raw":"I (627) MSPI Timing: Enter psram timing tuning"} +{"ts":1777479591.499437,"direction":"rx","raw":"I (632) esp_psram: Found 8MB PSRAM device"} +{"ts":1777479591.499527,"direction":"rx","raw":"I (635) esp_psram: Speed: 80MHz"} +{"ts":1777479591.499627,"direction":"rx","raw":"I (638) cpu_start: Multicore app"} +{"ts":1777479591.499748,"direction":"rx","raw":"I (1372) esp_psram: SPI SRAM memory test OK"} +{"ts":1777479591.499941,"direction":"rx","raw":"I (1380) cpu_start: GPIO 44 and 43 are used as console UART I/O pins"} +{"ts":1777479591.500067,"direction":"rx","raw":"I (1381) cpu_start: Pro cpu start user code"} +{"ts":1777479591.5001862,"direction":"rx","raw":"I (1381) cpu_start: cpu freq: 160000000 Hz"} +{"ts":1777479591.500304,"direction":"rx","raw":"I (1383) app_init: Application information:"} +{"ts":1777479591.500441,"direction":"rx","raw":"I (1387) app_init: Project name: TQ_printer"} +{"ts":1777479591.500579,"direction":"rx","raw":"I (1391) app_init: App version: d735446-dirty"} +{"ts":1777479591.500741,"direction":"rx","raw":"I (1395) app_init: Compile time: Apr 30 2026 00:13:05"} +{"ts":1777479591.500876,"direction":"rx","raw":"I (1400) app_init: ELF file SHA256: 6bee451c4..."} +{"ts":1777479591.5009952,"direction":"rx","raw":"I (1405) app_init: ESP-IDF: v5.5.3"} +{"ts":1777479591.501119,"direction":"rx","raw":"I (1409) efuse_init: Min chip rev: v0.0"} +{"ts":1777479591.501245,"direction":"rx","raw":"I (1413) efuse_init: Max chip rev: v0.99 "} +{"ts":1777479591.5013618,"direction":"rx","raw":"I (1417) efuse_init: Chip rev: v0.2"} +{"ts":1777479591.501556,"direction":"rx","raw":"I (1421) heap_init: Initializing. RAM available for dynamic allocation:"} +{"ts":1777479591.501729,"direction":"rx","raw":"I (1427) heap_init: At 3FCAA660 len 0003F0B0 (252 KiB): RAM"} +{"ts":1777479591.501895,"direction":"rx","raw":"I (1432) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM"} +{"ts":1777479591.502053,"direction":"rx","raw":"I (1438) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM"} +{"ts":1777479591.50222,"direction":"rx","raw":"I (1443) heap_init: At 600FE000 len 00001FE8 (7 KiB): RTCRAM"} +{"ts":1777479591.502414,"direction":"rx","raw":"I (1448) esp_psram: Adding pool of 8192K of PSRAM memory to heap allocator"} +{"ts":1777479591.502537,"direction":"rx","raw":"I (1456) spi_flash: detected chip: generic"} +{"ts":1777479591.502635,"direction":"rx","raw":"I (1459) spi_flash: flash io: dio"} +{"ts":1777479591.5028238,"direction":"rx","raw":"W (1462) flash_encrypt: Flash encryption mode is DEVELOPMENT (not secure)"} +{"ts":1777479591.503018,"direction":"rx","raw":"I (1469) sleep_gpio: Configure to isolate all GPIO pins in sleep state"} +{"ts":1777479591.503316,"direction":"rx","raw":"I (1475) sleep_gpio: Enable automatic switching of GPIO sleep configuration"} +{"ts":1777479591.5035489,"direction":"rx","raw":"I (1481) nvs_sec_provider: NVS Encryption - Registering Flash encryption-based scheme..."} +{"ts":1777479591.5036569,"direction":"rx","raw":"I (1490) main_task: Started on CPU0"} +{"ts":1777479591.503894,"direction":"rx","raw":"I (1500) esp_psram: Reserving pool of 32K of internal memory for DMA/internal allocations"} +{"ts":1777479591.503999,"direction":"rx","raw":"I (1500) main_task: Calling app_main()"} +{"ts":1777479591.504552,"direction":"rx","raw":"I (1500) platform_bootstrap: board gpio mapped: hold=1 pwr_key=47 key_print=0 boost_mode=1 led_r=2 led_g=21 spi(mosi=9,miso=10,clk=11) screen(dc=12,cs=13,bk=48) i2c(sda=6,scl=7) i2s(mclk=38,bclk=39,ws=41,di=40,do=42) pa=20"} +{"ts":1777479591.50468,"direction":"rx","raw":"I (1540) nvs: NVS partition \"nvs\" is encrypted."} +{"ts":1777479591.5048509,"direction":"rx","raw":"I (1540) platform_bootstrap: extmem malloc threshold set to 4096 bytes"} +{"ts":1777479591.50507,"direction":"rx","raw":"I (1540) platform_bootstrap: mbedtls calloc/free redirected to PSRAM-preferred allocator"} +{"ts":1777479591.505461,"direction":"rx","raw":"I (1950) lcd_module: st7789p3 ready: spi_host=1 mosi=9 clk=11 miso=10 dc=12 cs=13 rst=48 bk=48 pclk=10000000 mode=0 res=320x240 madctl=0x60 gap=0,0 invert=1 swap_bytes=1"} +{"ts":1777479591.505607,"direction":"rx","raw":"I (2340) lcd_module: preview drawn directly: size=320x240"} +{"ts":1777479591.505837,"direction":"rx","raw":"I (2350) button: IoT Button Version: 4.1.5"} +{"ts":1777479591.506109,"direction":"rx","raw":"I (2350) platform_power_key: POWER_KEY initialized: gpio=47 active_level=low long_press_ms=2000"} +{"ts":1777479591.506216,"direction":"rx","raw":"I (2360) pp: pp rom version: e7ae62f"} +{"ts":1777479591.506346,"direction":"rx","raw":"I (2360) net80211: net80211 rom version: e7ae62f"} +{"ts":1777479591.506516,"direction":"rx","raw":"I (2370) wifi:wifi driver task: 3fceebc0, prio:23, stack:6656, core=0"} +{"ts":1777479591.506625,"direction":"rx","raw":"I (2370) wifi:wifi firmware version: 4df78f2"} +{"ts":1777479591.5067499,"direction":"rx","raw":"I (2370) wifi:wifi certification version: v7.0"} +{"ts":1777479591.5068538,"direction":"rx","raw":"I (2370) wifi:config NVS flash: enabled"} +{"ts":1777479591.5069702,"direction":"rx","raw":"I (2380) wifi:config nano formatting: disabled"} +{"ts":1777479591.5071108,"direction":"rx","raw":"I (2380) wifi:Init data frame dynamic rx buffer num: 256"} +{"ts":1777479591.507231,"direction":"rx","raw":"I (2390) wifi:Init static rx mgmt buffer num: 5"} +{"ts":1777479591.507351,"direction":"rx","raw":"I (2390) wifi:Init management short buffer num: 32"} +{"ts":1777479591.507461,"direction":"rx","raw":"I (2400) wifi:Init static tx buffer num: 32"} +{"ts":1777479591.507571,"direction":"rx","raw":"I (2400) wifi:Init tx cache buffer num: 64"} +{"ts":1777479591.5076811,"direction":"rx","raw":"I (2400) wifi:Init static tx FG buffer num: 2"} +{"ts":1777479591.507797,"direction":"rx","raw":"I (2410) wifi:Init static rx buffer size: 1600"} +{"ts":1777479591.5079029,"direction":"rx","raw":"I (2410) wifi:Init static rx buffer num: 24"} +{"ts":1777479591.508016,"direction":"rx","raw":"I (2410) wifi:Init dynamic rx buffer num: 256"} +{"ts":1777479591.508102,"direction":"rx","raw":"I (2420) wifi_init: rx ba win: 32"} +{"ts":1777479591.508189,"direction":"rx","raw":"I (2420) wifi_init: accept mbox: 6"} +{"ts":1777479591.5082781,"direction":"rx","raw":"I (2420) wifi_init: tcpip mbox: 256"} +{"ts":1777479591.508362,"direction":"rx","raw":"I (2430) wifi_init: udp mbox: 6"} +{"ts":1777479591.508448,"direction":"rx","raw":"I (2430) wifi_init: tcp mbox: 192"} +{"ts":1777479591.5085409,"direction":"rx","raw":"I (2430) wifi_init: tcp tx win: 57344"} +{"ts":1777479591.508638,"direction":"rx","raw":"I (2440) wifi_init: tcp rx win: 262144"} +{"ts":1777479591.508729,"direction":"rx","raw":"I (2440) wifi_init: tcp mss: 1440"} +{"ts":1777479591.508835,"direction":"rx","raw":"I (2440) wifi_init: WiFi/LWIP prefer SPIRAM"} +{"ts":1777479591.508936,"direction":"rx","raw":"I (2450) wifi_init: WiFi IRAM OP enabled"} +{"ts":1777479591.5090501,"direction":"rx","raw":"I (2450) wifi_init: WiFi RX IRAM OP enabled"} +{"ts":1777479591.509218,"direction":"rx","raw":"I (2460) wifi_manager: found saved Wi-Fi credentials for SSID:TalkingQ"} +{"ts":1777479591.5094469,"direction":"rx","raw":"W (2460) wifi:Password length matches WPA2 standards, authmode threshold changes from OPEN to WPA2"} +{"ts":1777479591.509611,"direction":"rx","raw":"I (2470) phy_init: phy_version 711,97bcf0a2,Aug 25 2025,19:04:10"} +{"ts":1777479591.5097191,"direction":"rx","raw":"I (2530) wifi:mode : sta (3c:dc:75:5c:1c:9c)"} +{"ts":1777479591.509781,"direction":"rx","raw":"I (2530) wifi:enable tsf"} +{"ts":1777479591.50996,"direction":"rx","raw":"I (2630) wifi:new:<1,1>, old:<1,0>, ap:<255,255>, sta:<1,1>, prof:1, snd_ch_cfg:0x0"} +{"ts":1777479591.510059,"direction":"rx","raw":"I (2630) wifi:state: init -> auth (0xb0)"} +{"ts":1777479591.510148,"direction":"rx","raw":"I (2630) wifi:state: auth -> assoc (0x0)"} +{"ts":1777479591.5102441,"direction":"rx","raw":"I (2640) wifi:state: assoc -> run (0x10)"} +{"ts":1777479591.5104342,"direction":"rx","raw":"I (2660) wifi:connected with TalkingQ, aid = 90, channel 1, 40U, bssid = a8:e5:44:d7:1a:64"} +{"ts":1777479591.510546,"direction":"rx","raw":"I (2660) wifi:security: WPA2-PSK, phy: bgn, rssi: -37"} +{"ts":1777479591.510617,"direction":"rx","raw":"I (2660) wifi:pm start, type: 1"} +{"ts":1777479591.5108008,"direction":"rx","raw":"I (2670) wifi:dp: 1, bi: 102400, li: 3, scale listen interval from 307200 us to 307200 us"} +{"ts":1777479591.510991,"direction":"rx","raw":"I (2670) wifi:set rx beacon pti, rx_bcn_pti: 0, bcn_timeout: 25000, mt_pti: 0, mt_time: 10000"} +{"ts":1777479591.511127,"direction":"rx","raw":"I (2710) wifi:AP's beacon interval = 102400 us, DTIM period = 1"} +{"ts":1777479591.5112472,"direction":"rx","raw":"I (2840) lcd_module: preview drawn directly: size=320x55"} +{"ts":1777479591.511369,"direction":"rx","raw":"I (2840) wifi_manager: trying to connect to SSID:TalkingQ"} +{"ts":1777479592.2348669,"direction":"rx","raw":"I (3740) esp_netif_handlers: sta ip: 192.168.101.16, mask: 255.255.255.0, gw: 192.168.101.1"} +{"ts":1777479592.235661,"direction":"rx","raw":"I (3740) wifi_manager: got ip:192.168.101.16"} +{"ts":1777479592.242334,"direction":"rx","raw":"I (3750) wifi_manager: connected to AP SSID:TalkingQ"} +{"ts":1777479592.24788,"direction":"rx","raw":"I (3750) wifi_manager: Wi-Fi protocol mask set to 11b/11g/11n"} +{"ts":1777479592.2533948,"direction":"rx","raw":"I (3750) wifi_manager: Wi-Fi bandwidth set to HT40"} +{"ts":1777479592.2587311,"direction":"rx","raw":"I (3750) wifi:Set ps type: 0, coexist: 0"} +{"ts":1777479592.2641752,"direction":"rx","raw":"I (3760) wifi_manager: Wi-Fi power save disabled (WIFI_PS_NONE)"} +{"ts":1777479592.2696881,"direction":"rx","raw":"I (3770) printer_driver: printer initialized"} +{"ts":1777479592.2700548,"direction":"rx","raw":"I (3770) printer_protocol: printer driver ready at startup"} +{"ts":1777479592.2756941,"direction":"rx","raw":"I (3770) printer_protocol: printer protocol initialized"} +{"ts":1777479592.293041,"direction":"rx","raw":"I (3780) platform_mic_key: MIC_KEY initialized: gpio=14 active_level=low sh��I (3790) product_test_uart: product test uart ready: port=0 baud=115200 tx=-1 rx=-1"} +{"ts":1777479592.298248,"direction":"rx","raw":"TQTEST_READY {\"version\":1,\"device\":\"TQ_printer\",\"idf_free_heap\":8293952,\"uart_port\":0,\"baud\":115200}"} +{"ts":1777479592.298392,"direction":"tx","raw":"TQTEST_CMD {\"seq\":2,\"cmd\":\"PING\",\"payload\":{}}","seq":2,"cmd":"PING"} +{"ts":1777479592.304199,"direction":"rx","raw":"I (3800) product_test: product test service started"} +{"ts":1777479592.314673,"direction":"rx","raw":"I (3820) control_plane_lifecycle: control-plane lifecycle started"} +{"ts":1777479592.314959,"direction":"rx","raw":"I (3820) app_main: TQ printer runtime started"} +{"ts":1777479592.32052,"direction":"rx","raw":"I (3820) main_task: Returned from app_main()"} +{"ts":1777479592.330663,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":2,\"name\":\"PING\",\"ms\":2370,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":0,\"data\":{\"version\":1,\"free_heap\":8223332}}"} +{"ts":1777479592.3308759,"direction":"tx","raw":"TQTEST_CMD {\"seq\":3,\"cmd\":\"WAIT_WIFI\",\"payload\":{\"timeout_ms\":20000}}","seq":3,"cmd":"WAIT_WIFI"} +{"ts":1777479592.340142,"direction":"rx","raw":"I (3820) websocket_client: Started"} +{"ts":1777479592.348005,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":3,\"name\":\"WAIT_WIFI\",\"ms\":2404,\"stage\":\"wait_wifi\"}"} +{"ts":1777479592.3629382,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":3,\"name\":\"WAIT_WIFI\",\"ms\":2412,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":8,\"data\":{\"wifi_ready\":true,\"ip\":\"192.168.101.16\"}}"} +{"ts":1777479592.363219,"direction":"tx","raw":"TQTEST_CMD {\"seq\":4,\"cmd\":\"STATUS\",\"payload\":{}}","seq":4,"cmd":"STATUS"} +{"ts":1777479592.459381,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":4,\"name\":\"STATUS\",\"ms\":2439,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":3,\"data\":{\"wifi_ready\":true,\"ip\":\"192.168.101.16\",\"printer\":{\"busy\":false,\"has_paper\":true,\"paper_gpio_level\":0,\"paper_present_level\":0,\"battery_adc_ready\":true,\"ntc_adc_ready\":true,\"battery_adc_raw\":2421,\"ntc_adc_raw\":2923,\"battery_mv\":3901,\"battery_percent\":66,\"temperature_c\":29.2156982421875,\"temperature_min_c\":15,\"temperature_max_c\":55,\"battery_min_percent\":5,\"ntc_pullup_ohms\":10000,\"ntc_r25_ohms\":30000,\"ntc_beta\":3950,\"queue_depth\":0,\"last_status_ms\":2437},\"voice\":{\"ready\":true,\"session_active\":true,\"ws_connected\":false,\"started\":false,\"tap_active\":false,\"marker_image_gen_running\":false,\"dialog_state\":\"Idle\",\"upstream_packets\":0,\"downstream_packets\":0,\"task_id\":\"aa8735d0-6fc7-4e63-8b94-2672cf1ae3f2\",\"dialog_id\":\"\",\"last_error\":\"\",\"last_event_ms\":2370},\"free_heap\":8122216,\"min_free_heap\":7994628}}"} +{"ts":1777479592.4598122,"direction":"tx","raw":"TQTEST_CMD {\"seq\":5,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":96,\"wait_done\":true,\"ignore_precheck\":false,\"density\":\"较淡\",\"timeout_ms\":120000}}","seq":5,"cmd":"PRINT_PATTERN"} +{"ts":1777479592.47772,"direction":"rx","raw":"I (3940) wifi:idx:0 (ifx:0, a8:e5:44:d7:1a:64), tid:5, ssn:1410, winSize:64"} +{"ts":1777479592.4783869,"direction":"rx","raw":"I (3930) lcd_module: preview drawn directly: size=320x47"} +{"ts":1777479592.484365,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":2540,\"stage\":\"build_pattern\"}"} +{"ts":1777479592.493193,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":2549,\"stage\":\"submit_print\"}"} +{"ts":1777479592.510808,"direction":"rx","raw":"I (4010) printer_protocol: job queued, job_id=1, raster_bytes=4608, size=384x96, density=较淡, ignore_precheck=0, queue_depth=1"} +{"ts":1777479592.516629,"direction":"rx","raw":"I (4010) printer_protocol: job 1 running, queue_wait_ms=0, raster_bytes=4608, size=384x96, density=较淡"} +{"ts":1777479592.5247731,"direction":"rx","raw":"I (4020) printer_protocol: job 1 print start, raster_bytes=4608, size=384x96, density=较淡, ignore_precheck=0"} +{"ts":1777479592.54129,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":2558,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":1}}"} +{"ts":1777479592.565141,"direction":"rx","raw":"I (4070) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777479593.148839,"direction":"rx","raw":"I (4660) voice_interaction: voice session prewarm ready"} +{"ts":1777479593.245308,"direction":"rx","raw":"I (4750) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777479594.745912,"direction":"rx","raw":"I (6250) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777479595.4193192,"direction":"rx","raw":"I (6920) printer_driver: print power limited: lines=96 max_black_dots=36 max_dots_per_pulse=32 subpulses=192"} +{"ts":1777479595.424036,"direction":"rx","raw":"I (6920) printer_protocol: job 1 done, state=success, duration_ms=2915"} +{"ts":1777479595.553361,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":5,\"name\":\"PRINT_PATTERN\",\"ms\":5596,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":3056,\"data\":{\"job_id\":1,\"job_state\":\"success\",\"progress\":100,\"width\":384,\"height\":96,\"data_len\":4608,\"error\":\"\"}}"} +{"ts":1777479595.553567,"direction":"tx","raw":"TQTEST_CMD {\"seq\":6,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":256,\"wait_done\":true,\"ignore_precheck\":false,\"density\":\"较淡\",\"timeout_ms\":120000}}","seq":6,"cmd":"PRINT_PATTERN"} +{"ts":1777479595.577875,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":5634,\"stage\":\"build_pattern\"}"} +{"ts":1777479595.587712,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":5644,\"stage\":\"submit_print\"}"} +{"ts":1777479595.605379,"direction":"rx","raw":"I (7100) printer_protocol: job queued, job_id=2, raster_bytes=12288, size=384x256, density=较淡, ignore_precheck=0, queue_depth=1"} +{"ts":1777479595.611094,"direction":"rx","raw":"I (7100) printer_protocol: job 2 running, queue_wait_ms=0, raster_bytes=12288, size=384x256, density=较淡"} +{"ts":1777479595.6190898,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":5653,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":2}}"} +{"ts":1777479595.629944,"direction":"rx","raw":"I (7110) printer_protocol: job 2 print start, raster_bytes=12288, size=384x256, density=较淡, ignore_precheck=0"} +{"ts":1777479595.655895,"direction":"rx","raw":"I (7160) wifi:idx:1 (ifx:0, a8:e5:44:d7:1a:64), tid:0, ssn:1449, winSize:64"} +{"ts":1777479595.704295,"direction":"rx","raw":"I (7210) image_generation: https prewarm done, gen_rc=0x0, oss_rc=0x0, cost_ms=3398"} +{"ts":1777479603.3095958,"direction":"rx","raw":"I (14810) printer_driver: print power limited: lines=256 max_black_dots=36 max_dots_per_pulse=32 subpulses=512"} +{"ts":1777479603.31475,"direction":"rx","raw":"I (14810) printer_protocol: job 2 done, state=success, duration_ms=7710"} +{"ts":1777479603.3839302,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":6,\"name\":\"PRINT_PATTERN\",\"ms\":13426,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":7793,\"data\":{\"job_id\":2,\"job_state\":\"success\",\"progress\":100,\"width\":384,\"height\":256,\"data_len\":12288,\"error\":\"\"}}"} +{"ts":1777479603.384248,"direction":"tx","raw":"TQTEST_CMD {\"seq\":7,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":96,\"wait_done\":true,\"ignore_precheck\":false,\"density\":\"中等\",\"timeout_ms\":120000}}","seq":7,"cmd":"PRINT_PATTERN"} +{"ts":1777479603.408648,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":7,\"name\":\"PRINT_PATTERN\",\"ms\":13464,\"stage\":\"build_pattern\"}"} +{"ts":1777479603.417098,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":7,\"name\":\"PRINT_PATTERN\",\"ms\":13473,\"stage\":\"submit_print\"}"} +{"ts":1777479603.4288251,"direction":"rx","raw":"I (14930) printer_protocol: job 3 running, queue_wait_ms=0, raster_bytes=4608, size=384x96, density=中等"} +{"ts":1777479603.440018,"direction":"rx","raw":"I (14930) printer_protocol: job queued, job_id=3, raster_bytes=4608, size=384x96, density=中等, ignore_precheck=0, queue_depth=0"} +{"ts":1777479603.4510348,"direction":"rx","raw":"I (14930) printer_protocol: job 3 print start, raster_bytes=4608, size=384x96, density=中等, ignore_precheck=0"} +{"ts":1777479603.45767,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":7,\"name\":\"PRINT_PATTERN\",\"ms\":13491,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":3}}"} +{"ts":1777479606.329609,"direction":"rx","raw":"I (17830) printer_driver: print power limited: lines=96 max_black_dots=36 max_dots_per_pulse=32 subpulses=192"} +{"ts":1777479606.334638,"direction":"rx","raw":"I (17830) printer_protocol: job 3 done, state=success, duration_ms=2901"} +{"ts":1777479606.47387,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":7,\"name\":\"PRINT_PATTERN\",\"ms\":16516,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":3052,\"data\":{\"job_id\":3,\"job_state\":\"success\",\"progress\":100,\"width\":384,\"height\":96,\"data_len\":4608,\"error\":\"\"}}"} +{"ts":1777479606.474216,"direction":"tx","raw":"TQTEST_CMD {\"seq\":8,\"cmd\":\"IMAGE_PRINT\",\"payload\":{\"prompt\":\"简单黑白线稿,小猫,白色背景,适合热敏打印\",\"size\":\"512*768\",\"prompt_extend\":true,\"ignore_precheck\":false,\"density\":\"较淡\",\"generation_timeout_ms\":120000,\"download_timeout_ms\":45000,\"print_timeout_ms\":120000}}","seq":8,"cmd":"IMAGE_PRINT"} +{"ts":1777479606.512779,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":16568,\"stage\":\"image_generate\"}"} +{"ts":1777479606.530028,"direction":"rx","raw":"I (18030) image_generation: image generate start, prompt_len=63, size=512*768, prompt_extend=1, seed=auto, gen_timeout_ms=120000, fetch_timeout_ms=45000"} +{"ts":1777479606.532943,"direction":"rx","raw":"I (18030) image_generation: z-image request start, timeout_ms=120000"} +{"ts":1777479606.748832,"direction":"rx","raw":"I (18260) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777479632.6790888,"direction":"rx","raw":"I (44170) image_generation: z-image response ready, request_id=50bda575-86ff-9992-a170-2d209db12f62, model_size=512x768, image_url_len=232"} +{"ts":1777479632.6902442,"direction":"rx","raw":"I (44180) image_generation: image generate stage done, request_id=50bda575-86ff-9992-a170-2d209db12f62, gen_cost_ms=26148"} +{"ts":1777479632.692224,"direction":"rx","raw":"I (44190) image_generation: generated image download start, timeout_ms=45000"} +{"ts":1777479632.875474,"direction":"rx","raw":"I (44380) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777479633.793956,"direction":"rx","raw":"I (45290) image_generation: generated image download done, png_bytes=201815"} +{"ts":1777479633.8052878,"direction":"rx","raw":"I (45300) image_generation: image generation pipeline done, request_id=50bda575-86ff-9992-a170-2d209db12f62, png_bytes=201815, gen_ms=26148, download_ms=1119, total_ms=27267"} +{"ts":1777479633.811956,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":43857,\"stage\":\"image_preview\"}"} +{"ts":1777479634.632812,"direction":"rx","raw":"I (46140) lcd_module: preview drawn directly: size=160x240"} +{"ts":1777479634.639329,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":44690,\"stage\":\"image_rasterize\"}"} +{"ts":1777479635.228726,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":45284,\"stage\":\"submit_print\"}"} +{"ts":1777479635.246599,"direction":"rx","raw":"I (46740) printer_protocol: job queued, job_id=4, raster_bytes=12288, size=384x256, density=较淡, ignore_precheck=0, queue_depth=1"} +{"ts":1777479635.25243,"direction":"rx","raw":"I (46740) printer_protocol: job 4 running, queue_wait_ms=0, raster_bytes=12288, size=384x256, density=较淡"} +{"ts":1777479635.260509,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":45294,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":4}}"} +{"ts":1777479635.271225,"direction":"rx","raw":"I (46750) printer_protocol: job 4 print start, raster_bytes=12288, size=384x256, density=较淡, ignore_precheck=0"} +{"ts":1777479641.7697,"direction":"rx","raw":"I (53270) printer_driver: print power limited: lines=101 max_black_dots=128 max_dots_per_pulse=32 subpulses=331"} +{"ts":1777479641.7750468,"direction":"rx","raw":"I (53270) printer_protocol: job 4 done, state=success, duration_ms=6529"} +{"ts":1777479642.055298,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":8,\"name\":\"IMAGE_PRINT\",\"ms\":52066,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":35498,\"data\":{\"request_id\":\"50bda575-86ff-9992-a170-2d209db12f62\",\"png_len\":201815,\"width\":512,\"height\":768,\"image_url\":\"https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/7d/08/20260430/448165f2/50bda575-86ff-9992-a170-2d209db12f621469845266.png?Expires=1778085432&OSSAccessKeyId=LTAI5tPxpiCM2hjmWrFXrym1&Signature=lKjT76LrjTeS6a%2BgNdaRQHffA4I%3D\",\"job_id\":4,\"raster_width\":384,\"raster_height\":256,\"raster_len\":12288,\"job_state\":\"success\",\"progress\":100,\"job_error\":\"\"}}"} diff --git a/docs/product_test_reports/reboot_force_print_20260429_234807.jsonl b/docs/product_test_reports/reboot_force_print_20260429_234807.jsonl new file mode 100644 index 0000000..55d0ccc --- /dev/null +++ b/docs/product_test_reports/reboot_force_print_20260429_234807.jsonl @@ -0,0 +1,22 @@ +{"ts":1777477687.37579,"direction":"tx","raw":"TQTEST_CMD {\"seq\":1,\"cmd\":\"PING\",\"payload\":{}}","seq":1,"cmd":"PING"} +{"ts":1777477687.3962922,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":1,\"name\":\"PING\",\"ms\":45955,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":0,\"data\":{\"version\":1,\"free_heap\":8174424}}"} +{"ts":1777477687.3963652,"direction":"tx","raw":"TQTEST_CMD {\"seq\":2,\"cmd\":\"PING\",\"payload\":{}}","seq":2,"cmd":"PING"} +{"ts":1777477687.4163861,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":2,\"name\":\"PING\",\"ms\":45975,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":0,\"data\":{\"version\":1,\"free_heap\":8174424}}"} +{"ts":1777477687.4164438,"direction":"tx","raw":"TQTEST_CMD {\"seq\":3,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":96,\"wait_done\":true,\"ignore_precheck\":true,\"timeout_ms\":120000}}","seq":3,"cmd":"PRINT_PATTERN"} +{"ts":1777477687.4382699,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":3,\"name\":\"PRINT_PATTERN\",\"ms\":46003,\"stage\":\"build_pattern\"}"} +{"ts":1777477687.446825,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":3,\"name\":\"PRINT_PATTERN\",\"ms\":46011,\"stage\":\"submit_print\"}"} +{"ts":1777477687.464312,"direction":"rx","raw":"I (47470) printer_protocol: job queued, job_id=1, raster_bytes=4608, size=384x96, density=test, ignore_precheck=1, queue_depth=1"} +{"ts":1777477687.4699929,"direction":"rx","raw":"I (47470) printer_protocol: job 1 running, queue_wait_ms=0, raster_bytes=4608, size=384x96, density=test"} +{"ts":1777477687.477628,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":3,\"name\":\"PRINT_PATTERN\",\"ms\":46020,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":1}}"} +{"ts":1777477687.4877172,"direction":"rx","raw":"I (47480) printer_protocol: job 1 print start, raster_bytes=4608, size=384x96, density=test, ignore_precheck=1"} +{"ts":1777477688.565845,"direction":"rx","raw":"I (48580) printer_protocol: job 1 done, state=success, duration_ms=1112"} +{"ts":1777477688.744833,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":3,\"name\":\"PRINT_PATTERN\",\"ms\":47296,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":1293,\"data\":{\"job_id\":1,\"job_state\":\"success\",\"progress\":100,\"width\":384,\"height\":96,\"data_len\":4608,\"error\":\"\"}}"} +{"ts":1777477688.745043,"direction":"tx","raw":"TQTEST_CMD {\"seq\":4,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":256,\"wait_done\":true,\"ignore_precheck\":true,\"timeout_ms\":120000}}","seq":4,"cmd":"PRINT_PATTERN"} +{"ts":1777477688.767195,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":4,\"name\":\"PRINT_PATTERN\",\"ms\":47331,\"stage\":\"build_pattern\"}"} +{"ts":1777477688.777075,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":4,\"name\":\"PRINT_PATTERN\",\"ms\":47342,\"stage\":\"submit_print\"}"} +{"ts":1777477688.7948391,"direction":"rx","raw":"I (48800) printer_protocol: job queued, job_id=2, raster_bytes=12288, size=384x256, density=test, ignore_precheck=1, queue_depth=1"} +{"ts":1777477688.8004942,"direction":"rx","raw":"I (48800) printer_protocol: job 2 running, queue_wait_ms=0, raster_bytes=12288, size=384x256, density=test"} +{"ts":1777477688.808418,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":4,\"name\":\"PRINT_PATTERN\",\"ms\":47351,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":2}}"} +{"ts":1777477688.818923,"direction":"rx","raw":"I (48810) printer_protocol: job 2 print start, raster_bytes=12288, size=384x256, density=test, ignore_precheck=1"} +{"ts":1777477691.695728,"direction":"rx","raw":"I (51710) printer_protocol: job 2 done, state=success, duration_ms=2911"} +{"ts":1777477691.8252192,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":4,\"name\":\"PRINT_PATTERN\",\"ms\":50376,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":3045,\"data\":{\"job_id\":2,\"job_state\":\"success\",\"progress\":100,\"width\":384,\"height\":256,\"data_len\":12288,\"error\":\"\"}}"} diff --git a/docs/product_test_reports/reboot_print_image_20260429_234506.jsonl b/docs/product_test_reports/reboot_print_image_20260429_234506.jsonl new file mode 100644 index 0000000..e43a1e5 --- /dev/null +++ b/docs/product_test_reports/reboot_print_image_20260429_234506.jsonl @@ -0,0 +1 @@ +{"ts":1777477509.6791072,"direction":"tx","raw":"TQTEST_CMD {\"seq\":1,\"cmd\":\"PING\",\"payload\":{}}","seq":1,"cmd":"PING"} diff --git a/docs/product_test_reports/reboot_print_image_noreset_20260429_234654.jsonl b/docs/product_test_reports/reboot_print_image_noreset_20260429_234654.jsonl new file mode 100644 index 0000000..bfff1b7 --- /dev/null +++ b/docs/product_test_reports/reboot_print_image_noreset_20260429_234654.jsonl @@ -0,0 +1,40 @@ +{"ts":1777477614.8617222,"direction":"tx","raw":"TQTEST_CMD {\"seq\":1,\"cmd\":\"PING\",\"payload\":{}}","seq":1,"cmd":"PING"} +{"ts":1777477614.882302,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":1,\"name\":\"PING\",\"ms\":106743,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":0,\"data\":{\"version\":1,\"free_heap\":8174432}}"} +{"ts":1777477614.882381,"direction":"tx","raw":"TQTEST_CMD {\"seq\":2,\"cmd\":\"PING\",\"payload\":{}}","seq":2,"cmd":"PING"} +{"ts":1777477614.9024918,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":2,\"name\":\"PING\",\"ms\":106764,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":0,\"data\":{\"version\":1,\"free_heap\":8174432}}"} +{"ts":1777477614.90256,"direction":"tx","raw":"TQTEST_CMD {\"seq\":3,\"cmd\":\"WAIT_WIFI\",\"payload\":{\"timeout_ms\":20000}}","seq":3,"cmd":"WAIT_WIFI"} +{"ts":1777477614.9190311,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":3,\"name\":\"WAIT_WIFI\",\"ms\":106786,\"stage\":\"wait_wifi\"}"} +{"ts":1777477614.9338088,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":3,\"name\":\"WAIT_WIFI\",\"ms\":106794,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":8,\"data\":{\"wifi_ready\":true,\"ip\":\"192.168.101.16\"}}"} +{"ts":1777477614.9338508,"direction":"tx","raw":"TQTEST_CMD {\"seq\":4,\"cmd\":\"PRINT_PATTERN\",\"payload\":{\"height\":96,\"wait_done\":true,\"ignore_precheck\":false,\"timeout_ms\":120000}}","seq":4,"cmd":"PRINT_PATTERN"} +{"ts":1777477614.955842,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":4,\"name\":\"PRINT_PATTERN\",\"ms\":106823,\"stage\":\"build_pattern\"}"} +{"ts":1777477614.964612,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":4,\"name\":\"PRINT_PATTERN\",\"ms\":106831,\"stage\":\"submit_print\"}"} +{"ts":1777477614.981981,"direction":"rx","raw":"I (108290) printer_protocol: job queued, job_id=1, raster_bytes=4608, size=384x96, density=test, ignore_precheck=0, queue_depth=1"} +{"ts":1777477614.987686,"direction":"rx","raw":"I (108290) printer_protocol: job 1 running, queue_wait_ms=1, raster_bytes=4608, size=384x96, density=test"} +{"ts":1777477614.995499,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":4,\"name\":\"PRINT_PATTERN\",\"ms\":106840,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":1}}"} +{"ts":1777477615.005697,"direction":"rx","raw":"I (108300) printer_protocol: job 1 print start, raster_bytes=4608, size=384x96, density=test, ignore_precheck=0"} +{"ts":1777477615.058123,"direction":"rx","raw":"W (108370) printer_protocol: job 1 done, state=canceled, duration_ms=31, error=Printer temperature abnormal. Wait and retry."} +{"ts":1777477615.271911,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":4,\"name\":\"PRINT_PATTERN\",\"ms\":107116,\"status\":\"fail\",\"rc\":-1,\"esp_err\":\"ESP_FAIL\",\"duration_ms\":294,\"message\":\"Printer temperature abnormal. Wait and retry.\",\"data\":{\"job_id\":1,\"job_state\":\"canceled\",\"progress\":100,\"width\":384,\"height\":96,\"data_len\":4608,\"error\":\"Printer temperature abnormal. Wait and retry.\"}}"} +{"ts":1777477615.272289,"direction":"tx","raw":"TQTEST_CMD {\"seq\":5,\"cmd\":\"IMAGE_PRINT\",\"payload\":{\"prompt\":\"简单黑白线稿,小猫,白色背景,适合热敏打印\",\"size\":\"512*768\",\"prompt_extend\":true,\"ignore_precheck\":false,\"generation_timeout_ms\":120000,\"download_timeout_ms\":45000,\"print_timeout_ms\":120000}}","seq":5,"cmd":"IMAGE_PRINT"} +{"ts":1777477615.3090482,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"IMAGE_PRINT\",\"ms\":107176,\"stage\":\"image_generate\"}"} +{"ts":1777477615.3263822,"direction":"rx","raw":"I (108630) image_generation: image generate start, prompt_len=63, size=512*768, prompt_extend=1, seed=auto, gen_timeout_ms=120000, fetch_timeout_ms=45000"} +{"ts":1777477615.3294232,"direction":"rx","raw":"I (108640) image_generation: z-image request start, timeout_ms=120000"} +{"ts":1777477615.574228,"direction":"rx","raw":"I (108890) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777477637.011622,"direction":"rx","raw":"I (130320) image_generation: z-image response ready, request_id=b1c2f5b4-b24a-952b-8e4f-695fea376a1d, model_size=512x768, image_url_len=230"} +{"ts":1777477637.0226219,"direction":"rx","raw":"I (130320) image_generation: image generate stage done, request_id=b1c2f5b4-b24a-952b-8e4f-695fea376a1d, gen_cost_ms=21685"} +{"ts":1777477637.024734,"direction":"rx","raw":"I (130330) image_generation: generated image download start, timeout_ms=45000"} +{"ts":1777477637.179126,"direction":"rx","raw":"I (130500) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777477638.0493581,"direction":"rx","raw":"I (131360) image_generation: generated image download done, png_bytes=214885"} +{"ts":1777477638.0606651,"direction":"rx","raw":"I (131360) image_generation: image generation pipeline done, request_id=b1c2f5b4-b24a-952b-8e4f-695fea376a1d, png_bytes=214885, gen_ms=21685, download_ms=1042, total_ms=22727"} +{"ts":1777477638.067724,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"IMAGE_PRINT\",\"ms\":129924,\"stage\":\"image_preview\"}"} +{"ts":1777477638.8993568,"direction":"rx","raw":"I (132220) lcd_module: preview drawn directly: size=160x240"} +{"ts":1777477638.9061818,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"IMAGE_PRINT\",\"ms\":130768,\"stage\":\"image_rasterize\"}"} +{"ts":1777477639.517905,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"IMAGE_PRINT\",\"ms\":131385,\"stage\":\"submit_print\"}"} +{"ts":1777477639.535807,"direction":"rx","raw":"I (132840) printer_protocol: job queued, job_id=2, raster_bytes=12288, size=384x256, density=test, ignore_precheck=0, queue_depth=1"} +{"ts":1777477639.541779,"direction":"rx","raw":"I (132840) printer_protocol: job 2 running, queue_wait_ms=0, raster_bytes=12288, size=384x256, density=test"} +{"ts":1777477639.5496662,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"IMAGE_PRINT\",\"ms\":131395,\"stage\":\"wait_print_done\",\"data\":{\"job_id\":2}}"} +{"ts":1777477639.5603452,"direction":"rx","raw":"I (132850) printer_protocol: job 2 print start, raster_bytes=12288, size=384x256, density=test, ignore_precheck=0"} +{"ts":1777477639.607879,"direction":"rx","raw":"W (132920) printer_protocol: job 2 done, state=canceled, duration_ms=31, error=Printer temperature abnormal. Wait and retry."} +{"ts":1777477639.8534908,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":5,\"name\":\"IMAGE_PRINT\",\"ms\":131666,\"status\":\"fail\",\"rc\":-1,\"esp_err\":\"ESP_FAIL\",\"duration_ms\":24490,\"message\":\"Printer temperature abnormal. Wait and retry.\",\"data\":{\"request_id\":\"b1c2f5b4-b24a-952b-8e4f-695fea376a1d\",\"png_len\":214885,\"width\":512,\"height\":768,\"image_url\":\"https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/7d/59/20260429/448165f2/b1c2f5b4-b24a-952b-8e4f-695fea376a1d1941826759.png?Expires=1778083436&OSSAccessKeyId=LTAI5tPxpiCM2hjmWrFXrym1&Signature=ggUoVRZQmi6P2Vw2VFTt0u43SUc%3D\",\"job_id\":2,\"raster_width\":384,\"raster_height\":256,\"raster_len\":12288,\"job_state\":\"canceled\",\"progress\":100,\"job_error\":\"Printer temperature abnormal. Wait and retry.\"}}"} +{"ts":1777477639.853842,"direction":"tx","raw":"TQTEST_CMD {\"seq\":6,\"cmd\":\"VOICE_STOP\",\"payload\":{\"timeout_ms\":3000}}","seq":6,"cmd":"VOICE_STOP"} +{"ts":1777477639.8709178,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":6,\"name\":\"VOICE_STOP\",\"ms\":131738,\"stage\":\"voice_stop\"}"} +{"ts":1777477639.976114,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":6,\"name\":\"VOICE_STOP\",\"ms\":131840,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":102}"} diff --git a/docs/product_test_reports/reboot_repro_20260429_234348.jsonl b/docs/product_test_reports/reboot_repro_20260429_234348.jsonl new file mode 100644 index 0000000..b77568c --- /dev/null +++ b/docs/product_test_reports/reboot_repro_20260429_234348.jsonl @@ -0,0 +1,33 @@ +{"ts":1777477431.490855,"direction":"tx","raw":"TQTEST_CMD {\"seq\":1,\"cmd\":\"PING\",\"payload\":{}}","seq":1,"cmd":"PING"} +{"ts":1777477432.232366,"direction":"rx","raw":" (3730) esp_netif_handlers: sta ip: 1) wifi_manager: got ip:192.168.101.16"} +{"ts":1777477432.238174,"direction":"rx","raw":"I (3740) wifi_manager: connected to AP SSID:TalkingQ"} +{"ts":1777477432.243854,"direction":"rx","raw":"I (3740) wifi_manager: Wi-Fi protocol mask set to 11b/11g/11n"} +{"ts":1777477432.249388,"direction":"rx","raw":"I (3740) wifi_manager: Wi-Fi bandwidth set to HT40"} +{"ts":1777477432.254823,"direction":"rx","raw":"I (3740) wifi:Set ps type: 0, coexist: 0"} +{"ts":1777477432.260322,"direction":"rx","raw":"I (3750) wifi_manager: Wi-Fi power save disabled (WIFI_PS_NONE)"} +{"ts":1777477432.265907,"direction":"rx","raw":"I (3760) printer_driver: printer initialized"} +{"ts":1777477432.266148,"direction":"rx","raw":"I (3760) printer_protocol: printer driver ready at startup"} +{"ts":1777477432.271656,"direction":"rx","raw":"I (3760) printer_protocol: printer protocol initialized"} +{"ts":1777477432.290221,"direction":"rx","raw":"I (3770) platform_mic_key: MIC_KEY initialized: gpio=14 active_level=low short_press_m��I (3780) product_test_uart: product test uart ready: port=0 baud=115200 tx=-1 rx=-1"} +{"ts":1777477432.295512,"direction":"rx","raw":"TQTEST_READY {\"version\":1,\"device\":\"TQ_printer\",\"idf_free_heap\":8293952,\"uart_port\":0,\"baud\":115200}"} +{"ts":1777477432.295638,"direction":"tx","raw":"TQTEST_CMD {\"seq\":2,\"cmd\":\"PING\",\"payload\":{}}","seq":2,"cmd":"PING"} +{"ts":1777477432.301462,"direction":"rx","raw":"I (3790) product_test: product test service started"} +{"ts":1777477432.3163981,"direction":"rx","raw":"I (3810) control_plane_lifecycle: control-plane lifecycle started"} +{"ts":1777477432.323843,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":2,\"name\":\"PING\",\"ms\":2360,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":0,\"data\":{\"version\":1,\"free_heap\":8222896}}"} +{"ts":1777477432.3240268,"direction":"tx","raw":"TQTEST_CMD {\"seq\":3,\"cmd\":\"STATUS\",\"payload\":{}}","seq":3,"cmd":"STATUS"} +{"ts":1777477432.33113,"direction":"rx","raw":"I (3810) websocket_client: Started"} +{"ts":1777477432.335472,"direction":"rx","raw":"I (3810) app_main: TQ printer runtime started"} +{"ts":1777477432.335729,"direction":"rx","raw":"I (3830) main_task: Returned from app_main()"} +{"ts":1777477432.4155872,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":3,\"name\":\"STATUS\",\"ms\":2390,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":2,\"data\":{\"wifi_ready\":true,\"ip\":\"192.168.101.16\",\"printer\":{\"busy\":false,\"has_paper\":true,\"paper_gpio_level\":0,\"paper_present_level\":0,\"battery_adc_ready\":true,\"ntc_adc_ready\":true,\"battery_adc_raw\":2449,\"ntc_adc_raw\":2957,\"battery_mv\":3947,\"battery_percent\":71,\"temperature_c\":4.95501708984375,\"temperature_min_c\":15,\"temperature_max_c\":55,\"battery_min_percent\":5,\"ntc_pullup_ohms\":10000,\"ntc_r25_ohms\":10000,\"ntc_beta\":3950,\"queue_depth\":0,\"last_status_ms\":2389},\"voice\":{\"ready\":true,\"session_active\":true,\"ws_connected\":false,\"started\":false,\"tap_active\":false,\"marker_image_gen_running\":false,\"dialog_state\":\"Idle\",\"upstream_packets\":0,\"downstream_packets\":0,\"task_id\":\"e1821824-fb36-4dda-bfaf-573992876f00\",\"dialog_id\":\"\",\"last_error\":\"\",\"last_event_ms\":2360},\"free_heap\":8146564,\"min_free_heap\":7990620}}"} +{"ts":1777477432.415828,"direction":"tx","raw":"TQTEST_CMD {\"seq\":4,\"cmd\":\"WAIT_WIFI\",\"payload\":{\"timeout_ms\":20000}}","seq":4,"cmd":"WAIT_WIFI"} +{"ts":1777477432.425277,"direction":"rx","raw":"I (3920) lcd_module: preview drawn directly: size=320x47"} +{"ts":1777477432.4406662,"direction":"rx","raw":"I (3930) wifi:idx:0 (ifx:0, a8:e5:44:d7:1a:64), tid:5, ssn:934, winSize:64"} +{"ts":1777477432.443609,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":4,\"name\":\"WAIT_WIFI\",\"ms\":2483,\"stage\":\"wait_wifi\"}"} +{"ts":1777477432.4586802,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":4,\"name\":\"WAIT_WIFI\",\"ms\":2501,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":19,\"data\":{\"wifi_ready\":true,\"ip\":\"192.168.101.16\"}}"} +{"ts":1777477432.459046,"direction":"tx","raw":"TQTEST_CMD {\"seq\":5,\"cmd\":\"SCREEN\",\"payload\":{\"text\":\"TQ Printer\\nProduct Test\\nScreen OK\"}}","seq":5,"cmd":"SCREEN"} +{"ts":1777477432.478569,"direction":"rx","raw":"TQTEST_PROGRESS {\"seq\":5,\"name\":\"SCREEN\",\"ms\":2528,\"stage\":\"screen_preview\"}"} +{"ts":1777477432.558571,"direction":"rx","raw":"I (4060) esp-x509-crt-bundle: Certificate validated"} +{"ts":1777477432.691793,"direction":"rx","raw":"I (4190) lcd_module: preview drawn directly: size=320x75"} +{"ts":1777477432.702755,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":5,\"name\":\"SCREEN\",\"ms\":2743,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":215,\"data\":{\"text_len\":33}}"} +{"ts":1777477432.702806,"direction":"tx","raw":"TQTEST_CMD {\"seq\":6,\"cmd\":\"PRINTER_STATUS\",\"payload\":{}}","seq":6,"cmd":"PRINTER_STATUS"} +{"ts":1777477432.759876,"direction":"rx","raw":"TQTEST_RESULT {\"seq\":6,\"name\":\"PRINTER_STATUS\",\"ms\":2769,\"status\":\"ok\",\"rc\":0,\"esp_err\":\"ESP_OK\",\"duration_ms\":1,\"data\":{\"busy\":false,\"has_paper\":true,\"paper_gpio_level\":0,\"paper_present_level:0,\"battery_a\"ntc_adc_raw\":2957,\"battery_mv8eature_max_c\"5_ohms\":1002768}}"} diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index 469f201..8df7d23 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -77,6 +77,11 @@ config TQ_PRINTER_STROBE_INTERVAL_US range 0 10000 default 200 +config TQ_PRINTER_MAX_DOTS_PER_PULSE + int "Printer max heated dots per strobe pulse" + range 1 384 + default 32 + config TQ_PRINTER_MOTOR_STEP_US int "Printer motor step delay (us)" range 100 20000 @@ -139,7 +144,7 @@ config TQ_PRINTER_NTC_PULLUP_OHMS config TQ_PRINTER_NTC_R25_OHMS int "Printer NTC R25 resistance (ohms)" range 1000 200000 - default 10000 + default 30000 config TQ_PRINTER_NTC_BETA int "Printer NTC beta constant" diff --git a/sdkconfig.defaults b/sdkconfig.defaults index 304e7fc..f847cf6 100644 --- a/sdkconfig.defaults +++ b/sdkconfig.defaults @@ -73,6 +73,8 @@ CONFIG_TQ_KEY_PRINT_BOOST_ACTIVE_HIGH=y CONFIG_TQ_MIC_KEY_PIN=14 CONFIG_TQ_BATTERY_ADC_PIN=15 CONFIG_TQ_NTC_ADC_PIN=18 +CONFIG_TQ_PRINTER_NTC_R25_OHMS=30000 +CONFIG_TQ_PRINTER_MAX_DOTS_PER_PULSE=32 CONFIG_TQ_PRINT_STB_56_PIN=4 CONFIG_TQ_PRINT_STB_34_PIN=5 CONFIG_TQ_PRINT_STB_12_PIN=16