In my work trying to create devices that can install OSes from scratch on computers and flash phones and embedded IoT devices, I'm always looking for things that can support being both a usb host and a usb gadget.
Think about your phone, how it works to connect a micro-B to charge and connect to it as a gadget to your computer, then when you connect a micro-A cable you plug mice, keyboard, and thumb drives into your phone.
As a usb host, you can plug a mouse, keyboard, and pretty much anything you'd plug into your computer to it. Allowing you to do things like:
- Format a thumb drive or microSD card
- bootstrap embedded devices like intel edison
- flash a phone
As a usb gadget, you can plug the device into a computer and have it show up as a usb keyboard, disk, network, and other interesting things.
- show up as a network adapter
- provide a web / programming interface to the gadget without needing internet
- send some keystrokes a computer
- present a dynamic USB cdrom / dvd drive
- re-install a computer from scratch combining keyboard and drive support
- install OSes to a drive hosted on the device and snapshot them
I'm looking to see if we can't get the new $5 RPi zero to function as both.