Community activityNot much activity coming up over the holiday-New Years period. The US meetup lands in the middle of the holidays and takes a well-deserved break to not tear you away from any celebrations. We had the Nerves Meetup EU earlier this month and the video is up. In this one Frank explains the new try_boot/autoboot and auto revert support for Raspberry Pi. Bringing them up to the level of many more industrially inclined boards in supporting failing back reliably on bad firmware. Lots of lessons along the way and interesting detail. Including a lot on the RamoopsLogger, your only good way to find out what caused a reboot or other serious failure. Packed with good stuff. Enjoy! James Harton who we know from
Reactor
,
Wafer
and his work on the Arduino Uno Q as well as being an Ash Framework core team member.. he just launched a thing. BEAM Bots It not a Nerves project
explicitly. But an obvious fit for Nerves and we heartily support the effort. Taking notes from Ash on how a Framework can let you define data describing your complex system and then be able to make better APIs on top. The blog is a good starting read:
https://beambots.dev/blog/ Check it out, keep track of it. Maybe even contribute? We hope to see some good intro kits recommended soon. You can see packages and activity on those further down. I'll be experimenting with tracking projects like this, AtomVM, GRiSP, meta-erlang that strongly relate to Nerves but
aren't part of Nerves. Let our presence with Nerves help gather the overall embedded BEAM community. Software updatesNerves Project OfficialThere are system updates coming. So much stuff leading up due to the try_boot work for RPi. There are updates to fwup and boardid that will land in nerves_system_br and so on and bump
all
the systems. nerves_system_br, v1.33.0 This is a major Buildroot update to 2025.11. While a major update and the Buildroot release notes should be reviewed, it updates a lot but doesn't appear to require changes to Nerves systems. fwup, v1.15.0 New features - Added require-execute to be able to run an arbitrary program to determine whether or not to run a task. This requires the --unsafe flag to use.
- Added firmware nicknames like guitar-weather so that it’s easier to refer to firmware files rather than by using UUIDs. Nicknames are computed from the UUID and don’t affect .fw files. They’re not guaranteed unique, so continue to use the UUIDs for uniqueness guarantees. See the meta-nickname metadata. You can still refer to firmware versions. This handles the development and debug cases where you’re not regularly updating version numbers.
Bug fixes - Fixed success message when creating public/private signing key pairs. It previously printed out the wrong filename on some systems.
nerves_motd, v0.1.16 This release requires Elixir 1.14 or later. Fixes - Fix started application field to not warn on applications that are intentionally not started in the release.
Improvements - Copyright and licensing has been updated to follow the REUSE standard
- Support installation using Igniter. While this isn’t necessary currently since nerves_motd is installed via mix nerves.new, in the future when more Nerves libraries support Igniter, the plan is to trim nerves.new.
boardid, v1.15.0 It can now read text from files :D Still unconfirmed if emoji serial numbers would work end-to-end. Please test. New features - The -b binfile option can now be passed -t <format type> to adjust how it interprets binary identifier data. The default is to convert to ASCII hex characters, but it
can be changed to things like -t text when the binary data is already ASCII or UTF-8 text or -t big_endian_decimal when the bytes should be converted to a number and then output as decimal. See the docs for options.
Changes - Read /sys/firmware/devicetree/base/serial-number first when pulling identifiers from the device tree. If this doesn’t exist, it checks the older /proc location. The kernel has had a symlink from the /proc location to the sysfs location for what seems like a long time now.
Community projectsBEAM Bots bb_liveview, v0.2.0 - implement BB LiveView dashboard with 3D robot visualisation by James Harton
bb, v0.7.0 - safety: add hardware error reporting with auto-disarm (#16) by James Harton
bb, v0.6.0 - add GenServer behaviours with options_schema callbacks (#15) by James Harton
bb, v0.5.0 Features:- add motion integration for IK solving and actuator commands (#14) by James Harton
Bug Fixes:- move argument type docs to entity docs field by James Harton
Improvements:bb, v0.4.0 Features:Improvements:bb, v0.3.0 add standard actuator command interface (#9) by James Harton add BB.Message.Actuator.EndMotion (#8) by James Harton add BB.Sensor.OpenLoopPositionEstimator (#7) by James Harton
bb_servo_pca9685, v0.3.1 - update for compatibility with
BB 0.6.
bb_servo_pca9685, v0.3.0 - implement BB.Safety behaviour for safe disarm (#3) by James Harton
bb_servo_pca9685, v0.2.0 Features:- add PCA9685 servo controller, actuator, and sensor modules by James Harton
Improvements:- use standard actuator command interface by James Harton
bb_servo_pca9685,
v0.1.0 bb_pigpio_servo, v0.3.1 - update for compatibility with BB 0.6.
bb_pigpio_servo, v0.3.0 - implement BB.Safety behaviour for servo disarm (#2) by James Harton
bb_pigpio_servo, v0.2.0 Features:Improvements:- use standard actuator command interface by James Harton
bb_servo_pigpio, v0.3.1 - update for compatibility with BB
0.6.
bb_servo_pigpio, v0.3.0 - implement BB.Safety behaviour for servo disarm (#2) by James Harton
bb_servo_pigpio, v0.2.0 Features:Improvements:- use standard actuator command interface by James Harton
bb_ik_fabrik, v0.2.0 - add FABRIK solver with motion integration (#1) by James Harton
bb_ik_fabrik, v0.1.0 bb_kino, v0.2.0 - add Kino widgets for BB robot control in Livebook by James Harton
bb_kino, v0.1.0 You can buy an official Nerves shirt from
oswag
. Fair trade, organic and high-quality. Family-scale business. Got questions?Trouble-shooting is best done on
the Nerves Forum
over at Elixir's Forum. But if you have big-picture questions you would like to ask around Nerves, feel free to send them in and we might just have ourselves a column here. Participating in the communityThe Nerves community is found wherever Elixirists gather. Try any of the following: Questions are best asked on
the Elixir Forum
. Social conversation and banter: How you can help NervesContribute in the way that works for you: - 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.
- Write or port a new hardware library and include it in
the Elixir Circuits collection
.
- 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.
Finally, if you have questions about the newsletter or want to suggest something you can simply respond to this email. - Lars |