Editorial nonsenseAs I gently reflash the eMMC on a Pi CM4 for approximately the hundredth time in one day I reflect upon the phenomenal pile of stuff we all build upon. The weird proprietary videocore bootloaders of Broadcom don't particularly make for warm and fuzzy thoughts but some reflection there nonetheless. Then Linux deserves some appreciation as I wrangle the tools to encrypt drives and check signatures. So much plumbing and fundamentals that people put effort into and then offered out for our collective use. Finally booting I have to nod to all the special sauce poured into Nerves to make it a nice place to boot the BEAM
VM. erlinit, shoehorn, nerves heart, all the things that make our thing tick. Of course a warm thought to our little corner of the international behemoth of Ericsson where people hack away at the binary rock, like so many Michelangelos, trying to lay bare the system that awaits within. Yes, this is how the BEAM was developed, as sculpting metaphor. Shush. Wherever I turn in my programming, there are people and projects trying to solve things. Ancient ones, new ones. Active ones, mature ones. Well worth throwing them some appreciation, some patches, some thought. Oh, and holler if you want me to do a proper write-up of a fully secure-booted and disk-encrypted Raspberry Pi 4/5 without any extra hardware. I should have the stuff to sling that
together after all this is said and done. Community activityThe Nerves Meetup á la Europe is still pinning down our Q1 speakers. But January is settled. And it'll be a good DIY:able thing. Kevin Schweikert brings us Homex. The Home Assistant library for Elixir. I've used it a bunch already so I look forward to this. Sign up, free, remote,
January 14th
. And a great talk on real-world control systems with Nerves by Powell Kinney shipped with the new year. Don't sleep on this. Very nice demonstration. Software updatesNerves Project OfficialThis is probably the last update of the Pi systems before the major version bump to use tryboot and get the proper fallback. Enjoy :) All systems This is a major Buildroot update. It should be seamless for most users. nerves_system_mangopi_mq_pro, v0.15.0 nerves_system_vultr, v0.30.0 nerves_system_x86_64, v1.33.0 nerves_system_grisp2, v0.17.0 nerves_system_osd32mp1, v0.24.0 nerves_system_bbb, v2.29.0 nerves_system_qemu_aarch64, v0.3.0 Also some special fixes: Fixes - Fix firmware path computation in mix nerves.gen.qemu
- Support ssh via port 10022 in shown commandline
Raspberry Pi systems
nerves_system_rpi, v1.33.0 nerves_system_rpi2, v1.33.0 nerves_system_rpi0_2, v1.33.0 nerves_system_rpi0, v1.33.0 This is a major Buildroot and Linux update. It should be seamless for most 1.32.0 users. Changes - Refresh ramoops-overlay.dts. This actually changes the default pstore settings to reserve less DRAM based on experience of not needing nearly as much. Settings can be
overridden now via the config.txt.
- Use EEx to generate the fwup.conf. This removes a lot of repetition. If you’ve made a custom fwup.conf, please review git commit log for details.
Updated dependencies
Display support for Raspberry Pi systems kiosk_system_rpi5, v0.6.0 kiosk_system_rpi4, v0.6.0 nerves_system_rpi5, v0.8.0 nerves_system_rpi4, v1.33.0 nerves_system_rpi3a, v1.33.0 nerves_system_rpi3, v1.33.0 As above, but also: - Add 5” Raspberry Pi Touch Display overlay
Other bits nerves_livebook, v0.18.0 circuits_quickstart, v0.14.0 - Updates
- Update Nerves systems to `nerves_system_br v1.33.0 (Erlang/OTP 28.3, Buildroot 2025.11)
nerves_bootstrap, v1.14.3 - Changes
- Fix Elixir 1.19 deprecation warning in a mix nerves.new project
- Fix unused @all_targets warning when creating a --no-nerves-pack project
nerves_bootstrap, v1.14.2 - Changes
- Remove question for whether to install deps on nerves.new since it interfered with scripted use, and you always had to run mix deps.get to download the Nerves system anyway.
nerves_bootstrap, v1.14.1 - Changes
- Add guidance in mix.exs for specifying listeners so that they’re not included in target builds. This mainly affects Phoenix users.
Community projectsBEAM Bots James is shipping ever more stuff. I recommend
reading the blog posts
as well. bb_kino, v0.3.0 - update command handlers to new GenServer-based API (#9) by James Harton
- add Parameters widget for viewing and editing robot parameters (#2) by James Harton
- colour serialisation by James Harton
- enhance command and joint control widgets (#1) by James Harton
bb_ik_dls, v0.3.1 - update for bb 0.12 command API and add bb_dep helper (#2) by James Harton
bb_ik_dls, v0.3.0 - add collision checking option to IK solver (#1) by James Harton
bb_ik_dls, v0.2.0 - implement Damped Least Squares IK solver
bb_ik_fabrik, v0.3.1 - update for bb 0.12 command API and add bb_dep helper (#9) by James Harton
bb_ik_fabrik, v0.3.0 orientation-aware FABRIK with co-located joint handling (#6) by James Harton update FABRIK to use Vec3 targets and orientation types by James Harton add orientation-aware FABRIK solving with axis constraints by James Harton - use orientation-aware FABRIK internally for all solves by James Harton
bb_servo_robotis, v0.2.0 - update to bb 0.8 wrapper GenServer pattern (#3) by James Harton
- controller: report hardware errors to safety system by James Harton
- parameter bridge missing callbacks by James Harton
- controller: make disarm behaviour configurable by James Harton
bb_pigpio_servo, v0.4.0 - update to bb 0.8 wrapper GenServer pattern (#7) by James Harton
bb_servo_pigpio, v0.4.0 - update to bb 0.8 wrapper GenServer pattern (#7) by James Harton
bb_servo_pca9685, v0.4.0 - update to bb 0.8 wrapper GenServer pattern (#7) by James Harton
bb, v0.13.0 - add reactive controllers for threshold and pattern
matching (#28) by James Harton
bb, v0.12.0 convert commands from Task-based to GenServer-based execution (#27) by James Harton convert commands from Task-based to GenServer-based execution by James Harton add command options support
and tests by James Harton use structured errors in MoveTo command (#26) by James Harton
bb, v0.11.0 bb, v0.10.0 bb, v0.9.0 add diagnostic and performance telemetry by James Harton add structured error handling with splode by James Harton add @type
t to BB.Error.Invalid.JointConfig by James Harton make BB.Safety.disarm/2 timeout configurable by James Harton
bb, v0.8.0 add param() references and wrapper GenServer pattern (#19) by James Harton parameters: allow setting params via start_link options by James Harton dsl: add param() references for topology fields by James Harton dsl: add param() references in actuator/sensor/controller options by James Harton - fix arm/disarm actions by James Harton
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 |