mix nerves_hub.atomvm.vm (nerves_hub_link_atomvm_esp32_ex v0.1.2)

Copy Markdown View Source

Build an AtomVM firmware a NervesHub device can run.

mix nerves_hub.atomvm.vm ~/src/AtomVM ~/src/atomvm_websocket_client

A device does not run a stock AtomVM. The WebSocket transport is an ESP-IDF component, over-the-air updates need a partition table with two packbeam slots rather than the one stock has, and verifying signatures needs AVM_USE_LIBSODIUM=ON and more main task stack than the default.

This copies two files into the AtomVM tree and runs idf.py with the right flags, so the same VM comes out on another machine. The files ship in the agent's priv/atomvm and are printed below as they are copied, so nothing here is hidden.

Run it from an ESP-IDF environment (. $IDF_PATH/export.sh). ESP-IDF v5.2 to v5.5: AtomVM does not build against v6.

Options

  • --target - the chip, esp32 by default
  • --no-libsodium - skip Ed25519, and with it firmware signature verification. The two update slots are still set up
  • --dry-run - print what would happen and change nothing