AhaKey devices expose two major communication surfaces:
- Standard BLE / HID behavior for keyboard input.
- AhaKey custom BLE service for device configuration, state sync, image/OLED workflows, light control, and desktop integration.
For third-party clients, the custom BLE service is the main public protocol entry.
Based on current firmware reference, subject to confirmation:
Service: 0x7340
Char1: 0x7341 Host -> Device bulk payload path
Char3: 0x7343 Host -> Device command path
Char4: 0x7344 Device -> Host notify / response path
Recommended flow:
- Scan and connect to AhaKey.
- Discover service
0x7340. - Subscribe to notify on
0x7344. - Send command frames to
0x7343. - Use
0x7341only for documented bulk data flows.
Current command frame boundary:
AA BB ... CC DD
There is no public checksum or length field documented for the general command model. Clients should not assume undocumented framing semantics.
- Stable: documented and intended for third-party clients.
- Experimental: available but still evolving.
- Internal: implementation detail, not a public contract.
docs/ble-services.mddocs/commands.mddocs/status-sync.mddocs/desktop-compatibility.md