Cross-platform USB API for Windows, macOS and Linux
TL-USBAPI is a host-side, cross-platform, generic library for USB device communication. It is typically used to access a vendor-specific USB interface implemented in device firmware. Such an interface can implement data endpoints and or vendor-specific SETUP requests.
The library provides a uniform C-style programming interface across all supported operating systems enabling higher software layers to be implemented in a platform-independent way.
The overall software architecture is shown below.
Supported Operating Systems
- Windows 10, 32 bit and 64 bit
- Windows 8/8.1, 32 bit and 64 bit
- Window 7, 32 bit and 64 bit
- macOS 11, Intel and ARM platform
- macOS 10.12 to 10.15
- Linux, 32 bit and 64 bit
TL-USBAPI Key Features
- Supports USB 2.0 full speed and high speed, and USB 3.0/3.1/3.2 super speed or higher
- Supports vendor-specific USB interfaces with or without data endpoints
- Supports bulk mode IN and OUT data endpoints
- Supports interrupt mode IN and OUT data endpoints
- C-Style, script-friendly, cross-platform programming interface
- SDK with sample code available
- Driverless operation on Windows 10 (if supported by device firmware), no Administrator rights required
- Driverless operation on macOS and Linux
Software Development Kit (SDK)
A software development kit is available for each supported operating system. The SDK enables developers to integrate the TL-DFU API into their applications. The SDK includes:
- C API declaration (.h file) and reference documentation
- Source code of a command line based sample application
Some examples where the TL-USBAPI solution is useful are given below.
- Private communication interface for a USB Audio Class 2.0 or Audio/MIDI 1.0 class compliant device. Such a device can implement a vendor-specific bulk-mode interface in addition to the audio class.
- Vendor-specific bulk-mode USB interface as a replacement for a HID interface that is used for private device communication. See also the comparison below.
- Entirely vendor-specific device implementation (no class drivers) which needs to support multiple operating system platforms.
Comparison with the Widely Used HID Approach
Some advantages over the HID (human interface device class) based approach are:
- Private and hidden device on Windows side. The device is identified by a unique ID (interface GUID) and can be enumerated by dedicated applications only. It is not visible to other applications.
- Better throughput. 10..20 MBytes/s per endpoint can be achieved at USB high speed.
- End-to-end flow control in both IN and OUT direction. The Windows HID driver may lose data in IN direction if the application is not consuming data fast enough.
- Less restrictive on transfer message size. Transfer size is variable and can be up to 256 KBytes. Typically it is limited by memory resources on embedded side only.
Free Demo, Licensing conditions & Prices
Current Version: 1.0
To receive a free demo, prices or license agreement, please fill out the contact form.
The free evaluation version of the TL-USBAPI works for an interval of 60 days without any limitation. After that evaluation period has expired, the driver stops working.
NOTE: The driver described on this page is *not for use by end users*. It will not help solve any problems you may experience with a consumer device such as a webcam, camcorder, card reader, external sound card, etc. Thesycon’s device drivers are software components intended to be used by hardware or software manufacturers to create end products.
Software made in Germany
Our software is purely designed and implemented by our team in Germany - no outsourcing. Technical support is provided directly by the developers.
USB Vendor and Product ID
For each USB device model an official USB vendor ID (VID) is required. Vendor IDs must be unique and will be assigned by the USB Implementers Forum (www.usb.org). Registration fees will be charged.
Thesycon owns a USB vendor ID and provides a subset of product IDs (PID) to licensees of Thesycon drivers.
© 2021 THESYCON