Scope: standalone K:04, K:04 Mini, and K:04 Micro. K:04 Qube and every other keyboard profile remain on v0.1.8.
Versioning:
- embed the full 0.1.9-rc.1 identity in the selected Vial definition
- advertise numeric 0.1.9 and USB BCD 0x0109 where prerelease suffixes cannot be represented
- enforce the standalone/Qube version split in build.rs and the Ergohaven profile contract
Changes from stock v0.1.8:
- add the production_v22 profile with diagnostic features excluded at compile time and stripped release binaries
- send accumulated full-width i16 movement from the right half every 15 ms while retaining 4 ms local sampling
- pace BLE HID mouse reports at 7.5 ms and preserve motion vectors while splitting large deltas
- use +8 dBm, 1M PHY, and the E73 REG1 DC/DC path
- configure PMW3610 for 600 CPI, Smart Mode, software axis swapping, verified setup, and recovery from failed reads or motion gaps
- harden split teardown and reconnection so resetting the left half does not require resetting the right
- refresh bonded-host link parameters with an Apple-safe 15 ms request, then 7.5 ms when accepted, with a 15 ms fallback
- clear stale USB, POWER, and NVIC state left by the UF2 bootloader on the right half
- correct VBUS and charging indication and prevent stale split state from overriding the searching LED
- retain the v0.1.8 120-second sleep timeout and host power policy
- keep gated RTT diagnostics and regression helpers available for development but disabled in production
Verification:
- motion pacing and movement preservation: 4/4
- complete RMK feature test matrix: passed
- Ergohaven profile contract: 14/14
- production builds: 6/6 for K:04, Mini, and Micro
- release binaries contain no debug sections or diagnostic markers
- physical v22 validation completed on K:04 at 20 cm and 60 cm; Mini and Micro still require model-specific hardware regression
Summary
v0.1.9-rc.2production work from feat(k04): prepare v0.1.9-rc.1 production firmware #170.1.90.1.8Regression
Published
v0.1.8could freeze both K:04 halves after the two-minute idle boundary while the standalone central was connected by USB. The host-BLE power task changed connection parameters even though USB owned output; host BLE and split BLE share the same controller.A physical A/B build that disabled only the host-BLE power policy eliminated the freeze. The final guard was then validated on the same hardware and remained stable.
Verification
cargo fmt --all -- --checkscripts/check_ergohaven_profile.shcargo nextestsuiteproduction_v22central and peripheral release builds: 6/6This PR supersedes #17 for integration while preserving both contributor commits and their already-green full CI coverage.