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.

USBLAN for Windows 10

January, 2017 - Windows 10 Anniversary Edition Support

For Windows 10 Anniversary systems the most recent version (USBLAN v2.4.11) has been specifically signed and is available on Windows Update.

January 4, 2016

Belcarra"s USBLAN DemoDriver for Windows 10 systems is now available from Windows Update.

To use this evaluation version  the device will need to offer Vendor ID 0x15ec and Product ID 0xd041 (refer to OEM Manual, section 2.0 Evaluation - Demo Driver ).

NOTE:  as this is an evaluation version it will run for only 30 minutes at a time.

November 25, 2015

Current USBLAN for Windows driver kits support Windows XP,  Windows 7, Windows 8.1 and Windows 10.

In the past Belcarra was able to create a single kit that would support all current Microsoft Operating Systems and the USB host would automatically select the correct driver and NDIS version.  New requirements for Windows 10 as noted here have necessitated that we now create 2 kits for customers devices:
Beginning with the release of Windows 10, all new Windows 10 kernel mode drivers must be submitted to and digitally signed by the Windows Hardware Developer Center Dashboard portal Windows 10 will not load new kernel mode drivers which are not signed by the portal.
Additionally, starting 90 days after the release of Windows 10, the portal will only accept driver submissions, including both kernel and user mode driver submissions, that have a valid Extended Validation (“EV”) Code Signing Certificate.

All releases of Belcarra's USBLAN for Windows 10 kits have EV certification, have been submitted through the Microsoft SysDev portal and have received a Microsoft digital signature.

Link to Driver Overview.

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.