I use multiple USB hard drives to do backups. They are rotates, so yo don't use the same drive two times in a row.
This operation is done manually, and I wnat to automate it. And Arduino came instantly to my mind.
I don´t know anything about USB connections. So looking at a pinout I discovered that there are just four cables, a pair for data, and a pair for power. My idea is using 4 Logic Level Mosfets to open the connection to each USB drive, having all gates wired together to an Arduino Pin.
The Arduino would run a timer, putting just one pin HIGH to select a USB drive, the others LOW.
The arduino programming part is something that I can do. The USB selection is my question. Will the Mosfet approach work?
Are Multiple Switch ICs or Multiplexer adecuate for this requirement?
See: USB pinout diagram @ pinouts.ru
Seems no reason not to keep all the grounds connected, so you need to switch Vcc, Data+ and Data - which are signals that change between Vcc and Gnd. So Probably the MOSFETs would work on those 3 lines.
Anyone else with more experience with that than I?
If I was building this I would use four (or how many drives you need to rotate) 4PST (or 4PDT) relays. Keep in mind that the switching method must be able to provide the means that the host USB uses to detect a disconnect and reconnect events (current flow?) as well as the steady state of passing data to and for.
I think you need to make/break the connections in the the right order, in which case you will need to control the timing of pins separately. I don't know what the right order is, but I'd expect to find that ground and VDC connections were made first and broken last. If you look into it, it may be that the data pins are the only ones you actually need to disconnect. These are what the hub uses to detect the USB device presence and speed.
Thanks for your help guys. I'll do some tests as soon as I get the right connectors.