Official project updates
I've been travelling and getting the newsletter out turned out to be too painful. Frank threw me some updates as I delayed this newsletter. I'll consider them official gospel and share them verbatim. I quote:
"New Neres systems, new Nerves Livebook, new Circuits Quickstart. Code BEAM was awesome! @floralouise’s Puppeteering presentation w/ Nerves Livebook, @kikuyuta’s use of Nerves in small hydroelectric plants in Japan, @takasehideki’s autonomous node communication w/ ROS and Nerves, and @Jason Axelson’s Nerves in the cloud. Plus there was a whole lot of info about Kry10 OS
which is pretty interesting. Oh, and hallway talks which I hope will materialize into future posts here!"
I hope that shares some of the enthusiasm :)
(Twitter handles are linked below in the community news).
Across all systems:
- Fix regression
when building on x86_64 Linux where wrong toolchain was used.
- Some systems (listed for x86_64, rpi0, rpi4, rpi)
- Fix regression when building on x86_64 Linux where wrong toolchain was used.
- nerves_system_rpi0, v1.21.1
- nerves_system_rpi, v1.21.1
- nerves_system_rpi2, v1.21.1
- nerves_system_rpi3, v1.21.1
- nerves_system_rpi3a, v1.21.1
- nerves_system_rpi4, v1.21.1
- nerves_system_vultr, v0.18.1
- nerves_system_bbb, v2.16.1
- nerves_system_x86_64, v1.21.1
- nerves_system_grisp2, v0.5.1
- nerves_system_osd32mp1, v0.12.1
- Update Livebook to v0.7.2
- Update Nerves systems to nerves_system_br 1.21.2 versions
- Fix hyperlinks and move more pages to learn sections (Thanks @mnishiguchi)
- Update Nerves systems to nerves_system_br v1.21.2 (Erlang/OTP 25.1.2, Buildroot 2022.08.1)
- Update to Nerves 1.9
- Update to Elixir 1.14.1
This is a major update to Nerves Heart.
- BREAKING: the informational attribute names changed to clarify whether they came from the watchdog timer device driver or Nerves heart
- Added an optional initialization handshake to protect against :heart.set_callback/2 not being run and an issue going undetected.
- Added support for guarded reboot and poweroff requests. These work similar to the reboot and poweroff shell commands, but stop petting the watchdog as well. This protects against rare reboot/poweroff hangs.
- Pet the hardware watchdog before exiting to reduce the chance of it rebooting the system early due to unlucky timing from the
- Remove hardcoded hardware watchdog pet time and calculate based on actual timeout value.
This is a significant update since it adds a regression test framework. Previously, we had so few changes that we trusted the OTP team’s coverage, visual inspection and spot checks. No major feature updates are in this release, but this unblocks the addition of future updates.
- Add disable_vm command to enable testing of heart timing out the Erlang VM. For consistency, this adds disable_hw for disabling the petting of the hardware watchdog to verify that failure path. The disable command maps to disable_hw for backwards compatibility.
- Call sync(2) before rebooting due to Erlang VM unresponsiveness to reduce data loss.
- Open /dev/watchdog0 on start. On systems that don’t start the hardware watchdog on boot, this starts it as soon as possible to avoid the gap until the
first “pet” or select timeout to start it.
This is a security/bug fix release for v1.21.1.
- Use MIX_BUILD_PATH if specified for build products
- Allow Nerves v1.9.0 to be used in new projects
- Use console logger by default in host mode. This is more like the default Elixir configuration.
- Bug fixes
- Improve ATECC retry logic to retry on a transient I2C read failure as well as an unexpected response. This also doubles the ATECC wakeup retries to 4 and increases the retry timeout from 1.5 ms to 10 ms. This works around a rare issue where an I2C failure that only seems to happen at boot causes the serial number to not be readable.
Supporting the Nerves project
We want to encourage everyone to contribute in whatever way works for them. Here are some ways we currently recommend:
- Write or port a new hardware library and include it in the Elixir Circuits collection.
- Give money to the project via Open Collective.
- Get in touch about taking over maintenance duties for some libraries, we might be able to provide you hardware.
- Apply for an EEF stipend on something Nerves-related and build it. We can help if you have
questions about this.
- Send corrections or improvements for documentation wherever it fails to help you.
- Write about Nerves, give talks about Nerves. Make videos about Nerves. It is all good.
Finally, if you have questions about the newsletter or want to suggest something you can simply respond to this email it will go directly to me, Lars, who edits this thing. Let me know what you think.
- Lars, Underjord.io