When enabled, overrides whatever keyboard layout and always makes the
keys in the physical location of F2, F10 and F12 send the keycodes for
F2/F10/F12.
BIOS is supposed to enable this right after USB enumeration, so that the
BIOS hot keys always work, even if FN-lock is enabled or the user has
remapped their keyboard.
BIOS mode is exited either by the keyboard resetting or by sending the
disable message.
How to send:
1. Find USB devices with Framework VID 0x32AC
2. Filter by interface number == 0x01 and usage page == 0xFF60
3. Set HID report with the following body:
Enable: 0x00 0x0B 0x05 0x01 0xFE 0xFE ... pad the 32 byte buffer with 0xFE
Disable: 0x00 0x0B 0x05 0x00 0xFE 0xFE ... pad the 32 byte buffer with 0xFE
Where the first byte is the report ID 0x00
TODO:
- [ ] Test on ANSI keyboard
- [x] Test on ISO keyboard
- [ ] Test on JIS keyboard
- [ ] Add method to get current status
Signed-off-by: Daniel Schaefer <dhs@frame.work>
Other low power states should be handled perfectly fine by USB suspend,
since this is now fixed in chibios.
Signed-off-by: Daniel Schaefer <dhs@frame.work>
Otherwise we might get stuck in numlock disabled state and wouldn't be
able to type numbers anymore or get out of the mode.
Signed-off-by: Daniel Schaefer <dhs@frame.work>
Benefits:
- We can put other useful functions on the unused keys
Drawbacks:
- The OS doesn't know when the user is in numlock mode
Signed-off-by: Daniel Schaefer <dhs@frame.work>
With this change the 3.3V rail gets down to 22mA
The backlight and power led will auto turn off when the keyboard
SLEEP# goes low, and will resume when the sleep pin goes high.
For some reason WFI does not sleep as long as I would expect.
Something is triggering interrupts constantly
that we need to figure out to save power.
Signed-off-by: Kieran Levin <ktl@frame.work>
Just like the 13inch Framework we want FN+Space to step through all
three brightness levels, instead of turning on/off.
Signed-off-by: Daniel Schaefer <dhs@frame.work>
- Equals key (=) wouldn't do anything
- Zero (0) key would register as equals (=)
Issue: Missing entry in key matrix.
Signed-off-by: Daniel Schaefer <dhs@frame.work>
Changes:
- Persist FN lock through powercycle
- Fix display switch button - would sometimes not work, only open
windows menu
The changes only apply to ANSI/ISO/JIS layouts.
Signed-off-by: Daniel Schaefer <dhs@frame.work>