This week Google released developer preview 3 of Android Things. In it they added support for USB-Serial UARTS. I have previously shown how to add USB-Serial ports to android things using the NDK. It seems this is no longer necessary.
With developer preview 3 the list of available UARTs returned by getUartDeviceList() will include connected USB-serial devices. My QUAD UART from FTDI was detected by the kernel but the peripheral manager culled all but one of the UARTs as described in this issue. Single FTDI devices seem to work OK.
UPDATE: 12 March 2017
Android things developer preview 3 adds support for USB-serial devices, making this method redundant for single USB-Serial adapters. This may be still useful for the QUAD UART used in this post. Read more about it here.
There’s nothing quite like the good old fashioned UART for connecting things together. It’s a technology that persists because it’s simple and it works. The Raspberry Pi has one UART. With it you can connect to exactly one peripheral. That’s not enough. We need more UARTs.
One solution to the ‘not enough UART’ problem is to use a USB-Serial converter. There’s been a Linux kernel driver for the FTDI USB-serial converters for years now, these are a well supported, mature technology. The aim of this experiment is to see if I can get an FTDI USB-Serial converter working with the Raspberry Pi 3 running the Android Things preview image 1.
4 port FTDI UART