Run this notebook

Use Livebook to open this notebook and explore new ideas.

It is easy to get started, on your machine or the cloud.

Click below to open and run it in your Livebook at .

(or change your Livebook location)

# Welcome to Nerves Livebook ## Introduction Thanks for trying out Nerves Livebook! With this [Livebook](https://github.com/livebook-dev/livebook) image, you can work through tutorials, create your own code notebooks and save them on device, and import notebooks from others. We're just getting started and are super excited with what Livebook can already do. We hope that you'll enjoy learning about embedded systems and working with hardware in the notebook environment too! ## Getting started You've already figured out how to install the Nerves Livebook to your device and how to open this file, so you're well on your way! The next steps are to try out the notebooks in the samples directory. They're all read-only so you'll need to *fork* them just like you did to open this file. Livebook and Nerves Livebook are rapidly evolving so some notebooks are a work-in-progress. We recommend starting with the following: * [Configure WiFi](samples/networking/configure_wifi.livemd) - connect to a WiFi access point * [LEDs](samples/basics/sys_class_leds.livemd) - learn about the built-in LEDs on your device * [VintageNet](samples/networking/vintage_net.livemd) - learn about networking on Nerves devices * [Firmware Update](samples/networking/firmware_update.livemd) - download the latest Nerves Livebook firmware ## Saving and copying files This file and the samples are read-only since they're built into Nerves Livebook. Your files can be saved anywhere in `/data` which is writable like a drive on your computer. Firmware updates using the `firmware_update.livemd` won't erase your files. Be careful, though, if you remove the MicroSD card and re-initialize it in your computer. That will erase them. If you want to copy a file off the Nerves Livebook image, open up a shell on your computer and run `sftp livebook@nerves.local`. The password is `nerves`. Once you're logged in, navigate to `/data/livebook` or where ever you stored your files and run `get` to copy them off. ## Limitations If you've used Livebook before, the Nerves Livebook image has a few differences: 1. All code gets evaluated in one Erlang VM. This is convenient for Nerves devices, but you may be surprised when a module defined in one notebook is then accessible in another. 2. Installing hex dependencies is not supported. Nerves Livebook includes many libraries as a convenience, though. We still recommend using `Mix.install/1` to document what dependencies your notebook requires, but if the dependency is not already loaded, it will raise an error. ## Pre-installed libraries Since you cannot install libraries through hex, we include the libraries listed below. If there is a dependency you want to see included in the `nerves_livebook` distribution, please file an [issue](https://github.com/livebook-dev/nerves_livebook/issues) or make a PR to include new libraries in the main image. - **[`Kino`](https://hex.pm/packages/kino)**, interactive widgets for Livebook - **[`VegaLite`](https://hex.pm/packages/vega_lite)**, Elixir bindings for the interactive graphic library [Vega-Lite](https://vega.github.io/vega-lite) (supported by `Kino`) - **[`Phoenix.PubSub`](https://hexdocs.pm/phoenix_pubsub)**, a realtime publisher/subscriber service - **[`Circuits.UART`](https://hexdocs.pm/circuits_uart)**, allowing you to use UARTs, serial ports, Bluetooth virtual serial port connections and more - **[`Circuits.GPIO`](https://hexdocs.pm/circuits_gpio)**, letting you control or read from GPIOs - **[`Circuits.I2C`](https://hexdocs.pm/circuits_i2c)**, letting you communicate with hardware devices using the I2C protocol - **[`Circuits.Spi`](https://hexdocs.pm/circuits_spi)**, providing high level abstractions for interfacing to SPI busses - **[`NervesKey`](https://hexdocs.pm/nerves_key)**, tools for interacting with Nerves hardware security modules (HSMs) - **[`Pigpiox`](https://hexdocs.pm/pigpiox)**, a wrapper around the the [pigpio](https://abyz.me.uk/rpi/pigpio/) library for driving `GPIO` pins - **[`RamoopsLogger`](https://hexdocs.pm/ramoops_logger)**, a `Logger` backend for forwarding to a [ramoops](https://www.kernel.org/doc/html/v4.19/admin-guide/ramoops.html) in the event of a system crash - **[`BMP280`](https://hexdocs.pm/bmp280)**, support for the Bosch BMP180, BMP280, BME280, and BME680 temperature/pressure sensors - **[`ScrollHat`](https://hexdocs.pm/scroll_hat)**, a driver for Pimoroni Scroll Hat LED boards - **[`InputEvent`](https://hexdocs.pm/input_event)**, an interface to Linux input event devices such as keyboards, joysticks, mice, touchscreens, etc - **[`Nx`](https://github.com/elixir-nx/nx/tree/main/nx#readme)**, a multi-dimensional tensors library with CPU/GPU support - **[`BlueHeron`](https://hexdocs.pm/blue_heron)**, for communicating with Bluetooth LE modules via HCI - **[`BlueHeron.HCI.Transport.UART`](https://hexdocs.pm/blue_heron_transport_uart)**, UART support for `BlueHeron` - **[`NervesTimeZones`](https://hexdocs.pm/nerves_time_zones)**, local time and time zone support for Nerves devices ## Learn more * Official docs: https://hexdocs.pm/nerves/getting-started.html * Official website: https://nerves-project.org/ * Forum: https://elixirforum.com/c/nerves-forum * Discussion Slack elixir-lang #nerves ([Invite](https://elixir-slackin.herokuapp.com/)) * Source: https://github.com/nerves-project/nerves
See source

Have you already installed Livebook?

If you already installed Livebook, you can configure the default Livebook location where you want to open notebooks.
Livebook up Checking status We can't reach this Livebook (but we saved your preference anyway)
Run notebook

Not yet? Install Livebook in just a minute

Livebook is open source, free, and ready to run anywhere.

Run on your machine

with Livebook Desktop

Run in the cloud

on select platforms

To run on Linux, Docker, embedded devices, or Elixir’s Mix, check our README.

PLATINUM SPONSORS
SPONSORS
Code navigation with go to definition of modules and functions Read More ×