fhunleth

fhunleth

Co-author of Nerves

Nerves supports Erlang/OTP 26 and Elixir 1.15 now

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:

  1. Install Elixir 1.15.1+ and OTP 26.0.2+
  2. Update the :nerves dependency to 1.10.3 or later
  3. Update your Nerves System to use :nerves_system_br v1.23.2. If using official Nerves systems, update them to the latest versions.
  4. Run mix hex.outdated --all and review library updates.
  5. Run mix firmware on your project and update rel/vm.args.eex based 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!

Where Next?

Popular in News & Updates Top

barnabasJ
You can now add subscriptions using the DSL. subscriptions do pubsub YourAppWeb.Endpoint subscribe :something_changed do action...
New
zachdaniel
Hey friends! A long time quality of life feature we’ve been wanting to add is the ability to refer to to-one relationships in calculation...
New
mspanc
Membrane v1.2.6 has been released. What’s Changed Adjust to Elixir 1.19 by @Noarkhh in Update to elixir 1.19 by Noarkhh · Pull Request ...
New
jimsynz
As some of you know, I have been working on a tight integration between Ash and Reactor which has triggered a few small bug fixes in Spar...
New
zachdaniel
:police_car_light: New AshAuthentication Installers :police_car_light: The AshAuthentication igniter installers are released! Today on s...
New
fhunleth
Normally, we don’t announce patch release Nerves systems, but the nerves_system_br v1.30.1 release is particularly important for anyone u...
New
lawik
It is my pleasure to announce the official release of the new generation of NervesHub with the v2.0.0 release. Containers are tagged. :p...
New
zachdaniel
The second video from the Ash Primers series is out! https://www.youtube.com/watch?v=GtsL_lIis4Q This one is about the migration generato...
New
jjcarstens
NervesPack 0.4.0 is a minor bump with a fairly big change. This update drops :nerves_firmware_ssh in favor of the newer and more focused...
New
zachdaniel
Hey folks! We’re giving a training at the upcoming ElixirConf EU! If you want a leg up on 3.0, this is definitely something you don’t wan...
New

Other popular topics Top

shahryarjb
Hello, I get Persian date from my client and convert it to normal calendar like this: def jalali_string_to_miladi_english_number(persi...
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
sergio
In Ruby, I can go: User.find_by(email: "foobar@email.com").update(email: "hello@email.com") How can I do something similar in Elixir? ...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 35421 110
New
mgjohns61585
Could someone help me? I'm making my first elixir program, number guessing game. I can't figure out how to convert the user's guess from ...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list....
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
beno
I will often find my self writing things similar to: case some_value do nil -> something() "" -> something() _ -> someth...
New

We're in Beta

About us Mission Statement