Archived
1
0
Commit Graph

477 Commits

Author SHA1 Message Date
ntietz
585485496a Added logic to avoid layer shifts causing a layer to be stuck on. 2016-10-09 20:15:50 -04:00
Jacob Alexander
133a98033e Adding support for Appveyor cache
- Speeds up builds considerably
- Requires stripping out some contents of the gcc arm compiler
2016-09-01 11:50:45 -07:00
Jacob Alexander
7169a9d58c Adding Cygwin build using Appveyor
- Uses 32 version of Cygwin (on a 64 bit machine)
- Adding PYTHON_EXECUTABLE override variable for Cygwin builds
  * We have to use the system CMake instead of the Cygwin CMake which detects the wrong version of Python
- Update Bootloader build infrastructure to attempt tests on Windows
2016-08-31 10:47:42 -07:00
Jacob Alexander
945d5747eb Adding CMake Python detection fix for Travis and macOS build
- Fixing CMake to always force python3 binary (this should always work)
- Adding macOS Travis build (clang and gcc)
- Disabling all clang builds until macOS (lack of packages) and Linux (broken Travis repos) are fixed
2016-08-31 00:43:42 -07:00
Jacob Alexander
03a2ca750c Adding CMake requirement check for Python 3
- Should correctly handle 2 + 3 installations
- Tested working on CentOS 6.8 and Arch
2016-08-30 20:03:21 -07:00
Jacob Alexander
b7b7fd1ee7 Adding support for ancient git (1.7.1) found on CentOS 6.8
- Recently added the BCD_VERSION which uses git rev-list --count HEAD command
- Unfortunately git 1.7.1 doesn't have this, so I've added a fallback to manually counting the commits using some CMake magic
2016-08-31 02:41:55 +00:00
Jacob Alexander
22a24e967b Force 6KRO/Boot mode always if defined by KLL
- usbProtocol = 0;
2016-08-18 22:49:51 -07:00
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
Jacob Alexander
dcb3fb560f Small cleanup 2016-08-07 12:51:13 -07:00
Jacob Alexander
9cc29cbffc Fixing CMake 3.6 deprecation message
- CMake 3.6 finally adds proper cross-compiler detection
- When detected, use full compiler detection infrastructure
- Still maintains compatibility back to CMake 2.8 (at least for now)
- With new detection, selecting only the C compiler as it speeds up the CMake generaion process
- Added a GCC 4.9 minimum version requirement for Bootloader
2016-08-07 11:42:26 -07:00
Jacob Alexander
253d96af8c Adding IRC link 2016-08-01 17:30:58 -07:00
Jacob Alexander
014a42829b Updating keyboard build scripts to work in Cygwin
See wiki for setup details -> https://github.com/kiibohd/controller/wiki/Windows-Setup
2016-07-31 20:41:00 -07:00
Jacob Alexander
9309889fad Removing NKRO Mode requirement for System Control and Consumer Control Keys (Media Keys)
- In general this shouldn't cause any issues
- BIOSs should ignore
- OSs should happily use

Still, this masks the EHCI hand-off that Windows and Linux are starting to do.
A better solution is needed to force devices to re-negotiate their mode.
2016-07-28 19:55:36 -07:00
Jacob Alexander
e5aeac72c8 Fixing udev rules 2016-07-25 23:26:09 -07:00
Jacob Alexander
77218a641b Fixing dfu-util warning due to improper protocol state sequence
Fixes this warning message:
	dfu-util: unable to read DFU status after completion

Results in:
	Download done.
	state(7) = dfuMANIFEST, status(0) = No error condition is present
	state(8) = dfuMANIFEST-WAIT-RESET, status(0) = No error condition is present
	Done!

Functionally no different, just a better user experience.
2016-07-24 15:48:30 -07:00
Jacob Alexander
26915c4d5b Adding DFU Upload support to mk20dx256vlh7
- mk20dx128vlf5 doesn't have enough bootloader space left
- Downloads the entire firmware flash (not the bootloader)
- Currently no intelligence built-in to determine full size of firmware (tricky, and sometimes not useful)
2016-07-23 23:46:37 -07:00
Jacob Alexander
8efeb60aa0 Fixing lsusb error messages
- Instead of stalling at Device Qualification and Debug descriptors, return 0
2016-07-23 18:30:06 -07:00
Jacob Alexander
2f03f34877 Adding DFU check to validate that we aren't trying to flash too far
- Add _app_rom_end address location that points to the end of flash
- Check when flashing each page whether the end of the page exceeds the end of the flash
2016-07-23 17:50:59 -07:00
Jacob Alexander
5162980791 Updating bcdDevice and iSerial fields in USB descriptors
- Use commit number as the basis for bcdDevice field (maximum is 2^16)
- Change iSerial from commit date to chip Unique ID
- Update both Firmware and Bootloader to use the same scheme (bcdDevice and iSerial)
- Cleanup of Bootloader code
- Split out build info CMake commands to a new file
2016-07-23 16:16:16 -07:00
Jacob Alexander
8940a04dc2 Initial .travis.yml file to travis-ci integration
clang builds are currently failing (travis dependency issue)

- Adds the following tests
  * gcc + clang
    + IC60
    + IC60_LED
    + ICED
    + WhiteFox
    + Testing/uartOut
    + Testing/usbMuxUart
  * gcc
    + Bootloader/mk20dx128vlf5
    + Bootloader/mk20dx256vlh7
2016-07-17 22:36:13 -07:00
Jacob Alexander
c71e67a29a Preparing controller repo for automated travis-ci
- Added clang (i.e. multi-compiler) support to convenience build scripts
- Updated README
- Added Bootloader build scripts for the two main versions currently used
- Added uartOut and usbMuxUart build scripts (these tend to suffer from build rot the most as they're only used in debugging)
- Attempt to get clang support for the Bootloader
  * clang is missing compiler extensions, so this may require a large re-write to get working
2016-07-17 17:27:05 -07:00
Jacob Alexander
43bc97895b Old, hasn't been updated in a long time
- In the wiki now
2016-07-17 14:36:51 -07:00
Jacob Alexander
5a1272ae70 Fixing link to travis-ci 2016-07-17 14:36:05 -07:00
Jacob Alexander
3b66541da1 Adding travis-ci indicator and updating info 2016-07-17 14:22:22 -07:00
Jacob Alexander
ca4271b6ff Renaming Input Club keyboard Scan Modules
- Should make it easier to follow (originally the keyboards didn't have names hence the code-names)
- See https://github.com/kiibohd/KiiConf/issues/45

MD1     -> Infinity_60%
MD1.1   -> Infinity_60%_LED
MDErgo1 -> Infinity_Ergodox
KType   -> K-Type
2016-07-17 13:09:57 -07:00
Jacob Alexander
a07ccdd608 Moving defaultMap.kll to scancode_map.kll (less confusing)
- Changing default name from defaultMap.kll to scancode_map.kll
- Old name of defaultMap.kll will still work (and is the final fallback)
- Updated all the main projects to use the new name
- Updated BETKB (not entirely finished, but mostly complete)
- Added sub-use of interconnect scancode cache for converters
- Added infinity_led.bash

No behaviour changes, just restructuring.
2016-07-06 09:03:23 -07:00
Jacob Alexander
ed19e92ead Updating MBC-55X scan module 2016-06-12 15:53:25 -07:00
Jacob Alexander
358d480ea9 Major USB update, fixes most (if not all) known issues
USB - General
- Refactored descriptors
- Enabled/Disable USB endpoints
- Added debug flags for special features
- Code cleanup
- Interface count calculation based off of enabled endpoints
- Delayed wTotalLength calculation to simplify descriptor offsets
- Re-ordered endpoints and interfaces
- Added more debug output
- Added usbInitTime to show how long keyboard initialization took
  (Useful when debugging bad init sequences)
- Added function for usb_resume() which takes care of the resume sequence
  * Resume is now only called if packets are starting to timeout

USB - Special Options
- Added enableDeviceRestartOnUSBTimeout
  * A last resort hammer for bad USB Chipsets/OSs, don't use if you can help it
  * Disabled
- Added enableUSBResume
  * Enables host resume wake-up signalling, required to wake a computer from sleep
  * Enabled
- Added enableUSBLowPowerNegotiation
  * Enables power negotiation hack
  * Required to use firmware with an IPad and other hard-limit low-power USB hosts
  * Hasn't been tested with the recent changes
  * Disabled
- Added enableUSBSuspend
  * Enables power down events on host USB bus suspend
  * Enabled

USB - Keyboard
- Attempted to cleanup HID SET_REPORT
  * Works much better
  * Still has an issue under Linux which generates *a lot* of NAKs (initializes quickly regardless)
    + Not present on other keyboards
    + SETUP -> OUT -> IN : This sequence is the problem
    + Specifically during the OUT phase
- Enabled

USB - CDC Virtual Serial Port
- Code cleanup
- Added convenience struct USBCDCLineCoding for easier debugging
- Attempted to cleanup CDC_SET_LING_CODING
  * Works much better
  * Still has an issue under Linux which generates *a lot* of NAKs (initializes quickly regardless)
    + SETUP -> OUT -> IN : This sequence is the problem
    + Specifically during the OUT phase
    + Likely the same issues as HID SET_REPORT
- Enabled

USB - Mouse
- Enabled

USB - Joystick
- Disabled

USB - RawIO
- Initial code, API not used yet
- Disabled

DFU
- Updated load script, now faster
2016-05-31 00:40:10 -07:00
Jacob Alexander
8a96e70b4b Fixed udev and added TODO comment 2016-05-29 10:27:21 -07:00
Jacob Alexander
92b3b5081b Adding auto-restart support whenever USB gets into an odd state
- Somewhat aggresive, may cause restarts if the keyboard/OS hasn't fully intialized the keyboard
- Added GET_IDLE handling and correct usage of SET_IDLE
- Initial implementation of idle send, commented out as it causes issues on Mac OSX for sleeping
  (keyboard has been working without it)
- MacOSX seems to have some sort of data corruption on the USB link, not sure why (other OSs have no issues)
- Cleaned up some code
- Added a longer sleep after the resume sequence to prevent possible issues sending keys too soon
  (may need to be increased more)

Ipad support now seems flaky, though Mac, Windows seems solid.
Init sequence on Linux seems slow, even though there are no errors.
2016-05-27 01:26:04 -07:00
Jacob Alexander
9a7364b14a Merge pull request #120 from jlsalvador/feature-toggle-keyboard-protocol
Adding toggleKbdProtocol capability
2016-05-26 11:13:35 -07:00
José Luis Salvador Rufo
0174e1e6ab
Adding toggleKbdProtocol capability 2016-05-26 13:06:12 +02:00
Jacob Alexander
caa01dbf50 Merge pull request #119 from bburky/keyboards-gitignore
Ignore BuildPath directories
2016-05-23 17:19:21 -07:00
Blake Burkhart
13e65cc0ac Ignore BuildPath directories
Ignore all the default BuildPath directories created by the bash scripts
via cmake.bash.
2016-05-23 18:52:09 -05:00
Jacob Alexander
38f6c832cf Merge pull request #118 from cryham/ghostfix
Fixed ghosting matrix check (ok now)
2016-05-17 01:35:23 -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
ba58010a75 Adding proper remote wake-up support
- Maintains a sleep state variable (may be able to use as a signal in the future)
- On the first keypress, hold the RESUME signal for 10 ms (spec says between 1 and 15 ms)
- Removed some messages that were affecting sleep state
2016-05-17 01:18:14 -07:00
Jacob Alexander
8fbc8d535f Adding missing GET_PROTOCOL handling
- Odd that this went unnoticed for sooooo long
- Fixes Mac OSX issue where keyboard freezes/hangs on a reboot
- Also adding missing code for usbMuxUart
2016-05-16 23:25:08 -07:00
Jacob Alexander
044f14a52b Merge pull request #114 from kiibohd/revert-113-ghost_fix
Revert "Fixed ghosting matrix check (did send bad keys on release), now using…"
2016-05-13 14:38:46 -07: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
Jacob Alexander
0525796808 Merge pull request #113 from cryham/ghost_fix
Fixed ghosting matrix check (did send bad keys on release), now using…
2016-05-13 11:37:39 -07:00
Jacob Alexander
6a22bb2790 Initial refactoring of PartialMap for supporting custom Triggers
- Requires a recent KLL
- Functionality wise, nothing has changed
2016-05-08 18:50:28 -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
5eb4ebf02e Disable command list when using configurator 2016-05-05 12:57:30 -07:00
Jacob Alexander
bfaed8f58c Move matrix information to a cli command 2016-03-22 19:51:43 -07:00
Jacob Alexander
18aef02a1f Adding relative movement mouse key support
- Still very basic (lots of room for improvement)
- Capability format will likely change at some point
- 16 bit movement control, however repeat rate limits usability (will need KLL 0.4 to make better)
2016-03-21 23:05:41 -07:00
Jacob Alexander
3c9a97d51a Adding basic mouse button support
- Full Mouse support will have to wait for KLL 0.6
  * This will include dynamic HID descriptor generation for many wheels and axis depending on the KLL needs
- HID descriptor is currently limited to 8 buttons
- Technically mouse movement also works (tested by accident), but it's disable for now (needs some API thought)

- Adding additional udev rules
- Added KRO mode default define
2016-03-21 00:51:51 -07:00
Jacob Alexander
0102d05c86 Fixing clang compilation and supporting clang-tidy
- clang.c includes necessary functions to make clang compiler work (tested on teensy 3.1)
- Added support code to generate a compile_commands.json for clang-tidy
  * Updates the symlink whenever cmake or make is called (Unix OSs only)
2016-03-04 00:38:06 -08:00
Jacob Alexander
c5aed6cb17 Adding convenience symlinks to the udev rules 2016-03-03 20:40:23 -08:00