Commit Graph
45 Commits
Author SHA1 Message Date
cuicuiV5 68badb5800 docs: add project roadmap tracking planned features from issues #1 and #5 2026-09-12 15:54:44 +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 a7d942700f ci: simplify release workflow to package existing flasher without cloud compilation 2026-09-08 14:02:40 +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 035afcedb2 edit readme 2026-09-07 13:58:39 +08:00
cuicuiV5 b3462e6f0c feat: 添加免环境一键刷机包与多目标构建支持 (RemoteMapper-Flasher) 2026-09-07 13:47:48 +08:00
cuicuiV5 325ea54c15 feat(wifi): add WPA2 encryption and NVS persistence for AP hotspot 2026-09-06 01:09:56 +08:00
cuicuiV5 735652b34f refactor: simplify webui labels, unify layer naming, and polish readme 2026-09-05 21:10:41 +08:00
cuicuiV5 029766c174 feat(keymap): implement 5-layer system with auto-toggle and webui support 2026-09-05 17:56:18 +08:00
cuicuiV5 5e410d3186 docs: add multi-model flashing guide for N16R8, N8R2 and N4R2 2026-09-04 22:37:39 +08:00
cuicuiV5 1b1835b5a3 build: add N8R2 and N4R2 build environments 2026-09-04 22:31:35 +08:00
cuicuiV5 af5021160c docs(readme): add 150ms lead mute, 10ms micro fade-in and AGC soft-start documentation 2026-09-04 16:02:18 +08:00
cuicuiV5 47fecbcb26 fix(audio): eliminate deterministic ssssh noise at session start 2026-09-04 15:49:54 +08:00
cuicuiV5 0269b62eed fix(ble): optimize BLE scan duty cycle to 80% to resolve Wi-Fi SoftAP packet drop 2026-09-04 14:44:17 +08:00
cuicuiV5 6975706f48 完善readme 2026-09-01 14:19:22 +08:00
cuicuiV5 8ccf5f909d 完善readme 2026-09-01 13:53:28 +08:00
cuicuiV5 7a7640f88a docs: overhaul README with architecture rationale, complete tutorial, and pc_companion guide 2026-09-01 13:44:53 +08:00
cuicuiV5 200098893c 里程碑版本 固件和pc配套软件 基本全部可用 2026-08-31 23:07:43 +08:00
cuicuiV5 187baeac0b feat(keymap/web): Full Hex/Dec dual-mode keycode engine, fixed USB Consumer Volume codes, and complete UI hex formatting 2026-08-31 17:21:57 +08:00
cuicuiV5 00e0b683aa feat(web/nvs): Add full Flash NVS manager, multi-trigger remap UI (click/long/double), and self-healing storage engine 2026-08-31 17:01:22 +08:00
cuicuiV5 c24c31bca3 perf(ble): optimize reconnect speed to ~3s, fix ATVV voice pipeline and UAC control flow 2026-08-31 14:37:59 +08:00
cuicuiV5 59d378ed42 fix(usb): implement hardware SOF and DSTS sleep/wake auto-recovery 2026-08-31 13:43:55 +08:00
cuicuiV5 44415fa442 feat(companion): add ultra-lightweight distributable PC host daemon and F13-F24 custom key mappings
- Added F13-F24 custom key mappings in WebUI dropdown and DOM_TO_HID map

- Created pc_companion package with zero-CPU Win32 RegisterHotKey daemon (remotemapper_host.py)

- Added JSON hot-reload config, autostart manager, silent background launcher, and PyInstaller builder

- Ensured full portability with dynamic relative path resolution and Python environment resolution for distribution
2026-08-30 20:42:50 +08:00
cuicuiV5 686a7fcc7c fix(keymap): remove 30s hard timeout on voice key recording
- Removed 30-second hard release watchdog in key_state_machine.c

- Enabled unlimited duration for continuous voice speech and audio streaming
2026-08-30 17:41:32 +08:00
cuicuiV5 6cda63965f feat(webui): redesign and streamline key remapping interface
- Removed redundant preset buttons and complex trigger tabs (click/long/double)

- Implemented natural 1:1 physical key forwarding model with auto-detected action types

- Locked Voice key strictly to voice recording + hotkey invocation mode

- Added quick special keys dropdown (F-keys, modifiers, navigation, shortcuts, media) with real-time badge sync
2026-08-30 17:35:58 +08:00
cuicuiV5 3a1d78fb80 fix(ble,audio): perfect BLE reconnect, ATVV audio stream, and HID routing
- Added proactive direct connection to bound remote on boot alongside continuous background scanning

- Restored full GATT characteristic discovery with 10-channel subscriptions ensuring stable ATVV audio delivery

- Filtered vendor non-keyboard reports in on_hogp_report_notify to prevent premature voice key releases

- Confirmed all features working: BLE auto-reconnect, 16kHz USB microphone audio, HID mapping, and RGB indicators
2026-08-30 16:01:26 +08:00
cuicuiV5 3198c884a8 fix(core,led,usb): eliminate dual-core race conditions and correct RGB LED indicator behavior
- Unified key_engine_tick and key events on Core 0 with recursive mutex to eliminate stuck key race conditions

- Added HID hardware report mutex lock in usb_composite to ensure 100% reliable report delivery

- Fixed RGB LED logic: solid red on disconnect, solid green on standby, solid blue on voice record, yellow flash on HID press

- Removed UAC endpoint enumeration false blue-light trigger
2026-08-30 15:29:24 +08:00
cuicuiV5 3889c9fc77 fix(ble,keymap): enhance BLE auto-reconnect and prevent voice key stickiness
- Switched BLE scanning to continuous mode (0 timeout) with 80% duty cycle for instant button-wake reconnect

- Implemented ATVV + HOGP (0x3E) dual-channel key release to prevent dropped release packet stuck keys

- Added key_engine_release_all() and disconnect auto-release safety

- Removed invalid 0x0E HTT keepalive to prevent remote state machine crash

- Added 30s voice hold safety timeout
2026-08-30 15:11:03 +08:00
cuicuiV5 edde9d854b fix(keymap): force ACTION_VOICE_HOLD for Voice key to prevent Web UI tap override 2026-08-30 00:19:50 +08:00
cuicuiV5 418f8e2320 fix(ble,keymap): resolve sticky voice modifier (alt+,) and blue LED stuck issue
- Fixed duplicate ACTION_VOICE_HOLD emission on Voice key release due to missing else-if block in key_state_machine.c

- Removed redundant manual usb_hid_dispatch_action calls in ble_remote_client.cpp since key_engine handles them

- Fixed hardcoded VOICE modifier/key in usb_composite.cpp to correctly respect user's configured bindings
2026-08-29 23:47:17 +08:00
cuicuiV5 57e6e30578 chore(savepoint): rollback to stable LED and UAC state
- Implemented LED indicator feature (24 brightness)

- Migrated UAC microphone to hardware xfer_cb (fixed endpoint collision)

- Rolled back ATVV strict 0x03 check to prevent infinite ping-pong loop

- Rolled back HOGP keyboard release to fix modifier sticky keys

- Rolled back Volume keys to TAP with repeat to preserve stability
2026-08-29 23:40:59 +08:00
cuicuiV5 d1da6182f0 feat(milestone): 1:1 real remote layout, interactive key visualizer, direct keyboard recording remapper, and system overview 2026-08-28 20:04:58 +08:00
cuicuiV5 1f2cb49511 feat(milestone): stable BLE pairing, HOGP key extraction, USB HID injection and web dashboard 2026-08-28 19:20:53 +08:00
cuicuiV5 2d5112eca6 fix(ble): resolve address type (Random/Public), async connect queue, SMP bonding, and HOGP report mode 2026-08-28 17:34:40 +08:00
cuicuiV5 8ab8a9a681 feat: add Chinese BLE name matching, Web manual scan, and 1-click pairing 2026-08-28 13:52:06 +08:00
cuicuiV5 39390838e2 docs: add comprehensive development and troubleshooting guide (DEVELOPMENT.md) 2026-08-27 21:09:04 +08:00
cuicuiV5 caf5da201b feat: implement Web UI dashboard, Wi-Fi AP/STA dual mode, Captive Portal, mDNS, and RESTful APIs 2026-08-27 21:03:03 +08:00
cuicuiV5 61fc819a18 build: verify successful compilation of ESP32-S3 N16R8 firmware 2026-08-27 20:56:31 +08:00
cuicuiV5 1cca7c4ec3 feat: complete initial firmware implementation for ESP32-S3 (N16R8) hardware bridge 2026-08-27 20:53:59 +08:00