AtomVM: Elixir, Erlang, and Gleam on Microcontrollers
H.2215 (Ferrer) | Day 2 | 12:00 - 12:15 | Speakers: Davide Bettio
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 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.
Links
External Links
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.
