fhunleth

fhunleth

Co-author of Nerves

Circuits.GPIO lets you read and write to I/O pins on embedded hardware like that used by Nerves. The new v2.0 version makes it possible to support other platforms as well. This is a big update to v1.0 that is mostly backwards compatible but has many improvements that make it worth a look.

Here’s part of the ChangeLog to highlight other v2.0 updates:

  • Nerves and embedded Linux platforms now use the Linux GPIO character device API (cdev) which offers better performance, more functionality and fixes race conditions seen with the previous sysfs implementation

  • Circuits.GPIO.open/3 is much more flexible in how GPIOs are identified. Specifying GPIOs by number still works, but it’s now possible to specify GPIOs by string labels and by tuples that contain the GPIO controller name and index.

  • List out available GPIOs with Circuits.GPIO.enumerate/0. Other helper
    functions are available for getting more information about each GPIO too.

  • Specify pull modes on all hardware that supports them and not just Raspberry Pis

  • Easily do one-off reads and writes with Circuits.GPIO.read_one/2 and
    Circuits.GPIO.write_one/3

  • Must better timestamping of GPIO input events since the timestamps get applied when the kernel processes the event

  • Runtime diagnostics to help debug low level issues. See Circuits.GPIO.Diagnostics

Much more documentation and porting information is available in the hex docs.

Happy hardware hacking!

Where Next? Top

Trending in News & Updates Top

woylie
Doggo 0.18.3 has been released. Added tabs: Add a disabled attribute to the :panel slot. A disabled tab can be focused with the arrow k...
New
bartblast
Hologram v0.12 is out! This one is for the big apps. Evo Store, Hologram’s Performance Sponsor, has an app with over 9,000 Elixir modules...
New
mikehostetler
ReqLLM v1.28.0 has been released. Features: add StepFun chat and audio providers (#1087) by mikehostetler openai: honour image deta...
New
GenericJam
Mob 0.9.18 has been released. Added anchor: "bottom" on :scroll, for chat logs (MOB-481). The scroll opens at the end of its content. ...
New
fhunleth
Nerves v2.0.0-pre.4 and v2.0.0-pre.3 has been released. Changes Fix typo preventing SOURCE_DATE_EPOCH from propogating through the fi...
New
GenericJam
Mob 0.9.17, 0.9.16 and 0.9.15 has been released. Added Async work in screens, the LiveView way. Mob.Socket.start_async/3 runs a functi...
New
mudasobwa
Finitomata v1.0.0-rc.0 and v0.43.0 has been released. Published to Hex.pm: finitomata | Hex Documentation: Finitomata v1.0.0-rc.0 — Doc...
New

Other Trending Topics Top

mudasobwa
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
KristerV
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
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
webofbits
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself. My main conc...
#ai
New
budgie
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

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews