Skip to main content

AtomVM: Elixir, Erlang, and Gleam on Microcontrollers

H.2215 (Ferrer) | Day 2 | 12:00 - 12:15 | Speakers: Davide Bettio

AtomVM: Elixir, Erlang, and Gleam on Microcontrollers
A picture of a talk at FOSDEM 2024
Open in browser
Get involved in the conversation!Join the chat

Notes

Abstract

Elixir, Erlang, and Gleam are functional languages that run on the BEAM virtual machine and are widely used for highly concurrent, fault-tolerant systems. However, the standard BEAM VM is too heavyweight for most microcontrollers.

AtomVM is a from-scratch implementation of the Erlang VM designed for constrained devices such as the ESP32 and Raspberry Pi Pico, and it can run in as little as 32 KiB of RAM. The project has been around since 2017 and has grown in community and features (support for multiple MCU families, JIT, and ahead-of-time compilation to native code), so it can now be used in production for both professional and hobbyist projects.

This talk will introduce AtomVM and show how it can be used in real embedded projects, and it will also explain the benefits of using BEAM languages on microcontrollers: such as supervision trees, lightweight processes, and native clustering. We will see how the foundations of a language originally used by Ericsson to power high-reliability telephone switches are still valuable for today’s connected devices.

No previous knowledge of Erlang, Elixir, or Gleam is required.

Links:

  • https://atomvm.org/
  • https://doc.atomvm.org/
  • https://github.com/atomvm/AtomVM/

Attachments

Speakers

Davide Bettio

Davide Bettio is a long-time open-source enthusiast from Padova, Italy, who fell in love with Elixir. He has been passionate about embedded systems since high school and has contributed to a number of FLOSS projects, including KDE. In 2017, he created AtomVM to run Elixir, Erlang, and Gleam on tiny microcontrollers with only a few kilobytes of RAM. Recently he started working full-time on AtomVM. When he’s not coding, Davide enjoys hiking in the Alps.


Notice: The placeholder video image is licensed under CC BY-SA 4.0. The original image can be found hereChanges made to the image are: Cropped the image to a new ratio, part of the image was cut off.