Base Nerves system configuration for the Raspberry Pi 3
Elixir Shell
Latest commit ce96497 Feb 8, 2017 @mobileoverlord mobileoverlord update changelog

README.md

Raspberry Pi 3 Model B

Build Status

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

Fritzing Raspberry Pi 3 image
Image credit

Feature Description
CPU 1.2 GHz quad-core ARMv8
Memory 1 GB DRAM
Storage MicroSD
Linux kernel 4.4.43 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.InterimWiFi
Bluetooth Not yet

Installation

If available in Hex, the package can be installed as:

  1. Add nerves_system_rpi3 to your list of dependencies in mix.exs:

    def deps do
      [{:nerves_system_rpi3, "~> 0.10.0"}]
    end
    
  2. Ensure nerves_system_rpi3 is started before your application:

    def application do
      [applications: [:nerves_system_rpi3]]
    end
    

Built-in WiFi 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-additions overlay directory. The original firmware files came from https://github.com/RPi-Distro/firmware-nonfree/blob/master/brcm80211/brcm.

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