Archived
1
0
Commit Graph

21 Commits

Author SHA1 Message Date
Jacob Alexander
6d2a4e0f23 Adding StrobeDelay KLL option to fix problemmatic keyboards
- Almost never needed
- However, some keyboards exhibit odd strobing behaviours (pressing two keys at once with a single key)
- Setting to around 10 us tends to fix the issue
2016-08-07 17:40:30 -07:00
CryHam
f36a09a97a fix ghost vars, ifdef 2016-05-17 10:30:07 +02:00
CryHam
e6506ee5bf Fixed ghosting matrix check (did send bad keys on release), now using also ghost_old state 2016-05-17 10:29:16 +02:00
Jacob Alexander
44215ade18 Revert "Fixed ghosting matrix check (did send bad keys on release), now using…" 2016-05-13 14:38:05 -07:00
CryHam
6efcef28b0 Fixed ghosting matrix check (did send bad keys on release), now using also ghost_old state 2016-05-08 09:38:00 +02:00
Jacob Alexander
bfaed8f58c Move matrix information to a cli command 2016-03-22 19:51:43 -07:00
CryHam
a848a6bc79 Merge branch 'master' of github.com:kiibohd/controller 2016-03-01 19:40:00 +01:00
CryHam
88670ac72f Changed CK3 matrix scan to Config_Pullup, inverted rows and columns
Added STROBE_DELAY define in matrix.h
All keys scan codes now in defaultMap.kll
2016-03-01 19:38:43 +01:00
Jacob Alexander
46765e85c5 Adding dynamic USB power support
- Each scan module now has a current change callback which passes the available current as a parameter
- No longer attempts to use the max 500 mA immediately, starts with 100 mA then goes to 500 mA after enumeration
- If enumeration fails due to bMaxPower of 500 mA, then attempt again at 100 mA (might also be possible to go even lower to 20 mA in certain cases)
- Now working with the Apple Ipad (no over-power messages)
- Fixed Wake-up behaviour on Apple Ipad (and likely other iOS devices)
- More effecient set_feature/clear_feature handling (device handler)
- Initial power handling via Interconnect (still needs work to get it more dynamic)
2016-02-21 19:56:52 -08:00
CryHam
57a75851e2 Minor styling fixes.
Renamed define to GHOSTING_MATRIX.
Deleted unused files from CK3.
2016-02-20 08:33:39 +01:00
CryHam
6687470ae7 Added support for ghosting matrices and code for elimination.
To use define GHOST in matrix.h, see example in Scan/CK3
2016-02-19 18:10:25 +01:00
Jacob Alexander
7e68e81f47 Adding basic remote capabilities + UART Rx DMA buffers
- Rx buffers weren't fast enough, had to use DMA :D
- Basic LCD remote capabilities are working, single node
- Multi-node broadcast seems to have a bug still
- DMA ring buffer allowed for significant processing simplification
  * There is an overrun risk, but the buffer is large and generally there isn't too much data being sent (just very quickly)
- Split out LCD layer stack capability into itself and an "exact" version used for updating remote nodes
2015-10-15 00:21:54 -07:00
Jacob Alexander
0013d7a4f3 Fixing CMake dependency checking for kll_defs.h 2015-08-03 21:42:01 -07:00
Jacob Alexander
98f796d4df Adding timing based debounce code
- Uses expiry timer to decide on when to allow a state change
- Initial state transitions are unaffected
- Use MinDebounceTime define in kll to configure
- ms granularity
2015-06-19 01:57:16 -07:00
Jacob Alexander
ae6daa0e5c Adding DebounceThrottleDiv define to slow down the debounce rate.
By default:
DebounceThrottleDiv = 0;
This is the default infinity behaviour right now (may be changed in the future).

Increasing DebounceThrottleDiv will increase the scan rate divider.
DebounceThrottleDiv = 1; # Scans half as much
DebounceThrottleDiv = 2; # Scans a quarter as much
DebounceThrottleDiv = 3; # Scans an eigth as much
etc.

For ARM based uCs (like the Infinity) the maximum divider is 32.
2015-03-06 22:18:15 -08:00
Jacob Alexander
a9c5898ba5 Adding configurable DebounceDivThreshold
Can be specified from any .kll file

DebounceDivThreshold = 0xFFFFFFFF
Sets to max debounce, default is 0xFFFF.
The 0xFFFFFFFF is about a 2x longer debounce
The max requires more ram (as it uses 32 bit variables instead of 16).

Added support for submodule capabilities files.
2015-02-28 22:13:17 -08:00
Jacob Alexander
6e4c28ef84 HUGE AVR RAM optimization (~28%).
- It's possible to get even more, but this is probably as far as I'll go
- PROGMEM is really annoying to use, and makes the code look like ass
- Now the Teensy 2++ should have enough RAM to use PartialMap easily
2014-10-02 22:09:34 -07:00
Jacob Alexander
d6d792fdf9 Changing decToInt to numToInt (adds support for Hex number interpreter)
- CLI now works with hex or decimal numbers
- Hex requires 0x (technically just x would work too)
2014-08-16 12:07:25 -07:00
Jacob Alexander
eabb1c546a Fixing RAM calculator and reduced actual SRAM usage
- Changed static variables to const that should have been const
- Updated CMake files to prepare for MCHCK custom bootloader
- Changed the USB ID numbers and ID number for bootloader
- Only generate DFU or Teensy binary image, not both
- Fixed RAM and FLASH calculator
- Added missing license in delay.c/h (much of it was taken from Teensy source though I've changed a bunch of it)
- Prepared mk20dx.c for upcoming bootloader addition
- mk20dx.h cleanup
- Reduced the MCHCK based flash size for the application image (bootloader changes requires more flash space)
- Fixed bugs in macro.c
- Added keyHold cli command
- Added show pending events debug message for PartialMap macro module
2014-08-15 10:49:44 -07:00
Jacob Alexander
19f42b0a81 Matrix scanning for ARM now functional.
- CLI Debugging options added
- Various bug fixes for the matrix scanning algorithm
- Changed debouncing algorithm
2014-08-02 22:19:33 -07:00
Jacob Alexander
d6345c307f Initial MatrixARM implementation
- Cleaned up Macro and USB callback naming
- Added security jumper for automated reload (MCHCK based only)
- Added additional LED position
2014-08-01 01:26:25 -07:00