Commit Graph

22 Commits

Author SHA1 Message Date
Tobias Diedrich fef19b7759 Add FN-based mouse mode switch
When FN is held:
- Remap buttons to back/forward buttons
- Remap Y-axis as scroll and X-axis as pan
2022-01-23 22:40:26 +01:00
Tobias Diedrich 25354c4792 Always tickle watchdog in main loop
Otherwise during initial setup or wakeup, nothing may happen for long
enough to trigger a watchdog reset into the bootloader.
2022-01-23 16:51:51 +01:00
Tobias Diedrich a264ecbc27 Add debug function for writing I2C data to trackpoint 2022-01-23 16:41:44 +01:00
Tobias Diedrich e1c342b8e6 Add debug function for poking ram 2022-01-23 16:35:36 +01:00
Tobias Diedrich cf89637148 Add built-in default settings
These are read on startup to set defaults for:
- debug UART (now defaults to disabled)
- FN/CTRL swap
- FN key row lock (FnLk)
2022-01-23 16:29:06 +01:00
Tobias Diedrich fefede36ed Enable trackpoint HID device
Wheel is declared, but not supported yet, otherwise seems to work :)
2022-01-23 15:07:27 +01:00
Tobias Diedrich 4270a2dfa5 Check for slave clock stretching
This indeed fixes the values read back:
80000000ff  No buttons, no movement
80010000ff  Left button
80050000ff  Left+right buttons
80070000ff  All buttons
800012fdff  Force applied
80000fffff  force applied
2022-01-22 23:50:42 +01:00
Tobias Diedrich b3b5bb5c58 Add basic I2C support
Doesn't quite work yet, most likely the trackpoint interface is using
clock stretching.

Initial values read:
  ff 01 ff fd ff
Later values read:
  ff 80 ff e0 3f  (no buttons pressed)
  ff 80 ff e0 7f  (left button pressed)
  ff 80 ff e0 bf  (right button pressed)
2022-01-22 23:37:11 +01:00
Tobias Diedrich c8c8d47fa6 Add debug USB commands to read ram/flash/i2c 2022-01-22 23:36:02 +01:00
Tobias Diedrich 7c3b45ad94 Enable FnLock and FnCtrlSwap functionality
FN+ESC -> Toggle FnLock for F1-F12 row (suppresses ESC)
FN+RCTRL -> Toggle FnCtrlSwap (does not suppress RCTRL)
2022-01-16 22:21:15 +01:00
Tobias Diedrich 7b59505799 Add FN-key handling for F1-F3
Enables Mute/VolumeUp/VolumeDown
2022-01-16 21:58:00 +01:00
Tobias Diedrich 4b5b06dc13 Slightly extend README 2022-01-16 19:47:50 +01:00
Tobias Diedrich 6088742e91 Additional default requests
Adds support for:
- CLEAR/SET FEATURE (ignored)
- GET_CONFIGURATION (always returns 1 since there is only a single config)
- GET_INTERFACE (always returns 0 since there are not altsettings)
2022-01-16 19:29:35 +01:00
Tobias Diedrich 9742b9f811 Basic SUSPEND/RESUME support 2022-01-16 19:28:11 +01:00
Tobias Diedrich 1f936f875b HID keyboard basics working
Matrix is getting scanned and converted into boot-style HID interface.
Most keys are basically working.
However the enabled debug UART prevents use of the following keys:
DELETE PRINTSCREEN INSERT PAGEUP PAGEDOWN
as S15 is in fixed output mode and thus can't be sensed right now.
2022-01-15 23:10:47 +01:00
Tobias Diedrich 8a86e4bcba Add FN key location to matrix 2022-01-13 22:14:07 +01:00
Tobias Diedrich 0da158bf01 Add rudimentary key matrix scanning 2022-01-11 17:38:55 +01:00
Tobias Diedrich df120a1c1c Implement USB basics
This now manages to get detected as an HID keyboard by Linux, but does
not yet implement any keyboard scanning logic.
2022-01-10 20:56:08 +01:00
Tobias Diedrich a62584b7a8 Add tentative USB descriptors 2021-12-21 11:54:02 +01:00
Tobias Diedrich afc59d5d75 Add dispatch table helpers and test 2021-12-20 21:44:38 +01:00
Tobias Diedrich 0bf18ebf6f Initial version
Tested:
- UART debug output works at 115200 baud (pad S15)
- Jumps to bootloader on watchdog timeout
- Jumps to bootloader when Return is held while plugging in USB
- Jumps to bootloader when UTX/URX lines are shorted
- Measured max GPIO toggling speed is 3MHz
2021-12-19 16:28:26 +01:00
ranma 8378645f00 Initial commit 2021-12-19 16:21:56 +01:00