* Keyboard interconnect using two uarts
* Supports daisy chain addressing using a master/slave direction communication scheme
- Still needs more testing
- Functions have been tested alone to be generally working
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.
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.
Edit: Fixed previous indentation
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.
- 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)
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.
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.
Check for dfu-util and screen before using them. Also aborts if
teensy_loader_cli compilation fails.
Uses the type builtin to determine if a command exists. See here:
https://gist.github.com/sdelmas/7377271
- When loading a garbage image onto the device, the chip hangs
and refuses to jump to the bootloader and start dfu
Fix
- Check if chip was in locked state and jump to dfu
- Check if watchdog timer fired and jump to dfu