Here are couple simple nerves examples. All of these projects should work on the following platforms:
- Raspberry Pi A+/B+
- Raspberry Pi 2 B
- Raspberry Pi Zero
- Beaglebone Black
- Lego EV3
For detailed information on how to build an example, see the README.md in each application's root directory.
"Hello World" for the embedded world... and a little more
- Boots to Elixir shell and blinks LEDs forever in background
- Uses
Nerves.LED
to manage named LEDs - Custom per-target configuration via
config/#{target}.exs
- Builds off-target with debug output via
Logger
Brings up network, makes it discoverable
- Uses
Nerves.Networking
to configure DHCP with ipv4LL fallback - Demonstrates using
Nerves.SSDP.Server
for discovery viacell list
The examples currently support Raspberry Pi (rpi), Raspberry Pi 2 (rpi2), and Beaglebone Black (bbb) targets.
The following instructions assume rpi2, but you can substitute any of the supported target IDs below.
On OS X:
brew update
brew upgrade elixir ## v1.2.4, BUT NOT HEAD!!
brew install coreutils fwup squashfs
On All Platforms:
mix local.hex # update hex
mix archive.install https://github.com/nerves-project/archives/raw/master/nerves_bootstrap.ez
Note that NERVES_TARGET
environment can set the platform you get. See mix.exs
for the example to see how this works.
cd <example-project>
git pull
mix deps.get
mix firmware
$ mix firmware.burn
$ fwup -a -i _images/rpi2/blinky.fw -t complete