7 Commits

Author SHA1 Message Date
Daniel Schaefer
3c9f93321d fl16: use sleep_l pin to indicate only lid state
Let the keyboard figure out by itself whether the system is asleep by
looking at the USB connection state.

|            | USB Active      | USB Suspend     |
| Lid Open   | LED, keys       | No LED, keys    |
| Lid closed | No LED, no keys | No LED, no keys |

=> lid_open => keys registered
=> lid_open && !suspended => LEDs on

After waking from sleep, backlight does not turn back on.
Remove the custom backlight/sleep logic. Don't try to outsmart the core
quantum logic, let it handle the hard stuff. Our code just
suspends/wakes the keyboard.

Signed-off-by: Daniel Schaefer <dhs@frame.work>
2025-06-18 14:05:17 +08:00
Daniel Schaefer
bd39c5b060 fl16: Add KC_COPILOT
For Windows 11 24H2 Copilot computers.

Signed-off-by: Daniel Schaefer <dhs@frame.work>
2025-06-13 04:18:44 +08:00
Daniel Schaefer
05798c19c1 fl16: cleanup
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2023-11-30 09:09:33 +08:00
Daniel Schaefer
21fd6d199c fl16: Implement BIOS mode
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>
2023-07-21 15:56:46 +08:00
Daniel Schaefer
ad0354f638 fl16: Rename gridpad to macropad
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2023-07-11 04:44:44 +08:00
Daniel Schaefer
a8269765d7 Implement persistent FN lock
Stays locked even through power-cycle.

Signed-off-by: Daniel Schaefer <dhs@frame.work>
2023-05-03 17:16:18 +08:00
Daniel Schaefer
966f2e7822 Rename lotus to framework
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2023-03-23 13:29:15 +08:00