Raspberry Pi 3 Model B

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

Fritzing Raspberry Pi 3 image


<sup>[Image credit](#fritzing)</sup>
Feature Description
CPU 1.2 GHz quad-core ARMv8
Memory 1 GB DRAM
Storage MicroSD
Linux kernel 4.4.50 w/ Raspberry Pi patches
IEx terminal HDMI and USB keyboard (can be changed to UART)
GPIO, I2C, SPI Yes - Elixir ALE
ADC No
PWM Yes, but no Elixir support
UART 1 available - ttyS0
Camera Yes - via rpi-userland
Ethernet Yes
WiFi Yes - Nerves.Network
Bluetooth Not 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.