Go Down

Topic: Arduino USB Host Shield (Read 2872 times) previous topic - next topic

kuilin

Apologies if this is in the wrong section, I'm new to posting to this forum.

I've had the Arduino USB Host Shield bookmarked for a while, for a potential future project (an aspect of which requires connecting and reading keycodes directly from an HID keyboard), but now the official page changed to say that it is Retired. I could not find anything anywhere about why it's been retired, or even when this change happened, so I'm posting here to ask if anyone has any information regarding its retirement.

Is there something wrong with the shield, or something that has changed with the Arduino platform that makes the shield not work well anymore or something? Or else why would it become retired? The shields are still in stock on Amazon (and Sparkfun has a variant) - would buying from there for the project be a bad idea?

westfw

The future is probably SAM and other ARM boards with Native USB host hardware.
The complexity and expense of having to do USB over SPI were never ideal.

PaulS

Quote
Is there something wrong with the shield, or something that has changed with the Arduino platform that makes the shield not work well anymore or something?
What do you suppose that the demand was for the board? What is the cost of making, stocking, and selling that few of anything? Compared to other things that do sell well, which would you continue supporting?
The art of getting good answers lies in asking good questions.

kuilin

What do you suppose that the demand was for the board? What is the cost of making, stocking, and selling that few of anything? Compared to other things that do sell well, which would you continue supporting?
This post wasn't a complaint about it being retired - and I have absolutely no ideas (nor am I really in a place to be guessing) about how well some Arduino products sell relative to others. There not existing as much of a market for it as other components is a solid and completely reasonable reason to discontinue a product. I'm just surprised that there wasn't any news update or announcement, or any information posted anywhere about its retirement, and it seemed like everyone just quietly forgot about the existence of the board.

I posted to make sure its retirement wasn't because there was something fundamentally wrong with it that would make me buying the board now a complete waste of time and money. As for what I support, well, frankly, what I purchase depends on what I need, not what I believe is the best, or the most profitable, for the Arduino ecosystem.

If anyone's looking at the thread in the future from Google - I'm a relative beginner, and I ended up buying the MAX3421E development board from Mouser, and after a bit of trial and error got it working pretty well with the existing libraries. So this didn't turn out to be a project-stopping hurdle.

Bjack795

The MAX3421E can be connected to any arduino based board?

For example for this https://wiki.wemos.cc/products:d32:d32_pro
Can be used for connecting a USB keyboard?

gdsports

The USB host shield library indicates ESP32 is supported.

https://github.com/felis/USB_Host_Shield_2.0

The shield is designed for 5V logic levels so use the mini board with ESP32 which is designed for 3.3V logic. Note cutting traces and soldering required.

https://www.circuitsathome.com/arduino_usb_host_shield_projects/

The library includes keyboard examples.


Bjack795

Thank you very much!
What do you mean with "mini board"? You mean the shield?

Where I can find all the pins connection for the D32?

(I have to manually cut traces and resolder on the shield?)

gdsports

Read the circuitssthome link including the links to other pages. There are pictures of the shield and the mini board. There are instructions on moding the mini board for 5 VUSB.

Bjack795

Read the circuitssthome link including the links to other pages. There are pictures of the shield and the mini board. There are instructions on moding the mini board for 5 VUSB.
Ok thank you, I will read it deeply

Bjack795

I'm reading all the documentation and I had an idea, please tell me if it is stupid.
Since the usb host mini is perfect for the Arduino mini, instead of doing the work of adapting to that board all the connections could I buy a mini and use it as a "translator".

In practise the mini is comfortably reading the usb input and then it communicates the info to the D32 shield via serial transmission.

It is so stupid? (Taking apart the cost of the mini shield)

Bjack795

The USB host shield library indicates ESP32 is supported.

https://github.com/felis/USB_Host_Shield_2.0

The shield is designed for 5V logic levels so use the mini board with ESP32 which is designed for 3.3V logic. Note cutting traces and soldering required.

https://www.circuitsathome.com/arduino_usb_host_shield_projects/

The library includes keyboard examples.


I've read deeply all the documentation, on hardware and on the library.
I've also watched the examples but I can't understand how read input from the keyboard.

In the example HIDbootkbd etc it is set up the environment but there are no commands like in the PS2keyboard library.

For example the Keyboard.read() or something similar.

Can you help me in the further steps?
(I have decided to use an Arduino pro mini as keyboard receiver with the serial communication to the D32 pro)

gdsports

The following is a simpler device that might work for your application. I have never used so I cannot answer any questions about it.

http://www.hobbytronics.co.uk/usb-host-keyboard

Note the pro mini must operate using 3.3V logic levels to work with the USB host mini board. These two boards together appoximate the capabilities of the Hobbytronics device.

The usb host mini has a SPI interface and the ESP32 has a SPI interface so there is no need for the pro mini or the hobbytronics device. But whatever is easiest for you.

In the USBHIDBootKbd example, the following functions will be called when a USB keyboard key is pressed. OnKeyDown is called for regular keys and OnControlKeysChanged is called for shift key(shift, control, alt, GUI/Windows). Put your code to handle the keys inside one of these functions.

Usb.Task() keeps checking the keyboard for key presses then calls one of the above functions when a key is pressed. There is no need for a Keyboard.read function.

It does not help to post multiple messages all over the board all on the same topic.

Bjack795

The following is a simpler device that might work for your application. I have never used so I cannot answer any questions about it.

http://www.hobbytronics.co.uk/usb-host-keyboard

Note the pro mini must operate using 3.3V logic levels to work with the USB host mini board. These two boards together appoximate the capabilities of the Hobbytronics device.

The usb host mini has a SPI interface and the ESP32 has a SPI interface so there is no need for the pro mini or the hobbytronics device. But whatever is easiest for you.

In the USBHIDBootKbd example, the following functions will be called when a USB keyboard key is pressed. OnKeyDown is called for regular keys and OnControlKeysChanged is called for shift key(shift, control, alt, GUI/Windows). Put your code to handle the keys inside one of these functions.

Usb.Task() keeps checking the keyboard for key presses then calls one of the above functions when a key is pressed. There is no need for a Keyboard.read function.

It does not help to post multiple messages all over the board all on the same topic.

Thank you very much for all.
I was learning these things from a Portuguese tutorial :)
Two questions and an apologize

Question 1:
The device you posted needs to be uploaded a software but not via its USB but via boards like this ?

Question 2:

Then the keys are read by D32 from serial/I2C?

Apologize:

Excuse me for the comments on the posts but in all those posts different people were involved so I thought about asking to all of them, since the posts were very old.

Go Up