Published using Google Docs
Belcarra Windows USB TestDrive Setup
Updated automatically every 5 minutes

Belcarra TestDrive

Windows Setup

This document is part of a series about Belcarra’s USB Testdrive, a quick and easy system for setting up and testing USB solutions between a Windows host and a Gumstix Overo.

The TestDrive system can be used to test and evaluate various Networking over USB solutions. This document describes

A USB system consists of a host and one or more peripherals, also known as targets. The TestDrive system uses Windows (all recent versions) as the host environment, and the Gumstix Overo as the target. 

Windows Setup and Testing

A base installation Microsoft Windows does not include many tools needed to test a USB system. For the TestDrive, an initial focus of testing is networking using tools available in the Cygwin Project.

This project provides a variety of Linux network tools and scripting tools so that tests can be assembled from the simple scripts. Some are provided by Belcarra in the TestDrive kit, but the user should have no difficulty in constructing other tests that test aspects not covered by the kit, all without writing a line of C code.

In addition, most of the scripts will be symmetric, i.e. will work with minimal modification on the Overo device, allowing device-based tests of the USB link.

Windows Tools

The following Windows programs will need to be installed.  Visit the web site listed for download  and installation procedures.

Cygwin Installation

The Cygwin software suite can be found at  Once there you can find directions for installing the suite on your computer.  A basic introduction to Cygwin can be found at

Additional Tools - Cygwin

The default installation of Cygwin does not include some tools which will be needed for USB testing.  The required tools can be downloaded with the installation if they are selected from the package installation window which the setup program displays.  To add packages click on the small box next to the category to get a list of packages in that category.  Find the package and click on the word “Skip” (or the circular arrow icon) to add it to the download.

This is a list of required packages and the categories they are in:

Test scripts

A set of test scripts to assist in the operations that follow is available for download from Belcarra.  The scripts include the following

Anatomy of network tests

Network stages are best conducted by steps, from basic ping to long term stress tests.  These are all described below

Network link setup

The first step is to choose a protocol: CDC-EEM, CDC-ECM, or RNDIS. Belcarra USBLAN supports CDC-EEM and CDC-ECM. CDC-EEM in particular has better performance than RNDIS or CDC-ECM.  The tools described below can be used to confirm this.

Belcarra USBLAN has a time limiited (60 minutes) demonstration version which supports CDC-ECM and CDC-EEM on two special Product ID/Vendor ID pairs:

USBLAN includes a built-in DHCP server. This feature is activated for Demo pair  1, but not for Demo pair 2.  When the USBLAN DHCP server is active, and Windows is set up as a DHCP client (the default), the Windows side will receive the address and the Overo side will receive the address

Network link configuration

By DHCP (see above), determine the address of the Overo end of the link and write it to a Cygwin shell variable.


Network link validation

The first test of a network link is to make sure that layer 3 (IP) packets can be passed back and forth. This, of course, is done with the ping command, basic and flood version.

Windows 7 note

Note: ping and flood ping are restricted in Windows 7.  To use these capabilities, run Cygwin as an administrator. This can be done in two ways:

Basic ping

Basic “ping” issues an ICMP echo request. If the link is set up correctly, the other end of the link will reply.  The requests are sent once per second.  

A basic ping request is sent as follows in Cygwin:

ping $IP packetsize count  #IP should contain the Overo IP address

The parameters are

Note: This command may not work as expected if the Cygwin version of ping is not installed (Windows version is substituted) also has its own ping command with different arguments.  To determine which ping you are using, do this:

type ping

The reply /usr/bin/ping indicates the Cygwin version.

Flood ping

Using Cygwin, you can greatly increase the stress on the link by adding the flood option to  a ping command. This causes the ICMP ECHO requests to be sent 100 times per second.

The output format is changed.  A dot is printed for a block of outgoing requests, and erased for replies received.

ping -f $IP

To increase the stress further, increase the packet size:

ping -f $IP 1500

On the Overo side, flood ping is done in a slightly different way:

ping -f -s 1500 $IP

The pingall script

Belcarra has created a script called “pingall” which generalizes flood ping to try every size of test packet from a given minimum (typically 56) to a given maximum (typically 1500).


This script is contained in the test scripts archive described in the Test Scripts

Network benchmarking

Networks can be benchmarked and put under long-term stability tests two tools

HTTP Tests

Web/HTTP tests have the advantage that they are representative of practical use of the USB network link. The only complication is that in order to properly capture results in a simple way, a command-line web client should be used.

Using Cygwin,  both directions of HTTP operations are symmetrical

Test files and Apache

The WIN32 version of Apache typically creates the document root as a place like C:/Program Files/Apache Software Foundation/Apache2.2/htdocs. Note the use of / in place of \ for pathnames in Apache and Cygwin.  For testfiles, download and unpack Belcarra’s archive of test files ( see Downloads page) and copy them to the document root.  These files have names and sizes as follows

Basic HTTP tests

A basic HTTP test is extremely simple:

wget -O /dev/null http://$IP/filename

Here the option -O /dev/null means to discard the file.  This is important for two different reasons

Here for example is a simple basic Cygwin (Windows) or Linux (Overo) test loop:


IP=   # IP address of Overo side

while true; do # infinite loop

        echo “Starting run $run”

        for suffix in 15 16 17 18; do  # The four biggest test files

                wget -O /dev/null http://$IP/test$suffix


        echo “Run $run finished”

        run=`expr $run + 1`


The procedure is identical from Cygwin and the Overo.  The IP addresss in the two cases will, of course, be different.

Benchmarking with  the iperf tool

iperf is a widely used tool to stress a network link by generating random traffic.  The are two roles, client and server.  The server side reflects the data back to the client. The iperf tool is available in Cygwin, and it is pre-installed in the Overo Testdrive root filesystem.

The iperf tool has many options. They can be found by issuing a help request:

iperf --help

Here is a useful iperf client command:

iperf -c -t 60 -f M -i 2 -l 32K -d

These options mean:

The following variant just suppresses some useless output lines:

iperf -c -t 60 -f M -i 2 -l 32K -d  | grep -v ID

The server side is set up more readily

iperf -s -f M -i 4  

To run a test within a single screen, here is a possible procedure


        The iperf system is capable almost infinite variation, including the following

Belcarra Windows USBLAN Evaluation Driver

Belcarra’s USBLAN Evaluation Driver is available via Windows Update. It is available for use when a device using either of the following Vendor / Product ID’s is plugged into Windows.

  1. 15ec / d001 - enable the built-in DHCP service
  2. 15ec / d002 - disable the built-in DHCP service

Please note that the evaluation driver will only work for sixty minutes at a time.

Related Documentation

Related Sites

Copyright ©2005-2011 Belcarra Technologies (2005) Corp. 

Document Created: April 2011