Defective Arduino USB Host Shield Boards
UPDATE: The red wire is not needed. There are solder pads to the right of the reset button. Bridge the 5V pads to select 5V for VBUS PWR. In total, three blobs of solder are needed to make the shield work for 5V Arduinos.
I received two new generic Arduino compatible USB host shields today. Both are defective. But they work after some troubleshooting.
1. After loading the USB_desc sketch, the debug message "OSC did not start." appears on the serial console. This means the USB host library cannot find the USB host hardware.
I compared a defective board with a working board. One big difference is the 3.3V pads and 5V pads are not bridged on the defective board. This means the shield is not receiving power from the Uno! After bridging the pads, the board powers up. The error message "OSC did not start" does not appear. This means the USB host library found the USB host hardware.
In the photo, the green boxes should contain one big solder blob. If there are two small blobs, check to see if there is 3.3V on both sides of the blobs. Below that, check for 5V on both sides. If the right side is 0V, bridge the two blobs to create one blob.
2. When a USB keyboard is plugged in, there should be a USB descriptor dump on the Arduino serial console. But nothing happens.
Further examination with a multimeter shows the board is receiving 3.3V and 5V except 5V is not reaching the USB connector. Soldering a wire between VUSB and 5V solves this problem.
In the photo, there is a red wire connecting 5V to VUSB.
Both boards have the same defects so clearly they were never tested.