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 SOC, Arria 10 SOC)
    • NIOSII
    • x86PM
  • Microchip
    • ARM (SAM)
    • AVR32
    • PIC24
    • PIC32
  • Renesas
    • ARM (Synergy, RZ)
    • H8/300H
    • RX
    • SH
    • V850
  • Silicon Labs
    • EFM32
  • 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 Block Diagram

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:

Architectures

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