feat(board): align new-board inputs and factory runtime

This commit is contained in:
2026-08-04 14:00:13 +08:00
parent d5409ea4e3
commit 07219e6aad
15 changed files with 35590 additions and 525 deletions
+1
View File
@@ -0,0 +1 @@
*.pdf binary
@@ -139,6 +139,14 @@ static esp_err_t app_composition_run_plan_a_boot_sequence(void)
return err;
}
#if CONFIG_TQ_FACTORY_CLI_ENABLE
err = control_plane_factory_cli_start();
if (err != ESP_OK) {
ESP_LOGE(TAG, "Factory CLI start failed: %s", esp_err_to_name(err));
return err;
}
#endif
#if CONFIG_TQ_SCREEN_ENABLE
if (lcd_ready) {
esp_err_t expression_err = control_plane_request_boot_expression();
@@ -1901,6 +1901,15 @@ esp_err_t control_plane_start_runtime_workers(void)
}
#endif
#if CONFIG_TQ_FACTORY_CLI_ENABLE
esp_err_t factory_cli_err = control_plane_factory_cli_start();
if (factory_cli_err != ESP_OK) {
ESP_LOGW(TAG,
"Optional factory CLI unavailable; core runtime remains active: %s",
esp_err_to_name(factory_cli_err));
}
#endif
return ESP_OK;
}
@@ -1938,6 +1947,10 @@ void control_plane_stop_runtime_workers(void)
control_plane_set_runtime_stop_requested(true);
control_plane_stop_user_config_server();
#if CONFIG_TQ_FACTORY_CLI_ENABLE
control_plane_factory_cli_stop();
#endif
(void)control_plane_register_model_command_callback(NULL, NULL);
#if CONFIG_FORTUNE_ENABLE
domain_runtime_register_birth_profile_observer(NULL, NULL);
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+1 -1
View File
@@ -205,7 +205,7 @@ flowchart LR
```mermaid
flowchart TD
GPIO["GPIO edge interrupt\nPTT GPIO3 / SW2 GPIO13"]
GPIO["GPIO edge interrupt\nButton 1/SW1 GPIO12\nButton 2/K2 GPIO13\nrocker SW2 GPIO6"]
IsrQueue["key IRQ queue"]
KeyTask["cp_key_input\ndebounce and click state machine"]
SystemQueue["system event queue"]
+10 -6
View File
@@ -10,15 +10,15 @@ the ESP32-S3 MCU perspective.
| ---: | --- | --- | --- | --- | --- |
| 1 | `CONFIG_MULTIMODAL_AUDIO_I2C_SDA_GPIO` | Bidirectional | Audio codec | ES8311 I2C SDA | I2C port 0, codec control bus |
| 2 | `CONFIG_MULTIMODAL_AUDIO_I2C_SCL_GPIO` | Output | Audio codec | ES8311 I2C SCL | I2C port 0, codec control bus |
| 3 | `CONFIG_MULTIMODAL_PTT_BUTTON_GPIO` | Input | Keys / multimodal | TTP223 touch output / PTT | Active-high, externally driven, no internal pull |
| 4 | IO4 RMT control | Output | RMT control | RMT output control | Reuses unconnected `TP_INT` on the 8-wire LCD setup |
| 5 | IO5 PWM control | Output | PWM control | PWM output control | Reuses unconnected `TP_SDA` on the 8-wire LCD setup |
| 6 | `CONFIG_TQ_SLOT_SWITCH_GPIO` | Input | Slot / key input | Rocker microswitch / original SW2 function | Uses the unconnected `TP_SCL` contact; active-low with internal pull-up |
| 7 | `CONFIG_TQ_SCREEN_BACKLIGHT_GPIO` | Output | LCD | LCD adapter backlight control | Active-high by default |
| 8 | `CONFIG_TQ_SCREEN_SPI_CLK_GPIO` | Output | LCD | ST7789P3 SPI clock / SCK | SPI2 host, 20 MHz default |
| 9 | `CONFIG_TQ_POWER_HOLD_GPIO` | Output | Power | Board power hold | Active-high by default |
| 11 | `CONFIG_MULTIMODAL_AUDIO_PA_GPIO` | Output | Audio amplifier | PA enable | Managed by codec GPIO interface |
| 12 | `CONFIG_TQ_CALIBRATION_SWITCH_GPIO` | Input | Turntable calibration | SW1 direction calibration microswitch | Active-low, external and internal pull-up |
| 13 | `CONFIG_TQ_SLOT_SWITCH_GPIO` | Input | Slot / key input | SW2 slot-machine feature switch | Active-low, external and internal pull-up |
| 12 | `CONFIG_TQ_CALIBRATION_SWITCH_GPIO` | Input | Turntable calibration | Button 1 / SW1 direction calibration | Active-low, external and internal pull-up |
| 13 | `CONFIG_MULTIMODAL_PTT_BUTTON_GPIO` | Input | Keys / multimodal | Button 2 / K2 push-to-talk | Active-low, external and internal pull-up |
| 15 | `CONFIG_TQ_SCREEN_SPI_CS_GPIO` | Output | LCD | ST7789P3 SPI chip select | SPI2 host |
| 16 | `CONFIG_TQ_SCREEN_DC_GPIO` | Output | LCD | ST7789P3 data/command select | Initialized low |
| 17 | `CONFIG_TQ_SCREEN_RESET_PIN` | Output | LCD | ST7789P3 panel reset | Active-low reset; `-1` disables hardware reset |
@@ -33,6 +33,11 @@ the ESP32-S3 MCU perspective.
| 47 | `CONFIG_TQ_STEPPER_IN3_GPIO` | Output | Turntable | ULN2003 stepper IN3 | Batched GPIO phase updates |
| 48 | `CONFIG_TQ_STEPPER_IN2_GPIO` | Output | Turntable | ULN2003 stepper IN2 | Batched GPIO phase updates |
The rocker microswitch wiring is `CN2 pin 3 (TP_SCL/GPIO6) -> normally-open
switch -> GND` (`CN2 pin 11` is a local ground option). The switch must not be
connected to 3.3 V. GPIO6 cannot be used as a touch I2C clock while this wiring
is installed.
## Disabled Or Not Connected In Defaults
| Config | Value | Meaning |
@@ -40,8 +45,7 @@ the ESP32-S3 MCU perspective.
| `CONFIG_TQ_SCREEN_SPI_MISO_GPIO` | `-1` | LCD MISO is not connected or not used. |
| `CONFIG_TQ_SLOT_SWITCH_PULLDOWN` | unset | SW2 uses pull-up only. |
| `CONFIG_TQ_CALIBRATION_SWITCH_PULLDOWN` | unset | Calibration switch uses pull-up only. |
| `CONFIG_MULTIMODAL_PTT_BUTTON_PULLUP` | unset | TTP223 drives both levels. |
| `CONFIG_MULTIMODAL_PTT_BUTTON_PULLDOWN` | unset | TTP223 drives both levels. |
| `CONFIG_MULTIMODAL_PTT_BUTTON_PULLDOWN` | unset | Button 2 uses pull-up only. |
## Boot Hardware Test Profile
@@ -85,7 +89,7 @@ them to an active project feature.
| GPIO / Net | Board function | Firmware status |
| --- | --- | --- |
| GPIO0 / K1 | Switch to GND, commonly boot/download related | Not consumed by application code |
| GPIO6 / `TP_SCL` | Optional touch clock / reusable IO | Not connected by the current 8-wire LCD adapter |
| GPIO3 / `touch` | TTP223 touch output | Present on the board but not consumed by the current input policy |
| GPIO10 / `Charge` | Charger status | No current firmware consumer found |
| GPIO14 | Unassigned | Not used |
| GPIO35 | Unassigned | Not used |
+4 -4
View File
@@ -13,7 +13,7 @@ the MCU's perspective.
| 3 | EN/RST | EN | Input | Chip enable and reset input | Reset and enable |
| 4 | GPIO4 | TP_INT | Bidirectional | Optional touch interrupt / reusable IO | Not connected by the 8-wire LCD adapter |
| 5 | GPIO5 | TP_SDA | Bidirectional | Optional touch I2C SDA / reusable IO | Not connected by the 8-wire LCD adapter |
| 6 | GPIO6 | TP_SCL | Bidirectional | Optional touch I2C SCL / reusable IO | Not connected by the 8-wire LCD adapter |
| 6 | GPIO6 | TP_SCL | Input | Rocker microswitch / original SW2 function | Reuses the touch-clock contact left open by the 8-wire LCD adapter; active-low with internal pull-up |
| 7 | GPIO7 | BLK | Output | LCD adapter backlight control | Active-high firmware default |
| 8 | GPIO15 | CS | Output | ST7789P3 SPI chip select | Active low |
| 9 | GPIO16 | DC | Output | ST7789P3 data/command select | Also named A0 by the panel specification |
@@ -22,13 +22,13 @@ the MCU's perspective.
| 12 | GPIO8 | CLK / Swing | Output | ST7789P3 SPI clock | Do not drive the Swing function while the LCD is connected |
| 13 | GPIO19 | ESP_D_N | Bidirectional | USB D- | Type-C |
| 14 | GPIO20 | ESP_D_P | Bidirectional | USB D+ | Type-C |
| 15 | GPIO3 | touch | Input | TTP223 touch-button output / PTT | Active high |
| 15 | GPIO3 | touch | Input | TTP223 touch-button output | Present on the board but not consumed by the current input policy |
| 16 | GPIO46 | UNASSIGNED | N/A | No connection assigned | Reserved; no signal assigned |
| 17 | GPIO9 | Power | Output | Board power hold | Active high |
| 18 | GPIO10 | Charge | Input | Charger status | Not consumed by current firmware |
| 19 | GPIO11 | PA_CTRL | Output | Audio power-amplifier enable | Amplifier control |
| 20 | GPIO12 | SW1 | Input | Turntable calibration microswitch | External 10 kOhm pull-up; active low |
| 21 | GPIO13 | SW2 | Input | Slot-machine feature switch | External 10 kOhm pull-up; active low |
| 20 | GPIO12 | SW1 | Input | Button 1 / turntable calibration switch | External 10 kOhm pull-up; active low |
| 21 | GPIO13 | SW2 | Input | Button 2 / K2 push-to-talk input | External 10 kOhm pull-up; active low |
| 22 | GPIO14 | UNASSIGNED | N/A | No connection assigned | Reserved; no signal assigned |
| 23 | GPIO21 | IN4 | Output | ULN2003 IN4 | Stepper motor phase control |
| 24 | GPIO47 | IN3 | Output | ULN2003 IN3 | Stepper motor phase control |
Binary file not shown.
Binary file not shown.
-367
View File
@@ -1,367 +0,0 @@
sp-idf-v5.5.4\tools\idf_monitor.py' -p COM5 -b 921600 --toolchain-prefix xtensa-esp32s3-elf- --make '''C:\Espressif\python_env\idf5.5_py3.11_env\Scripts\python.exe'' ''C:\Espressif\frameworks\esp-idf-v5.5.4\tools\idf.py''' --target esp32s3 'd:\Code\chaowan\TQ_catN\build\TQ_Cat_Code.elf'
--- Warning: GDB cannot open serial ports accessed as COMx
--- Using \\.\COM5 instead...
--- esp-idf-monitor 1.9.0 on \\.\COM5 921600
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
could not open port '\\\\.\\COM5': FileNotFoundError(2, '绯荤粺鎵句笉鍒版寚瀹氱殑鏂囦欢銆?, None, 2)
--- Connection to \\.\COM5 failed. Available ports:
PS D:\Code\chaowan\TQ_catN>
PS D:\Code\chaowan\TQ_catN> $env:IDF_PATH = 'C:/Espressif/frameworks/esp-idf-v5.5.4/';
PS D:\Code\chaowan\TQ_catN> & 'C:\Espressif\python_env\idf5.5_py3.11_env\Scripts\python.exe' 'C:\Espressif\frameworks\esp-idf-v5.5.4\tools\idf_monitor.py' -p COM5 -b 921600 --toolchain-prefix xtensa-esp32s3-elf- --make '''C:\Espressif\python_env\idf5.5_py3.11_env\Scripts\python.exe'' ''C:\Espressif\frameworks\esp-idf-v5.5.4\tools\idf.py''' --target esp32s3 'd:\Code\chaowan\TQ_catN\build\TQ_Cat_Code.elf'
--- Warning: GDB cannot open serial ports accessed as COMx
--- Using \\.\COM5 instead...
--- esp-idf-monitor 1.9.0 on \\.\COM5 921600
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
I (324) esp_image: segment 1: paddr=0093496c vaddr=3fc9e100 sizeESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x15 (USB_UART_CHIP_RESET),boot:0x1b (SPI_FAST_FLASH_BOOT)
Saved PC:0x4037bca6
--- 0x4037bca6: esp_cpu_wait_for_intr at C:/Espressif/frameworks/esp-idf-v5.5.4/components/esp_hw_support/cpu.c:64
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce2820,len:0x14f0
load:0x403c8700,len:0xd24
load:0x403cb700,len:0x2ef0
entry 0x403c8924
I (24) boot: ESP-IDF v5.5.4 2nd stage bootloader
I (24) boot: compile time Jun 26 2026 10:07:28
I (25) boot: Multicore bootloader
I (25) boot: chip revision: v0.2
I (28) boot: efuse block revision: v1.3
I (31) boot.esp32s3: Boot SPI Speed : 80MHz
I (35) boot.esp32s3: SPI Mode : DIO
I (39) boot.esp32s3: SPI Flash Size : 16MB
I (43) boot: Enabling RNG early entropy source...
I (47) boot: Partition Table:
I (50) boot: ## Label Usage Type ST Offset Length
I (56) boot: 0 nvs WiFi data 01 02 00009000 00004000
I (63) boot: 1 otadata OTA data 01 00 0000d000 00002000
I (69) boot: 2 phy_init RF data 01 01 0000f000 00001000
I (76) boot: 3 gifpack Unknown data 01 83 00010000 00800000
I (82) boot: 4 ota_0 OTA app 00 10 00810000 00330000
I (89) boot: 5 ota_1 OTA app 00 11 00b40000 00330000
I (95) boot: 6 model Unknown data 01 82 00e70000 00180000
I (102) boot: End of partition table
I (105) esp_image: segment 0: paddr=00810020 vaddr=3c110020 size=124944h (1198404) map
I (324) esp_image: segment 1: paddr=0093496c vaddr=3fc9e100 size=0578ch ( 22412) load
I (329) esp_image: segment 2: paddr=0093a100 vaddr=40374000 size=05f18h ( 24344) load
I (334) esp_image: segment 3: paddr=00940020 vaddr=42000020 size=10daf8h (1104632) map
I (530) esp_image: segment 4: paddr=00a4db20 vaddr=40379f18 size=14164h ( 82276) load
I (548) esp_image: segment 5: paddr=00a61c8c vaddr=50000000 size=00020h ( 32) load
I (559) boot: Loaded app from partition at offset 0x810000
I (559) boot: Disabling RNG early entropy source...
I (569) octal_psram: vendor id : 0x0d (AP)
I (569) octal_psram: dev id : 0x02 (generation 3)
I (570) octal_psram: density : 0x03 (64 Mbit)
I (571) octal_psram: good-die : 0x01 (Pass)
I (576) octal_psram: Latency : 0x01 (Fixed)
I (580) octal_psram: VCC : 0x01 (3V)
I (584) octal_psram: SRF : 0x01 (Fast Refresh)
I (589) octal_psram: BurstType : 0x01 (Hybrid Wrap)
I (594) octal_psram: BurstLen : 0x01 (32 Byte)
I (598) octal_psram: Readlatency : 0x02 (10 cycles@Fixed)
I (604) octal_psram: DriveStrength: 0x00 (1/1)
I (608) MSPI Timing: Enter psram timing tuning
I (613) esp_psram: Found 8MB PSRAM device
I (616) esp_psram: Speed: 80MHz
I (619) cpu_start: Multicore app
I (912) esp_psram: SPI SRAM memory test OK
I (920) cpu_start: GPIO 44 and 43 are used as console UART I/O pins
I (921) cpu_start: Pro cpu start user code
I (921) cpu_start: cpu freq: 240000000 Hz
I (923) app_init: Application information:
I (927) app_init: Project name: TQ_Cat_Code
I (931) app_init: App version: 6aaf13d-dirty
I (935) app_init: Compile time: Jun 27 2026 11:00:31
I (940) app_init: ELF file SHA256: 8cd15c4b1...
--- Warning: Checksum mismatch between flashed and built applications. Checksum of built application is 6bbc2d153c535122f3e0520a7e0b375ceed0070d0ec1f234d950f57c0548b115
I (945) app_init: ESP-IDF: v5.5.4
I (948) efuse_init: Min chip rev: v0.0
I (952) efuse_init: Max chip rev: v0.99
I (956) efuse_init: Chip rev: v0.2
I (960) heap_init: Initializing. RAM available for dynamic allocation:
I (966) heap_init: At 3FCA7AE0 len 00041C30 (263 KiB): RAM
I (972) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM
I (977) heap_init: At 600FE000 len 00001FE8 (7 KiB): RTCRAM
I (982) esp_psram: Adding pool of 8178K of PSRAM memory to heap allocator
I (989) spi_flash: detected chip: generic
I (992) spi_flash: flash io: dio
I (995) sleep_gpio: Configure to isolate all GPIO pins in sleep state
I (1002) sleep_gpio: Enable automatic switching of GPIO sleep configuration
I (1008) main_task: Started on CPU0
I (1018) esp_psram: Reserving pool of 32K of internal memory for DMA/internal allocations
I (1018) main_task: Calling app_main()
I (1018) app_comp_boot: ========================================
I (1028) app_comp_boot: App Composition Boot Plan A
I (1028) app_comp_boot: dry_run=0
I (1038) app_comp_boot: ========================================
I (1038) app_comp_boot: boot stage 01 power_hold event=already_asserted_by_platform_core
I (1048) app_comp_boot: boot stage 02 audio_init event=boot_sound_policy_begin
I (1058) app_comp_boot: boot stage 03 boot_sound event=play_boot_sound_with_timeout
I (1068) control_plane_rt: Boot sound policy start timeout=3000ms
I (1078) multimodal_audio: Heap audio_init_begin: free8=8647743 largest8=8257536 free_internal=275643 largest_internal=212992 largest_dma=212992 free_spiram=8372100 largest_spiram=8257536
I (1088) multimodal_audio: Heap before_opus_init: free8=8647743 largest8=8257536 free_internal=275643 largest_internal=212992 largest_dma=212992 free_spiram=8372100 largest_spiram=8257536
I (1108) multimodal_audio: Heap before_opus_enc_open: free8=8647743 largest8=8257536 free_internal=275643 largest_internal=212992 largest_dma=212992 free_spiram=8372100 largest_spiram=8257536
I (1118) multimodal_audio: Try opus profile=configured sr=16000 ch=1 frame=5 bitrate=24000 app=0 complexity=0 vbr=0 dtx=0 fec=0
I (1138) multimodal_audio: Opus ready: 16000Hz frame=60ms bitrate=24kbps enc(in=1920 out=280)
I (1138) multimodal_audio: Heap after_opus_init: free8=8596159 largest8=8257536 free_internal=275567 largest_internal=212992 largest_dma=212992 free_spiram=8320592 largest_spiram=8257536
I (1158) multimodal_audio: Heap after_opus_ready: free8=8596159 largest8=8257536 free_internal=275567 largest_internal=212992 largest_dma=212992 free_spiram=8320592 largest_spiram=8257536
I (1178) multimodal_audio: I2C ready: port=0 sda=1 scl=2 ctrl(8-bit)=0x30 probe(7-bit)=0x18
I (1188) multimodal_audio: I2S ready: port=0 mclk=38 bclk=39 ws=41 dout=40 din=42 use_mclk=1 dma(desc=4 frame=160)
I (1198) ES8311: Work in Slave mode
I (1198) I2S_IF: channel mode 0 bits:16/16 channel:2 mask:1
I (1198) I2S_IF: STD Mode 1 bits:16/16 channel:2 sample_rate:16000 mask:1
I (1208) I2S_IF: channel mode 0 bits:16/16 channel:2 mask:1
I (1218) I2S_IF: STD Mode 0 bits:16/16 channel:2 sample_rate:16000 mask:1
I (1238) Adev_Codec: Open codec device OK
I (1238) multimodal_audio: Codec controls: out_volume=60 in_gain=30 pa_gpio=12 output_gate=volume hw_mute=0
I (1238) multimodal_audio: Using fixed capture map MIC=ch0
I (1248) multimodal_audio: Heap after_codec_ready: free8=8590095 largest8=8257536 free_internal=271723 largest_internal=212992 largest_dma=212992 free_spiram=8318372 largest_spiram=8257536
I (1258) multimodal_audio: Mic uplink capture task started (stack=32768B opus in=1920B out=280B read=1920B channels=1 mic_ch=0)
I (1258) multimodal_audio: Mic uplink send task started (stack=12288B queue=24 packet_max=1024B)
I (1258) multimodal_audio: Downstream playback queue allocated in PSRAM: len=1024 item=8
I (1288) multimodal_audio: Codec initialized: 16000Hz 1ch 16bit opus(frame=60ms bitrate=24kbps)
I (1288) multimodal_audio: Downstream playback task started (stack=12288B queue=1024 packet_max=2048B)
I (1338) voice_prompt: LittleFS mounted at /littlefs, used=458752 total=8388608
I (1338) multimodal_audio: Downstream response begin: sample_rate=16000 frame=60ms codec_channels=1 pa_gpio=12 out_volume=60
I (1338) multimodal_audio: Downstream TX bounce buffer allocated in internal RAM: 3200B
I (1348) multimodal_audio: Downstream idle mute timer ready (timeout=250ms)
I (1358) multimodal_audio: Downstream output primed: volume=60 warmup=320B channels=1
I (2138) multimodal_audio: Downstream playback completed after response end (queue_empty)
I (2268) voice_prompt: Prompt queued: /littlefs/audio_prompts/boot.opus packets=13 bytes=2244
I (2268) control_plane_rt: Boot sound audio resources kept for runtime
I (2268) app_comp_boot: boot stage 04 audio_ready event=boot_sound_policy_end_keep_runtime
I (2278) app_comp_boot: boot stage 05 lcd_device event=control_plane_init_lcd_device
I (2368) multimodal_audio: Downstream idle mute after 250ms (response_active=0)
I (2408) lcd_direct: Direct LCD initialized (MOSI=17 SCLK=18 CS=6 DC=7 RST=3 BL=9 clock=20000000)
I (2408) app_comp_boot: boot stage 05 lcd_device result=ESP_OK
I (2408) app_comp_boot: boot stage 06 lcd_render_loop event=control_plane_start_lcd_render_worker
I (2418) cp_rt_workers: LCD render worker started
I (2418) lcd_direct: Direct LCD render loop started
I (2418) app_comp_boot: boot stage 06 lcd_render_loop result=ESP_OK
I (2438) app_comp_boot: boot stage 07 platform_domain event=control_plane_init
I (2438) platform_core: Platform initialized
I (2448) domain: Direction axis initialized (angle=0.0, speed=1500us)
I (2448) domain_rt_adapters: Expression request id=0 trigger=0
I (2458) lcd_direct: Direct LCD presentation queued kind=1 asset=jichubiaoqing
I (2468) app_comp_boot: boot stage 08 turntable_calibration skipped=disabled_by_config
I (2468) app_comp_boot: boot stage 09 storage_prepare event=control_plane_prepare_runtime_storage
I (2488) platform_core: NVS stats: used_entries=152 free_entries=352 total_entries=504 namespace_count=6
I (2488) platform_core: NVS namespace "wifi": used_entries=8 free_entries_shared=352
I (2498) platform_core: NVS namespace "ota": used_entries=5 free_entries_shared=352
I (2508) platform_core: NVS namespace "auth": used_entries=51 free_entries_shared=352
I (2518) platform_core: NVS namespace "auth_key": used_entries=7 free_entries_shared=352
I (2518) platform_core: NVS namespace "fortune": used_entries=0 free_entries_shared=352
I (2528) app_comp_boot: boot stage 10 wifi_bootstrap event=control_plane_bootstrap_connectivity
I (2538) control_plane_rt: Boot Wi-Fi config SSID=csy2 timeout_ms=30000
I (2548) platform_core: NVS stats: used_entries=152 free_entries=352 total_entries=504 namespace_count=6
I (2558) platform_core: NVS namespace "wifi": used_entries=8 free_entries_shared=352
I (2558) platform_core: NVS namespace "ota": used_entries=5 free_entries_shared=352
I (2568) platform_core: NVS namespace "auth": used_entries=51 free_entries_shared=352
I (2578) platform_core: NVS namespace "auth_key": used_entries=7 free_entries_shared=352
I (2588) platform_core: NVS namespace "fortune": used_entries=0 free_entries_shared=352
I (2588) SsidManager: compare [csy2:4] [csy2:4]
W (2598) SsidManager: SSID csy2 already exists, overwrite it
I (2598) wifi_portal: Ensured configured Wi-Fi credentials for SSID "csy2" with 2 previous candidate(s)
I (2608) wifi_portal: Starting STA connection with 2 saved credential candidate(s)
I (2618) wifi_portal: STA connect: 2 saved Wi-Fi credential candidate(s)
I (2628) wifi_portal: STA connect: candidate[0] SSID="csy2"
I (2628) wifi_portal: STA connect: candidate[1] SSID="TalkingQ"
I (2638) WifiManager: Initializing...
I (2638) pp: pp rom version: e7ae62f
I (2638) net80211: net80211 rom version: e7ae62f
I (2658) wifi:wifi driver task: 3fcbb87c, prio:23, stack:6656, core=0
I (2658) wifi:wifi firmware version: 0947e8b
I (2658) wifi:wifi certification version: v7.0
I (2658) wifi:config NVS flash: disabled
I (2668) wifi:config nano formatting: disabled
I (2668) wifi:Init data frame dynamic rx buffer num: 16
I (2668) wifi:Init static rx mgmt buffer num: 5
I (2678) wifi:Init management short buffer num: 32
I (2678) wifi:Init static tx buffer num: 8
I (2688) wifi:Init tx cache buffer num: 16
I (2688) wifi:Init static tx FG buffer num: 2
I (2698) wifi:Init static rx buffer size: 1600
I (2698) wifi:Init static rx buffer num: 8
I (2698) wifi:Init dynamic rx buffer num: 16
I (2708) wifi_init: rx ba win: 6
I (2708) wifi_init: accept mbox: 6
I (2708) wifi_init: tcpip mbox: 32
I (2718) wifi_init: udp mbox: 6
I (2718) wifi_init: tcp mbox: 6
I (2718) wifi_init: tcp tx win: 5760
I (2728) wifi_init: tcp rx win: 5760
I (2728) wifi_init: tcp mss: 1440
I (2728) wifi_init: WiFi/LWIP prefer SPIRAM
I (2738) wifi_init: WiFi IRAM OP enabled
I (2738) wifi_init: WiFi RX IRAM OP enabled
I (2738) WifiManager: Initialized
I (2748) WifiManager: Starting station
I (2748) phy_init: phy_version 711,97bcf0a2,Aug 25 2025,19:04:10
I (2798) wifi:mode : sta (30:ed:a0:aa:b2:78)
I (2798) wifi:enable tsf
I (2798) wifi:Set ps type: 0, coexist: 0
I (2798) wifi_portal: Wi-Fi STA stability policy: ps=none inactive=15s
I (3078) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (5208) WifiStation: Found AP: csy2, BSSID: 64:23:15:28:70:ac, RSSI: -74, Channel: 1, Authmode: 4
I (5218) wifi_portal: Connecting to "csy2"
W (5218) wifi:Password length matches WPA2 standards, authmode threshold changes from OPEN to WPA2
I (5298) wifi:new:<1,0>, old:<1,0>, ap:<255,255>, sta:<1,0>, prof:1, snd_ch_cfg:0x0
I (5298) wifi:state: init -> auth (0xb0)
I (5308) wifi:state: auth -> assoc (0x0)
I (5318) wifi:state: assoc -> run (0x10)
I (5328) wifi:connected with csy2, aid = 13, channel 1, BW20, bssid = 64:23:15:28:70:ac
I (5328) wifi:security: WPA2-PSK, phy: bgn, rssi: -72, cipher(pairwise:0x3, group:0x1), pmf:0
I (5338) wifi:pm start, type: 0
I (5338) wifi:dp: 1, bi: 102400, li: 10, scale listen interval from 1024000 us to 1024000 us
I (5348) wifi:set rx beacon pti, rx_bcn_pti: 0, bcn_timeout: 25000, mt_pti: 0, mt_time: 10000
I (5418) wifi:AP's beacon interval = 102400 us, DTIM period = 1
I (6428) esp_netif_handlers: sta ip: 192.168.3.44, mask: 255.255.255.0, gw: 192.168.3.1
I (6428) WifiStation: Got IP: 192.168.3.44
I (6428) wifi_portal: Connected to "csy2"
I (6428) wifi:Set ps type: 0, coexist: 0
I (6428) wifi_portal: Wi-Fi STA stability policy: ps=none inactive=15s
I (6498) multimodal_audio: Downstream response begin: sample_rate=16000 frame=60ms codec_channels=1 pa_gpio=12 out_volume=60
I (6498) multimodal_audio: Downstream output primed: volume=60 warmup=320B channels=1
I (7998) multimodal_audio: Downstream playback completed after response end (queue_empty)
I (8128) voice_prompt: Prompt queued: /littlefs/audio_prompts/network_connect_success.opus packets=25 bytes=4678
I (8128) app_comp_boot: boot stage 11 runtime_workers event=control_plane_start_runtime_workers
I (8128) cp_rt_workers: Direction console disabled by configuration
I (8138) cp_rt_workers: LCD render worker already running
I (8138) cp_rt_workers: Wi-Fi state monitor task started
I (8148) platform_lan_http: Heap after_io_buffers: free_internal=182739 largest_internal=139264 largest_dma=139264 free_spiram=8157304 largest_spiram=8126464
I (8168) mdns_mem: mDNS task will be created from SPIRAM
I (8168) platform_lan_http: LAN user configuration available at http://192.168.3.44:80/ and http://tq-cat.local:80/
I (8178) cp_system_event: System event task started queue_len=32
I (8178) cp_key_input: Key input task started irq_queue_len=16 debounce=20ms long=800ms double=450ms
I (8178) cp_rt_workers: Daily fortune worker started
I (8178) app_comp_boot: boot stage 12 network_services event=started_by_runtime_workers_after_readiness
I (8208) main_task: Returned from app_main()
I (8228) multimodal_audio: Downstream idle mute after 250ms (response_active=0)
I (8398) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
W (8688) cp_key_input: PTT initial level is active; wait for next stable press before emitting press event
I (8688) cp_key_input: key config key=PTT gpio=15 active_level=0 pullup=1 pulldown=0 initial_level=0
I (8698) cp_key_input: key config key=SW2 gpio=45 active_level=0 pullup=1 pulldown=0 initial_level=1
I (9178) cp_mm_auth: Request device token: https://gz.api.talkingq.com/token/api/device/token
I (9178) cp_dev_auth: Auth state restored (state=READY jwt_valid=1 exp=1782549499 scope=0x0000000f kv=1 wait_factory=0 fail_count=0)
I (9278) cp_dev_auth: Loaded auth key material (key_version=1)
I (9278) cp_mm_auth: Heap before token POST: free_internal=162231 largest_internal=116736 largest_dma=116736 free_spiram=8150284
I (9368) wifi:<ba-add>idx:0 (ifx:0, 64:23:15:28:70:ac), tid:0, ssn:5, winSize:64
I (9488) esp-x509-crt-bundle: Certificate validated
I (9878) cp_mm_auth: Token fetched (workspace=llm-igyrxzdvbwja5gyt, app=6a0dabccd1514145baef5fe202793b09)
I (9878) multimodal_ws: WS ordered worker queue: ingress=512 stack=12288
I (9888) multimodal_ws: Heap before_ws_client_start: free_internal=161727 largest_internal=108544 largest_dma=108544 free_spiram=8128620 largest_spiram=7995392
I (9898) multimodal_ws: Smallest WebSocket stack candidate=8192
I (9898) multimodal_ws: Try WebSocket stack=8192 buf=2048 ping=20s pong_to=120s keepalive=1
I (9918) websocket_client: Started
I (9918) multimodal_ws: Heap after_ws_client_start: free_internal=144219 largest_internal=100352 largest_dma=100352 free_spiram=8128644 largest_spiram=7995392
I (9928) multimodal_ws: WebSocket starting: wss://dashscope.aliyuncs.com/api-ws/v1/inference
I (9938) cp_rt_workers: Multimodal client started
I (10098) esp-x509-crt-bundle: Certificate validated
I (10398) multimodal_ws: WebSocket connected
I (10398) multimodal_ws: Heap ws_connected: free_internal=142331 largest_internal=98304 largest_dma=98304 free_spiram=8128436 largest_spiram=7995392
I (10408) multimodal_audio: Downstream response begin: sample_rate=16000 frame=60ms codec_channels=1 pa_gpio=12 out_volume=60
I (10418) multimodal_audio: Downstream output primed: volume=60 warmup=320B channels=1
I (12338) multimodal_audio: Downstream playback completed after response end (queue_empty)
I (12468) voice_prompt: Prompt queued: /littlefs/audio_prompts/server_connect_success.opus packets=32 bytes=6174
I (12568) multimodal_audio: Downstream idle mute after 250ms (response_active=0)
I (13748) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (19028) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (20588) cp_key_input: gpio change key=PTT gpio=15 level=0
I (24108) cp_key_input: gpio change key=PTT gpio=15 level=0
I (24108) cp_key_input: gpio change key=PTT gpio=15 level=1
I (24308) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (29588) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (33618) cp_key_input: gpio change key=PTT gpio=15 level=0
I (33618) cp_key_input: emit key=PTT type=PRESSED gpio=15 level=0 duration=0ms clicks=0
I (33618) cp_system_event: dispatch family=KEY
I (33618) cp_system_event: key event key=PTT type=PRESSED gpio=15 level=0 duration=0ms clicks=0
I (33938) cp_mm_session: Start sent (upstream_mode=push2talk voice=longjielidou_v3 downstream_text=transcript,dialog downstream_rate_limit=3000B/s incremental=0 sample_rate=16000 frame=60ms bitrate=24kbps channels=1 pa_gpio=12)
I (34268) multimodal_audio: Heap before_uplink_start: free8=8269359 largest8=7995392 free_internal=142387 largest_internal=98304 largest_dma=98304 free_spiram=8126972 largest_spiram=7995392
I (34268) multimodal_audio: Heap after_uplink_start: free8=8269359 largest8=7995392 free_internal=142387 largest_internal=98304 largest_dma=98304 free_spiram=8126972 largest_spiram=7995392
I (34318) cp_mm_session: ASR started
I (34978) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (37208) cp_key_input: gpio change key=PTT gpio=15 level=1
I (37208) cp_key_input: emit key=PTT type=RELEASED gpio=15 level=1 duration=3593ms clicks=0
I (37208) cp_system_event: dispatch family=KEY
I (37218) cp_system_event: key event key=PTT type=RELEASED gpio=15 level=1 duration=3593ms clicks=0
I (37228) multimodal_audio: Heap after_uplink_stop: free8=8269211 largest8=7995392 free_internal=142259 largest_internal=98304 largest_dma=98304 free_spiram=8126952 largest_spiram=7995392
I (37398) cp_mm_session: ASR (final): 你好。
I (37398) multimodal_audio: Heap after_uplink_stop: free8=8267499 largest8=7995392 free_internal=141367 largest_internal=98304 largest_dma=98304 free_spiram=8126132 largest_spiram=7995392
I (37408) cp_mm_session: ASR ended
I (37408) multimodal_audio: Heap after_uplink_stop: free8=8268747 largest8=7995392 free_internal=141207 largest_internal=98304 largest_dma=98304 free_spiram=8127540 largest_spiram=7995392
I (37668) cp_key_input: emit key=PTT type=SHORT_PRESS gpio=15 level=1 duration=0ms clicks=1
I (37668) cp_system_event: dispatch family=KEY
I (37668) cp_system_event: key event key=PTT type=SHORT_PRESS gpio=15 level=1 duration=0ms clicks=1
I (38518) cp_mm_session: TTS (final): 喵~今天周六下午好呀,要不要查查今日财位,或者抽支签放松一下?本...
I (38628) multimodal_audio: Heap after_uplink_stop: free8=8268595 largest8=7995392 free_internal=141287 largest_internal=98304 largest_dma=98304 free_spiram=8127308 largest_spiram=7995392
I (38628) cp_mm_session: TTS responding started
I (38638) multimodal_audio: Downstream response begin: sample_rate=16000 frame=60ms codec_channels=1 pa_gpio=12 out_volume=60
I (38648) multimodal_audio: Downstream output primed: volume=60 warmup=320B channels=1
I (38698) multimodal_ws: WebSocket send text done (LocalRespondingStarted, realtime=1, bytes=217, elapsed_ms=10)
I (40198) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (45268) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (45308) cp_mm_session: TTS responding ended
I (47228) multimodal_audio: Downstream playback completed after response end (queue_empty)
I (47238) multimodal_ws: WebSocket send text done (LocalRespondingEnded, realtime=1, bytes=215, elapsed_ms=10)
I (47458) multimodal_audio: Downstream idle mute after 250ms (response_active=0)
I (50598) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (53828) cp_key_input: gpio change key=PTT gpio=15 level=0
I (53828) cp_key_input: emit key=PTT type=PRESSED gpio=15 level=0 duration=0ms clicks=0
I (53828) cp_system_event: dispatch family=KEY
I (53838) cp_system_event: key event key=PTT type=PRESSED gpio=15 level=0 duration=0ms clicks=0
I (54328) multimodal_audio: Heap before_uplink_start: free8=8258079 largest8=7995392 free_internal=141419 largest_internal=98304 largest_dma=98304 free_spiram=8119980 largest_spiram=7995392
I (54328) multimodal_audio: Heap after_uplink_start: free8=8261399 largest8=7995392 free_internal=141419 largest_internal=98304 I (54338) cp_mm_session: ASR started
largest_dma=98304 free_spiram=8119980 largest_spiram=7995392
I (55818) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (59368) multimodal_audio: Mic uplink sent: packets=84 bytes=15120 failures=0
I (59368) multimodal_audio: Mic uplink levels: raw_ch0(avg=12411 peak=32768) raw_ch1(avg=0 peak=0) uplink(avg=12411 peak=32768) codec_channels=1 map(MIC=ch0) queued=84/15120B drops=0
I (61288) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (64408) multimodal_audio: Mic uplink sent: packets=84 bytes=15120 failures=0
I (64408) multimodal_audio: Mic uplink levels: raw_ch0(avg=3591 peak=16140) raw_ch1(avg=0 peak=0) uplink(avg=3591 peak=16140) codec_channels=1 map(MIC=ch0) queued=84/15120B drops=0
E (65608) transport_ws: Error transport_poll_write(0)
E (65608) websocket_client: esp_transport_write() returned 0, transport_error=ESP_OK, tls_error_code=0, tls_flags=0, errno=0
W (65618) multimodal_ws: WebSocket error
I (65628) multimodal_audio: Heap before_uplink_start: free8=8256651 largest8=7995392 free_internal=141259 largest_internal=98304 largest_dma=98304 free_spiram=8115392 largest_spiram=7995392
I (65638) multimodal_audio: Heap after_uplink_start: free8=8256651 largest8=7995392 free_internal=141259 largest_internal=98304 largest_dma=98304 free_spiram=8115392 largest_spiram=7995392
I (66568) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
W (67098) multimodal_audio: Mic uplink queue overflow: 1 old packets replaced
I (68238) cp_key_input: gpio change key=PTT gpio=15 level=1
I (68238) cp_key_input: emit key=PTT type=RELEASED gpio=15 level=1 duration=14409ms clicks=0
I (68238) cp_system_event: dispatch family=KEY
I (68248) cp_system_event: key event key=PTT type=RELEASED gpio=15 level=1 duration=14409ms clicks=0
I (68698) cp_key_input: emit key=PTT type=SHORT_PRESS gpio=15 level=1 duration=0ms clicks=1
I (71578) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
W (71618) multimodal_audio: Mic uplink stop timed out with 24 queued packet(s), in_flight=1
I (71618) multimodal_audio: Heap after_uplink_stop: free8=8257903 largest8=7995392 free_internal=141259 largest_internal=98304 largest_dma=98304 free_spiram=8116644 largest_spiram=7995392
I (71628) websocket_client: Reconnect after 2000 ms
I (71628) multimodal_ws: WebSocket disconnected
W (74258) multimodal_audio: Mic uplink stop timed out with 0 queued packet(s), in_flight=1
I (74258) multimodal_audio: Heap after_uplink_stop: free8=8265403 largest8=7995392 free_internal=144935 largest_internal=100352 largest_dma=100352 free_spiram=8120468 largest_spiram=7995392
I (74268) cp_system_event: dispatch family=KEY
I (74278) cp_system_event: key event key=PTT type=SHORT_PRESS gpio=15 level=1 duration=0ms clicks=1
I (76888) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
W (77638) multimodal_audio: Mic uplink stop timed out with 0 queued packet(s), in_flight=1
I (77638) multimodal_audio: Heap after_uplink_stop: free8=8265403 largest8=7995392 free_internal=144935 largest_internal=100352 largest_dma=100352 free_spiram=8120468 largest_spiram=7995392
W (77648) multimodal_ws: WebSocket send bin failed (0/180, errno=0)
I (77658) multimodal_audio: Mic uplink sent: packets=0 bytes=0 failures=1
W (77668) multimodal_audio: Mic uplink send failed: ESP_FAIL
I (77958) esp-x509-crt-bundle: Certificate validated
I (78438) multimodal_ws: WebSocket connected
I (78448) multimodal_ws: Heap ws_connected: free_internal=141363 largest_internal=98304 largest_dma=98304 free_spiram=8120184 largest_spiram=7995392
I (82168) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (87448) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (92728) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (98008) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (103288) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (108568) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (109268) control_plane_mm_rt: Idle multimodal transport timeout, stopping client after 30000 ms
I (109268) multimodal_audio: Heap after_uplink_stop: free8=8261403 largest8=7995392 free_internal=141419 largest_internal=98304 largest_dma=98304 free_spiram=8119984 largest_spiram=7995392
I (109278) multimodal_audio: Heap after_uplink_stop: free8=8261403 largest8=7995392 free_internal=141419 largest_internal=98304 largest_dma=98304 free_spiram=8119984 largest_spiram=7995392
I (110048) multimodal_ws: Heap after_ws_stop_cleanup: free_internal=161211 largest_internal=108544 largest_dma=108544 free_spiram=8142780 largest_spiram=7995392
I (113848) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
-126
View File
@@ -1,126 +0,0 @@
I (1933979) esp-x509-crt-bundle: Certificate validated
E (1934309) transport_ws: Sec-WebSocket-Accept not found
E (1934319) websocket_client: esp_transport_connect() failed with -1, transport_error=ESP_OK, tls_error_code=0, tls_flags=0, esp_ws_handshake_status_code=401, errno=119
W (1934319) multimodal_ws: WebSocket error
W (1934329) cp_mm_session: Transport unavailable: reason=ws_error caller=transport_event_bridge
I (1934339) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1934349) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1934369) websocket_client: Reconnect after 2000 ms
I (1934369) multimodal_ws: WebSocket disconnected
W (1934379) cp_mm_session: Transport unavailable: reason=ws_disconnected caller=transport_event_bridge
I (1934389) multimodal_audio: Heap after_uplink_stop: free8=8273971 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128864 largest_spiram=7995392
I (1934399) multimodal_audio: Heap after_uplink_stop: free8=8273971 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128864 largest_spiram=7995392
I (1936609) esp-x509-crt-bundle: Certificate validated
I (1936779) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
E (1936949) transport_ws: Sec-WebSocket-Accept not found
E (1936949) websocket_client: esp_transport_connect() failed with -1, transport_error=ESP_OK, tls_error_code=0, tls_flags=0, esp_ws_handshake_status_code=401, errno=119
W (1936959) multimodal_ws: WebSocket error
W (1936959) cp_mm_session: Transport unavailable: reason=ws_error caller=transport_event_bridge
I (1936969) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1936989) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1936999) websocket_client: Reconnect after 2000 ms
I (1937009) multimodal_ws: WebSocket disconnected
W (1937009) cp_mm_session: Transport unavailable: reason=ws_disconnected caller=transport_event_bridge
I (1937019) multimodal_audio: Heap after_uplink_stop: free8=8273971 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128864 largest_spiram=7995392
I (1937039) multimodal_audio: Heap after_uplink_stop: free8=8273971 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128864 largest_spiram=7995392
I (1939219) esp-x509-crt-bundle: Certificate validated
E (1939509) transport_ws: Sec-WebSocket-Accept not found
E (1939509) websocket_client: esp_transport_connect() failed with -1, transport_error=ESP_OK, tls_error_code=0, tls_flags=0, esp_ws_handshake_status_code=401, errno=119
W (1939509) multimodal_ws: WebSocket error
W (1939519) cp_mm_session: Transport unavailable: reason=ws_error caller=transport_event_bridge
I (1939529) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1939539) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1939559) websocket_client: Reconnect after 2000 ms
I (1939559) multimodal_ws: WebSocket disconnected
W (1939569) cp_mm_session: Transport unavailable: reason=ws_disconnected caller=transport_event_bridge
I (1939579) multimodal_audio: Heap after_uplink_stop: free8=8273975 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128868 largest_spiram=7995392
I (1939599) multimodal_audio: Heap after_uplink_stop: free8=8272195 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8129208 largest_spiram=7995392
I (1941799) esp-x509-crt-bundle: Certificate validated
I (1942059) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
E (1942129) transport_ws: Sec-WebSocket-Accept not found
E (1942129) websocket_client: esp_transport_connect() failed with -1, transport_error=ESP_OK, tls_error_code=0, tls_flags=0, esp_ws_handshake_status_code=401, errno=119
W (1942139) multimodal_ws: WebSocket error
W (1942139) cp_mm_session: Transport unavailable: reason=ws_error caller=transport_event_bridge
I (1942149) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1942169) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1942179) websocket_client: Reconnect after 2000 ms
I (1942189) multimodal_ws: WebSocket disconnected
W (1942189) cp_mm_session: Transport unavailable: reason=ws_disconnected caller=transport_event_bridge
I (1942199) multimodal_audio: Heap after_uplink_stop: free8=8273975 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128868 largest_spiram=7995392
I (1942219) multimodal_audio: Heap after_uplink_stop: free8=8273975 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128868 largest_spiram=7995392
I (1944429) esp-x509-crt-bundle: Certificate validated
E (1944729) transport_ws: Sec-WebSocket-Accept not found
E (1944729) websocket_client: esp_transport_connect() failed with -1, transport_error=ESP_OK, tls_error_code=0, tls_flags=0, esp_ws_handshake_status_code=401, errno=119
W (1944739) multimodal_ws: WebSocket error
W (1944739) cp_mm_session: Transport unavailable: reason=ws_error caller=transport_event_bridge
I (1944749) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1944759) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1944779) websocket_client: Reconnect after 2000 ms
I (1944789) multimodal_ws: WebSocket disconnected
W (1944789) cp_mm_session: Transport unavailable: reason=ws_disconnected caller=transport_event_bridge
I (1944799) multimodal_audio: Heap after_uplink_stop: free8=8273971 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128864 largest_spiram=7995392
I (1944819) multimodal_audio: Heap after_uplink_stop: free8=8273971 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128864 largest_spiram=7995392
I (1947129) esp-x509-crt-bundle: Certificate validated
I (1947339) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
E (1947589) transport_ws: Sec-WebSocket-Accept not found
E (1947589) websocket_client: esp_transport_connect() failed with -1, transport_error=ESP_OK, tls_error_code=0, tls_flags=0, esp_ws_handshake_status_code=401, errno=119
W (1947599) multimodal_ws: WebSocket error
W (1947599) cp_mm_session: Transport unavailable: reason=ws_error caller=transport_event_bridge
I (1947609) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1947629) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1947649) websocket_client: Reconnect after 2000 ms
I (1947649) multimodal_ws: WebSocket disconnected
W (1947649) cp_mm_session: Transport unavailable: reason=ws_disconnected caller=transport_event_bridge
I (1947659) multimodal_audio: Heap after_uplink_stop: free8=8273975 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128868 largest_spiram=7995392
I (1947679) multimodal_audio: Heap after_uplink_stop: free8=8273975 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128868 largest_spiram=7995392
I (1950029) esp-x509-crt-bundle: Certificate validated
E (1950549) transport_ws: Sec-WebSocket-Accept not found
E (1950549) websocket_client: esp_transport_connect() failed with -1, transport_error=ESP_OK, tls_error_code=0, tls_flags=0, esp_ws_handshake_status_code=401, errno=119
W (1950559) multimodal_ws: WebSocket error
W (1950559) cp_mm_session: Transport unavailable: reason=ws_error caller=transport_event_bridge
I (1950569) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1950589) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1950609) websocket_client: Reconnect after 2000 ms
I (1950609) multimodal_ws: WebSocket disconnected
W (1950619) cp_mm_session: Transport unavailable: reason=ws_disconnected caller=transport_event_bridge
I (1950619) multimodal_audio: Heap after_uplink_stop: free8=8273971 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128864 largest_spiram=7995392
I (1950639) multimodal_audio: Heap after_uplink_stop: free8=8273975 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128868 largest_spiram=7995392
I (1952619) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (1952979) esp-x509-crt-bundle: Certificate validated
E (1953469) transport_ws: Sec-WebSocket-Accept not found
E (1953469) websocket_client: esp_transport_connect() failed with -1, transport_error=ESP_OK, tls_error_code=0, tls_flags=0, esp_ws_handshake_status_code=401, errno=119
W (1953469) multimodal_ws: WebSocket error
W (1953479) cp_mm_session: Transport unavailable: reason=ws_error caller=transport_event_bridge
I (1953489) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1953499) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1953519) websocket_client: Reconnect after 2000 ms
I (1953519) multimodal_ws: WebSocket disconnected
W (1953529) cp_mm_session: Transport unavailable: reason=ws_disconnected caller=transport_event_bridge
I (1953539) multimodal_audio: Heap after_uplink_stop: free8=8273971 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128864 largest_spiram=7995392
I (1953549) multimodal_audio: Heap after_uplink_stop: free8=8273971 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128864 largest_spiram=7995392
I (1955929) esp-x509-crt-bundle: Certificate validated
E (1956379) transport_ws: Sec-WebSocket-Accept not found
E (1956379) websocket_client: esp_transport_connect() failed with -1, transport_error=ESP_OK, tls_error_code=0, tls_flags=0, esp_ws_handshake_status_code=401, errno=119
W (1956389) multimodal_ws: WebSocket error
W (1956389) cp_mm_session: Transport unavailable: reason=ws_error caller=transport_event_bridge
I (1956399) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1956419) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1956439) websocket_client: Reconnect after 2000 ms
I (1956439) multimodal_ws: WebSocket disconnected
W (1956439) cp_mm_session: Transport unavailable: reason=ws_disconnected caller=transport_event_bridge
I (1956449) multimodal_audio: Heap after_uplink_stop: free8=8273971 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128864 largest_spiram=7995392
I (1956469) multimodal_audio: Heap after_uplink_stop: free8=8273971 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128864 largest_spiram=7995392
I (1957899) lcd_direct: LCD asset sequence drawn asset=jichubiaoqing frames=3
I (1958769) esp-x509-crt-bundle: Certificate validated
E (1959239) transport_ws: Sec-WebSocket-Accept not found
E (1959239) websocket_client: esp_transport_connect() failed with -1, transport_error=ESP_OK, tls_error_code=0, tls_flags=0, esp_ws_handshake_status_code=401, errno=119
W (1959249) multimodal_ws: WebSocket error
W (1959249) cp_mm_session: Transport unavailable: reason=ws_error caller=transport_event_bridge
I (1959259) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1959279) multimodal_audio: Heap after_uplink_stop: free8=8270347 largest8=7995392 free_internal=141431 largest_internal=98304 largest_dma=98304 free_spiram=8128916 largest_spiram=7995392
I (1959289) websocket_client: Reconnect after 2000 ms
I (1959299) multimodal_ws: WebSocket disconnected
W (1959299) cp_mm_session: Transport unavailable: reason=ws_disconnected caller=transport_event_bridge
I (1959309) multimodal_audio: Heap after_uplink_stop: free8=8273979 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128872 largest_spiram=7995392
I (1959329) multimodal_audio: Heap after_uplink_stop: free8=8273979 largest8=7995392 free_internal=145107 largest_internal=98304 largest_dma=98304 free_spiram=8128872 largest_spiram=7995392
I (1961529) esp-x509-crt-bundle: Certificate validated
+27 -17
View File
@@ -218,9 +218,9 @@ menu "Example Configuration"
bool "Enable interrupt-driven key input task"
default y
help
Start the staged GPIO interrupt key input task for PTT and SW2.
SW1 is reserved as the turntable limit switch and is not
emitted as a normal key event.
Start the staged GPIO interrupt key input task for PTT, SW1,
and SW2. SW1 remains the turntable calibration input and is
also reported for post-boot button diagnostics.
config TQ_KEY_INPUT_TASK_STACK
int "Key input task stack size"
@@ -435,11 +435,12 @@ menu "Example Configuration"
config TQ_SLOT_SWITCH_GPIO
int "Slot feature switch GPIO"
default 13
default 6
range 0 48
help
GPIO used for the slot machine feature switch.
Default from docs/gpio-map.md (SW2 on IO13).
GPIO used for the rocker microswitch that triggers the slot
machine feature. The new board reuses the unconnected TP_SCL
contact on IO6 for the original SW2 function.
config TQ_SLOT_SWITCH_ACTIVE_LEVEL
int "Slot feature switch active level"
@@ -447,7 +448,7 @@ menu "Example Configuration"
range 0 1
help
Logic level that means the slot machine feature switch is active.
Default from docs/gpio-map.md (SW_2 is active-low).
The rocker microswitch shorts IO6 to ground when pressed.
config TQ_SLOT_SWITCH_PULLUP
bool "Enable slot feature switch pull-up"
@@ -519,7 +520,8 @@ menu "Example Configuration"
default 12
range 0 48
help
GPIO used for the turntable direction calibration switch.
GPIO used for Button 1 on the SW1/IO12 net and for turntable
direction calibration.
config TQ_CALIBRATION_SWITCH_ACTIVE_LEVEL
int "Direction calibration switch active level"
@@ -767,6 +769,15 @@ menu "Example Configuration"
registered server-side. Leave disabled to use the static API key
/ bypass path.
config TQ_FACTORY_CLI_ENABLE
bool "Enable serial factory provisioning CLI"
depends on AUTH_V2_ENABLE
default y
help
Start the managed serial worker used by the factory tool for
device identity provisioning, public-key retrieval, and
on-device challenge signing.
config AUTH_REGISTER_BASE_URL
string "Auth V2 registration base URL"
depends on AUTH_V2_ENABLE
@@ -841,33 +852,32 @@ menu "Example Configuration"
config MULTIMODAL_PTT_BUTTON_GPIO
int "Push-to-talk button GPIO"
default 3
default 13
range 0 48
help
GPIO used for the push-to-talk button.
Default from docs/gpio-map.md (TTP223 touch output on IO3).
Default from docs/gpio-map.md (Button 2 on the SW2/IO13 net).
config MULTIMODAL_PTT_BUTTON_ACTIVE_LEVEL
int "Push-to-talk button active level"
default 1
default 0
range 0 1
help
Logic level that means the push-to-talk button is pressed.
Default from docs/gpio-map.md (TTP223 output is active-high).
Button 2 is active-low through the board pull-up.
config MULTIMODAL_PTT_BUTTON_PULLUP
bool "Enable push-to-talk button pull-up"
default n
default y
help
The TTP223 provides a driven digital output, so no internal
pull-up is required on the default board.
Enable the internal pull-up for the default active-low Button 2
wiring in addition to the board pull-up.
config MULTIMODAL_PTT_BUTTON_PULLDOWN
bool "Enable push-to-talk button pull-down"
default n
help
The TTP223 provides a driven digital output, so no internal
pull-down is required on the default board.
Leave disabled for the default active-low Button 2 wiring.
config MULTIMODAL_HEARTBEAT_INTERVAL_MS
int "Heartbeat interval (ms)"
+5 -4
View File
@@ -121,10 +121,11 @@ CONFIG_ENABLE_MULTIMODAL_INTERACTION=y
# CONFIG_MULTIMODAL_USE_STATIC_CREDENTIALS is not set
# CONFIG_MULTIMODAL_AUTH_BYPASS_TOKEN_SERVICE is not set
CONFIG_AUTH_V2_ENABLE=y
CONFIG_TQ_FACTORY_CLI_ENABLE=y
CONFIG_MULTIMODAL_UPSTREAM_MODE="push2talk"
CONFIG_MULTIMODAL_PTT_BUTTON_GPIO=3
CONFIG_MULTIMODAL_PTT_BUTTON_ACTIVE_LEVEL=1
# CONFIG_MULTIMODAL_PTT_BUTTON_PULLUP is not set
CONFIG_MULTIMODAL_PTT_BUTTON_GPIO=13
CONFIG_MULTIMODAL_PTT_BUTTON_ACTIVE_LEVEL=0
CONFIG_MULTIMODAL_PTT_BUTTON_PULLUP=y
# CONFIG_MULTIMODAL_PTT_BUTTON_PULLDOWN is not set
# CONFIG_MULTIMODAL_AUDIO_CHANNEL_PROBE_ON_INIT is not set
CONFIG_MULTIMODAL_HEARTBEAT_INTERVAL_MS=50000
@@ -219,7 +220,7 @@ CONFIG_TQ_SCREEN_SPI_CS_GPIO=15
CONFIG_TQ_SCREEN_DC_GPIO=16
CONFIG_TQ_SCREEN_BACKLIGHT_GPIO=7
CONFIG_TQ_SCREEN_SPI_PIXEL_CLOCK_HZ=20000000
CONFIG_TQ_SLOT_SWITCH_GPIO=13
CONFIG_TQ_SLOT_SWITCH_GPIO=6
CONFIG_TQ_SLOT_SWITCH_ACTIVE_LEVEL=0
CONFIG_TQ_SLOT_SWITCH_PULLUP=y
# CONFIG_TQ_SLOT_SWITCH_PULLDOWN is not set