Connect a USB Host Shield Mini to the Imp?

While I’ve been researching connecting a USB HID device to the Imp, I came across this quote from the USB Host Shield folks:

“Primary target platform is Arduino, however, it can also be used with any other micro equipped with SPI interface.”

Has anyone tried interfacing a USB Host Shield directly to the Imp (and not through an Arduino)?

Well, that is excellent timing!

I have just been working on the MAX3421E chipset and using exactly that breakout board. It works a treat but is still very very green. I have written an FTDI driver but it’s not ready for publishing. Let me know what device you have in mind.

When its ready I will add it to the reference git repo.


Obviously, this is my lucky day! I’d play the lotto if it wasn’t already too late. :slight_smile:

I’m hoping to use this USB prox card reader that emulates a USB keyboard. I already have the PC Prox; I’ll order the USB Host adapter and give your code a go. I understand it’s not a finished project; I’m more concerned with proof of concept at this stage.

And, regardless of whether it word or not, I definitely owe you a beer. Or three.

Alas, my first attempt didn’t work; while I was able to set the following successfuly:

spi <- hardware.spi257; cs <- "pinA" in hardware ? hardware.pinA : hardware.pin1; reset <- "pinB" in hardware ? hardware.pinB : hardware.pin8; int <- "pinC" in hardware ? hardware.pinC : hardware.pin9;

…my Imp (in an April board) stopped responding when it got to:

usb <- USB(spi, cs, reset, int);

As we discussed earlier, I purchased a USB Host Shield Mini (pinout here). Could you please confirm how you’ve wired your Host Shield Mini to your Imp? I’d also like to know if you’ve changed any of the jumpers on the shield.

I should note that I did provide +5V (from an external supply) to the shield’s “RAW” pin. If that was a tragic error, please let me know.

Thank you once again!

A small update: looks like I have to cut the VBUS jumper on the USB mini shield, then solder a wire from RAW to the VBUS pad. I’ll give that a try and report back.

i´m using this usb host controller to connect a wireless barcode scanner receiver dongle to my imp.


Very cool! Thanks for the tip - I’ll try that next.

That’s great @ramstein74!

If you didn’t listen in on the last community hangout, we’re actually giving a C3V0 dev board to someone who uses and documents one of the libraries we talked about during the hangout (PulseSensor, USB Host, and PubNub).

If you send us some information you’ll be included in the list of possible winners!

It works with the Circuits@Home board too! I added the RAW => VBUS jumper (a pain, as the USB connector shell is perilously close to the VBUS pad), plugged in the PCProx reader, loaded your code, swiped a card, and received:

2014-09-12 14:29:21 UTC-5 [Status] Downloading new code; 70.94% program storage used 2014-09-12 14:29:22 UTC-5 [Device] Loading USB config! 2014-09-12 14:29:22 UTC-5 [Device] Loading keyboard driver! 2014-09-12 14:29:22 UTC-5 [Device] ERROR: Skipping configuration descriptor as it is not an end point: 0x21 2014-09-12 14:29:22 UTC-5 [Device] Running at full speed 2014-09-12 14:29:23 UTC-5 [Device] Keyboard driver loaded 2014-09-12 14:29:29 UTC-5 [Device] Key pressed: 1 2014-09-12 14:29:29 UTC-5 [Device] Key pressed: 1 2014-09-12 14:29:29 UTC-5 [Device] Key pressed: 4 2014-09-12 14:29:29 UTC-5 [Device] Key pressed: 0 2014-09-12 14:29:29 UTC-5 [Device] Key pressed: 2 2014-09-12 14:29:29 UTC-5 [Device] Key pressed:

Next: convert key presses to strings, then post to my webservice (which looks up the card value, logs the code and datetime to an attendance SQL database, then returns a confirmation string). Looks like I’ll have to get something with more pins than an April breakout to attach my serial LCD display. But this is a great start.

Thanks once again for your time and your code.

For more pins, you can’t beat MakeDeck’s C3V0 IMHO