Raspberry Pi 3 Model B is the latest iteration of the world's most popular single board computer. It provides a quad-core 64-bit ARM Cortex-A53 CPU running at 1.2GHz, four USB 2.0 ports, wired and wireless networking, HDMI and composite video output, and a 40-pin GPIO connector for physical interfacing projects.
Flashing the image
Before you begin flashing, you will need the following items in addition to your Raspberry Pi:
- HDMI cable
- HDMI-enabled display
- Micro-USB cable
- Ethernet cable
- MicroSD card reader
To flash Android Things onto your Raspberry Pi, download the latest preview image and follow these steps:
- Insert an 8 GB or larger microSD card into your development computer.
Unzip the downloaded image archive on your development computer. Navigate to the unzipped image file.
Follow the official Raspberry Pi instructions for writing the image to the SD card:
Insert the flashed microSD card into your board.
Make the following connections to your board:
- Connect a USB cable to J1 for power.
Connect an Ethernet cable to your local network.
Connect an HDMI cable to an external display.
Verify that Android is running on the device. The Android Things Launcher shows information about the board on the display, including the IP address.
Connect to this IP address using the adb tool:
$ adb connect <ip-address> connected to <ip-address>:5555
After flashing your board, it is strongly recommended to connect it to the internet. This allows your device to deliver crash reports and receive updates.
To connect your board to Wi-Fi using
Send an intent to the Wi-Fi service that includes the SSID and passcode of your local network:
$ adb shell am startservice \ -n com.google.wifisetup/.WifiSetupService \ -a WifiSetupService.Connect \ -e ssid <Network_SSID> \ -e passphrase <Network_Passcode>
Verify that the connection was successful through
$ adb logcat -d | grep Wifi ... V WifiWatcher: Network state changed to CONNECTED V WifiWatcher: SSID changed: ... I WifiConfigurator: Successfully connected to ...
Test that you can access a remote IP address:
$ adb shell ping 126.96.36.199 PING 188.8.131.52 (184.108.40.206) 56(84) bytes of data. 64 bytes from 220.127.116.11: icmp_seq=1 ttl=57 time=6.67 ms 64 bytes from 18.104.22.168: icmp_seq=2 ttl=57 time=55.5 ms 64 bytes from 22.214.171.124: icmp_seq=3 ttl=57 time=23.0 ms 64 bytes from 126.96.36.199: icmp_seq=4 ttl=57 time=245 ms
If you want to clear all of the saved networks on the board:
$ adb shell am startservice \ -n com.google.wifisetup/.WifiSetupService \ -a WifiSetupService.Reset
Serial debug console
The serial console is a helpful tool for debugging your board and reviewing
system log information. The console is the default output location for kernel
log messages (i.e.
dmesg), and it also provides access to a full shell prompt
that you can use to access commands such as logcat.
This is helpful if you are unable to access ADB on your board through other
means and have not yet enabled a network connection.
To access the serial console, connect a USB to TTL Serial Cable to the device UART pins as shown below.
Open a connection to the USB serial device on your development computer using a terminal program, such as PuTTY (Windows), Serial (Mac OS), or Minicom (Linux). The serial port parameters for the console are as follows:
- Baud Rate: 115200
- Data Bits: 8
- Parity: None
- Stop Bits: 1
Disabling the console
The Raspberry Pi debug console shares its I/O pins with UART0. This can conflict with apps using the UART connected to a peripheral. Before accessing UART0 in your app, use the following steps to disable the serial console on your board:
- Remove power from your Raspberry Pi and remove the SD card.
- Insert the SD card into your development computer.
Access the SD card volume on your computer:
dmesgto discover the disk name (e.g.
sdX), followed by
mountto make the first partition accessible:
$ dmesg ... [...] sd 9:0:0:0: [sda] Attached SCSI removable disk ... $ mount /dev/sda1 /mnt/pisdcard
diskutil listto discover the disk name (e.g.
diskX), followed by
mountto make the first partition accessible:
$ diskutil list /dev/disk0 (internal, physical): ... /dev/disk1 (internal, virtual): ... /dev/disk2 (external, physical): ... $ mount -t msdos /dev/disk2s1 /Volumes/pisdcard
Windows: Open File Explorer and locate the
cmdline.txton the mounted volume and edit the
consolestatement to read as follows:
Save the changes to
cmdline.txtand eject the SD card from your development computer.
Insert the card back into the Raspberry Pi and power it on.