ARM64 Support for Windows 10 and Windows 11

 Belcarra is pleased to announce that their USBLAN Windows 10 and Windows 11 drivers will support servers, desktop PC's, and mobile devices built on the ARM 64 architecture.

 

Windows 7, 8, 8.1 Kits Discontinued

Belcarra's USBLAN for Windows 7, Windows 8 and Windows 8.1 digitally signed OEM kits can no longer be made available.  

Historically we cross signed our drivers with a code signing certificate that would authenticate to a Microsoft root certificate using a cross-signed intermediate (i.e. issued to DigiCert and issued by Microsoft).

Regrettably, this is no longer permitted, reference article  


which basically says:

"Cross-signing is no longer accepted for driver signing. Using cross certificates to sign kernel-mode drivers is a violation of the Microsoft Trusted Root Program (TRP) policy. Certificates in violation of Microsoft TRP policies will be revoked by the CA."

 

“If your driver runs on Windows 7, 8, or 8.1, your driver must be signed through the Windows Hardware Compatibility Program. To get started, see Create a new hardware submission ."





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

Address Management and Device Discovery

Overview

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.

Microchip PIC32 USBLAN Demo

The Microchip PIC32 Microcontroller allows for implementation of a Full Speed USB Device.

Implementing a Networking over USB solution allows a PIC32 based design to connect to a Microsoft Windows system and use TCP/IP network connections using the Belcarra Windows USBLAN Class driver



Belcarra’s implementation of Networking over USB for the Microchip PIC32 is a very low cost networking solution for PIC32 projects, eliminating the need to add an Ethernet chip while using less Flash and RAM resources.

Full details (.pdf) and demonstration kit download link available here.

Using a data proxy for web access

Belcarra USBLAN for Windows allows a small 2-node private network to be established over a USB link from a device to a Windows host.

If the device has a need to access the Internet for WEB requests, then the simplest solution to satisfy the competing concerns of security and ease-of-use is a proxy server on the Windows machine. After a link is established, the device sends web requests to the Proxy Service on the Windows machine. The Proxy Service on the Windows side listens for such requests, and acts and an agent for the USB Device fetching the web pages and content and returning them to the USB Device.

Where is the proxy?

From the viewpoint of the device, the Windows server is the Proxy Server (implemented as a Windows Service). We assume that the application on the device can discover the IP address of the Windows side of the USB link.
For example the Windows System might be at 192.168.100.1 whereas the device itself is at 192.168.100.2. To avoid conflicts an alternate port is used for the Proxy Service, e.g. 8080.

Microsoft Operating Systems,Versions and NDIS Versions

Windows operating system,major and minor version numbers of the operating system support for NDIS versions, are described in the following table.


Operating System
Version number
NDIS version

Windows 8
6.2
6.3
Windows 7
6.1
6.2
Windows Vista SP1
6.1
6.1
Windows Vista
6.0
6.0
Windows XP
5.1
5.1



Evaluating USBLAN with Windows 8

Belcarra’s evaluation version of USBLAN for Windows is not available directly from Windows Update for a Windows 8 user at this time, but it can simply be installed locally.

First you will need a copy of the Microsoft-signed Belcarra Demo driver.

A downloadable Power Point Presentation is available here.
(free PowerPoint 2010 viewer)

Please note that this is an evaluation version that will run for only one hour at a time. It must be re-plugged to continue use after the one hour expires.

USB TestDrive - Panda

Belcarra supports a testing environment for testing Networking over USB protocols. This paper explains the Testdrive PandaBoard distribution (available here), how to install it and how to use it.

Introduction

For some time now Belcarra has made available a USB test package system for the Gumstix Overo Earth and related boards. This package is ultimately based on the Angstrom system.

The goal of Testdrive Panda is to extend the project to newer systems using the TI Pandaboard. The decision was made to use Ubuntu instead of Angstrom because it’s possible to put a complete development system on board the distribution -- so if you want to test with an additional tool -- just load it on the board either with the package manager or in the worst case build it from source, all on the board, no cross-compilation needed.

However, another goal of the effort was to make this mostly unnecessary. For example, the standard network performance tool iperf is not part of the Ubuntu distro that we used, but we added a source for iperf to the package manager’s source list.

In addition to this, we customized the distro to use a more recent Linux kernel  with a customized configuration streamlined for USB testing.

What's new in 2.4.2

USBLAN 2.4.2 is now available from Windows Update by using vid/pid 15ec/d031

This new release includes support for:
  • USB 3 - INF match implemented
  • IOCTL feature - For all protocols an IOCTL that can be used to make a list of attached devices, along with the any of the following information for each USBLAN device attached
    • - VID
    • - PID
    • - Manufacturer name 
    • Product Name
    • - Serial Number
    • - DHCP host IP
    • - DHCP device 
  •  MaxTransferSend/MaxTransferRecv - registry entries which tweak the send or receive strategy for RNDIS, EEM or NCM
  • jumbo frames

Jumbo Frames

The CDC-ECM protocol (and other networking over USB protocols) describe procedures to transport 802.3-like frames over USB. Standard physical Ethernet frames have an MTU (maximum transfer unit) of 1500 bytes, but there is no such limitation in USB. USB transfers can be up to 64KB in size.

In the world of physical Ethernets, Gigabit Ethernets also see the 1500 limit as insufficient, and so there is provision in the network stacks of Windows, (embedded) Linux and other operating systems for jumbo frames. The actual MTU is a property of the network card and its driver. There is a procedure for two ends of an Ethernet link to discover the actual MTU in effect.

The Gadget implementation of CDC-ECM (the g_ether module) can be readily patched to support larger MTU’s.

ReDirection Service

Data Collection and Forwarding Overview

http://www.prweb.com/releases/2012/4/prweb9361487.htm 

Small devices have a need to connect to Cloud based servers to deliver data for compilation, processing and use from Web Based applications. While more expensive devices may use WiFi (or Ethernet) to achieve this purpose, low end devices can use Networking over USB to accomplish this task at a lower cost by simply tethering the device to a desktop system.

USB TestDrive

Belcarra’s USB TestDrive is a Linux Environment based on the Gumstix Overo hardware development system that uses TI’s OMAP 3530 SOC. The TestDrive system can be used to evaluate USB Networking protocols and implementations such as:
Linux Gadget g-ether network and filestorage function drivers.
Belcarra CDC-NCM, EEM, ECM and mass storage function drivers.
Belcarra’s USBLAN class driver for Microsoft Windows.

The TestDrive kit is complete with ROOTFS, Compiled 2.6.34 kernel and script to create an SD card to boot the Overo device.
Network test tools are installed and ready to use as soon as the system boots. Gadget or Belcarra modules can be loaded and unloaded for testing with a simple shell script.
For more information:  http://link.belcarra.com/TestDriveOverview

Data Transfer Rates RNDIS vs Belcarra USBLAN for Windows

Measured in MegaBytes per second (MB/s) the graph illustrates gadget CDC-ECM protocol data transfer speed vs. Microsoft's RNDIS protocol using three simple web-related network tests all done with Linux-line tools, on an Overo Gumstix, or on the PC using the Cygwin tools to give a Linux-like environment (see www.cygwin.com).


  • wget (OUT) -- using wget on the device to retrieve a large file.  The traffic measured is in the OUT direction. Output (file retrieved) is discarded.
  • wget (IN) -- using wget on the PC to retrieve a large file. Output is discarded
  • wget OUT- bidirectional
  • wget IN - bidirectional
  • combination of the previous 2

Microsoft's RNDIS vs. Belcarra's USBLAN for Windows - Deployment Costs

RNDIS is Microsoft's solution for providing a networking over USB solution using their proprietary RNDIS protocol.
USBLAN for Windows is Belcarra’s solution for providing a networking over USB solutions using the industry standard protocols CDC-ECM, CDC-EEM and CDC-NCM.
While there are no licensing costs associated with the use of Microsoft’s RNDIS driver this does not mean that the actual cost of deploying a commercial product will be less when RNDIS is implemented.

The Total Cost of Deployment for a USB device using a network over USB solution is composed of multiple items:
  • cost development of the device side protocol support 
  • cost development and testing of the Windows Installation kit 
  • cost of setting up Windows Logo Kit test setup 
  • cost of doing Windows Logo Kit testing 
  • opportunity costs associated with delays while developing the installation kit 
Device Side Implementation Costs
Also support for RNDIS is limited to Windows based systems on the host side. This means that the device must still support another standard (such as CDC-ECM) for compatibility to Linux or Macintosh hosts.

Windows Logo Kit Testing Setup
Windows Logo Kit testing requires:
  • Server 2008 system to run DTM Studio 

Microsoft's RNDIS vs Belcarra's USBLAN for Windows

Zero install solution is a myth
Regardless of protocol (RNDIS or CDC-ECM) you will need to have an INF file somewhere on your Windows system. This INF file can be installed seamlessly from Windows Update (the driver repository part of Windows Update), or it can be copied onto the system by the end user as part of a driver install package. The process is actually identical in both cases. In one case Windows Plug-n-Play support is looking for and downloading the driver installation kit and using it directly while in the other the user downloads the driver installation kit and tells Windows Plug-n-Play where the kit is unpacked.

Whether the RNDIS / USBLAN for Windows driver is from an OEM website download, from a CD, or from Windows Update, the contents of the driver installation kit will be almost identical, namely an INF file, one or more SYS files and a Catalog file (contains the signatures for the INF and .sys files). [The CD / website zip file may optionally have an additional README and possibly a setup.bat to run DPInst.exe.]

USBLAN from Windows Update Installs Seamlessly
For 99% of Windows 7 users who go with the Microsoft default OS setup and have an active internet connection (and a legal, activated copy of Windows!) Plug-N-Play will automatically find and install the Belcarra USBLAN driver. The user will see a small 'New Hardware Found' applet icon in the toolbar. This can be clicked on and will tell that Windows Update is being searched, etc.. No other user interaction should be required

USBLAN and Gadget EEM

The CDC EEM protocol allows multiple network frames to be aggregated into a single CDC-EEM USB Bulk transfer. This allows for higher bus utilization and higher overall network throughput than the more commonly used CDC ECM (Ethernet Control Model) and Microsoft’s proprietary RNDIS protocols.

The CDC-EEM protocol also supports a streaming mode where the sender can send reasonably large CDC-EEM transfers even when the receiver does not know what the maximum size transfer is. This is achieved by ensuring that the CDC-EEM sender always terminates a CDC-EEM transfer with a short or Zero Length packet. The Belcarra USBLAN driver supports both frame aggregation and streaming with the CDC-EEM protocol.

Favourites