Tools for configuring and working with Linux Gadget available on GitHub

We have made the above available as part of our ongoing efforts to assist developers who want to implement USB devices. This package contains tools for configuring Gadget USB Devices and integrating with systemd.
It relies on the Gadget ConfigFS module libcomposite to create and manage Gadget USB Devices.

Microchip PIC32MZ Network over USB Demo Kit available on GitHub

This is a demonstration kit for the Belcarra PIC32MZ USBLAN Driver using either of Microchip's PIC32MZ EF Starter Kit or PIC32MZ EF Curiosity Board.

The kit demonstrates how Networking over USB can be used as an alternative to Ethernet or WiFi and provide lower cost networking to a Microchip PIC32MZ based board with performance that is close to Ethernet at over 80Mbps per second.

Networking over USB allows a point to point network connection to be used between the PIC32MZ board and a Windows, Mac or Linux host.

This kit is based on the Microchip Harmony 3 Framework demonstration project however it is not necessary to have the Harmony 3 Framework or the MPLAB Code Configurator installed.



MUSBLAN is an adaptation of Belcarra Technologies USBLAN for Windows to the MacOS (10.11.1 and later) environment.

MUSBLAN focuses on three protocols for networking over USB: Microsoft RNDIS, CDC-EEM and CDC-ECM subset. Kits are protocol-specific.

Parameters of a kit

An MUSBLAN kit has the following parameters:

  • USB Vendor/Product ID/Interface triples (driver personality information). 
  • IP address of a Virtual Network Interface in MacOS which is bridged to the attached USB device(s). 
  • Protocol: CDC-ECM subset, EEM or RNDIS. Other protocols (ECM, NCM) on request.

Automatic system configuration

The MUSBLAN system offers a DHCP service to both the MacOS host and one or more attached devices, forming a network segment of those network nodes.  The host IP address is a kit parameter, always ending in 1, e.g.  This address is mapped to a Virtual Network Interface in the System Preferences Network pane on the Mac. Attached devices take sequential positions, e.g.,  In this way both ends of the link can be DHCP clients and yet know the IP address of the remote end of the link.

Contents of a Kit

MUSBLAN is provided as a "Kext", kernel extension package, including preinstall and postinstall scripts which first remove previous instances, unload possible conflicting extensions, install the new kernel extension, and then load it.

MacOS Security Policy

MacOS security policy now requires that kernel extensions from third parties be approved by the user in the Security&Privacy pane of System Preferences or during system boot immediately after installation.


An evaluation version of MUSBLAN  is available to OEM's upon request

Windows 7 Unpatched

Installing Belcarra USBLAN on a Windows 7 system that is not up to date with security patches may fail.

Running the setup.bat file which uses DPInst.exe to preinstall the driver will work correctly, but after plugging your device in you may see the following or similar dialog boxes.

In the Device manager you will see an error icon next to the network driver associated with your device. These indicate that the target Windows 7 system does not have the current set of root certificates and security patches.

USBLAN 2.4.11 and later installation kits will have an additional win7up directory containing drivers signed according to the requirements for an unpatched version of Windows 7.

NDIS 6.3 - InstantGo Developer Notes

Network Device Interface Specification (NDIS) 6.3, included with Windows 8 and newer Microsoft Operating Systems implement new power management capabilities especially for devices such as tablets and 2 in 1 systems..

The following engineering notes (Stuart Lynne) addresses a particular feature known 
variously as:
  • InstantGo
  • AOAC (Always On / Always Connected)
  • Connected Standby
InstantGo capable devices (aka Windows on Tablets) are designed to minimize power consumption and extend battery life. If Windows determines that a connected device is not being actively used it will attempt to suspend it.

Simple CDC-ECM network using Belcarra's USBLAN for Windows

The following information outlines how to configure and load the Linux gadget modules to setup a simple USB CDC-ECM portocol network using Belcarra's freely available evaluation version of USBLAN for Windows.

Firstly,take a Linux kernel and reconfigure it as follows:

- Add the following line if not present
- Remove the following lines if present