I haven't been able to find anything that gives an overview of using a USB Host with an Arduino. Perhaps someone can fill the gap or point me to some suitable reading material.

I know that it's possible to buy USB Host shields but I'm not sure what you can do with them. The Reference section only refers to mice and keyboards.

If one has an unusual USB device (I don't have anything specific in mind) can one connect it to the USB host and expect it to work as it would on a PC or would it be necessary to have specific drivers? - which in practice would mean it would not be usable.

Is there a common protocol for USB devices to use that the USB host supports? (Such as serial comms).

I know that each USB device has manufacturer and model numbers - does the USB host software need to know about these?

...R

Two or three hours spent thinking and reading documentation solves most programming problems.

Terry has designed broadcast stations, recording studios, broadcast equipment, intelligent machines and special computer languages for IBM, and has worked as a broadcast journalist covering elections, fires, riots and Woodstock.
He has taught electronics

I had not actually tried that Google combination but to be truthful the thousands of websites are much the same sort as the ones I found with other similar search terms.

Basically they seem to be about specific hardware add-ons and what few details there are only tell how to do specific things with them. There is generally little or no general explanation of the sorts of things you can and (perhaps more importantly) can't do with them.

I'm hoping somebody will be able to direct me to an essay that explains the abilities and limitations of USB hosting with an Arduino.

Thanks again.

...R

Two or three hours spent thinking and reading documentation solves most programming problems.

PeterH

I'm hoping somebody will be able to direct me to an essay that explains the abilities and limitations of USB hosting with an Arduino.

To be honest, I think you're probably wasting your time expecting somebody to point you towards an article explaining exactly what you want to know - especially on an Arduino forum which is only very indirectly related to USB. Back in school the exact knowledge you need is spoon-fed to you, but in the real world you often have to do research for yourself. It's an easily recognisable subject and Google will give you all the information you need, if you look hard enough. Or you could look for technical books covering the subject - there are lots of them out there.

To be honest, I think you're probably wasting your time expecting somebody to point you towards an article explaining exactly what you want to know - especially on an Arduino forum

I have been slowly coming to the conclusion that relatively few types of USB device can work with a USB host shield. For example it doesn't seem to be possible to use it to connect to another Arduino !!

However even with that limited list I haven't found anywhere that explains how I would know if a particular device is likely to be compatible.

Quote

"The following device classes are currently supported by the shield:

Anyway, many thanks for the replies.

...R

Two or three hours spent thinking and reading documentation solves most programming problems.

I have been slowly coming to the conclusion that relatively few types of USB device can work with a USB host shield. For example it doesn't seem to be possible to use it to connect to another Arduino !!

It's pretty incredible you could come to this incorrect conclusion, when replying to a message with this:

Right this minute all I want to do is learn the capabilities and limitations of the USB host shield system. I assume somebody knows what it can and can't do. It's beginning to feel like it's a big secret.

Perhaps if some article said that item X could be used it would spark an idea for a project.

For example I was tempted to recommend an Arduino to control model trains using a Sprog dcc controller (which connects to a PC by USB) but I realized I had no way of knowing whether it would work with an Arduino, or even what to look for in the product specifications that would help me to know.

PeterH

Right this minute all I want to do is learn the capabilities and limitations of the USB host shield system. I assume somebody knows what it can and can't do. It's beginning to feel like it's a big secret.

It's not a 'big secret', but it's a huge topic and such a vague question that no simple answer is possible. In order to understand any answer you would need to be familiar with USB and how it works, but you seem unwilling to acquire that understanding. I don't understand it - you obviously have a significant interest in it, given the number of times you've tried to encourage people to respond, and in that case it would make sense to me for you to start figuring out what USB is, what it does, how it works. The information is freely available, but you need to spend time reading and understanding it. (Despite appearing simple on the outside, under the covers there is a hell of a lot going on to make USB work.)

I do realize that USB is complex. I know a little about the process of communicating with it but virtually nothing about what determines which devices can work with which hosts. This isn't a relevant concern for a PC - there are drivers for virtually everything, either built into Linux or downloadable. But AFAIK just because it works on a PC doesn't mean it will work on an Arduino.

Since there is a USB host capability for the Arduino it seems to me reasonable for someone to be able to point me to a document that sets out its capabilities without me needing to become a USB expert and work it out for myself. At the very least they must have written some sort of specification before they wrote the code and made the hardware.

Perhaps it's simply that the relevant "someone" doesn't participate in the Arduino forum.