Any recommended book or books to learn and master Nerves?
Haven’t seen or heard of any books. There’s a few tutorials but currently you’ll need to pull together disparate knowledge like dealing with hardware and similar. Though start small and learn each part as you delve deeper into Nerves. Others may have some more in depth resources but I’m not aware of any.
Welcome @jslearner! Sadly no books yet. We are very lucky to have a supportive community here and on the Elixir Slack so if you have any projects in mind, please ask around.
As for resources, here’s what’s available:
- You’ve probably found the docs at https://nerves-project.org/. There are also simple example projects at https://github.com/nerves-project/nerves_examples.
- Nerves can start pretty minimal which can be hard to get used to. Many people use the
nerves_init_gadgetlibrary to bring up the basics like networking. That’s a default with the new project generator.
- As a side note on
nerves_init_gadget, we are in the process of a major change to our networking support. It’s slowly making its way through the docs, so you may start to see references to
vintage_net. If you have any ideas of running multiple network connections simultaneously or making your device an access point, please see https://embedded-elixir.com/post/2019-11-22-embedded-networking/.
- For low level hardware, see https://github.com/elixir-circuits/circuits_quickstart. Elixir Circuits runs on Raspbian and Debian in addition to Nerves. If you’re new to Elixir and hardware, but comfortable with a Raspbian and Raspberry Pis, a lot of people have had success using Elixir Circuits there and then when they’re comfortable, they start packaging their apps using Nerves.
- There are a few options for deploying lots of Nerves devices. If you’re interested in that, see https://www.nerves-hub.org/.
- We try to collect talks on Nerves at https://nerves-project.org/watch/. There are a few really good “getting started” ones and a few that talk about specific technologies.
A final comment is on picking hardware. Nerves runs on a lot of devices, but the support that you’ll find online is mostly for Raspberry Pis and BeagleBone (BeagleBone Black, Green, PocketBeagle, etc.) boards. At the moment, the Raspberry Pi 4’s display doesn’t work with Nerves, so I’d go with another RPi for now (that will hopefully be fixed in the coming months).
Hope this helps!