Archived
1
0
Commit Graph

17 Commits

Author SHA1 Message Date
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
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
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
20b62afb9a 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
2015-08-19 00:01:15 -07:00
Jacob Alexander
6c67bc77bc Revert "Merge pull request #27 from smasher816/wakeup-devel"
This reverts commit 622ea5d85f, reversing
changes made to c21439cb48.
2015-06-23 08:00:16 -07:00
Jacob Alexander
1acbc97e98 Adding initial dfu-upload code and debugging for Bootloader. 2015-06-14 14:33:39 -07:00
Rowan Decker
dc562cdcb3 Inital Remote Wakeup Support
Not working yet...
2015-03-08 22:35:55 -07:00
Jacob Alexander
0ec5e6d9c2 Adding missing NL's for Cons and Sys Control debug 2015-02-23 22:25:46 -08:00
Jacob Alexander
7597fea053 Adding outputDebug command
- Displays all of the bytes sent via USB
- Different display mode for NKRO and Boot modes
2015-02-21 13:06:28 -08:00
Jacob Alexander
c939059c7f Fixing NKRO on Windows 8.1
- Had to re-write descriptor to support Windows 8.1 while still working with Mac OSX
- NKRO keyboard is now more bandwidth intensive as all the keys must be updated at the same time
  (due to 8.1 bug in the HID spec)
2014-11-12 23:04:50 -08:00
Jacob Alexander
11fb8bd77d Fixing Linux NKRO Delete bug
- Fixed descriptor to not include USB Code 156 (Clear)
- This USB Code affects repeating Delete
2014-11-10 21:02:25 -08:00
Jacob Alexander
0cbfe53794 Fixed Linux NKRO bitmap bug.
- Thanks hasu for pointing it out
- Keycode 50 is problematic under Linux, so removing (it's a duplicate keycode anyways)
2014-10-02 01:40:14 -07:00
Jacob Alexander
ab7351b482 USB NKRO working for ARM!
- Setting NKRO mode as default (up to bios to disable)
2014-09-28 17:24:52 -07:00
Jacob Alexander
ed9abf88a3 Preparing ARM for USB NKRO
- API changes from the AVR NKRO support
2014-09-21 16:29:53 -07:00
Jacob Alexander
3fa9c16c04 File and macro modifications for supporting Teensy 3.1 2014-03-22 14:14:23 -07:00
Jacob Alexander
25304734af Adding in USB module updates from Teensyduino 1.18rc2.
- For potential bug fixes
- Not copied verbatim, some additions were left out
2014-03-22 14:14:23 -07:00
Jacob Alexander
59f13f8f4f Moving USB to Output in preparation for additional Output types.
* Initial cli code
2014-03-22 14:09:01 -07:00