How to make Arduino support the USB HID Boot Protocol?

Hi folks!

I’m using an Arduino Micro as controller for a keyboard and I want it to be useable during boot, in the BIOS etc. Unfortunately it looks like Arduinio’s USB/HID implementation does not support the boot (legacy) protocol which seems to be required for that. I’ve tried to figure out which changes are necessary for the boot protocol but I can’t really make sense of the specification (what exactly is the difference compared to normal USB HID Keyboards?).

Can somebody point me in the right direction or does anyone have a working implementation I could look at?

Cheers Michael

Support for USB in BIOS seems to be a BIOS setting, not a USB difference:

http://support.microsoft.com/kb/310923

johnwasser: Support for USB in BIOS seems to be a BIOS setting, not a USB difference:

http://support.microsoft.com/kb/310923

I doubt that has anything to do with it. All my others USB Keyboards work just fine.

http://www.usb.org/developers/devclass_docs/HID1_11.pdf

See appendix F (Page 73).

Looks like you may need to change HID.cpp in the Arduino core.

I know it's been a long time since anyone posted but this post may be relevant to a question I just asked here...

Looking at the HID.cpp I can only see 'get' (assume the convention of get data and set data) but no 'set'.

I best read HID1.11, will come back when I have a better understanding of how it works...

Mike

Updated: I found a solution to my problem thanks to Pagus, check out the HID-Project...