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
- 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, first access a shell prompt on the device. You can use either of the following methods:
- Connect your board to your Wi-Fi router or
development computer to assign it an IP address. Run the
adb connect <ip-address>command to connect to this IP address using the adb tool. Open a shell over adb with the
- Connect to the serial console.
Once you can access a shell prompt, follow these steps:
Send an intent to the Wi-Fi service that includes the SSID and passcode of your local network. Your board must support the network protocol and frequency band of the wireless network in order to establish a connection.
$ am startservice \ -n com.google.wifisetup/.WifiSetupService \ -a WifiSetupService.Connect \ -e ssid <Network_SSID> \ -e passphrase <Network_Passcode>
For passcodes with special characters (
space, !, ", $, &, ', (, ), ;, <, >, `, or |), you must use base64 encoding. Replace the
passphraseargument in the command above with the following:
-e passphrase64 <Base64 Network_Passcode>
Verify that the connection was successful through
$ 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:
$ ping 184.108.40.206 PING 220.127.116.11 (18.104.22.168) 56(84) bytes of data. 64 bytes from 22.214.171.124: icmp_seq=1 ttl=57 time=6.67 ms 64 bytes from 126.96.36.199: icmp_seq=2 ttl=57 time=55.5 ms 64 bytes from 188.8.131.52: icmp_seq=3 ttl=57 time=23.0 ms 64 bytes from 184.108.40.206: icmp_seq=4 ttl=57 time=245 ms
Check that the date and time are set correctly on the device:
If you want to clear all of the saved networks on the board:
$ 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
The Raspberry Pi has pins that are multiplexed between various board functions.
Some board functions cannot be used simultaneously (for example, enabling
Bluetooth and using the
UART0 port for peripheral I/O). For more information, see
the function mode matrix.