3101 Type-C Connection Exerciser

Tests Type-C system with two Type-C products and two legacy devices

The MCCI Model 3101 Type-C Connection Exerciser provides a four-to-one USB switch to automate interoperability tests for systems using the new Type-C connector. It uses the supplied Arduino-based controller and electronic switches to electrically plug and unplug any of the four different input ports. The Type-C plug can be connected to either of two Type-C receptacles, one Standard-A receptacle, or one Micro-B receptacle. The Type-C receptacles support USB 3.2 gen 1, gen 2 and USB 2.0 (host and device). They also support Thunderbolt 3. The Standard-A receptacle is fixed in USB host mode, and the Micro-B receptacle is fixed in USB device mode.

The Model 3101 was developed in conjunction with Microsoft. The shield board is fully compatible with the Microsoft MUTT ConnEx-C; MCCI also includes a suitable Arduino board, loads the firmware, and tests the assembled unit for proper operation. Microsoft provides a complete software stack for testing the MUTT ConnEX-C with the Windows Operating System. The Model 3101 can also be used directly with customer-written test programs, by sending commands to a virtual serial port provided by the USB control connection.

The 3101 can test hardware that belongs to one of the following categories:

System: Desktops, laptops, tablets, servers, or phones running a SKU of a version of the Windows Operating System with an exposed USB Type-C port.

Dock: Any USB Type-C device that exposes more than one port.

Device: Any USB device with a USB Type-C port that can be attached to a system or dock. This category includes traditional USB devices as well as devices that support the accessory and alternate modes as defined in the USB Type-C Specification.

The 3101 connects to the System Under Test (SUT) by inserting the 3101’s Type-C plug (labeled J1) into a USB Type-C receptacle on the SUT. This direct connection ensures maximum fidelity for both signals and cable emulation, and makes special cables unnecessary. Test devices are attached via the four USB receptacles (labeled J2, J3, J4, J6); when selected, these act as peripherals to the SUT. The Arduino monitors amperage and voltage being drawn from the SUT, and displays relevant information on the LCD display.

The 3101 is controlled via USB for running the different tests. The test controller proxy can be a desktop PC or a laptop.

(A variant of the 3101 is available that allows control via an audio connection to the headset jack of the SUT. See the Model 3102.)

There are three different ways of powering the 3101.

  • It can be powered via the USB Standard-B port on the Arduino.
  • It can be powered via an external 9V to 12V supply, attached to the Arduino.
  • It can be powered using a USB charger attached to J6, the Micro-B USB port.

A high-quality standard USB cable is supplied with the 3101, and is generally used for both power and control.


  • Everything you need to start testing immediately. Shipped as a fully assembled and tested unit, with Arduino board, a USB control/power cable, and preinstalled firmware.
  • Automated USB Type-C interoperability testing.
  • Transparent connection between SUT and DUT when in the connected state.
  • Impedance controlled, low loss USB data path.
  • Uses Pericom PI3DBS12412A in a 12Gbps, 8 to 4 differential channel multiplexer/demultiplexer switch for SuperSpeed signals.
  • Uses Fairchild FSUSB74. 4:1 High-Speed USB Multiplexer/Switch for USB2.0, CC, and SB signals.
  • Uses TI INA226 to measure voltage and current.
  • 10 milliohm, 0.5%, series current sense resistor.
  • Handles up to 20V and 5A on VBUS.
  • Uses IXYS CPC1907B SSR to switch VBUS on Type-C connectors.
  • Uses COTO C226S SSR to switch VBUS on USB 2.0 connectors.


In order to keep the 3101 cost-effective for a variety of applications, a few features were specifically omitted. Contact MCCI if you need more information.

  • The 3101 is not designed to handle VCONN powered devices.
  • The 3101 does not support automatic Type-C cable flipping.
  • The 3101 has been designed for USB 3.2 Gen 2 speeds, and has been tested with tested with some USB 3.2 Gen 2 products, but has not been fully qualified. Therefore, although we know of no specific problems, MCCI does not guarantee operation at USB 3.2 Gen 2 speeds with all hosts and devices.

Software requirements

Suitable software must be installed on each of the SUT, the test controller proxy, and the 3101’s Arduino.

When using the Microsoft-supplied test software, the requirements are as follows:

  • The SUT must be running the version of Windows for which interoperability testing is desired.
  • The test proxy controller must be running Windows 10.
  • The latest Microsoft MUTT ConnEx-C software package must be downloaded and installed on the proxy controller. It may be obtained from Microsoft via the “Tools in the MUTT Software Package” page.
  • The firmware in the Arduino must be updated to the version included in the Microsoft distribution.

The Microsoft software package includes utilities to update the firmware, switch between the peripheral ports, and send requests to simulate test cases. It also contains test driver packages that test the functionality of the buses, its controller, and devices connected to the bus.

MCCI also supports other test scenarios using a USB test control computer, with software available from MCCI, or with customer-written software. Customers can obtain that software directly from MCCI after registering their device.

The firmware for Model 3101 is open source and published on GitHub. Access it here.

Custom Variants

Special variants of the 3101 are available by request. Please write sales@mcci.com with your requirements.

The 2101 vs the 3101

MCCI also offers the Model 2101 USB 3.0 (3.2 gen 1) Connection Exerciser. The 2101 is designed with traditional USB Standard-A and Standard-B connectors, and uses mechanical relays to connect and disconnect the device under test from the system under test. The advantage of this compared to electronic multiplexing is that relays give a more accurate simulation of the physical disconnection. The disadvantage is that the relays required for the very high frequencies of USB 3.2 gen 1 are quite costly; so a multi-port configuration like the 3101 would be much more expensive.

The 2101 also differs in that it’s a smaller packaged unit that is more like traditional test equipment; whereas the 3101 is larger and ships without an enclosure. The 2101 is thus more suitable for travel or use by individual software developers; the 3101 is more suitable for regression test environments and engineering labs.

The 3101 allows direct testing of USB Type-C products, including many alternate modes. The 2101 also allows testing of USB modes of USB Type-C products, but requires the use of USB Type-C to Standard-A and/or USB Type-C to Standard-B adapters (not included with the 2101). The 2101 cannot be used in conjunction with most alternate modes.

The 3101 vs the 3102

The Model 3101 provides all the features required for testing Type C systems. For mobile phone test applications, MCCI also offers the Model 3102. The Model 3101 offers the most commonly used features from the Model 3102. It lacks the DTMF control capability, but retains the ability to be controlled via USB. The Model 3101 is intended to be powered via the USB cable from the control computer, and a suitable USB cable is supplied. The Model 3102 ships in addition with an external power supply and an audio patch cable.

The 3101/3102 vs the 3201

The Model 3201 provides all the control features of the 3101/3102. It adds a flexible cable for attaching to the system under test, and it integrates the Arduino function onto a single board that can be placed in an enclosure. The two legacy (type A and mini B) receptacles of the 3101 are replaced by Type C connectors (which only support USB 2.0 operation). However, because of the flexible cable, Thunderbolt 3 cannot be used with the 3201.