Looks like the GRiSP 2 board supports the Nerves platform:
GRiSP 2: DIVING DEEPER INTO EMBEDDED SYSTEMS
Create amazing Internet of Things designs without soldering or dropping down to C. The GRiSP project makes building internet-connected hardware devices easier with Erlang!
- Real bare-metal Erlang virtual machine
- Hard real-time event handling, using open source code
- Digilent Pmod™ compatible connectors for sensors and actuators
NEW! Grisp 2 is designed and ready to get kick-started! It features the following improvements:
- Improved Wi-Fi and added Ethernet
- Increased CPU speed and faster boot time
Nerves support with secure hardware-based key storage
- Modular design for moving fast from prototype to production
For more details see our Kickstarter page:
It will. (Assuming it gets funded.)
I’m working with Peer to make the Nerves port happen. I’ve worked on NXP iMX6 processors a few times on embedded Linux projects, and I think Nerves will work really well on this board.
What matters even more to me is that this project gives the Nerves and GRiSP communities a common development platform. Our communities have focused on different aspects of embedded Erlang and Elixir and it has been really hard to move improvements on one project to the other and vice versa. I’m really excited that this and possibly some help from the new Erlang Ecosystem Foundation will substantially improve both projects.
Just moved these posts into a dedicated thread
There was also talk about this in the Erlang Ecosystem Foundation video:
Very cool idea, would someone mind listing what use case the GRiSP2 covers that raspberry pis don’t?
One advantage of GRiSP is that you can upgrade from soft-realtime to hard-realtime in the hot path. This enables Erlang to be fast enough for use in areas where latency needs to be strictly controlled (robotics and factory automation come to mind) where you might otherwise need to use C or C++.
I like the Raspberry Pi’s quite a bit - definitely for my home projects and also for some work projects.
I think the GRiSP 2 board provides the following:
- A prototyping board that has hardware interfaces and a CPU that’s familiar to people working in the embedded space
- A common platform for the Nerves and GRiSP communities
On the first point, there’s a large segment of the embedded community that isn’t comfortable with Raspberry Pi’s being used as a reference platform. Nerves supports TI Sitara processors (via the BeagleBone port) for them. However, NXP iMX.6 processors, like on GRiSP 2, are very popular too. Many people know how to build products around these devices. Here are some nice features of these parts:
- Availability guarantees - it’s possible to buy parts after, for example, 10 years.
- Wide temperature ranges
- Low power - It’s possible that the RPi has similar low power modes, but I often struggle with finding documentation since much of the Broadcom processor info is behind NDAs or hidden in their closed source bootloader.
- Built-in HW interfaces - For example, you can get 5 UARTs or CAN or dual Ethernet ports without add-on modules
- One PCB - the processor module on GRiSP can be bought separately and placed on a board that fits your product. With the Raspberry Pis, your special hardware has to be on a daughter board or you need to build a carrier board for a compute module.
On the second point, GRiSP doesn’t run on Raspberry Pis or any other board that also runs Nerves. The GRiSP project’s focus on hard real-time and industrial computing makes it unlikely that they’d port to a Raspberry Pi. That makes it really hard to collaborate and compare performance. We have two different approaches, but we have a ton of overlap. GRiSP 2 is part of a solution to share development needs to the benefit of both of our projects.
I also think that the GRiSP 2 board will be fun. I enjoy seeing how different communities approach problems. GRiSP 2’s iMX.6 and PMOD interfaces are not used much in the Nerves community, and I think that creates possibilities for us to see improvements that we can add platform-wide.