circuits_gpio can control LEDs. It looks like you found the Linux documentation on how the two libraries are implemented. To summarize, the difference is that
circuits_gpio is lower level and controls (or monitors) whether a microprocessor’s I/O pin is on or off.
nerves_leds provides a higher level interface to an I/O pin with the assumption that the pin controls an LED or something similar.
nerves_leds lets you tell the Linux kernel to do things like blink the LED, tie the LED to CPU activity, etc.
nerves_leds the Linux kernel needs to be told about the pin that controls the LED. That’s done through a device tree configuration file. Sometimes it is possible to adapt someone else’s device tree file to your needs, but the files can be intimidating. I’d recommend using
circuits_gpio to control your own LEDs and any LEDs that aren’t already under
The Elixir Circuits quickstart has a guide on controlling an LED. The other place to look is at the
hello_gpio projects in the Nerves examples.