Hi @water,
My first thought is that it’s a permissions issue and Circuits.GPIO
doesn’t have access to the GPIOs. I see that you ran sudo
on gpioset
. I’m assuming that you’re not running Elixir as root and that if you removed the sudo
that gpioset
wouldn’t work either.
If it is a permissions issue and your device is running udev, you can add a udev rule to set the group/permissions on/dev/gpiochip0
so that Elixir can access it without running as root. Create a file like /etc/udev/rules.d/99-gpio.rules
file with the following contents:
KERNEL=="gpiochip*", SUBSYSTEM=="gpio", GROUP="gpio", MODE="0660"
Then create the gpio
group if you don’t already have one. E.g. sudo addgroup gpio
. Also make sure that your user is in the gpio
group in /etc/group
.
Then reload udev and rerun the rules:
sudo udevadm control --reload-rules
sudo udevadm trigger
If you look at /dev/gpiochip0
, it should have the right permissions and Circuits.GPIO
should find the GPIOs. You also shouldn’t need to run sudo
for gpioset
, etc.
Hope this helps!