In this document
This document outlines issues and fixes related to each release of the Android Things developer preview. We are committed to providing regular updates to developers, and aim to have new preview releases approximately every 6-8 weeks.
Please file tickets in the Android issue tracker for issues discovered in the system, hardware support, and documentation:
To ask questions and discuss ideas with other developers working on Android Things, join the IoT Developers Google+ community.
Developer Preview 4
Date: May 2017
Build Number: NIH40E
Play Services: 10.0.0
This preview release is for developers and early adopters to use for development and compatibility testing on supported hardware platforms. Please note the following general guidelines about the preview:
- This release may have various stability issues on supported hardware. Please file bugs to report issues that you discover.
- Not all APIs are enabled in this preview. APIs known to be disabled are documented in the Known Issues section.
- Developer Preview 4 is available on the Intel Edison, Intel Joule, NXP i.MX7D, NXP i.MX6UL, and Raspberry Pi 3 development boards.
New in Preview 4
NXP i.MX7D support
Android Things is now supported on the NXP® i.MX7D Pico development platform. Learn more about this device and its capabilities on the developer kits page.
Audio APIs
Developers can now connect to digital audio devices over Inter-IC Sound (I2S) using Peripheral I/O and bind those devices to the media framework using the new audio user-space drivers. Review the new API guides for I2S and audio drivers for more details.
Peripheral drivers
Peripheral I/O now supports runtime registration of additional interfaces
through the PioDriverManager. This enables registration of peripheral bus
expansion devices as well as stub interfaces for unit testing.
To learn more, see the reference documentation.
Known Issues
- System power management is currently disabled. Devices will not suspend and wake locks are not necessary.
- Google Play Services requires 2-3 minutes on first boot to pre-optimize dex. App installs are blocked until this process is complete.
- Hardware graphics acceleration (OpenGL) is not currently enabled. APIs dependent on this functionality (such as WebView) are not available.
Peripheral I/O
- Peripherals do not clear or reset after calling
close(). Outputs will retain their state and serial ports may continue to transmit previously buffered data. - GPIO pins cannot be used as an output if they were previously enabled as an input with an edge trigger enabled since the last reboot.
User Drivers
- User sensors cannot currently be unregistered manually. They are unregistered automatically when the app process terminates.
- User sensors only support continuous and on-change sensors. One-shot and special reporting modes may not function as expected.
Edison
- RESET: The RESET button on the Arduino breakout board can temporarily leave your board in an inconsistent state where GPIO pins are named GPXX instead of IOXX until power is disconnected. Instead of using the onboard RESET button, disconnect and reconnect power to reboot.
Argon IMX6UL
- USB: USB devices connected after the board has booted are not recognized.
Joule
- Camera: Camera support is not yet enabled.
- I/O: Edge triggers are currently only supported on the following GPIO ports: J7_58, J7_64, J7_68, J7_71, J7_73, J7_75.
- I/O: Shared pins initially configured for GPIO cannot be re-used for any other function (SPI, UART, etc.) until after the next reboot.
Raspberry Pi
- Audio: Audio quality issues may present when both WiFi and Bluetooth are enabled.
- Network: Wi-Fi cannot connect to the internet if Ethernet is also connected to a network without internet access.
- Camera: A new
CameraCaptureSessioncannot be created with more than one target output surface. - Camera: The first request in any
CameraCaptureSessionalways queues two images. This can cause each subsequentCaptureRequestin the same session to return a buffered frame from a previous capture. - I/O: Shared pins BCM13/PWM1 and BCM18/PWM0 cannot be used for GPIO if they were previously enabled for PWM since the last reboot.
- I/O: GPIO pins BCM4, BCM5, and BCM6 are internally pulled up to 3.3V when used as inputs.
- Audio: Onboard analog audio cannot be used simultaneously with PWM.
Developer Preview 3
Date: April 2017
Build Number: NIG86E
Play Services: 10.0.0
This preview release is for developers and early adopters to use for development and compatibility testing on supported hardware platforms. Please note the following general guidelines about the preview:
- This release may have various stability issues on supported hardware. Please file bugs to report issues that you discover.
- Not all APIs are enabled in this preview. APIs known to be disabled are documented in the Known Issues section.
- Developer Preview 3 is available on the Intel Edison, Intel Joule, NXP Pico, NXP Argon, and Raspberry Pi 3 development boards.
New in Preview 3
NXP Argon i.MX6UL support
Android Things is now supported on the NXP® Argon i.MX6UL development platform. Learn more about this device and its capabilities on the developer kits page.
Android Bluetooth APIs support
Developers can now use the Android Bluetooth APIs across all Android Things supported hardware. These APIs can be used to interact with both Classic Bluetooth and Bluetooth Low Energy (BLE) devices. See the Samples page for Bluetooth audio and Bluetooth GATT server code samples.
USB host support
Android Things devices can now operate in USB host mode. We have created a USB Enumerator sample that demonstrates how to iterate over and print the interfaces and endpoints for each USB device connected to the host.
Access to USB-serial devices
USB-serial devices are now exposed as a UartDevice when plugged in. You can
discover these devices by name from getUartDeviceList().
Reference documentation
You can now view reference documentation online.
Known Issues
- System power management is currently disabled. Devices will not suspend and wake locks are not necessary.
- Dangerous
permissions
requested by apps are not granted until the next device reboot. This
includes new app installs and new
<uses-permission>elements in existing apps. - Google Play Services requires 2-3 minutes on first boot to pre-optimize dex. App installs are blocked until this process is complete.
- Hardware graphics acceleration (OpenGL) is not currently enabled. APIs dependent on this functionality (such as WebView) are not available.
- A2DP Bluetooth profile is set to sink mode. We will provide a method for
configuring Bluetooth profiles in a future preview release. Because of this,
BluetoothAdapter.getProfileProxy()currently throws an error if theBluetoothProfile.A2DPargument is used.
Peripheral I/O
- Peripherals do not clear or reset after calling
close(). Outputs will retain their state and serial ports may continue to transmit previously buffered data. - GPIO pins cannot be used as an output if they were previously enabled as an input with an edge trigger enabled since the last reboot.
User Drivers
- User sensors cannot currently be unregistered manually. They are unregistered automatically when the app process terminates.
- User sensors only support continuous and on-change sensors. One-shot and special reporting modes may not function as expected.
Edison
- RESET: The RESET button on the Arduino breakout board can temporarily leave your board in an inconsistent state where GPIO pins are named GPXX instead of IOXX until power is disconnected. Instead of using the onboard RESET button, disconnect and reconnect power to reboot.
Argon IMX6UL
- USB: USB devices connected after the board has booted are not recognized.
Joule
- Camera: Camera support is not yet enabled.
- I/O: Edge triggers are currently only supported on the following GPIO ports: DISPLAY_0_BIAS_EN, DISPLAY_0_BKLT_EN, DISPLAY_0_RST_N, FLASH_RST_N, FLASH_TORCH, FLASH_TRIGGER.
- I/O: Shared pins initially configured for GPIO cannot be re-used for any other function (SPI, UART, etc.) until after the next reboot.
Raspberry Pi
- Audio: Audio quality issues may present when both WiFi and Bluetooth are enabled.
- Network: Wi-Fi cannot connect to the internet if Ethernet is also connected to a network without internet access.
- Camera: A new
CameraCaptureSessioncannot be created with more than one target output surface. - Camera: The first request in any
CameraCaptureSessionalways queues two images. This can cause each subsequentCaptureRequestin the same session to return a buffered frame from a previous capture. - I/O: Shared pins BCM13/PWM1 and BCM18/PWM0 cannot be used for GPIO if they were previously enabled for PWM since the last reboot.
- I/O: GPIO pins BCM4, BCM5, and BCM6 are internally pulled up to 3.3V when used as inputs.
- Audio: Onboard analog audio cannot be used simultaneously with PWM.
Developer Preview 2
Date: February 2017
Build Number: NIG40
Play Services: 10.0.0
Preview APIs Javadoc reference.
This preview release is for developers and early adopters to use for development and compatibility testing on supported hardware platforms. Please note the following general guidelines about the preview:
- This release may have various stability issues on supported hardware. Please file bugs to report issues that you discover.
- Not all APIs are enabled in this preview. APIs known to be disabled are documented in the Known Issues section.
- Developer Preview 2 is available on the Intel Edison, Intel Joule, NXP Pico, and Raspberry Pi 3 development boards.
New in Preview 2
Intel Joule support
Android Things is now supported on the Intel® Joule compute module. Learn more about this device and its capabilities on the developer kits page.
Native peripheral API
Access to peripheral I/O from C/C++ code is now supported using the Native PIO library for the Android NDK. Explore the new Native PIO sample on the samples page to get started.
USB audio support
Devices without on-board analog audio capabilities now support USB microphones and speakers for audio recording and playback. For Preview 2, this includes the following platforms:
- Intel® Edison
- Intel® Joule
- Raspberry Pi
TensorFlow sample
We have created a sample that shows how to use TensorFlow on Android Things devices. This sample demonstrates accessing the camera, performing object recognition and image classification, and speaking out the results using text-to-speech (TTS).
Visit the samples page to learn more.
Peripheral manager reporting
Developers can now inspect the state of active peripheral ports on the device
during development and debugging using the dumpsys command:
$ adb shell dumpsys com.google.android.things.pio.IPeripheralManager
Known Issues
- System power management is currently disabled. Devices will not suspend and wake locks are not necessary.
- Bluetooth APIs are currently disabled.
- USB APIs are currently disabled.
- Dangerous permissions
requested by apps are not granted until the next device reboot. This includes
new app installs and new
<uses-permission>elements in existing apps. - Google Play Services requires 2-3 minutes on first boot to pre-optimize dex. App installs are blocked until this process is complete.
- Hardware graphics acceleration (OpenGL) is not currently enabled. APIs depedent on this functionality (such as WebView) are not available.
Peripheral I/O
- Peripherals do not clear or reset after calling
close(). Outputs will retain their state and serial ports may continue to transmit previously buffered data. - GPIO pins cannot be used as an output if they were previously enabled as an input with an edge trigger enabled since the last reboot.
User Drivers
- User sensors cannot currently be unregistered manually. They are unregistered automatically when the app process terminates.
- User sensors only support continuous and on-change sensors. One-shot and special reporting modes may not function as expected.
Edison
- RESET: The RESET button on the Arduino breakout board can temporarily leave your board in an inconsistent state where GPIO pins are named GPXX instead of IOXX until power is disconnected. Instead of using the onboard RESET button, disconnect and reconnect power to reboot.
Joule
- Camera: Camera support is not yet enabled.
- I/O: Edge triggers are currently only supported on the following GPIO ports: DISPLAY_0_BIAS_EN, DISPLAY_0_BKLT_EN, DISPLAY_0_RST_N, FLASH_RST_N, FLASH_TORCH, FLASH_TRIGGER.
- I/O: Shared pins initially configured for GPIO cannot be re-used for any other function (SPI, UART, etc.) until after the next reboot.
Pico
- Network: Ethernet is currently disabled.
- I/O:
Gpio.getValue()always returnsfalsewhen the pin is configured as an output.
Raspberry Pi
- Network: Wi-Fi cannot connect to the internet if Ethernet is also connected to a network without internet access.
- Camera: A new
CameraCaptureSessioncannot be created with more than one target output surface. - Camera: The first request in any
CameraCaptureSessionalways queues two images. This can cause each subsequentCaptureRequestin the same session to return a buffered frame from a previous capture. - I/O: Shared pins BCM13/PWM1 and BCM18/PWM0 cannot be used for GPIO if they were previously enabled for PWM since the last reboot.
- I/O: GPIO pins BCM4, BCM5, and BCM6 are internally pulled up to 3.3V when used as inputs.
- Audio: Onboard analog audio cannot be used simultaneously with PWM.
Developer Preview 1
Date: December 2016
Build Number: NIF73/NIF74
Play Services: 10.0.0
Preview APIs Javadoc reference.
This preview release is for developers and early adopters to use for development and compatibility testing on supported hardware platforms. Please note the following general guidelines about the preview:
- This release may have various stability issues on supported hardware. Please file bugs to report issues that you discover.
- Not all APIs are enabled in this preview. APIs known to be disabled are documented in the Known Issues section.
- Developer Preview 1 is available on the Intel Edison, NXP Pico, and Raspberry Pi 3 development boards.
Known issues
- System power management is currently disabled. Devices will not suspend and wake locks are not necessary.
- Bluetooth APIs are currently disabled.
- USB APIs are currently disabled.
- Dangerous permissions
requested by apps are not granted until the next device reboot. This includes
new app installs and new
<uses-permission>elements in existing apps. - Google Play Services requires 2-3 minutes on first boot to pre-optimize dex. App installs are blocked until this process is complete.
- When multiple activities contain an intent filter for the
IOT_LAUNCHERcategory, the system displays an app chooser that isn't accessible on devices without display support. Android Things only supports a single launcher app, and this behavior will be disabled in a future release.
Peripheral I/O
- Peripherals do not clear or reset after calling
close(). Outputs will retain their state and serial ports may continue to transmit previously buffered data. - GPIO pins cannot be used as an output if they were previously enabled as an input with an edge trigger enabled since the last reboot.
User Drivers
- User sensors cannot currently be unregistered manually. They are unregistered automatically when the app process terminates.
- User sensors only support continuous and on-change sensors. One-shot and special reporting modes may not function as expected.
Edison
- Audio: Recording is not currently supported.
- I/O: GPIO pin GP77 is listed by
PeripheralManagerService, but is not accessible to apps. - RESET: The RESET button on the Arduino breakout board can temporarily leave your board in an inconsistent state where GPIO pins are named GPXX instead of IOXX until power is disconnected. Instead of using the onboard RESET button, disconnect and reconnect power to reboot.
Pico
- Network: Ethernet is currently disabled.
- I/O:
Gpio.getValue()always returnsfalsewhen the pin is configured as an output.
Raspberry Pi
- Network: Wi-Fi cannot connect to the internet if Ethernet is also connected to a network without internet access.
- Graphics: Hardware graphics acceleration is not currently enabled.
- Camera: A new
CameraCaptureSessioncannot be created with more than one target output surface. - Camera: The first request in any
CameraCaptureSessionalways queues two images. This can cause each subsequentCaptureRequestin the same session to return a buffered frame from a previous capture. - I/O: Shared pins BCM13/PWM1 and BCM18/PWM0 cannot be used for GPIO if they were previously enabled for PWM since the last reboot.
- I/O: GPIO pins BCM23 and BCM24 are both currently mapped to control BCM23 (physical pin J8-16).
- I/O: GPIO pins BCM4, BCM5, and BCM6 are internally pulled up to 3.3V when used as inputs.