RSSAmplifier

Blog

Embedded Elixir

Recent content on Embedded Elixir

embedded-elixir.com ↗RSS feed ↗29 posts

Latest posts

Nerves System Upgrade Guide

This guide provides steps to be followed when you upgrade your Nerves firmware
project to a newer version of Nerves System.

Autoloading NIFs on Nerves

Native Implemented Functions (NIFs) let you significantly speed up code or
make system calls that would otherwise be unavailable. However, they come with a
significant cost in that when they go wrong, they can take down the entire
Erlang VM. This is particularly challenging when using NIFs with Nerves when
crashes happen at boot time.

Debugging C Code on Nerves

Having trouble debugging C code on Nerves? This post shows how to create, obtain
and work with core dumps.

Nerves šŸ“‚ šŸ‘€

Want to look at and copy files on remote Nerves devices? This post shows you
how using SSH.

šŸ§™ā€ā™€ļøWizards & WiFi ā€šŸ§™ā€ā™‚ļø

Introducing VintageNetWizard - Simple WiFi Configuration using a web browser 
 https://github.com/nerves-networking/vintage_net_wizard

Embedded Networking

Introducing VintageNet - a new networking library for embedded Elixir devices,
specially designed for Nerves šŸ’™šŸ’»šŸ“¶ 
 https://github.com/nerves-networking/vintage_net

Nerves @ 434 MHz

Many home and office items use radio frequencies to communicate control. So naturally,
lets take that over to control them from a single Nerves device with one wire on a
GPIO pin.

Talking I2C

Reading datasheets for fun and profit, or how I learned to stop worrying and
convert analog signals into elixir terms.

Nerves At Home: Controlling a Desk

Use Nerves and a little reverse engineering to control a motorized desk. Then
intercept current height messages from the controller and publish to a Phoenix
site for real-time desk height measurements…because #yolo.

Using Erlang Distribution to test hardware

Iterating quickly over code changes when working with new hardware can be
tricky. Nerves has built-in mechanisms that can be helpful, but what if there
were an even faster, more efficient way?

You Gotta Have Heart

It’s one of an embedded developer’s worst nightmares: You have devices in the
field, on remote sites, where you don’t have access to local staff to serve as
your hands. You’re far from the devices, maybe on a different continent, even,
and now you have a device that’s no longer responding to network requests, or
not sending event data as expected. 
 It is a terrible feeling.…

Mocks and Explicit Contracts in Nerves

If you are not super new to Elixir, you may have read this blog
post 
by JosĆ© Valim. If you haven’t read it, you may want to check it out. This post
references it frequently. 
 Nerves puts a lot of focus into spending as much time developing your
application on your host machine. This means you can rapidly develop your
application, write tests, etc. When you feel it…

Provisioning Nerves Devices

When you’re starting out with Nerves, you may have connected to your first
projects over the network using nerves.local . Libraries like
 nerves_init_gadget make this easy and when you’re
starting out, it’s really convenient. Don’t know the IP address that your
device was assigned? Try nerves.local and you’re good to go. 
 And then you add a second…

Nerves v1.0 Released

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 .

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.…

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…

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:

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…

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. 
 Before the updates, I’d like to thank our Open Collective backers , Le Tote and FarmBot , since they’re majorly helping all of us make this…

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…

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:

Roundup of Embedded Elixir Talks at ElixirConf 2017

ElixirConf 2017 was fantastic with a good selection
of Nerves and embedded Elixir talks. Here’s a list:

Using ASDF-vm

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 brew , apt-get ,
 pacman etc, and they all work with varying levels of success. ASDF-vm is…

Poncho Projects

Recently in the Nerves community Slack channel, we have been talking about how umbrella projects can be problematic for a Nerves-based project.
As a result, we have coined the tongue-in-cheek term “poncho projects” to refer to plain-old-Elixir projects with applications that use plain-old-dependencies.
This is different than using an umbrella project, which come with some…

Firmware Updates

Firmware updates are an important aspect to all parts of the device lifecycle, not just production. In development, they can save you time not burning SD cards by using mechanisms like pushing firmware bundles over the network. Network updates can also pave the way to automate executing canary tests using real hardware. Firmware updates are important to these stages because they are the only way…

Official Raspberry Pi Zero Support and new RPi Systems

It’s official. Tim Mecklem’s Raspberry Pi Zero/Zero W system is now
part of the Nerves Project. Here’s why we’re so excited about this system: 
 
 It only requires a MicroUSB cable, MicroSD card, and an RPi Zero for
development. The MicroUSB cable provides power and access to the RPi’s
 IEx prompt. If you have a Zero W or a RedBear IoT pHAT, your…

Roundup of Embedded and IoT Presentations in March

March was quite a month for talks starting with
 ElixirDaze in Florida, going to Erlang and Elixir Factory in
San Francisco, and ending at the Lviv Ruby Meetup in Ukraine. 
 Here’s a list of embedded Elixir and Erlang related ones that we found:

Upgrading to Nerves 0.5

In early March, the Nerves Project published its v0.5.0 release , marking another big step forward in usability and completeness of the platform.
In this post, I’d like to describe the major changes to be aware of as you upgrade existing projects or create new ones using Nerves 0.5. 
 Refreshed Docs and Examples 
 If you’re new to Nerves or you’ve been using it for a…

Newsletter

The Official Nerves Newsletter is now at nerves-project.org/newsletter .

Embedded Elixir Ā· RSS Amplifier