I finally got this to work and it turned out to be a silly oversight on my part.
I didn't realize that there was a physical ON/OFF switch on the SparkFun USB Host Shield board. Once I turned it into the ON position, after making the above code changes, everything worked and my USB keyboard was recognized using both board_qc and USB_desc files.
I also confirmed with SparkFun and my board is a DEV-09947 revision.
In summary:
- Check what SparkFun board revision you have
- If DEV-09947, you don't need to make any jumper connections
- Add the following #defines in your sketch along with the code below it in void setup()
//Revision 1.3 (DEV-09947)
#define MAX_RESET 7 //MAX3421E pin 12
#define MAX_GPX 8 //MAX3421E pin 17
void setup()
{
pinMode(MAX_GPX, INPUT);
pinMode(MAX_RESET, OUTPUT);
digitalWrite(MAX_RESET, LOW);
delay(20); //wait 20ms digitalWrite(MAX_RESET, HIGH);
delay(20); //wait 20ms
...
- Plug in your USB device/keyboard/etc
- Make sure switch on SparkFun USB Host Shield is in ON position
- Run board_qc or USB_desc to test with Arduino Serial Monitor
Thanks again, gdsports!