Add ASCII art help for pinout numbering
The Raspberry Pi has a really great tool called pinout to help users figure out which pin is which. It would be really useful if something similar were available for Circuits.GPIO. Since Circuits.GPIO is cross platform, we have to be careful on how we implement this so I'm looking for ideas.
Here's what pinout looks like:

Really, I think that the pin labels and uses are the primary need. Creating a separate project (Circuits.Pinout?) might be the right thing to do as well.
This might be over-engineering a bit, but could this be in a separate project, but make it a mix task where either we read in the MIX_TARGET value or let the user pass in the target or maybe even have it be interactive?
I like this idea, so I am just split ballin' an idea that you can shoot down :), but it would be awesome to provide great tooling around circuits to help development, debugging, and learning.
I'm leaning towards separate project as well.
Regarding the implementation, MIX_TARGET doesn't provide any board information since you can set it to anything you want. You can also be running on Raspbian, for example, and MIX_TARGET wouldn't even be set. There are heuristics that can be done to identify where you're running. The Raspberry Pis boards can be identified by string parsing /proc/cpuinfo. Some investigation is needed for other boards.
👍 that makes sense
Forgive my ignorance. I am very new at nerves. Is this:
- a registry
- that we dump the GPIO pin numbers and refs as they are opened (and written)
- and an output tool that maps over them, showing the values of the open pins?
Yes, maybe, I'm not sure. I opened this issue to understand better what would be helpful. I think that I jumped to solution that I was familiar with rather than listening fully.
The Python pinout tool identifies which Raspberry Pi it's running on and then outputs a ASCII art picture of the pin assignments and other information. Unless it's been updated since I last looked, that was it.
Making an output tool that maps over the opened pins and shows information (input, output, value, etc) sounds very useful too. I like that.
I like that too, a lot.
So it sounds like we have some features here:
- Pint the pinout inspired by the python
pinout - Get data about opened pins
Do you think both those belong is a separate tool together?
I can see the pinout tool being a new repo, but maybe the open GPIO data being in this library?
Just asking some questions to get a better idea of what people are thinking.