mik3y/usb-serial-for-android

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

View on GitHub ↗Jump to charts ↓Open shareable report →

Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 1 hour ago
Type:Library / SDKCategory(s):AndroidEmbedded & IoTMobile & Desktop
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,695
Total Stargazers: 5,698 (+0)
Total Subscribers: 240 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 7.9 hours
Mean response time: 45.3 days
90th percentile: 41.6 days
Tracked items: 55

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 13
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 920 days
Stale 30+ days: 13
Stale 90+ days: 12

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • question (20)
  • solution-proposed (10)
  • not-reproducible (8)
  • build (6)
  • invalid (6)
  • bug (5)
  • enhancement (5)
  • stale (5)

Most active issues this week

Sign in to see which issues are moving.
Sign in

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.