Hi all,
I'm working on a small USB-controlled inline device that sits between a USB host (typically a PC with a USB-A or USB-C port) and a USB device (either USB Micro-B or USB-C).
The goal is to simulate a
USB cable disconnect/reconnect under software control — to trigger device re-enumeration, activate bootloaders, or perform power-cycle testing as part of automated QA.
The USB link is always USB 2.0, and devices may be either Full Speed or High Speed.
Use caseI work with different classes of devices:
- A USB 2.0 device with a Micro-B connector, drawing minimal current, no negotiation involved
- A USB 2.0 device with a USB-C connector that relies on current negotiation, e.g. it negotiate to draw 1.5 A
- etc...
I would like to be able to disconnect/reconnect the device to the host in a controlled way. Just like a switch that behave
exactly like a passive cable during normal operation, but simulate a physical detach/reattach event when controlled by a microcontroller (e.g., via GPIO).
In this scenario, the system should remain as transparent as possible and not interfere with expected power negotiation behavior, especially for USB-C devices.
“Active” components, such as hubs, could be used instead, but always with the ability to disconnect ports via software
Constraints- USB 2.0 only (no USB 3.x or USB PD involved)
- Host is USB-A or USB-C
- Device side may be USB-C or Micro-B
- Some USB-C devices expect 1.5 A capability (maybe more in the future)
- Devices may run at High Speed (480 Mbps), so any switching must be signal-integrity friendly
- Simple, robust implementation preferred (ideally without requiring USB drivers or protocol stacks)
Conceptual block diagramHere's the high-level idea:

The "switch block" might control VBUS, CC (for USB-C), and possibly D+/D− if needed.
Open questionsI'm evaluating a few possible approaches, and I’d love to hear feedback from others who’ve worked on similar USB tools:
- What USB lines need to be switched to properly simulate a clean detach from the device’s perspective?
- Is switching only VBUS enough?
- Do I need to disconnect CC (for USB-C)?
- Should D+/D− be switched as well for High Speed?
- Is there a better approach using USB redrivers with enable/disable control?
- Would a USB 2.0 hub IC (e.g. USB2412) with per-port power control be a better, more spec-compliant choice?
- What kind of switches (analog/SPDT/SPST) are usable for CC or D+/D− in USB 2.0 High Speed?
- Any other chip suggestions or reference designs?
I'm not looking for one specific solution — I'm open to advice on architecture, part selection, and general experience.
Has anyone here built something similar? Any thoughts are welcome.
Thanks in advance!