MCCI Data Dump software stack is a portable USB firmware development kit for adding USB device support to embedded products based on 32-bit processors – FT90x product series.

To ease the compiler environment, the MCCI USB DataPump software stack already integrate into IDE – Eclipse with FTDI FT9xx coding development in library format.

MCCI USB Device Software Examples:

1. MCCI USBD Audio Loopback Example

This example creates a USB Audio device with a virtual USB Speaker and Microphone. It will enumerate as a USB Audio Class device on the PC with a speaker and microphone as figure 1 & 2. Data is internally looped back from the speaker interface to the microphone interface for illustration.

Navigate to Control Panel ->  Hardware and Sound -> Manage Audio Devices. MCCI(r) Audio Demo Loopback device should be visible in both the Playback and Recording tabs as shown in figure 3.

Figure 1. Create Speakers Device in Playback under Sound Manager

Figure 2.  Create Microphone Device in Recording under Sound Manager

Figure 3. Loopback Test


This example creates a USB Mass Storage Class Device using Bulk Only transport. It will enumerate as an USB Mass Storage Class Device on a PC and the user can perform various file operations on an SD card mounted on the FT90x EVM.

After SD card mounted on the FT90x EVM, open a Windows Explorer window and navigate to “My Computer”. A removable disk corresponding to the SD Card connected to FT90x EVM should be visible as shown in figure 4.

The drive can be accessed and normal file operations (create file, read, write etc.) can be done on it.


Figure 4. Create Mass Storage Class Device in Windows Explore


This example emulates a Communications Device Class (CDC) Abstract Control Model (ACM) device.
When connected to a host, the operating system on the host can open a Virtual COM Port (VCP) to the CDC ACM device. Data sent from the Host over this VCP is echoed back to the Host via the same VCP.

A new VCP corresponding to the CDC-ACM device should be enumerated in Windows. In case Windows is unable to install the driver for this device the user must install the .INF file included with this example.

Open a new terminal to this VCP and type a message (e.g. “Hello World”). The entered string will be echoed back to the terminal.

4. MCCI USBD HID Examples

This example creates a USB Human Interface device, it will enumerate as a USB Human Interface Device (HID) on a Host PC.

A new USB Input Device shall be visible in Windows device manager.

Alternatively software such as Microsoft USBView can be used to view the descriptors of the attached device. This is shown in figure 5 & 6.

Figure 6 Device Descriptor View in Microsoft USBView

Figure 5 Create HID Device in Windows Device Manager


This example creates a Remote Network Driver Interface Specification (RNDIS) compliant device when connected to a USB host. The FT90x device is the network device that provides network connectivity to the host PC over USB.

A USB RNDIS device is implemented as a USB Communication Device Class (CDC) device with two interfaces. A Communication Class interface, of type Abstract Control, and a Data Class interface combined to form a single functional unit representing the USB Remote NDIS device. The Communication Class interface includes a single endpoint for event notification and uses the shared bidirectional Control endpoint for control messages. The Data Class interface includes two bulk endpoints for data traffic.

The example illustrates the RNDIS function by enabling the FT90x to appear as a USB-to-Ethernet bridge.

After enumeration on the Host PC, the RNDIS device should appear as a new Network Adapter in Windows device manager.

The host PC should be able to browse the internet if the Ethernet cable on the FT90x EVM is connected to the internet. To test, open a browser and navigate to

Figure 7 Create RNDIS Device in Windows Device Manager

6. MCCI USBD Video Example

This example creates a simple USB Video Class (UVC) device.

The FT90x will enumerate as a UVC device and a dummy image/video can be viewed from the Host PC. The image is sent in MJPEG format.

After enumeration on the Host PC, the UVC device will appear as a USB Composite device on the Host PC.

Any PC application that accepts video input like a MyCam application, VLC player or Skype can be used to view the default video data. The video capture shows the Bridgetek CleO board logo (Figure 8) and a still image capture will show the FT900 logo (Figure 9). Both images are 160×120 resolution JPG files stored in the file usbkernappvideodemovideodemo_mjpegimage.c


Figure 8 CleO Logo


Figure 9 FT900 logo