Uno r3 - Can't get USB Keyboards to work with an USB Host Shield I'm a day 1 beginner to Arduino, and I am trying to obtain input from a USB keyboard. I've connected the USB keyboard to an Arduino USB host shield attached to an Arduino Uno r3, and I am using the example HID sketch (USBHIDBootKeyboard.ino) provided with the USB Host Shield libraries : https://github.com/felis/USB_Host_Shield_2.0/blob/master/examples/HID/USBHIDBootKbd/USBHIDBootKbd.ino

I am powering the Arduino Uno r3 + USB Host Shield via USB. Upon init, only Start is written to the Serial Monitor. Tests show that SetReportParser exits with 0. Yet the keyboards are silent. I've tried three keyboards, all of which work properly when connected to the computer.

When using USBHidBootMouse.ino with a mouse, movements &amp; buttons are perceived and print messages as intended.

https://www.circuitsathome.com/mcu/hid-support-for-usb-host-shield-library-2-0-released/ states that 


  Also, it is recommended to use external power supply while working with HID devices – I’ve seen many devices which would refuse to function when Arduino receives power from its USB port only.


EDIT : I tried to test if the power was the issue, so I used a 5V generator with intensity measurement. The results are : the Arduino Uno r3 uses 60mA, the keyboard uses 60 mA, connecting to the serial port uses 40 mA (much to my surprise).

This means the keyboard's power requirements shouldn't be the problem.

Then what would the problem be ? I'm helpless here. If the library linked on the official Arduino site doesn't work, then it should mean i'm using it wrong.
see last paragraph of this page https://github.com/felis/USB_Host_Shield_2.0

it says this:


  FAQ
  
  When I plug my device into the USB connector nothing happens?
  
  Try to connect a external power supply to the Arduino - this solves
  the problem in most cases.
  
  You can also use a powered hub between the device and the USB Host
  Shield. 
  
  You should then include the USB hub library: #include &lt;usbhub.h&gt;
  
  and create the instance like so: USBHub Hub1(&amp;Usb);.


your keyboard may be multiple HID devices with a USB hub to connect them