Came across some doubts:

  1. What exactly are the differences between a USB host and device? Is it just that who powers the bus?
  2. When two devices connect how the device say "hey I will be the host and you be the device?"
  3. Can one device acts as a host as well as a device. For example, "A" should act as a device when a USB host is connected, and "A" should act as host when a USB device is connected?
  • 2
    \$\begingroup\$ This is directly and clearly answered right where you'd expect to find it, which is the USB spec, or even most introductory information on USB. -1 \$\endgroup\$ – Olin Lathrop Nov 18 '12 at 15:24
  • 1
    \$\begingroup\$ I would recommend that you read Jan Axelson's "USB Complete". It is a true gem on this subject matter. \$\endgroup\$ – quantum231 Jun 10 '13 at 10:55
  • 2
    \$\begingroup\$ @OlinLathrop Your comment is not helpful. The USB spec is 75 MiB in size and is composed of 43 PDF files with a total of 2984 pages. \$\endgroup\$ – Stéphane Jun 19 '16 at 13:12
  • 2
    \$\begingroup\$ @Stép: The USB spec also has a table of contents, and even the earlier and smaller specs answer these questions. These questions are very basic and show a complete lack of even attempting to find the answers. \$\endgroup\$ – Olin Lathrop Jun 19 '16 at 23:23
  • 2
    \$\begingroup\$ @OlinLathrop My attempt to use Google to find the answer to these exact questions is what took me to this question. This was the top Google search result. Came here and saw the recommendation to read/search through nearly 3000 pages! That's why I said the comment wasn't very helpful. \$\endgroup\$ – Stéphane Jun 21 '16 at 3:21

What exactly are the differences between a USB host and device?

The host initiates all communication on the bus, the device only responds when asked by the host. For Details see the specs on usb.org.

When two devices connect [...]

One must behave as the host and the other as the device. Details can be found in the USB OTG Specs.

Can one device acts as a host as well as a device?

For example, many Android phones and tablets can (requires Android 3+). The "magic" is in the On-the-Go cable/adapter, which switches the phone into host mode by pulling the ID pin to GND.

  • \$\begingroup\$ USB OTG Specs link not working \$\endgroup\$ – Axel Bregnsbo Dec 2 '19 at 13:12

Just like Stéphane, I came here for the answer. Which I did not find here! With a little research this is what I found.

With a host controller you will be able to communicate with all USB devices, and with a USB device controller you can just communicate with a host controller.

USB host is the USB on the PC side in most cases and USB Device is the USB in your mouse ,keyboard, flash memory and so on.

All USB transactions are managed by the Host. and the Device only responses to the Host transactions.

Hope that helps.

  • 4
    \$\begingroup\$ It's not clear what you are adding that has not already been said years ago. \$\endgroup\$ – Chris Stratton Apr 25 '17 at 3:09
  • 2
    \$\begingroup\$ He gave a slightly more thorough answer with concrete examples rather than sending you to the first page of a long and complex document. The selected answer is could have at least boil it down better \$\endgroup\$ – user148298 Aug 3 '18 at 23:28

Not the answer you're looking for? Browse other questions tagged or ask your own question.