blatyo
Conduit Core Team
How do you decide what hardware to buy? Do you do anything special to make sure things are compatible?
Trending in Discussions
Hey there,
It’s been more than a year since we started using LiveView as our main UI library and building a whole library of UI componen...
New
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
A little off-topic, but I feel like people here have a good head on their shoulders.
I used to be quite good at making software. Was luc...
New
Hi there! :wave:
@frigidcode and I (but mostly him) have been running an Elixir Book club, we’re almost done with Designing Elixir Syste...
New
I’ve been using Emacs as my main code editor for more than a two years. It’s a custom build version although I’ve tried doom emacs and sp...
New
I love Elixir. It’s one of 2 programming languages I’ve ever fallen in love with.
But I don’t use it anymore.
Serverless was the promis...
New
Lately I’ve been thinking about how to organize components as a LiveView application grows. One of the pain points I’ve found (for myself...
New
Other Trending Topics
Edit: 2026 May 15 - This post is archived.
Mob is alive!!
Main docs: mob v0.7.11 — Documentation
A bit of explanation for the slightly c...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself.
My main conc...
New
Just published claude-code-elixir, a plugin marketplace for Claude Code with Elixir support. These are the plugins I’ve been using for my...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ai
- #ecto-query
- #elixirconf-us
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #elixirconf-eu
- #api
- #forms
- #metaprogramming
- #hex











Showing Posts 1 to 7- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
AstonJ
Great question! I was wondering the same
ConnorRigby
When you say “hardware” do you mean the base system, such as raspberry pi revision/version, or things like sensors?
I usually just go on Alibaba and look for whatever will be cheapest/shortest shipping for both.
frigidcode
I look for hardware using the following criteria:
Communication links
https://github.com/nerves-project/nerves_uart
https://github.com/fhunleth/elixir_ale
Places to buy (off the top of my head)
Adafruit
SparkFun
Alibaba
blatyo
Both
Where’s a good place to learn about these?
Would I need to be able to read a specification to do something? Would one of those communication libraries handle this sort of thing for me, such that understanding a specification isn’t necessary?
frigidcode
I learned by reading the examples in the libraries I linked, going through the source code, and hacking on a project. IIRC I did have to Wikipedia SPI and 1 wire Dallas protocol because I wanted to know more than the libraries provided.
Get a raspberry pi zero w, breadboard, wires, LEDs, and experiment
Depending on budget, you can get a starter pack with most everything you need.
It depends on the hardware. The temperature sensor I used was as easy as reading a file and parsing out certain characters to get the data. On the flip side, the wind speed sensor required specs and knowledge of binary communication to send/receive data. It wasn’t anything too complex, don’t let that scare anyone.
If you are interested, I can link the code I used for both sensors.
GregMefford
I just want to call more attention to this to say that, unless you have a Pi hat that gives you analog-to-digital conversion, you’ll want to make sure your sensors are digital (SPI, I2C, 1-wire, etc) instead of analog (e.g. 0-5V) because the Raspberry Pi doesn’t have analog pins like an Arduino does.
I’d recommend getting started by just buying Pi hats to connect to your RPi, because then you can be pretty sure that the hardware will work. That way, you can get comfortable with how things work before you branch out into the unknown.
ConnorRigby
I want to put something out there that may help someone else out down the line about buying/selecting a device that can run Nerves. Sorry in advance for the huge wall of text you are about to witness.
What it means to “run” Nerves.
I see a lot of confusion here as what it means to run Nerves, so i am going to define this first. Nerves itself is just a lot of tooling that essentially removes everything that might be in your way. This includes building the kernel (hereafter referred to as simply
linux) and the root file system (this contains your variousrootdirs such as/bin,/usr/,/etcand all their contents). these things are related but not the same as some fruity organizations would lead you to believe. So Nerves is just the tooling that brings all those pieces together using a project calledbuildroot. It compiles bothlinux, and therootfsusing a cross compiler toolchain. (we won’t get into that, it’s essentially magic).so what it means to “run” Nerves is the device must have
linuxsupport to some extent, and buildroot support. If you start withlinux, buildroot is usually pretty easy depending on how true to the kernel build process your manufacturer is.Now some boards have both
linuxandbuildroot, can’t (read “no one has put the work in yet”) work with Nerves. This includes the elusiveC.H.I.Pboard. I won’t go into the details as to why it doesn’t work easily, but I will say there is a third part that makes Nerves so magic: fwup.Fwup is how
linux, the rootfs, and your elixir project is all packaged. Now supporting fwup is nothing all to special, its just a configuration file with a manifest of all the required files, some block offsets mapping to a block devices, etc that builds a special zip file. the caveat is that while it doesn’t require a certain sort of storage device, it makes it so much easier to get up and running.If you’re still confused just know that if your device of choice can boot
linuxsomehow, and a root filesystem can be written to an sdcard, you are probably good.This means Nerves will never “run” on an embedded micro controller such as Arduino, Teensy, etc. They just won’t/can’t meet the requirements that the Nerves tooling expects or requires. That is not to say that Nerves can’t interface with those devices however.
So if looking for a device that “supports” Nerves, just know if you want to “interface” with a Nerves device, or “be” the Nerves device.