Raspberry Pi Networks with USBLAN

The Raspberry Pi Zero running Raspbian (Raspberry Pi OS, a Debian-based system) can use Networking over USB to connect to the internet via a Windows or Mac OS. This provides for a smart interconnected system for a very low investment, effectively the cost of the Pi Zero, a SD card and the USB cable.

Belcarra's Pi_Zero_Connected project is available on GitHub


The project goal is to automatically set up Networking over USB using a Gadget Device.

The project allows a Pi Zero (as an example) to be used for headless operation with a network connection through a desktop system AND without having to modify the Pi Zero system configuration after booting.  Additionally a USB Composite configuration is implemented that includes both a networking protocol (CDC-EEM, ECM, NCM or RNDIS) and Serial over USB (CDC-ACM).  This implements a serial console to the Pi.

Beaglebone USB TestDrive

Belcarra has created Beagle TestDrive, an edition of Belcarra’s USB Testdrive for the BeagleBone Black to allow rapid prototyping of networking over USB protocols.   Testdrive uses the Beaglebone as a proxy for an OEM device on the device side of the USB link.  Matching demo editions of Belcarra USBLAN for Windows are automatically installed on the host PC from Windows Update as necessary.

Beagle TestDrive is provided as a MicroSD SDHC image. The Beaglebone Black can boot TestDrive without modifying the onboard firmware.

Features of Beagle Testdrive

  • Modern iperf and iperf3 network test tools are available. These allow flexible network tests using either IPv4 or IPv6, UDP or TCP, various TCP options, and multiple streams. The tester should install iperf3 on the PC
  • Traditional web testing tools, either client or server are also available
  • Simple commands change the USB network configuration (protocol, hardware ID) dynamically until the next reboot, or select one of several USB configurations which take effect at the next boot.
For full details please refer to BeagleBone Black USB TestDrive Guide - 2016-08-15

Windows Driver Signing Requirements

The requirements for signing driver kits for Windows have changed as of January 2016, specifically:
  • All drivers for Windows 10 must be signed by Microsoft
  • Drivers for older versions of Windows may continue to be OEM signed
  • OEM signed drivers must use an SHA2 certificate
  • Drivers signed with an SHA 1 certificate and date stamped before January 1, 2016 will continue to work until January 1, 2017
  • HCK kits for Windows 8 are not supported (Windows 8 has been deprecated)

This table summarizes the available types of USBLAN for Windows kits.

Address Management and Device Discovery


This paper describes how to build and manage a TCP/IP network for USB devices.
Ethernet-style networking  can very simply be  extended to attached USB devices. Belcarra’s USBLAN for Window’s built-in DHCP server for address assignment, management and device discovery solutions has been implemented to fit within the network paradigm requirements. USBLAN for Window’s implements USB-IF (www.usb.org) Communications Device Class protocols (CDC-NCM, EEM, ECM and others) and will create an Ethernet-style networking segment for each attached USB device.
Networking over USB protocols such as CDC-ECM, Microsoft RNDIS, CDC-NCM, were originally designed to provide USB-mediated access to an external network, and address management was seen as a matter for the external network segment.  On such external segments, a DHCP server was usually available.
Now, however, the great majority of USB devices using these protocols are smart devices which use a network style command channel, but do not provide access to an external network medium.  Therefore, the network segment terminates at the device, and there are only two nodes on the network: the USB host (Windows) and the device.  The DHCP service within Belcarra USBLAN for Window’s is a special service for such network segments.
The following describes how the network layer (IP) addresses can be seamlessly set up on top of the link layer and some pointers and strategies on OEM software running on Windows co-operating with the device to enable network-based device discovery.

USBLAN v2.4.11 released

An evaluation version of Belcarra's USBLAN is now available from Windows Update for Windows 10 users.

To use this demo version of USBLAN for Windows the device will need to offer Vendor and Product ID’s as follows:
  • Vendor ID 0x15ec (Belcarra)
  • Product ID 0xd041 (DHCP on for all protocols, overriding the DHCPDType flag), or 0xd042 (DHCP always off, see section 5.4.1 of the OEM manual - download here)
To get the driver, simply ensure that the Windows system is connected to the Internet, plug the device in (configured with the correct VID/PID) and let Windows search Windows Update.  The protocol (CDC-ECM, CDC-EEM, CDC-NCM, RNDIS) is automatically detected. The INF file of the USBLAN evaluation driver creates global variables in the registry using Service name BelcarraDemoUSBLAN. These parameters can be modified later using RegEdit (see Section 5.2ff in the OEM Manual).  As noted above, the parameter DHCPDType in the demo is inferred from the Product ID and in particular setting it in the registry has no effect.

Please note this is an evaluation version only and will run for 30 minutes at a time. It must be re-plugged to continue use after time expires.

Windows Embedded Standard 7

Windows Embedded Standard 7 (WES7), is a componentized version of Microsoft’s Windows 7 operating system that can be easily configured to use Belcarra's USBLAN Networking over USB solutions.

The Belcarra USBLAN driver  is available from Windows  Update for evaluation (see manual).  Whereas for a standard Windows 7 system connected to the Internet, simply attach a device that offers the appropriate Hardware ID's (VID: 0x15ec / PID: 0xd031), allow the system to search Windows Update and install.  For WES7, the driver must be downloaded separately from Windows Update (download also available) and added to the WES7 image.  

Note: the evaluation version will run for only 30 minutes and then must be replugged to continue use.

Should you need assistance acquiring the .cab file or wish to receive an evaluation version that does not have the time limitation please contact us.