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-S3: AtomVM-esp32s3-v0.6.6.img for Erlang, or AtomVM-esp32s3-elixir-v0.6.6.img for Elixir.

2

Enter download mode

Connect the board with a USB data cable and close any serial monitor. Enter download mode before flashing.

1Hold BOOT

Keep BOOT pressed.

2Tap RESET

Press and release RESET while still holding BOOT.

3Release BOOT

Select the download-mode port on your computer.

There is no LED signal to confirm download mode. Check your computer’s serial-port list instead.

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 0x0.
esptool --chip esp32s3 --port PORT erase-flash
esptool --chip esp32s3 --port PORT write-flash 0x0 AtomVM-esp32s3-v0.6.6.img

When flashing finishes, press RESET to start the new firmware.

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.