Go to file
Felix Hädicke e62e95be2e Rename Cp2102SerialDriver to Cp21xxSerialDriver and add Usb IDs for more Silabs devices
Conflicts:
	UsbSerialLibrary/src/com/hoho/android/usbserial/driver/Cp21xxSerialDriver.java
	UsbSerialLibrary/src/com/hoho/android/usbserial/driver/UsbId.java
	UsbSerialLibrary/src/com/hoho/android/usbserial/driver/UsbSerialProber.java
2014-06-14 12:53:34 -07:00
UsbSerialExamples API refactor, adding UsbSerialPort interface. 2014-06-14 12:53:34 -07:00
UsbSerialLibrary Rename Cp2102SerialDriver to Cp21xxSerialDriver and add Usb IDs for more Silabs devices 2014-06-14 12:53:34 -07:00
arduino Add example arduino program. 2012-08-30 17:08:44 -07:00
.gitignore Add gitignore. 2012-10-10 21:45:48 -07:00
CHANGELOG.txt Add Leaflabs Maple to CDC probe table. 2013-04-07 22:53:21 -07:00
LICENSE.txt Initial commit. 2011-12-28 16:29:17 -08:00
README.md Update README.md 2014-03-03 23:44:06 -08:00

README.md

usb-serial-for-android

This is a driver library for communication with Arduinos and other USB serial hardware on Android, using the Android USB Host API available on Android 3.1+.

No root access, ADK, or special kernel drivers are required; all drivers are implemented in Java. You get a raw serial port with read(), write(), and other basic functions for use with your own protocols.

Quick Start

1. Download usb-serial-for-android-v010.jar

2. Copy the jar to your Android project's libs/ directory. (See Android's FAQ for help).

3. Copy device_filter.xml to your project's res/xml/ directory.

4. Configure your AndroidManifest.xml to notify your app when a device is attached (see Android USB Host documentation for help).

<activity
    android:name="..."
    ...>
  <intent-filter>
    <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
  </intent-filter>
  <meta-data
      android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" 
      android:resource="@xml/device_filter" />
</activity>

5. Use it! Example code snippet:

// Get UsbManager from Android.
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);

// Find the first available driver.
UsbSerialDriver driver = UsbSerialProber.acquire(manager);

if (driver != null) {
  driver.open();
  try {
    driver.setBaudRate(115200);
    
    byte buffer[] = new byte[16];
    int numBytesRead = driver.read(buffer, 1000);
    Log.d(TAG, "Read " + numBytesRead + " bytes.");
  } catch (IOException e) {
    // Deal with error.
  } finally {
    driver.close();
  } 
}

For a more complete example, see the UsbSerialExamples project in git, which is a simple application for reading and showing serial data.

A simple Arduino application is also available which can be used for testing.

Compatible Devices

usb-serial-for-android is written and maintained by mike wakerly.

This library is licensed under LGPL Version 2.1. Please see LICENSE.txt for the complete license.

Copyright 2011-2012, Google Inc. All Rights Reserved.

Portions of this library are based on libftdi (http://www.intra2net.com/en/developer/libftdi). Please see FtdiSerialDriver.java for more information.

Help & Discussion

For common problems, see the Troubleshooting wiki page.

For other help and discussion, please join our Google Group, usb-serial-for-android.

Are you using the library? Let us know on the group and we'll add your project to ProjectsUsingUsbSerialForAndroid.