We are thrilled to announce Nerves v1.0 is finally out. This has been 4219 commits by 102 contributors since the initial commit on October 29th, 2013! This would not have been possible without our corporate sponsors and individual backers.[Read More]
Reverting firmware updates
Deployed a firmware image that doesn’t quite work? Made a mistake in development and don’t want to remove and reprogram the MicroSD card to go back? No problem. If the previous firmware image worked fine, then just revert back to it.
This is one of those features that has been possible since the beginning of the Nerves project, but we didn’t make it easy. That’s changing.[Read More]
The Road to Windows
Most Elixir developers prefer Mac or Linux, but Windows is historically the platform of choice for embedded development. Therefore as Nerves continues to grow, a Windows solution is needed.
There are 2 fundamental approaches to Nerves-on-Windows:
- Pretend it’s Unix
- Run it as a Windows app
Unfortunately, there is no “silver bullet”–each approach has its trade-offs.[Read More]
January 2018 Nerves Update
Happy New Year from the Nerves team!
We’re marching ahead with our 1.0 plans and methodically going through our constituent projects to get them across the “finish” line. Work priorities have forced some Nerves development on tangents, but some of those may be of interest as well. Here’s a summary of what’s been happening:[Read More]
Using NIFs With Nerves
While working on a Nerves project, you will likely do most hard work in the
host environment. This means you get to develop features quickly, and when
are ready, you simply deploy your known working firmware to your embedded
devices. This however can lead to a situation where the code runs really well
on your i7 powered beast computer, but when deployed on a less
powerful Raspberry Pi 0, for example. Nothing will be broken, but things are just
too slow. There are a number of solutions to this problem and in this post,
I will walk you through a simplified real world example of one possible solution
of using an Erlang NIF to speed
up one particular functionality.
The Nerves Update
Wondering what’s happening on the Nerves project? You’re not alone. We’re planning semi-regular updates so that you don’t need to lurk on the elixir-lang Slack’s #nerves and #nerves-dev channels all the time.
Alright, here are the highlights:[Read More]
Creating Patches Using Git
This is not an Elixir post, but it comes up when working with custom Nerves systems. The problem is how to deal with custom patches to Buildroot, Linux, or any of the non-Elixir libraries that your application might use. You may have seen patch files like these. These patch files are used to create local changes to projects when modifications either can’t be sent upstream (partial workarounds, hacks for specific systems, etc.) or haven’t been integrated yet. This post describes a way to create them.[Read More]
Using Ecto and Sqlite3 with Nerves
One of the most common questions we answer in the Nerves help channels is how to store persistant data across reboots. Since the file system is read-only, the normal avenues usually will not work with Nerves.
There are several solutions that have yielded varying levels of success accross projects. Before we dive too deep into SQLite, lets take a look at the other options:[Read More]
Roundup of Embedded Elixir Talks at ElixirConf 2017
Solve All of Your Version Problems
Nerves usually pushes the bleeding edge of Elixir, which means we sometimes
sometimes hear about problems in our Nerves Slack channel that can be solved by
updating to the latest version of Elixir and OTP. Now, there are built-in
options in most operating systems to do this, such as
pacman etc, and they all work with varying levels of success. ASDF-vm is an
alternate version manager that allows easy installation and switching between
different versions of various packages.