diff --git a/Compatible-Android-Devices.md b/Compatible-Android-Devices.md index 2589acc..48f3b9a 100644 --- a/Compatible-Android-Devices.md +++ b/Compatible-Android-Devices.md @@ -19,14 +19,11 @@ usb-serial-for-android is compatible with many Android devices. These are the o * ASUS Zenfone 4 (reported by Kevin Cheng) * Nexus 6 (Motorola), Android 7.1.1 +There are many compatible devices that are not listed, because no one has confirmed them. -There are many compatible devices that are not listed, because no one has confirmed them. To report a new device, please let us know on the discussion list. ## Known Broken Devices -* LG Nexus 4 - - The `android.hardware.usb.host` feature has been disabled system-wide because the hardware "[cannot supply 5V](https://android.googlesource.com/device/lge/mako/+/fe9f2793424c61588c093df951733347d0d24df4)". - +* LG Nexus 4. The `android.hardware.usb.host` feature has been disabled system-wide because the hardware "[cannot supply 5V](https://android.googlesource.com/device/lge/mako/+/fe9f2793424c61588c093df951733347d0d24df4)". * Motorola Moto E - +* Samsung S3 Neo, Android 4.4 diff --git a/Troubleshooting.md b/Troubleshooting.md index 076d1cc..2495b44 100644 --- a/Troubleshooting.md +++ b/Troubleshooting.md @@ -1,22 +1,41 @@ This is a collection of FAQ-style troubleshooting tips. -If your problem isn't covered here, or you'd like to suggest a new addition, please use the mailing list (linked at left). We do not read the wiki comments. +## My USB device is not recognized -## I am using a custom ROM or older Android build and nothing works. +Check with an App that uses this library and shows all USB devices, e.g. [Serial USB Terminal](https://play.google.com/store/apps/details?id=de.kai_morich.serial_usb_terminal). +The *Serial Example* app in this project is not sufficient , as it does not show devices where no driver is detected. -Stop right there; this project probably isn't for you. +If still no USB device is shown, check the web for [USB Host Mode](https://developer.android.com/guide/topics/connectivity/usb/host.html) aka. [USB OTG](https://en.wikipedia.org/wiki/USB_On-The-Go) support for your Android device. +Missing support is more likely for older devices. -usb-serial-for-android only supports devices which comply with the [Android USB Host API](http://developer.android.com/guide/topics/connectivity/usb/host.html). For a partial list of compatible devices, see CompatibleAndroidDevices. +For an incomplete list of Android devices with known issues look [[here|Compatible-Android-Devices]]. + + +## My USB device is recognized, but no driver is detected + +The library includes a list of USB vendor and device ID's (VID/PID) that are typically used by the supported chips. In case of unusual ID's, use a [Custom Prober](https://github.com/mik3y/usb-serial-for-android#probing-for-unrecognized-devices) or specify a fixed driver. + +Non USB-to-Serial devices like mass-storage, mouse, GPC receivers, ... and rarely used USB-to-Serial chips including Hoitek HE2325U and FTDI FT312D are not supported. + + +## I use one of the supported USB devices, but connection fails + +This library is not compatible with very old CH340 chips. + + +## My device is connected, but I receive no / wrong data + +A common issue is wrong baud rate. + + +## I am using an Arduino Uno, Sparkfun Pro Micro, or other Arduino and `if (Serial)` doesn't work. + +Most Arduinos with CDC driver use the DTR line to determine serial channel readiness. In your Android code, call `setDTR(true);` ## How do I access `/dev/ttyUSB0`? -You don't; see previous question. `/dev/tty*` is the Linux kernel's driver interface to various serial devices. Certain devices and custom ROMs *may* expose serial devices this way, but this library does not use this interface. - - -## I am using an Arduino Uno, Sparkfun Pro Micro, or other Arduino and "if (Serial)" doesn't work. - -Some Arduinos use the DTR line to determine serial channel readiness. In your Android code, call `setDTR(true);` +You don't. `/dev/tty*` is the Linux kernel's driver interface to various serial devices. Certain devices and custom ROMs *may* expose serial devices this way, but this library does not use this interface. ## When reading a message, why don't all bytes arrive at the same time? @@ -29,4 +48,9 @@ You need to account for this problem when designing your protocol. Some common t * Fixed length messages: If you a message is always going to be 100 bytes, just keep reading until you have all 100. * Length-prefixed messages: Prefix every message with a fixed-length `size` value; your message is complete after you've read `size` more bytes. -* Newline-terminated messages: Read until you see a `\n` (or any other "terminal" character). \ No newline at end of file +* Newline-terminated messages: Read until you see a `\n` (or any other "terminal" character). + + +## Does this library work with Ionic/Cordova/Xamarin/App Inventor/... development framework? + +If your framework can import Java .jar files, look [[here|Build-Variants#Jar]] for instructions about creating a .jar file.