2015-01-02 17:28:14 +00:00
|
|
|
Arduino HID Project 2.1
|
|
|
|
|
=======================
|
2015-01-18 12:44:07 +00:00
|
|
|

|
2015-01-02 17:28:14 +00:00
|
|
|
|
|
|
|
|
This project went through a lot of phases and has now reached a new Arduino USB-Core
|
|
|
|
|
with a lot of new functions like extended HID. It also supports HoodLoader1+2.
|
|
|
|
|
The idea is to enable enhanced USB functions to almost all 'standard' Arduino boards.
|
|
|
|
|
|
2015-01-18 12:44:07 +00:00
|
|
|
Wiki
|
|
|
|
|
====
|
2015-01-02 18:58:02 +00:00
|
|
|
|
2015-01-18 12:44:07 +00:00
|
|
|
All documentation moved to the [wiki page](https://github.com/NicoHood/HID/wiki).
|
2015-01-02 13:53:53 +00:00
|
|
|
|
2015-01-18 12:44:07 +00:00
|
|
|
An offline version will be available soon.
|
2015-01-02 13:53:53 +00:00
|
|
|
|
2014-12-26 20:47:07 +00:00
|
|
|
TODO
|
|
|
|
|
====
|
|
|
|
|
|
2015-01-03 13:54:10 +00:00
|
|
|
Under Construction. This is a todo list for myself.
|
2014-12-26 20:47:07 +00:00
|
|
|
|
|
|
|
|
```
|
2015-01-02 11:01:45 +00:00
|
|
|
Keyboard Layout for different Languages
|
|
|
|
|
Clean up USB Core code from fixed values. Use better understandable definitions
|
|
|
|
|
Magic key fix for 32u4?
|
|
|
|
|
|
|
|
|
|
keycode/raw for keyboard
|
2015-01-02 19:30:36 +00:00
|
|
|
Check Keyboard keycode function again? + add example
|
2015-01-02 11:01:45 +00:00
|
|
|
Generalize HID key definitions via HIDTables for example?
|
|
|
|
|
|
2015-01-11 14:01:35 +00:00
|
|
|
update Burning via ISP for HL2
|
2015-01-02 18:58:02 +00:00
|
|
|
Test with Android phone (HL1)
|
2015-01-02 19:13:49 +00:00
|
|
|
"Emulate" HL1 protocol
|
2015-01-10 23:58:00 +00:00
|
|
|
remove dev HL2 link
|
2015-01-02 17:28:14 +00:00
|
|
|
```
|
2015-01-02 11:01:45 +00:00
|
|
|
|
2015-01-02 17:28:14 +00:00
|
|
|
Version History
|
|
|
|
|
===============
|
2014-12-26 20:47:07 +00:00
|
|
|
```
|
2015-01-02 17:28:14 +00:00
|
|
|
2.1 Release (xx.01.2015)
|
|
|
|
|
* Reworked the whole USB-Core from scratch
|
2014-12-26 20:47:07 +00:00
|
|
|
* Uses less flash if HID or Serial is not used
|
|
|
|
|
* Extended and compacter(flash) HID Report Descriptors
|
|
|
|
|
* Fixed USB Device Descriptor
|
|
|
|
|
* Added u2 compatibility with smaller USB_EP_SIZE (16u2 etc)
|
2015-01-02 16:36:29 +00:00
|
|
|
* Added Serial Event for LineEncoding and LineState
|
2014-12-26 20:47:07 +00:00
|
|
|
* Added Serial Function to get dtr state, line encoding etc
|
2015-01-02 16:36:29 +00:00
|
|
|
* Added Keyboard Led Out report to get Led states (for numlock etc)
|
2014-12-26 20:47:07 +00:00
|
|
|
* Made CDC-Core independent from USB-Core
|
|
|
|
|
* Made HID-Core independent from USB-Core
|
|
|
|
|
* Made HID-API independent from HID-Core
|
|
|
|
|
* Removed not needed virtual functions in Keyboard
|
|
|
|
|
* Made HID Reports and its IDs replaceable via pins_Arduino.h
|
|
|
|
|
* Added Absolute Mouse
|
2014-12-27 11:56:19 +00:00
|
|
|
* Removed uint8_t USBPutChar(uint8_t c); in HID.cpp
|
|
|
|
|
* Made void Recv(volatile u8* data, u8 count) in USBCore.cpp static inline
|
|
|
|
|
* HID-APIs sends a clean report on begin() and end() now.
|
|
|
|
|
* Removed virtual functions in Keyboard API
|
|
|
|
|
* Added Keycode functions in Keyboard API
|
|
|
|
|
* Inlined a lot of the HID API functions to save flash
|
2014-12-27 12:27:12 +00:00
|
|
|
* Added Gamepad
|
2015-01-08 16:44:04 +00:00
|
|
|
* Added RawHID API (but RawHID itself isnt working still)
|
2014-12-27 14:57:58 +00:00
|
|
|
* Added USB Wakeup support
|
2015-01-02 11:01:45 +00:00
|
|
|
* Separated USB-Core in its own folder
|
|
|
|
|
* Added HID Tables
|
2015-01-02 15:59:24 +00:00
|
|
|
* USB-Serial now fully reprogrammable
|
2015-01-03 18:00:08 +00:00
|
|
|
* Easy USB-Core selection via Tools->USB-Core
|
2015-01-11 12:57:58 +00:00
|
|
|
* Added Arduino as ISP fix for 32u4 (u2 Series doesn't work at the moment)
|
2015-01-17 10:01:34 +00:00
|
|
|
* Updated USB-Serial
|
2015-01-02 17:28:14 +00:00
|
|
|
|
|
|
|
|
2.0 Release (29.11.2014)
|
|
|
|
|
* Added HoodLoader2
|
|
|
|
|
* Separated HoodLoader1&2 more
|
|
|
|
|
* Added u2 series for USB-Core
|
|
|
|
|
* Extended USB core and fixed minor things for the u2 series
|
|
|
|
|
* Added Led Out report.
|
|
|
|
|
* Added CDC Line state
|
|
|
|
|
* Reworked the whole library structure again
|
|
|
|
|
|
|
|
|
|
1.8 Beta Release (26.08.2014)
|
2015-01-03 18:20:52 +00:00
|
|
|
* Changes in the Hoodloader1:
|
|
|
|
|
* **Huge improvements**, see Hoodloader1 repository
|
2015-01-02 17:28:14 +00:00
|
|
|
* Reworked the whole library, easy installation now
|
|
|
|
|
* HID fixes for Media Keys/Ubuntu
|
|
|
|
|
* Removed Joystick, added 4 Gamepads
|
|
|
|
|
|
|
|
|
|
1.7.3 Beta Release (10.08.2014)
|
2015-01-03 18:20:52 +00:00
|
|
|
* Changes in the Hoodloader1:
|
2015-01-02 17:28:14 +00:00
|
|
|
* Fixed HID flush bug (1.6 - 1.7.2)
|
|
|
|
|
|
|
|
|
|
1.7.2 Beta Release (10.08.2014)
|
2015-01-03 18:20:52 +00:00
|
|
|
* Changes in the Hoodloader1:
|
2015-01-02 17:28:14 +00:00
|
|
|
* Added Lite version for 8u2
|
|
|
|
|
* Added Versions that show up as Uno/Mega (not recommended)
|
|
|
|
|
* Makefile and structure changes
|
|
|
|
|
|
|
|
|
|
1.7.1 Beta Release (10.08.2014)
|
2015-01-03 18:20:52 +00:00
|
|
|
* Changes in the Hoodloader1:
|
2015-01-02 17:28:14 +00:00
|
|
|
* Fixed HID deactivation bug
|
|
|
|
|
|
|
|
|
|
1.7 Beta Release (10.08.2014)
|
2015-01-03 18:20:52 +00:00
|
|
|
* Changes in the Hoodloader1:
|
|
|
|
|
* Works as ISP now. See Hoodloader1 Repository for more information.
|
2015-01-02 17:28:14 +00:00
|
|
|
* Exceeded 8kb limit. For flashing a 8u2 use v1.6 please!
|
|
|
|
|
* Changed Readme text
|
|
|
|
|
|
|
|
|
|
1.6 Beta Release (09.08.2014)
|
2015-01-03 18:20:52 +00:00
|
|
|
* Bugfixes in the Hoodloader1:
|
2015-01-02 17:28:14 +00:00
|
|
|
* Changed HID management (not blocking that much, faster)
|
|
|
|
|
* added RawHID in/out (HID to Serial)
|
|
|
|
|
* Added RawHID Class and example
|
|
|
|
|
|
|
|
|
|
1.5 Beta Release (21.07.2014)
|
2015-01-03 18:20:52 +00:00
|
|
|
* Moved Hoodloader1 source to a separate Github page
|
2015-01-02 17:28:14 +00:00
|
|
|
* Bugfixes in the Hoodloader:
|
|
|
|
|
* Firmware is still available here
|
|
|
|
|
* Overall a lot of ram improvements, now with a big global union of ram
|
|
|
|
|
* Removed USBtoUSART buffer (not needed, saved 128/500 bytes)
|
|
|
|
|
* Removed Lite version because of better ram usage not needed
|
|
|
|
|
* Separated different modes better to not cause any errors in default mode
|
|
|
|
|
* Improved the deactivate option
|
|
|
|
|
* Integrated NHP directly
|
|
|
|
|
* Replaced LightweightRingbuffer with native Lufa Ringbuffer
|
|
|
|
|
* Improved writing to CDC Host
|
|
|
|
|
* Fixed a bug in checkNHPProtocol: & needs to be a ==
|
|
|
|
|
* General structure changes
|
|
|
|
|
* Improved stability
|
|
|
|
|
* Fixed Arduino as ISP bug
|
|
|
|
|
|
|
|
|
|
1.4.1 Beta Release (10.07.2014)
|
|
|
|
|
* #define Bugfix in USBAPI.h
|
|
|
|
|
|
|
|
|
|
1.4 Beta Release (10.07.2014)
|
2015-01-03 18:20:52 +00:00
|
|
|
* Bugfixes in the Hoodloader1:
|
2015-01-02 17:28:14 +00:00
|
|
|
* Added Lite Version with less ram usage
|
|
|
|
|
* Changed PIDs, edited driver file
|
|
|
|
|
* merged v1.0.x and v1.5.x together (both are compatible!)
|
|
|
|
|
* added IDE v1.5.7 support
|
|
|
|
|
* added Tutorials
|
|
|
|
|
|
|
|
|
|
1.3 Beta Release (01.07.2014)
|
2015-01-03 18:20:52 +00:00
|
|
|
* Bugfixes in the Hoodloader1:
|
|
|
|
|
* Improved ram usage
|
2015-01-02 17:28:14 +00:00
|
|
|
* **Important NHP fix inside the HID Class for Uno/Mega**
|
|
|
|
|
|
|
|
|
|
1.2 Beta Release (22.06.2014)
|
|
|
|
|
* Added 1.0.x/1.5.x support
|
2015-01-03 18:20:52 +00:00
|
|
|
* Bugfixes in the Hoodloader1:
|
|
|
|
|
* Sometimes HID Devices weren't updating
|
|
|
|
|
when using more than 1 Device (set forcewrite to true)
|
|
|
|
|
* Fast updates crashed the bootloader
|
|
|
|
|
(too much ram usage, set CDC buffer from 128b to 100b each)
|
2015-01-02 17:28:14 +00:00
|
|
|
* Minor file structure changes
|
|
|
|
|
|
|
|
|
|
1.1 Beta Release (05.06.2014)
|
|
|
|
|
* Added Leonardo/Micro support
|
|
|
|
|
* Included NicoHoodProtocol
|
|
|
|
|
* Minor fixes
|
|
|
|
|
|
|
|
|
|
1.0 Beta Release (03.06.2014)
|
2014-12-26 20:47:07 +00:00
|
|
|
```
|
|
|
|
|
|
2015-01-02 16:36:29 +00:00
|
|
|
Licence and Copyright
|
|
|
|
|
=====================
|
|
|
|
|
If you use this library for any cool project let me know!
|
|
|
|
|
|
|
|
|
|
```
|
2015-01-18 12:44:07 +00:00
|
|
|
Copyright (c) 2014-2015 NicoHood
|
2015-01-02 16:36:29 +00:00
|
|
|
See the readme for credit to other people.
|
|
|
|
|
|
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
|
|
|
in the Software without restriction, including without limitation the rights
|
|
|
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
|
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
|
|
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
|
|
|
all copies or substantial portions of the Software.
|
|
|
|
|
|
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
|
|
THE SOFTWARE.
|
2015-01-11 21:52:22 +00:00
|
|
|
```
|