usbx Snapshot
  • The Industry Leading USB Solution
    • Host, Device, and OTG support
  • Small-footprint
  • Fast execution
  • Simple, easy-to-use
  • USB Host controller support
  • USB Device controller support
  • Extensive USB Host Class support
    • ASIX, AUDIO, CDC/ACM, GSER, HID, HUB, PIMA, PRINTER, PROLIFIC, STORAGE, SWAR
  • Extensive USB Device Class support
    • CDC/ACM, CDC/ECM, DFU, HID, PIMA (w/MTP), RNDIS, STORAGE
  • Pictbridge support
  • Custom class support
  • Advanced technology
    • 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
  • Broad USB controller support
  • Fastest Time-To-Market
  • Royalty Free
  • Full, highest-quality source code
  • Supports most popular architectures
  • (see below)
USBX Architecture Support
  • ARM
    • ARM7, ARM9, ARM11
    • Cortex-M, Cortex-R, Cortex-A
    • Cortex-Axx 64-bit
  • AndesCore
  • Analog Devices
    • Blackfin BF5xx, BF6xx, BF7xx
    • SHARC
  • Cadence
    • Xtensa
    • Diamond
  • CEVA
    • TeakLite-III
  • EnSilica
    • eSi-RISC
  • NXP
    • ARM (LPC, i.MX, Kinetis)
    • 68K
    • Coldfire
    • PowerPC
  • Imagination
    • MIPS32 4Kx, 24Kx, 34Kx, 1004K
    • microAptiv, interAptiv, proAptiv
    • M-Class
  • Intel
    • ARM (Cyclone)
    • NIOSII
    • x86PM
  • Microchip
    • ARM (SAM)
    • AVR32
    • PIC24
    • PIC32
  • Renesas
    • ARM (Synergy, RZ)
    • H8/300H
    • RX
    • SH
    • V850
  • Silicon Labs
    • EMF32
  • ST
    • STM32
  • Synopsis
    • ARC 600, 700
    • ARC EM, ARC HS
  • Texas Instruments
    • ARM (Tiva-C, Sitara, OMAP
    • C5xx
    • C6xx
  • Xilinx
    • ARM (Zynq)
    • MicroBlaze
    • PowerPC

USBX

USBX

The Industry Leading USB Solution

USBX is Express Logic's advanced, commercial 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.

USBX DEVICE STACK
USBX HOST API
OHCI, EHCI, Proprietary Host Controllers
CDC/ACM
HID
STORAGE
AUDIO
DFU
PROLFIC
USBX HOST STACK
PRINTER
PIMA (w/MTP)
USBX DEVICE API
Proprietary Device Controllers
PIMA
SWAR
USBX HOST API
HUB
ASIX
CDC/ECM
GSER
RNDIS
• Intuitive and consistent API • Noun-verb naming convention • All APIs have leading “ux_host_*” to easily identify as USBX• Blocking APIs have optional thread timeout• Please see USBX Host User Guide for more details
• Intuitive and consistent API • Noun-verb naming convention • All APIs have leading “ux_device_*” to easily identify as USBX• Blocking APIs have optional thread timeout• Please see USBX DEVICE User Guide for more details
USBX DEVICE API
USBX HOST STACK
• Supports many host controllers• Minimal 18KB FLASH, 25KB RAM • Automatic scaling• Support for multiple host controllers on same platform• USB low, full, and high-speed support• System-level Trace via TraceX• Intuitive USBX Host APIs in this form:ux_host_stack_*
• Minimal 0.3KB FLASH, 4KB RAM • Automatic scaling• System-level Trace via TraceX• Intuitive USBX Host APIs in this form:- ux_host_class_asix_*
USBX HOST ASIX
• Minimal 1.7KB FLASH, 2KB RAM • Automatic scaling• System-level Trace via TraceX• Intuitive USBX Host APIs in this form:- ux_host_class_hub_*
USBX HOST HUB
USBX HOST AUDIO
• Minimal 1.2KB FLASH, 4KB RAM • Automatic scaling• System-level Trace via TraceX• Intuitive USBX Host APIs in this form:- ux_host_class_audio_*
• Minimal 0.9KB FLASH, 8KB RAM • Automatic scaling• System-level Trace via TraceX• Intuitive USBX Host APIs in this form:- ux_host_class_pima_*
USBX HOST PIMA
• Minimal 1.4KB FLASH, 4KB RAM • Automatic scaling• System-level Trace via TraceX• Intuitive USBX Host APIs in this form: - ux_host_class_cdc_acm_*
USBX HOST CDC/ACM
USBX HOST PRINTER
• Minimal 0.8KB FLASH, 8KB RAM • Automatic scaling• System-level Trace via TraceX• Intuitive USBX Host APIs in this form:- ux_host_class_printer_*
USBX HOST GSER
• Minimal 0.6KB FLASH, 4KB RAM • Automatic scaling• System-level Trace via TraceX• Intuitive USBX Host APIs in this form:- ux_host_class_gser_*
USBX HOST HID
• Minimal 0.3KB FLASH, 4KB RAM • Keyboard, Mouse, and Remote support• Automatic scaling• System-level Trace via TraceX• Intuitive USBX Host APIs in this form:- ux_host_class_hid_*
USBX HOST PROLIFIC
• Minimal 1.5KB FLASH, 4KB RAM • Automatic scaling• System-level Trace via TraceX• Intuitive USBX Host APIs in this form:- ux_host_class_prolific_*
USBX HOST STORAGE
• Minimal 5.6KB FLASH, 4KB RAM • Automatic scaling• Integrated with FileX• System-level Trace via TraceX• Intuitive USBX Host APIs in this form:- ux_host_class_storage_*
• Minimal 0.6KB FLASH, 4KB RAM • Automatic scaling• System-level Trace via TraceX• Intuitive USBX Host APIs in this form:- ux_host_class_swar_*
USBX HOST SWAR
USBX DEVICE STACK
• Supports many device controllers• Minimal 10.5KB FLASH, 5.1KB RAM • Automatic scaling• USB low, full, and high-speed support• System-level Trace via TraceX• Intuitive USBX Device APIs in this form:ux_device_stack_*
• Minimal 0.8KB FLASH, 2KB RAM • Automatic scaling• System-level Trace via TraceX• Intuitive USBX Device APIs in this form:- ux_device_class_cdc_acm_*
USBX DEVICE CDC/ACM
• Minimal 1.5KB FLASH, 4KB to 8KB RAM • Automatic scaling• System-level Trace via TraceX• Intuitive USBX Device APIs in this form:- ux_device_class_cdc_ecm_*
USBX DEVICE CDC/ECM
USBX DEVICE DFU
• Minimal 1.1KB FLASH, 2KB RAM • Automatic scaling• System-level Trace via TraceX• Intuitive USBX Device APIs in this form:- ux_device_class_dfu_*
USBX DEVICE HID
• Minimal 0.9KB FLASH, 2KB RAM • Automatic scaling• System-level Trace via TraceX• Intuitive USBX Device APIs in this form:- ux_device_class_hid_*
USBX DEVICE PIMA (w/MTP)
• Minimal 5.2KB FLASH, 8KB RAM • Automatic scaling• System-level Trace via TraceX• Intuitive USBX Device APIs in this form:- ux_device_class_pima_*
USBX DEVICE RNDIS
• Minimal 2.3KB FLASH, 4KB to 8KB RAM • Automatic scaling• Integrated with NetX and NetX Duo• System-level Trace via TraceX• Intuitive USBX Device APIs in this form:- ux_device_class_rndis_*
• Minimal 2.3KB FLASH, 4KB RAM • Automatic scaling• System-level Trace via TraceX• Intuitive USBX Device APIs in this form:- ux_device_class_storage_*
USBX DEVICE STORAGE

Small-footprint

USBX has a remarkably small minimal footprint of 10.5KB of FLASH and 5.1KB RAM for USBX Device CDC/ACM support.    More...

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.

Fast execution

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

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    More...

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    More...

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,    More...

USBX supports popular USB device controllers from Analog Devices, Atmel, Microchip, NXP, Philips, Renesas, ST, TI and other vendors.

Extensive USB Host Class support

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

USBX Host provides support for most popular classes, including ASIX, AUDIO, CDC/ACM, GSER, HID (Keyboard, Mouse, and Remote), HUB, PIMA, PRINTER, PROLIFIC, STORAGE, and SWAR. Support for custom classes is also available.

Extensive USB Device Class support

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

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

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

UBSX 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 standards 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.    More...

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.    More...

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

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

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    More...

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 a commercial grade USB Host/Device solution distributed with full C source code.    More...

From the very beginning, USBX was designed to be a commercial 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:

USBX Source Code

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:    More...

USBX runs on most popular 32/64-bit microprocessors, out-of-the-box, fully tested and fully supported, including the following:

USBX Processor Support

** Please note that all timing and size figures listed are estimates and may be different on your development platform.