SlideShare a Scribd company logo
nerves-project
Erlang-OTP on the BeagleBone




   ErlangDC Lightning Talk - 22 Feb 2012
What is the nerves-project?
• Production-quality environment and libraries
  for building Erlang-based embedded devices
• Demonstration that Erlang and OTP are a
  viable alternative to traditional C/C++
  embedded development
• Excuse to hack random hardware devices and
  in Erlang
• THIS IS A WORK IN PROGRESS

2                   nerves-project.org
Quick aside: Embedded System
• Computer system designed for a specific purpose
• Common characteristics
    – Real-time components
    – Task-specific I/O and hardware acceleration
    – CPU, DRAM, or disk resource limited
• Nerves-project focus
    – Systems fast enough to run embedded Linux
    – Generally 200 MHz, 64 MB DRAM, 64 MB storage
    – Sub $30 BOM for processor complex
3                         nerves-project.org
Why Erlang?
• Message-based architecture
  good match for embedded
  development
• Very mature ideas on
  robustness
• Ready to take advantage of
  growing number of multi-
  core embedded processors
• Still has support for bit
  manipulations
• Process-scoped garbage
  collector

4                        nerves-project.org
What’s not Erlang
• Goal is to use Erlang in the places that count
• Components that probably won’t be Erlang
    – Device drivers
    – UI
    – Linux system initialization and utilities
• But, Nerves will provide easy-to-use interfaces
  to many of these components


5                         nerves-project.org
The BeagleBone is Getting Nerves
• Inexpensive ARM
  Cortex A8 platform
• 720 MHz ARM
• 256 MB DRAM
• Lots of peripheral
  interfaces
• Large hobbyist
  community
• “Easy” to integrate into
  real products

6                     nerves-project.org
What Can It Connect To?
• Everything*
    – Some assembly required
• Interfaces: GPIO, PWM, ADC, I2C, SPI, USB,
  Ethernet, CAN, MMC, UART, McASP, etc.
• Possibilities
    – LEDs, buttons, light sensors, humidity, temperature
    – Heart rate monitors, accelerometers, gyros,
      compasses, NFC
    – GPS, GPRS, Bluetooth, automobile
    – Motors, servos, 1D and 2D image sensors

7                         nerves-project.org
Software Components
    Linux Kernel           Cross-
                          compiler

    Init scripts,
      utilities


    Erlang R15B          Buildroot

      3rd party
    Erlang tools
     and apps

    Your Erlang       Your Device’s
       Apps           Configuration


8                   nerves-project.org
Getting Started
•   Go to http://nerves-project.org
•   Download the microSD card image
•   Copy the image to a microSD card
•   Insert the card into a BeagleBone and boot




9                     nerves-project.org
Going Forward
• Solidify code for the simple interface support
• Build apps that use nerves!
     – Any project that you could build with an Arduino
     – Low power Erlang nodes
     – Demo ideas to really show off Erlang’s advantages
       in concrete ways
• A laundry list of other items based on our
  interests

10                 Troodon Software LLC Proprietary & Confidential
Final Thoughts
• The world is filled with embedded devices
• Erlang is a good match for many embedded
  development needs
• Lots of opportunities to move Erlang forward
• People will use code from the nerves-project
     – The Buildroot infrastructure already useful
     – Contacted by people around the world asking
       about it – Especially interested in HiPE support

11                        nerves-project.org

More Related Content

PDF
Embedded Erlang, Nerves, and SumoBots
PDF
Building a Network IP Camera using Erlang
ODP
Using Erlang in an Embedded and Cross-Compiled World
PDF
Using Erlang on the RaspberryPi to interact with the physical world
PDF
Badge Hacking with Nerves Workshop - ElixirConf 2016 - Justin Schneck and Fra...
PPTX
Cockatrice: A Hardware Design Environment with Elixir
PDF
A Peek into TFRT
PPTX
Embedded c c++ programming fundamentals master
Embedded Erlang, Nerves, and SumoBots
Building a Network IP Camera using Erlang
Using Erlang in an Embedded and Cross-Compiled World
Using Erlang on the RaspberryPi to interact with the physical world
Badge Hacking with Nerves Workshop - ElixirConf 2016 - Justin Schneck and Fra...
Cockatrice: A Hardware Design Environment with Elixir
A Peek into TFRT
Embedded c c++ programming fundamentals master

What's hot (20)

PDF
open source nn frameworks on cellphones
PDF
DEF CON 27 - JEFF DILEO - evil e bpf in depth
PDF
IncludeOS for ics 2018
PDF
Embedded Linux - Building toolchain
PDF
Stefano Cordibella - An introduction to Yocto Project
PDF
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
PDF
Interfacing the Raspberry Pi to the World
ODP
Concurrent Programming with Ruby and Tuple Spaces
PDF
Why You Cannot Use Neural Engine to Run Your NN Models on A11 Devices?
PPT
High Performance Erlang
PPTX
A Quick Introduction to Programmable Logic
PPTX
Introduction to ROS (Robot Operating System)
PDF
A Sneak Peek of MLIR in TensorFlow
PDF
LAS16-400: Mini Conference 3 AOSP (Session 1)
PDF
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
ODP
Embedded Android : System Development - Part III
PPT
Deploying puppet code at light speed
PPT
Deploying Puppet Code At Light Speed - Puppet Camp Silicon Valley
PDF
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
PDF
Android Things : Building Embedded Devices
open source nn frameworks on cellphones
DEF CON 27 - JEFF DILEO - evil e bpf in depth
IncludeOS for ics 2018
Embedded Linux - Building toolchain
Stefano Cordibella - An introduction to Yocto Project
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
Interfacing the Raspberry Pi to the World
Concurrent Programming with Ruby and Tuple Spaces
Why You Cannot Use Neural Engine to Run Your NN Models on A11 Devices?
High Performance Erlang
A Quick Introduction to Programmable Logic
Introduction to ROS (Robot Operating System)
A Sneak Peek of MLIR in TensorFlow
LAS16-400: Mini Conference 3 AOSP (Session 1)
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
Embedded Android : System Development - Part III
Deploying puppet code at light speed
Deploying Puppet Code At Light Speed - Puppet Camp Silicon Valley
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
Android Things : Building Embedded Devices
Ad

Similar to Nerves Project Intro to ErlangDC (20)

PDF
chilug-bbone-20140118-151216015606
PPTX
BeagleBone black
PPTX
Cognitive robotics tools and technology
PDF
Pumping stationone20140628 real-timeprogrammingwithbeaglebonepr_us.pptx
PDF
Erlang Embedded — Concurrent Blinkenlights and More!
PDF
C Programming For Embedded Systems
PDF
Taking the BeagleBone Cookbook recipes beyond BeagleBone Black
PDF
Hands on Embedded Linux with BeagleBone Black
PDF
BeagleBone Black Using Python
PDF
Presentacion_p1.pdf
PDF
Introduction to Modern Methods and Tools for Biologically Plausible Modelling...
PPTX
Introduction To The Beagleboard
PDF
Beaglebone And Android
PDF
BeagleBone Workshop
PDF
Developping drivers on small machines
ODP
Thotcon2013
PDF
Embedded Linux Systems Basics
PDF
A survey of robotics in Ruby
PDF
Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World
PPTX
robotics for embedded systems.pptx
chilug-bbone-20140118-151216015606
BeagleBone black
Cognitive robotics tools and technology
Pumping stationone20140628 real-timeprogrammingwithbeaglebonepr_us.pptx
Erlang Embedded — Concurrent Blinkenlights and More!
C Programming For Embedded Systems
Taking the BeagleBone Cookbook recipes beyond BeagleBone Black
Hands on Embedded Linux with BeagleBone Black
BeagleBone Black Using Python
Presentacion_p1.pdf
Introduction to Modern Methods and Tools for Biologically Plausible Modelling...
Introduction To The Beagleboard
Beaglebone And Android
BeagleBone Workshop
Developping drivers on small machines
Thotcon2013
Embedded Linux Systems Basics
A survey of robotics in Ruby
Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World
robotics for embedded systems.pptx
Ad

Recently uploaded (20)

PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
cuic standard and advanced reporting.pdf
PDF
Modernizing your data center with Dell and AMD
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
KodekX | Application Modernization Development
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Cloud computing and distributed systems.
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Unlocking AI with Model Context Protocol (MCP)
Dropbox Q2 2025 Financial Results & Investor Presentation
cuic standard and advanced reporting.pdf
Modernizing your data center with Dell and AMD
The Rise and Fall of 3GPP – Time for a Sabbatical?
Building Integrated photovoltaic BIPV_UPV.pdf
KodekX | Application Modernization Development
Reach Out and Touch Someone: Haptics and Empathic Computing
Per capita expenditure prediction using model stacking based on satellite ima...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Cloud computing and distributed systems.
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Digital-Transformation-Roadmap-for-Companies.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Spectral efficient network and resource selection model in 5G networks
20250228 LYD VKU AI Blended-Learning.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Unlocking AI with Model Context Protocol (MCP)

Nerves Project Intro to ErlangDC

  • 1. nerves-project Erlang-OTP on the BeagleBone ErlangDC Lightning Talk - 22 Feb 2012
  • 2. What is the nerves-project? • Production-quality environment and libraries for building Erlang-based embedded devices • Demonstration that Erlang and OTP are a viable alternative to traditional C/C++ embedded development • Excuse to hack random hardware devices and in Erlang • THIS IS A WORK IN PROGRESS 2 nerves-project.org
  • 3. Quick aside: Embedded System • Computer system designed for a specific purpose • Common characteristics – Real-time components – Task-specific I/O and hardware acceleration – CPU, DRAM, or disk resource limited • Nerves-project focus – Systems fast enough to run embedded Linux – Generally 200 MHz, 64 MB DRAM, 64 MB storage – Sub $30 BOM for processor complex 3 nerves-project.org
  • 4. Why Erlang? • Message-based architecture good match for embedded development • Very mature ideas on robustness • Ready to take advantage of growing number of multi- core embedded processors • Still has support for bit manipulations • Process-scoped garbage collector 4 nerves-project.org
  • 5. What’s not Erlang • Goal is to use Erlang in the places that count • Components that probably won’t be Erlang – Device drivers – UI – Linux system initialization and utilities • But, Nerves will provide easy-to-use interfaces to many of these components 5 nerves-project.org
  • 6. The BeagleBone is Getting Nerves • Inexpensive ARM Cortex A8 platform • 720 MHz ARM • 256 MB DRAM • Lots of peripheral interfaces • Large hobbyist community • “Easy” to integrate into real products 6 nerves-project.org
  • 7. What Can It Connect To? • Everything* – Some assembly required • Interfaces: GPIO, PWM, ADC, I2C, SPI, USB, Ethernet, CAN, MMC, UART, McASP, etc. • Possibilities – LEDs, buttons, light sensors, humidity, temperature – Heart rate monitors, accelerometers, gyros, compasses, NFC – GPS, GPRS, Bluetooth, automobile – Motors, servos, 1D and 2D image sensors 7 nerves-project.org
  • 8. Software Components Linux Kernel Cross- compiler Init scripts, utilities Erlang R15B Buildroot 3rd party Erlang tools and apps Your Erlang Your Device’s Apps Configuration 8 nerves-project.org
  • 9. Getting Started • Go to http://nerves-project.org • Download the microSD card image • Copy the image to a microSD card • Insert the card into a BeagleBone and boot 9 nerves-project.org
  • 10. Going Forward • Solidify code for the simple interface support • Build apps that use nerves! – Any project that you could build with an Arduino – Low power Erlang nodes – Demo ideas to really show off Erlang’s advantages in concrete ways • A laundry list of other items based on our interests 10 Troodon Software LLC Proprietary & Confidential
  • 11. Final Thoughts • The world is filled with embedded devices • Erlang is a good match for many embedded development needs • Lots of opportunities to move Erlang forward • People will use code from the nerves-project – The Buildroot infrastructure already useful – Contacted by people around the world asking about it – Especially interested in HiPE support 11 nerves-project.org