39 lines
1018 B
Markdown
39 lines
1018 B
Markdown
|
|
# Firmware Proto Transport
|
||
|
|
|
||
|
|
## Goal
|
||
|
|
|
||
|
|
Add CDC and GATT private communication without rewriting the existing keyboard,
|
||
|
|
time, theme, and LED business logic.
|
||
|
|
|
||
|
|
The firmware side should:
|
||
|
|
|
||
|
|
- keep standard HID behavior for normal keys
|
||
|
|
- receive host commands over CDC and GATT
|
||
|
|
- report private state and function key events over CDC and GATT
|
||
|
|
- reuse existing modules where possible
|
||
|
|
|
||
|
|
## Completed Nodes
|
||
|
|
|
||
|
|
### Node 1: internal function events
|
||
|
|
|
||
|
|
Files:
|
||
|
|
|
||
|
|
- `src/events/function_bitmap_event.h`
|
||
|
|
- `src/events/function_bitmap_event.c`
|
||
|
|
- `src/events/function_key_event.h`
|
||
|
|
- `src/events/function_key_event.c`
|
||
|
|
|
||
|
|
Design notes:
|
||
|
|
|
||
|
|
- `function_bitmap_event` carries the 29-byte function bitmap from host
|
||
|
|
- `function_key_event` carries usage + action when a configured function key
|
||
|
|
is pressed or released
|
||
|
|
- these events isolate transport modules from keyboard internals
|
||
|
|
|
||
|
|
## Planned next nodes
|
||
|
|
|
||
|
|
- keyboard split logic uses `function_bitmap_event`
|
||
|
|
- CDC transport module
|
||
|
|
- GATT transport module
|
||
|
|
- nanopb integration and generated protocol code
|