It looks like it’s finally safe to announce that Nerves supports Erlang/OTP 26 and Elixir 1.15!
We’ve updated dozens of Nerves and closely related libraries over the past month. The Erlang and Elixir-specific updates include:
- Runtime support for Erlang’s new TTY implementation
- Interactive mode is no longer slow on Nerves. The Nerves default is still
embedded, but it can finally be changed back for projects that want to use it. (José actually fixed this one, not us)
- CA certificates included by default to support new Erlang SSL defaults.
- Many, many deprecation and compile-time warning fixes
We also have Nerves system updates that are worth highlighting:
- The Raspberry Pi 4 has been updated to support libcamera and all of the official Pi cameras
- The GRiSP 2 port has better support for its Pmod interfaces
- Buildroot has been upgraded from 2022.11 to 2023.02 and contains many security and bug fixes for Linux libraries
Here’s how to update an existing project:
- Install Elixir 1.15.1+ and OTP 26.0.2+
- Update the
:nervesdependency to 1.10.3 or later
- Update your Nerves System to use
:nerves_system_brv1.23.2. If using official Nerves systems, update them to the latest versions.
mix hex.outdated --alland review library updates.
mix firmwareon your project and update
rel/vm.args.eexbased on an error that you’ll get at the end
For step 4, please check out the Changelog or use the hexdiff feature on hex.pm for comparing versions. Most libraries maintained by the Nerves core team have the Changelog ordered first so that when you look at the diff, you can see the notes at the top. It should be safe for casual Nerves users to blindly update, but we do try to add notes there for specific situations.
For those of you customizing Nerves systems on MacOS, the Nerves system shell is not working with OTP 26, and we’re unsure when a fix will be available. We recommend looking at the
nerves_systems project. It requires running Linux. Running Linux on MacOS in a UTM VM works well.
Happy hardware hacking!