fhunleth

fhunleth

Co-author of Nerves

Nerves 1.8 released!

The Nerves core team is proud to announce the Nerves v1.8.0 release.

Nerves provides the core tooling for creating self-contained, BEAM-powered firmware images for a variety of embedded devices.

This is one of our larger releases in terms of amount of code changed. We expect it to be a straightforward upgrade for most Nerves users since we focused on documentation and code cleanup. This new release does require Elixir 1.11 or later. We are continuing to make Nerves v1.7 patch releases for users who can’t update. The latest right now is v1.7.17.

The Nerves Project is more than just the Nerves library and includes many companion libraries and device ports maintained by the Nerves core team. To help users find these, we now have a list at github.com/nerves-project/nerves. This list includes what we have decided to maintain as a core team. The Nerves community has contributed many additional libraries, and we highly encourage checking the Elixir Circuits list and searching hex.pm for additional device support or functionality.

Since we as a team spend most of our time working on code outside of the core library, I’d like to highlight other updates we’ve made over the past couple months:

  1. Upgrade crosscompilers to GCC 11.3 for C and C++ code. Nerves includes OpenMP support and the option to use Fortran for numerical workloads. See toolchains v1.6.0 release
  2. Official support for the GRiSP 2
  3. 64-bit RISC-V support. See the v1.6.0 toolchains and nerves_system_mangopi_mq_pro for use on RISC-V hardware.
  4. Raspberry Pi boards are now all using Linux 5.15. Support is available for new variants like the Pi Zero 2 and new compute modules. See nerves_system_rpi4’s 1.20.0 release
  5. Improved support for compiling NIFs and ports so that processor-specific optimizations and security hardening is applied consistently. This is handled transparently unless you’re porting to a new device. See the TARGET_GCC_FLAGS docs
  6. Replaced all remaining use of SystemRegistry with PropertyTable. This probably only affects code reacting to Linux UEvents and not using udevd. See NervesUEvent.
  7. Improve visibility of hardware watchdog and Erlang heart information. See Nerves.Runtime.Heart
  8. Improve support for Nerves configurations that don’t have data partitions or use U-Boot environment blocks
  9. Support more flexibility in OTP release script application start ordering. The start order is now deterministic among libraries with no dependency relationship (alphabetically is the final tie breaker). Libraries can be marked to favor them to be started earlier or later.

If you want to try the Nerves updates out quickly, the following all use Nerves 1.8 now:

  1. Elixir Circuits Quickstart
  2. Nerves Livebook
  3. The Nerves example projects

Thanks to our sponsors and all of our users. We’ve had so much support from people in the community this year that it’s made working on Nerves a joy. Please continue doing all of the cool things that you do with Nerves that push the boundaries of what we support!

Most Liked

AstonJ

AstonJ

Congrats Frank and everyone on the Nerves team :041: It’s great to see Nerves go from strength to strength :023:

apoorv-2204

apoorv-2204

Very Happy to see such huge progress.
Good Luck

Where Next?

Popular in News & Updates Top

bartblast
Hi folks, For anyone following Hologram’s development or curious about running Elixir in the browser, I’ve created the Client Runtime Re...
New
zachdaniel
Ash Framework What is Ash? Ash Framework is a declarative, resource-oriented application development framework for Elixir. A resource can...
New
ConnorRigby
This week we added official Nerves support for the OSD32MP1 line of SOMs. Currently we have tested the osd32mp1-brk breakout board, and ...
New
bartblast
Hologram v0.6.0 is here, bringing production-ready features to the full-stack Elixir web framework! This release focuses on enhanced secu...
New
sorenone
We have for you a new release candidate. Take :notes: if you use partitioned queues or make heavy use of Workflows. This is the RC for yo...
New
lawik
Nerves, fwup and NervesHub have had delta updates as a feature on the checklist for a long time. A delta update being essentially a patch...
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
jjcarstens
Testing code destined for hardware can be tricky, but it just got one tiny bit easier! :tty0tty was just released which is an Elixir por...
New
zachdaniel
AshCloak AshCloak is small but mighty! Simply configure the extension, and it will encrypt your attributes :partying_face: Since an exam...
New
jjcarstens
The Raspberry Pi is a very popular hardware platform for Nerves users and the official systems are getting an upgrade! :tada: :beers: Wh...
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
srinivasu
How to handle excepions in elixir? Suppose i have A, B, C ,D, E modules. and each module has get() function. A.get() method will call th...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
vac
Hi, I'm quite new in Elixir and I'm trying to format a string to a PEM format. I have the certificate value like MIIDBTCCAe2...... and ...
New
danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 27727 240
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
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New

We're in Beta

About us Mission Statement