AtomVM 0.6.5 is now available


The AtomVM team is pleased to announce that AtomVM 0.6.5 had been released! :rocket:

What was initially expected to be a small release to fix the corrupted Elixir libraries in the ESP32 binary images turned out to be one of our most feature packed updates to date. The list of added feature and bugs that were fixed is too large to list all the details here, most are covered in the official release announcement.

Erlang enhancements include expanded string, lists, and binary modules, as well as several functions (and guards) from the erlang module. Support for directory listing using POSIX APIs (atomvm:posix_opendir/1, atomvm:posix_readdir/1, atomvm:posix_closedir/1) has been added.

Elixir language additions include support for:

  • Enumerable protocol
  • List.Chars protocol
  • String.Chars protocol
  • Process.send/2, Process.send_after/3/4, and Process.cancel_timer/1
  • List.duplicate/2
  • IO.chardata_to_string/1
  • Keyword.split/2
  • Base.decode16/2 and Base.encode16/2

We have fixed the problem with ESP32 images, and now publish an Elixir flavored image that has a larger library partition. This change necessitates changing the application partition offset to 0x250000. The ExAtomVM mix plugin repository has already been updated with the correct default offset, a new release should be available in the very near future. If you are using the Elixir flavored images with Erlang apps and the atomvm_rebar3_plugin, don’t forget to pass the correct offset, or add it to the esp32_flash section of the atomvm_rebar3_plugin configuration in rebar.conf.

Notable enhancements to the ESP32 platform include addition of the esp_adc driver module for taking analog voltage measurements from ADC supported GPIO pins. Building from source and including the atomvm_adc driver in the esp32/components directory in no longer necessary :tada: (or supported, since the deprecation of ESP-IDF v4.4.x). The ESP32 platform also gains the ability to mount and unmount partitions (currently only fat) on SD cards, or flash partitions.

For the full set of bug fixes, changes and additions consult the Changelog.

Binaries are available for most platforms on the AtomVM GitHub Release page .

For MacOS users macports and homebrew updates are available, for details see the AtomVM 0.6.5 for MacOS updates announcement.

Documentation of the AtomVM virtual machine, including a Getting Started Guide , and API reference documentation for AtomVM Erlang libraries can be found in the AtomVM v0.6.5 Documentation .

If you discover any bugs, errors in the documentation, or have a feature you need implemented to get your microcontroller application working, we always encourage opening an issue on GitHub , and of course code and documentation contributions are always welcome. :wink: We are often active in the Telegram Chat (with members around the globe, so somebody is usually around to help trouble shoot), or contact us here on the erlangforums.com AtomVM Forum . :grin:

Many thanks go to Davide Bettio , for creating and maintaining such a fine work of software, and to the rest of the contributors and testers who have helped make this release possible.

13 Likes