Raspberry Pi 3 Model B

CircleCI Hex version

This is the base Nerves System configuration for the Raspberry Pi 3 Model B.

Fritzing Raspberry Pi 3 image


[Image credit](#fritzing)
FeatureDescription
CPU1.2 GHz quad-core ARMv8
Memory1 GB DRAM
StorageMicroSD
Linux kernel4.4.50 w/ Raspberry Pi patches
IEx terminalHDMI and USB keyboard (can be changed to UART)
GPIO, I2C, SPIYes - Elixir ALE
ADCNo
PWMYes, but no Elixir support
UART1 available - ttyS0
CameraYes - via rpi-userland
EthernetYes
WiFiYes - Nerves.Network
BluetoothNot supported yet

Supported WiFi devices and firmware

WiFi modules almost always require proprietary firmware to be loaded for them to work. The Linux kernel handles this and firmware blobs are maintained in the linux-firmware project. The firmware for the built-in WiFi module on the RPi3 hasn’t made it to the linux-firmware project nor Buildroot, so it is included here in a rootfs_overlay overlay directory. The original firmware files came from github:RPi-Distro/firmware-nonfree.

Linux kernel and RPi firmware/userland

There’s a subtle coupling between the nerves_system_br version and the Linux kernel version used here. nerves_system_br provides the versions of rpi-userland and rpi-firmware that get installed. I prefer to match them to the Linux kernel to avoid any issues. Unfortunately, none of these are tagged by the Raspberry Pi Foundation so I either attempt to match what’s in Raspbian or take versions of the repositories that have similar commit times.

Image credit: This image is from the Fritzing parts library.