diff --git a/README_en.md b/README_en.md index 04224ecf..378f696c 100644 --- a/README_en.md +++ b/README_en.md @@ -60,6 +60,7 @@ Breadboard demonstration: - LILYGO T-Circle-S3 - XiaGe Mini C3 - Moji XiaoZhi AI Derivative Version +- SenseCAP Watcher
@@ -92,6 +93,9 @@ Breadboard demonstration: + + +
## Firmware Section diff --git a/README_ja.md b/README_ja.md index 007fe009..f8c3b327 100644 --- a/README_ja.md +++ b/README_ja.md @@ -60,6 +60,7 @@ Feishu ドキュメントチュートリアルをご覧ください: - LILYGO T-Circle-S3 - XiaGe Mini C3 - Moji シャオジー AI 派生版 +- SenseCAP Watcher
@@ -89,6 +90,9 @@ Feishu ドキュメントチュートリアルをご覧ください: + + +
## ファームウェア部分 diff --git a/main/boards/sensecap-watcher/config.json b/main/boards/sensecap-watcher/config.json index c73e6f3f..31bc672c 100644 --- a/main/boards/sensecap-watcher/config.json +++ b/main/boards/sensecap-watcher/config.json @@ -5,7 +5,10 @@ "name": "sensecap-watcher", "sdkconfig_append": [ "CONFIG_ESPTOOLPY_FLASHSIZE_32MB=y", - "CONFIG_PARTITION_TABLE_CUSTOM_FILENAME='partitions_32M_sensecap.csv'" + "CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions_32M_sensecap.csv\"", + "CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH=y", + "CONFIG_ESPTOOLPY_FLASH_MODE_AUTO_DETECT=n", + "CONFIG_IDF_EXPERIMENTAL_FEATURES=y" ] } ] diff --git a/main/boards/sensecap-watcher/sensecap_watcher.cc b/main/boards/sensecap-watcher/sensecap_watcher.cc index c5dbfb78..28b78409 100644 --- a/main/boards/sensecap-watcher/sensecap_watcher.cc +++ b/main/boards/sensecap-watcher/sensecap_watcher.cc @@ -54,8 +54,13 @@ private: }); power_save_timer_->OnShutdownRequest([this]() { ESP_LOGI(TAG, "Shutting down"); - IoExpanderSetLevel(BSP_PWR_LCD, 0); - IoExpanderSetLevel(BSP_PWR_SYSTEM, 0); + bool is_charging = (IoExpanderGetLevel(BSP_PWR_VBUS_IN_DET) == 0); + if (is_charging) { + ESP_LOGI(TAG, "charging"); + GetBacklight()->SetBrightness(0); + } else { + IoExpanderSetLevel(BSP_PWR_SYSTEM, 0); + } }); power_save_timer_->SetEnabled(true); } @@ -123,6 +128,13 @@ private: .priv = this, }, }; + + //watcher 是通过长按滚轮进行开机的, 需要等待滚轮释放, 否则用户开机松手时可能会误触成单击 + ESP_LOGI(TAG, "waiting for knob button release"); + while(IoExpanderGetLevel(BSP_KNOB_BTN) == 0) { + vTaskDelay(50 / portTICK_PERIOD_MS); + } + btns = iot_button_create(&btn_config); iot_button_register_cb(btns, BUTTON_SINGLE_CLICK, [](void* button_handle, void* usr_data) { auto self = static_cast(usr_data);