Host, Device, OTG & Extensive Class Support

USBX is Express Logic’s Industrial Grade USB solution designed specifically for deeply embedded, real-time, and IoT applications. USBX provides Host, Device, and OTG support, as well as extensive Class support. USBX is fully integrated with THREADX, FILEX, NETX, and NETX Duo. All of this combined with an extremely small footprint, fast execution, and superior ease-of-use, make USBX the ideal choice for the most demanding embedded IoT applications that require USB connectivity.

HUB
DFU
HID
HID

Small-footprint

USBX has a remarkably small minimal footprint of 10.5KB of FLASH and 5.1KB RAM for USBX Device CDC/ACM support. USBX Host requires a minimum of 18KB of FLASH and 25KB of RAM for CDC/ACM support.

An additional 10KB to 13KB of instruction area memory is needed for TCP functionality. USBX RAM usage typically ranges from 2.6KB to 3.6KB plus the packet pool memory, which is defined by the application.

Fast execution

USBX is designed for speed and has minimal internal function call layering and support for cache and DMA utilization.

All of this and a general performance oriented design philosophy helps USBX achieve the fastest possible performance.

Simple, easy-to-use

USBX is very simple to use. The USBX API is both intuitive and highly functional. The API

names are made of real words and not the “alphabet soup” and/or the highly abbreviated names that are so common in other file system products. All USBX APIs have a leading ux_ and follow a noun-verb naming convention. Furthermore, there is a functional consistency throughout the API. For example, all APIs that suspend have an optional timeout that functions in an identical manner for APIs.

USB Host controller support

USBX supports major USB standards like OHCI and EHCI. In addition, USBX supports proprietary discrete USB host controllers

from Atmel, Microchip, Philips, Renesas, ST, TI and other vendors. USBX also supports multiple host controllers in the same application.

USB Device controller support

USBX supports popular USB device controllers from Analog Devices, Atmel, Microchip, NXP, Philips,

Renesas, ST, TI and other vendors.

Extensive Host Class support

USBX Host provides support for most popular classes, including ASIX, AUDIO, CDC/ACM, CDC/ECM, GSER,

HID (keyboard, mouse, and remote control), HUB, PIMA, PRINTER, PROLIFIC, and STORAGE.

Extensive USB Device Class support

USBX Device provides support for most popular classes, including CDC/ACM, CDC/ECM, DFU, HID, PIMA

(w/MTP), RNDIS, and STORAGE. Support for custom classes is also available.

Pictbridge support

USBX supports the full Pictbridge implementation both on the host and the device. Pictbridge sits on top

of USBX PIMA class on both sides. The PictBridge standard allows the connection of a digital still camera or a smart phone directly to a printer without a PC, enabling direct printing to certain Pictbridge aware printers. When a camera or phone is connected to a printer, the printer is the USB host and the camera is the USB device. However, with Pictbridge, the camera will appear as being the host and commands are driven from the camera. The camera is the storage server, the printer the storage client. The camera is the print client and the printer is of course the print server. Pictbridge uses USB as a transport layer but relies on PTP (Picture Transfer Protocol) for the communication protocol.

Custom class support

USBX Host and Device support custom classes. An example custom class is provided in the USBX distribution.

This simple data pump class is called DPUMP and can be used as a model for custom application classes.

Advanced technology

USBX Host and Device support custom classes. An example custom class is provided in the USBX distribution.

USBX is advanced technology, including the following:

  • Host, Device and OTG support
  • USB low, full, and high-speed support
  • Automatic scaling
  • Fully integrated with THREADX, FILEX, and NETX
  • Optional performance metrics
  • TRACEX system analysis support

Fastest time-to-market

USBX has a remarkably small footprint of 9KB to 15KB for basic IP and UDP support.

USBX is easy to install, learn, use, debug, verify, certify and maintain. As a result, USBX is one of the most popular USB solutions for embedded IoT devices.

The following are some reasons for our consistent time-to-market advantage:

  1. Quality Documentation – please review our USBX Host and Device User Guides and see for yourself!
  2. Complete Source Code Availability
  3. Easy-to-use API
  4. Comprehensive and Advanced Feature Set

Royalty free

USBX is licensed royalty-free, for the lowest possible manufacturing cost. There are five basic types

of licenses and the ability to create a custom license for unique situations. Please see the licensing page for more information.

Full, highest-quality source code

From the very beginning, USBX was designed to be an Industrial Grade USB Host/Device solution distributed with full C source code.

Throughout the years, USBX source code has set the bar in quality and ease of understanding. In addition, the convention of having one function per file provides for easy source navigation. The following is an example of the USBX Host ux_host_stack_class_get.c function:

Supports most popular architectures

USBX runs on most popular 32/64-bit microprocessors, out-of-the-box, fully tested and fully supported, including the following:
  • Analog Devices: SHARC, Blackfin
  • ARM: ARM7, ARM9, ARM11, Cortex-M0/M3/M4/M7/A5/A7/A8/A9/A52/A53/A57/R4/R5
  • Cadence: Xtensa, Diamond
  • CEVA: TeakLlte-lll
  • EnSilica: eSi-RISC
  • Imagination: MIPS32 4K, 24K, 34K, 1004K, MIPS64 5K, microAptiv, interAptiv, proAptiv, M-Class
  • Intel: x36/Pentium, XScale, NIOS II, Cyclone, Arria 10
  • Microchip: AVR32, ARM7, ARM9, Cortex-M3/M4/M7, SAM3/4/7/9/A/C/D/E/G/L/SV, PIC24/PIC32
  • NXP: LPC, ARM7, ARM9, PowerPC, 68K, i.MX, ColdFire, Kinetis Cortex-M3/M4
  • Renesas: SH, HS, V850, RX, RZ, Synergy
  • Silicon Labs: EFM32
  • Synopsys: ARC 600, 700, ARC EM, ARC HS
  • ST: STM32, ARM7, ARM9, Cortex-M3/M4/M7
  • Tl: C5xxx, C6xxx, Stellaris, Sitara, Tiva-C
  • Xilinx: MicroBlaze, PowerPC 405, ZYNQ
** Please note that all timing and size figures listed are estimates and may be different on your development platform

Subscribe for our news