Getting Started with USB-C-Switch

2017 September 5
Getting Started with USB C Switch

USB-C Switch Overview

Now that you have your USB-C-Switch from Acroname, here are a few steps to help get started using your switch.

In your package, you should find these contents for each switch:

USB-C switch package contents

(1) Acroname USB-C-Switch
(1) USB-C to USB-C cable
(1) USB-C to USB-A cable

**An Acroname Universal Orientation Cable (UOC) may also be included in orders which specified that option.


USB-C-Switch is a 4-channel, bi-directional USB selector switch. It allows you to connect any of the 4 Mux channels on the front of the switch...:
USB-C-Switch front panel

to the Common Port on the rear of the switch:
USB-C-Switch rear panel

All control and monitoring of the USB-C-Switch, including channel selection, is executed via software through the Control Port connection.

In our setup example, we will set up the USB-C-Switch to allow one host computer to power and control the switch as well as to connect to any one of 4 devices.

We are using USBHub3+ to help give us additional USB ports and assist with monitoring, but that is not necessary for bringup.

Our final connections will look like this:

USB-C-Switch example connections


8 Steps to Get Started With USB-C Switch

  1. Download the latest BrainStem
    Download the latest BrainStem Development Kit (BDK); v2.4.4 or higher from
    From this download, we will be using the HubTool GUI application to exercise USB-C-Switch. The HubTool GUI uses BrainStem API calls in C++ to communicate with the USB-C-Switch.

    * Windows 7 requires special installation of BrainStem USB drivers from the BDK. If you are using Windows 7, please see the driver installation instructions in the BDK download under the \drivers folder.
    ** For more advanced operation of USB-C-Switch, you can use the BrainStem API set to control directly. Documentation of the BrainStem API is located at:
  2. Connect Power and Control to the Control Port
    All connections to USB-C-Switch use USB-C connectors.

    The Control Port on USB-C-Switch is used to both power the switch and to establish software control. The USB-C-Switch does not have a separate power connection. All power and control functions (including channel selection) are under software control from the host PC.

    Connect your host to the Control Port on USB-C-Switch:
    USB-C-Switch control port connection
  3. Update USB-C-Switch to the latest firmware
    - Ensure that the Control Port is powered on from your host and that the BrainStem drivers are loaded 
    - Locate the “Updater” firmware update utility in the BDK \bin directory 
    - From a terminal or command line window, run these two commands:
        updater -D
            (this will Discover the BrainStem device(s) attached to your system and respond with serial number(s) in the format XXXXXXXX)
        updater -G -U -d XXXXXXXX
            (this will Get the latest BrainStem firmware and Update firmware in device XXXXXXXX)
  4. Connect your host to the Common Port
    USB-C-Switch control and common connections

    ** In our example, we are connecting the Control Port and the Common Port to USBHub3+. USBHub3+ is not necessary in this application, but we are using USBHub3+ for it's additional monitoring capabilities.
  5. Connect your devices to the MUX Channels
    In our example, we have elected to connect:
    - CH0: (empty)
    - CH1: USB-C memory stick
    - CH2: Apple iPad
    - CH3: Android phone
    example connections

  6. Run HubTool

Now that we have made all of our connections, go to the BDK download directory and find HubTool under the \bin folder.

Once you have HubTool running, you will find all attached BrainStem devices attached to your system in the left hand pane.

Select your USB-C-Switch in the left hand pane and you will see the HubTool window for USB-C-Switch come active. You should now have a BrainStem connection to your USB-C-Switch, indicated by the flashing BrainStem heartbeat LED.

  1. Using HubTool
    By default, USB-C-Switch comes up with the Common Port enabled and Mux CH0 selected.

    In the our example, even with everything connected and working, the host should still see no device connection since we have no device connected to Mux Ch0.

    Controls for the COMMON connection or “USB Port” are listed on the left side of the USB-C-Switch panel.
    Controls for the Mux channel selection are listed on the right side of the USB-C-Switch panel.

    ​As best practice for host switching, Acroname recommends that before you switch mux channels, that you first disable the Common Port so the host sees a “break before make” connection:
    - Disable the Common Port by un-checking the Port checkbox on the left side of the USB-C-Switch panel.
    - Select the channel you wish to see enabled in the Mux selector dropdown on the right of the panel.
    - Enable the Common Port by checking the Port checkbox.

    You should now see the device on the newly selected channel available.
  2. Keep Alive Charging (KAC)
    Acroname has included Keep Alive Charging – which allows devices on non-selected channels to receive some small charging power from USB-C-Switch.

    Power for KAC is provided by the host PC through the Control Port on the USB-C-Switch. When KAC is enabled, you can see the Vbus levels on non-selected channels rise to +5V.

    When KAC is enabled, there is only a VBUS/+5V connection and no data connection to the devices on the affected Mux channels. As such, USB policy states that with only a small amount of power may be drawn by devices where there is no data connection.

    KAC currents are not monitored by USB-C-Switch, so we are using USBHub3+ in our example to show the amount of power drawn through the Control Port when KAC is enabled.


If you have any questions about software-controlled USB Hubs, bringing up USB-C-Switch, or how USB-C-Switch may work in your application, please contact us at: