⚛️ orbital
Build and flash Gleam projects to devices running AtomVM.
Add it to your project as a dev dependency:
gleam add --dev orbital
Your project must have a module with a start function that takes no arguments:
import gleam/io
pub fn start() {
io.println("Hello, from AtomVM!")
}To build and flash it to a device with the AtomVM firmware installed you can run:
gleam run -m orbital flash esp32 --port /dev/some_deviceAnd you're good to go! To get an overview of all the available commands and options you can run:
gleam run -m orbital helpFAQ
What's AtomVM?
AtomVM is a lightweight implementation of the BEAM, optimized to run on tiny micro-controllers. You can read more about it here!
How can I install AtomVM?
To install AtomVM on a device check the getting started guide.
Can I run any Gleam program on AtomVM?
AtomVM implements a constrained subset of the Erlang's standard library, so if your Gleam code or dependencies use some of the functions that are not supported you will see a runtime error once running it on the device!
If you see an
undeferror in your stack trace, that most likely means your code used one such function.What can I do to help?
AtomVM is a wicked cool project, enabling developers to run Erlang, Elixir and Gleam code on tiny embedded devices, as cheap as 2$! If you think this project is cool, please consider sponsoring it!