DEVELOPBY UNEXPECTED MAKER

Develop

Languages, development tools and ready-made projects for your next build.

If this is your first time using an Unexpected Maker development board, please check out the Getting Started guide → first.

Languages / platforms

Choose your language and development tools. Runtime support varies by chip; follow the linked project’s hardware requirements and board setup.

Erlang / Elixir

Run concurrent Erlang and Elixir applications on ESP32 with AtomVM.

Choose your MCU

1

Download the AtomVM image

Download the latest AtomVM release image for ESP32: AtomVM-esp32-v0.6.6.img for Erlang, or AtomVM-esp32-elixir-v0.6.6.img for Elixir.

2

Connect the board

Connect TinyPICO with a USB data cable and close any serial monitor. It enters download mode automatically through its USB-to-serial bridge; it has no BOOT button.

3

Install AtomVM with esptool

These commands are for esptool 5.4.0, the latest release. Replace PORT with your board’s port. esptool documentation →

  1. Erase the flash first.
  2. Write the image at address 0x1000.
esptool --chip esp32 --port PORT erase-flash
esptool --chip esp32 --port PORT write-flash 0x1000 AtomVM-esp32-v0.6.6.img
4

Deploy your application

Package your application and flash it alongside AtomVM. With rebar3 for Erlang:

rebar3 atomvm packbeam
rebar3 atomvm esp32_flash --port PORT

Or with mix for Elixir:

mix atomvm.packbeam
mix atomvm.esp32.flash --port PORT

Deployable projects

Ready-made firmware and connected applications for lighting, sensors and home automation. Follow each project’s supported hardware and configuration guide.