So there is more management overhead than to talk, so great.
Okay.
This is Davide Beteo with Running Airline and Elixir on microcontrollers with AtomVM.
Give it up.
Hello, everyone.
So who I am, basically I work during my daytime on a start and a job that are really nice.
Elixir project for IoT and whatever.
And during my nighttime, I try to work a lot on AtomVM that allows you to run Elixir,
Erlang, Gleam, whatever can run on the beam on a microcontroller.
When I say microcontroller, I mean something really, I mean memory constrained, but not
too much.
I mean, still it has to be a 32-bit processor.
It requires about 80 kilobytes of RAM, but we can do it.
Pretty crazy, but we can do it.
And so the software is mostly unmodified.
I mean, we don't have to translate it to other formats or whatever.
It can run beam files, so it's pretty standard.
So how?
So basically we did, well, I created it from scratch, and so the wall implementation has
no code from the original beam implementation because we are focused on memory.
So rather than focusing on performances where beam is very good at, we are focusing on making
everything stay in just a few kilobytes of RAM.
And the virtual machine is compatible with, I mean, all the recent OTP releases.
We already have some experimental support for OTP26, so we are on par right now.
And we have support for quite a big number of nymphs and biffs from Erlang.
So we implemented them in all the daily basics, so you can run your project if you are not
doing anything weird.
And well, there it is.
And also we did something more.
For example, we weren't able to run a replica for Erlang or Elixir on a microcontroller.
It's not really easy.
So we did a simple list implementation for testing stuff.
So if you want to test registers or EWC communication or SPI communication, you can poke with registers
using Lisp.
It's not as good as maybe Erlang or Elixir or whatever, but, I mean, you can experiment
a lot.
And everything can be packed into a single file that can be easily flashed.
And we are mainly supporting right now ESP32 because we started a project with that powerful
microcontroller, but we support, of course, Linux, macOS, and whatever, because, yeah,
we need to test it.
And we are working on improving and extending the support to other devices.
I mean, as soon as I get a new development board, I try to run it.
And sometimes I need help, of course.
And it's pretty easy to port it, by the way.
And when, it is already here, and it can be used for your simple or maybe a bit more complex
projects.
Again, you are running on a really constrained device, but you can do interesting stuff.
And we are working towards the next release that it will feature a lot of cool stuff.
We got finally SMP support, so we can take benefit of multi-core microcontrollers.
And we got recently also really good code debugging features, so it's pretty nice.
And yeah, this project has been possible thanks to the work of other contributors.
And so thank you very much to everyone that has been working.
And because, you know, open source projects are always kind of teamwork.
And it's hard to do something like this just alone, so a lot of thanks to all the contributors.
And thank you to all of you, of course.
Thank you, Davide.
Four minutes and 40 seconds, I think.
Okay, thank you.