Factory mode enables layer 2 which has a regular keycode mapped to every
key. This way the factory can easily test whether the keys are working
or not.
It can either be disabled again or it'll turn of itself when the
keyboard resets.
Signed-off-by: Daniel Schaefer <dhs@frame.work>
If the backlight brightness was changed and the keyboard unplugged and
replugged, the lights would stay off. They should come back to the
previous value, which will happen automatically but the code would
override.
Signed-off-by: Daniel Schaefer <dhs@frame.work>
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>