Commit Graph

21 Commits

Author SHA1 Message Date
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