Jacob Alexander [Sat, 22 Aug 2015 02:43:45 +0000 (19:43 -0700)]
Fixing default ErgoDox layout and adding FlashMode button
- Adds proper flashMode support for all keyboards and microcontrollers (usb and serial)
- flashModeEnabled must be set to 1 otherwise it will only show an error
* This is on purpose (somewhat dangerous feature as it allows remote flashing)
- Capability cleanup
Jacob Alexander [Wed, 19 Aug 2015 07:01:15 +0000 (00:01 -0700)]
FIxing Media Keys and general USB compatibilty
- Media keys tested working on Linux/Windows/Mac (use Consumer control)
- Fixed enumeration delays
- Fixed virtual serial port configuration issues
- Fixed GET_REPORT and SET_REPORT
- Added intial descriptors and endpoints for Mouse and Joystick devices
- Split out the consumer and system control endpoint
- Added more fault debugging messages
- Added interface names to endpoints (visible in Windows Device Manager)
- Added KLL define for keyboard locale
Jacob Alexander [Sun, 16 Aug 2015 04:53:59 +0000 (21:53 -0700)]
Working support for Interconnect
- Supports up to 255 slave nodes (you'll run into ScanCode limitations before then)
- Requires most recent kll compiler update
- Additional debugging output and stats counters
- Noise and parity checking
- Fixed TxFIFO issue when sending buffers larger than the FIFO
- Cleaned up defaultMap.kll
- Added ScanCode caching (reduces interconnect traffic significantly)
- Interconnect module code is conditionally compiled into PartialMap module if required
Jacob Alexander [Sun, 9 Aug 2015 07:20:41 +0000 (00:20 -0700)]
Initial UARTConnect scancode support
- Still some issues
- Will require some changes to MatrixARM and PartialMap
* Currently state information is passed around too frequently
* Needs to be reduced to state changes only
Jacob Alexander [Fri, 19 Jun 2015 08:50:56 +0000 (01:50 -0700)]
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
Sometimes it would be nice to clear the screen if it has a lot of
information (ex: when in debug information). Some terminals support ^L
to clear screen, but not all (iTerm2 on my mac does not), so I think
this is worthwhile to add.
Rowan Decker [Mon, 9 Mar 2015 01:40:01 +0000 (18:40 -0700)]
Fix whitespace
Use a consistent standard - Tabs in front for indenting, spaces after for anything else. This way everything stays nice and lined up while also letting users change there prefered indent level. Most of the new files from Haata where already in this format.
Rowan Decker [Sun, 8 Mar 2015 23:59:34 +0000 (16:59 -0700)]
Set DFU bootloader name
Fixes #22
Each (dfu) interface may have more than one a ltsetting each with their own index and name. According to the DFU_1.1 pdf section 4.2.3, "* Alternate settings can be used by an application to access additional memory segments. In this case,
it is suggested that each alternate setting employ a string descriptor to indicate the target memory
segment; e.g., 'EEPROM'." Whether or not we end up using multiple memory segments it is still good to have a descriptive name incase there are other dfu devices connected.
Rowan Decker [Sun, 8 Mar 2015 23:59:34 +0000 (16:59 -0700)]
Set DFU bootloader name
Fixes #22
Each (dfu) interface may have more than one a ltsetting each with their own index and name. According to the DFU_1.1 pdf section 4.2.3, "* Alternate settings can be used by an application to access additional memory segments. In this case,
it is suggested that each alternate setting employ a string descriptor to indicate the target memory
segment; e.g., 'EEPROM'." Whether or not we end up using multiple memory segments it is still good to have a descriptive name incase there are other dfu devices connected.
Jacob Alexander [Sat, 7 Mar 2015 08:34:14 +0000 (00:34 -0800)]
Fixing Mac OSX freeze on wake-up bug
- CLEAR_FEATURE unset is currently causing the keyboarod to freeze
- Though not ideal, it seems harmless to ignore this USB Control Packet
- Tested working on a Mac Mini (Yosemite)
Jacob Alexander [Sat, 7 Mar 2015 06:18:15 +0000 (22:18 -0800)]
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.
Jacob Alexander [Sun, 1 Mar 2015 06:13:17 +0000 (22:13 -0800)]
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).