12 Commits
Author SHA1 Message Date
cuicuiV5 3a3d54c322 build: update prebuilt binaries in RemoteMapper-Flasher after merging PR #7 2026-09-14 01:11:08 +08:00
cuicuiV5 d70c1e0a89 perf(ble): relax battery polling interval from 60s to 30m to preserve remote battery 2026-09-12 16:51:58 +08:00
cuicuiV5 86f5d801b2 feat: add WOL network wake-up and remote battery monitoring with low-battery LED alert
- Feature 1: Remote Battery Monitoring & Low-Battery LED Alert (Closes #5)
  * Parse BLE Battery Service (0x180F) & Characteristic (0x2A19) with notifications and polling
  * Double-pulse white LED blink on onboard NeoPixel when battery <= 15%
  * Display real-time battery percentage in Web UI status bar and BLE tab

- Feature 2: Wake-on-LAN (WOL) & Advanced Actions Architecture (Closes #1)
  * Implement UDP broadcast WOL Magic Packet builder and sender (ACTION_WOL = 11)
  * Support MAC parsing in colon, dash, or 12-char hex formats, with port configuration
  * Add 'Advanced Extension' mode in Keymap UI with WOL tester and placeholders for Macro, Webhook, and MQTT
  * Persist wol_mac in NVS and handle immediate trigger on keypress

- Docs: Update README.md and ROADMAP.md reflecting new features and future plans
- Build: Update prebuilt firmware binaries in RemoteMapper-Flasher/bin
2026-09-12 16:44:29 +08:00
cuicuiV5 b339f3525d Merge pull request #4 from chenkui164/feat-cli-wifi
feat(cli/wifi): USB CDC console and whole-radio Wi-Fi switch
2026-09-12 15:11:36 +08:00
cuicuiV5 4b14b38e99 fix(usb): relax UAC watchdog to 3s and replace direct DWC2 register writes with TinyUSB soft reset
- Relax UAC isochronous watchdog timeout from 50ms to 3000ms to allow Windows audio engine scheduling headroom
- Remove unsafe DWC2 hardware register EPDIS/SNAK manipulation and invalid clear_stall on ISO endpoints
- Implement clean TinyUSB soft reset helper (uac_soft_reopen_endpoint) for recovery and SET_INTERFACE
- Update all prebuilt binaries in RemoteMapper-Flasher
2026-09-12 14:56:37 +08:00
chenkui 6c1358b02d feat(cli/wifi): USB CDC console and whole-radio Wi-Fi switch
- CLI listens on both UART0 and USB CDC; add 'wifi on|off|status' and 'log on|off'
- Wi-Fi on/off is persisted to NVS and applied on reboot; never de-init the Wi-Fi stack at runtime
- Skip Wi-Fi init and the web server when Wi-Fi is disabled (fixes the lwIP assert reboot loop)
- app_log mirrors logs to CDC only when enabled (default off)
- /api/status exposes wifi_enabled
- Refresh N16R8/N8R2/N4R2 prebuilt flasher binaries on top of the ATVV BLE fix from master
2026-09-10 21:17:17 +08:00
cuicuiV5 9fd14791f6 fix(ble): resolve callback thread deadlock, eliminate white noise, and prioritize ATVV discovery
- Remove blocking GATT calls from on_hogp_report_notify to prevent NimBLE task deadlock
- Safely drop length > 8 non-keyboard packets from HOGP to eliminate ADPCM white noise
- Restructure GATT service discovery to prioritize ATVV service before HID with paced CCCD subscriptions
- Add safe non-blocking background ATVV recovery on Core 0 task loop
- Update all prebuilt binaries for N16R8, N8R2, and N4R2
2026-09-10 16:09:06 +08:00
cuicuiV5 a58abf67d7 fix(ble): remove 450ms silence watchdog and trigger release on push
- Eliminate 450ms BLE_SILENCE_WATCHDOG_MS to prevent prematurely cutting off voice while held
- Restore clean ADPCM audio pipeline state machine to eliminate decode desync / white noise
- Update GitHub Actions release workflow: trigger on git push instead of daily cron
- Update prebuilt firmware binaries and RemoteMapper-Flasher packages
2026-09-08 16:27:16 +08:00
cuicuiV5 df3592273b fix(ble): eliminate 60s idle loop and enable true remote deep sleep
- Remove boot-time forced MIC_OPEN in setup_services_and_handshake()
- Remove automatic cmd_open response in on_ctl_notify() when audio stops/mic closes
- Guard voice release event distribution so it only triggers during active speech (BLE_STATE_TALKING)
- Only open microphone on demand when MI_KEY_VOICE is physically pressed
- Update all prebuilt firmware binaries and RemoteMapper-Flasher packaging
2026-09-08 14:34:39 +08:00
cuicuiV5 a9ca204942 fix(ble): resolve pairing deadlock, disconnect loop, and neighbor device hijacking
- Fix cross-core deadlock in WebServer (Core 1) vs ble_remote_task (Core 0) via asynchronous request flags
- Fix BLE SMP connection drops by purging stale NimBLE bonds with deleteAllBonds() and correcting AuthReq to Just Works
- Remove periodic 5-second MIC_OPEN ping to allow BLE deep sleep and restore remote battery life
- Add strict exclusivity filter in is_target_remote() to prevent hijacking by neighbor devices
- Add Bluetooth pairing & unpair management card in WebUI
- Add GitHub Actions daily release workflow to package and update Flasher assets
- Update pre-built firmware binaries and RemoteMapper-Flasher archives
2026-09-08 13:59:16 +08:00
cuicuiV5 30faf8ea97 feat(web): refactor config management and disable unsafe raw nvs writeback 2026-09-07 15:45:49 +08:00
cuicuiV5 b3462e6f0c feat: 添加免环境一键刷机包与多目标构建支持 (RemoteMapper-Flasher) 2026-09-07 13:47:48 +08:00