connorrigby
Joined 6 years ago
Joined 6 years ago
> Not to mention, having to rely on Raspberry Pi of any kind for commercial use is tough in large quantities
Maybe you weren't talking to the right people? I've shipped two products using raspberry pi and getting them in quantity was never a problem for me. we could easily get them in quantities of 500-1000 at a time for the RPI0W models and the RPI3B+ models.
> True, but also consider you still need to add a radio and then run it all on batteries
I don't think Nerves is a great fit for battery power, but RPI0W comes with a BLE and WiFi radio built in. It's also easy to add LORA or other sub ghz radios.
> until you realize it's basically all just ported C code that you're trusting to not crash the whole erlang VM.
We rely on very little C code at runtime. The networking libraries have a tiny bit of C glue code to talk to Linux, but other than that we use mostly Elixir. I've been shipping Nerves in production for 4+ years now and "trusting C code not to crash" has never been a problem for me or anyone else I know using Nerves in production.
> It's effectively one huge NIF.
We actually don't have any NIFs in the core of Nerves. You would have to bring them in yourself, which I expect would be caught in the dependency screening process of your project. Any time we need C to access something in Linux, we usually reach for Ports since they can be properly supervised.
> I'm still waiting for a nerves compatible PID control module!
there is at least one PID library in Elixir that I know several people have used, and at least one company uses in production.
I wish you had done a bit more research before writing this message, but I hope I've addressed any concerns for future viewers.
This is somewhat old now, but the PRU code which i find to be the most important part is still good.