mik3y/usb-serial-for-android

Android USB host serial driver library for CDC, FTDI, Arduino and other devices.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 5 minutes ago
Added to GitGenius on September 11th, 2026
Created on June 30th, 2013
Open Issues & Pull Requests: 30 (+0)
GitHub issues: Enabled
Number of forks: 1,693
Total Stargazers: 5,685 (+0)
Total Subscribers: 240 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Issue API getrepoissuespagesummary failed: 429 Rate limit exceeded. Please try again later.

Detailed Description

usb-serial-for-android is a driver library for communicating with USB serial devices on Android through USB Host Mode.

The library solves the problem of connecting Android devices to Arduinos and other USB serial hardware without requiring root access, custom kernel drivers, or the Android ADK. It implements drivers in pure Java for common USB-to-serial converter chips and generic CDC/ACM devices, exposing a standard serial port interface with read, write, and related functions that applications can use with their own protocols.

Developers should choose this library if they are building Android applications that need to communicate with USB serial devices and can target Android 3.1 or later. It works reliably on Android 4.2 and above. The library supports a wide range of hardware including FTDI chips, Prolific PL2303, Silicon Labs CP210x, Qinheng CH340 and CH341A, and devices implementing the CDC/ACM standard such as Arduino boards with ATmega32U4 and Microchip MCP2221. For devices not in the built-in list, the UsbSerialProber class allows custom matching rules, though CDC/ACM device detection now works by USB interface type rather than fixed vendor and product IDs. The project includes example code and references a more complete terminal application example that demonstrates background service connectivity and flow control.

The project maintains a straightforward integration path through standard Gradle dependency management. Development activity shows consistent engagement with device compatibility, as evidenced by the evolution from fixed VID/PID matching to interface-type detection for CDC/ACM devices. The codebase remains actively maintained with attention to expanding hardware support across multiple device families and protocols.