That's really good as all the pinouts give all the extras on which can be overwhelming. Being able to just see the PWM capable outputs for instance is much nicer. And they look fantastic.
Thanks for your pimoroni [1] work as well, I've used quite a few products and they're always easy to work with because of good software and examples.
In typical fashion I got nerd-sniped into making an ESP32 C5 DevKit-1 pinout. I've disappeared down a hole of making the perfect SVG for the board art.
I keep a slightly modified version of it as a top comment in my main C file in every pico project. Super handy for quick reference and you can annotate it with the actual uses in your project.
I wish many manufactures would begin adding Pin mux inside MCU, like espressif. So most of the time you don't care which pin has which function, and make designing pcb for it much less painful.
This looks awesome, thanks! The best thing about this imo is that I can remember the url instead of having to dig through pages to find the official pinout pdf.
And the nice thing is it's usually at the top of search results since it's been a high quality, simple resource for years (maybe even a decade at this point?). Definitely the canonical reference (outside of the official docs, which aren't quite as user friendly).
A suggestion. It would be nice if I click on e.g. "SPI0" it should highlight all pins related to SPI0.
Bonus points if it could generate example initialisation code for the selected pins on the fly or maybe even an example snippet of code to get the peripheral going.
Agreed. Click-to-select-related-pins is something I've been experimenting with on a cut-down Raspberry Pi Pinout [1]
And code gen is something I'm looking at with the RP2350A pinout [2] where the JSON export would allow someone to plug it into any tool they like. (KiCAD symbol gen, C/MicroPython init code, etc)
It's difficult to strike a balance between features/minimalism but I'm increasingly drawn to the idea of a full (STM32Cube-like if you're familiar with it) configurator for Pico/RP2 based boards.
That's pretty nice, a lot like pinout.xyz as others mention. Something that would really set it apart would be to be able to select pins and functionality and have other pins greyed out that can't be used in parallel.
At least that's my main pain point when working with microcontrollers. They give you like 20 pins and you plan out all the functionality and then it turns out that one of those pins is like an EEPROM pin that needs to be low at boot or linked to something else internally or some shenanigans like that and the idea is actually completely impossible to implement (looking at you ESP32-CAM lmao). Or PWM channel conflicts that set some specific sets of pins to the same frequency and the like. It would be such a great workflow step to be able to verify if something would theoretically work given the known limitations at least.
Microcontrollers are like if a PC had 4 USB ports and if you used two of them the third and fourth just stopped working cause nobody intended all four to be used at the same time. Absolutely maddening.
For inspiration, STM32Cube is otherwise PoS software, but it has a pretty decent utility for exactly this for most of their STM32 MCU lineup. Why they didn’t just make it a website is beyond me, but it is what it is.
I recently started building something like this for the RP2350A chip [1], deeply inspired by both STM32Cube and also by avoiding recreating the horror of STM32Cube.
I’m currently failing to not build STM32Cube for Pico though, the idea keeps gnawing away at me. There are some idiosyncrasies that my micro site doesn’t quite capture. Though perhaps it could.
That's really good as all the pinouts give all the extras on which can be overwhelming. Being able to just see the PWM capable outputs for instance is much nicer. And they look fantastic.
Thanks for your pimoroni [1] work as well, I've used quite a few products and they're always easy to work with because of good software and examples.
[1] - https://shop.pimoroni.com/
Thank you. You’re welcome on both counts!
This is great, I wish we had something similar for ESP and even Arduino. I have been following this [1] for the later.
[1] https://deepbluembedded.com/arduino-uno-pinout/
In typical fashion I got nerd-sniped into making an ESP32 C5 DevKit-1 pinout. I've disappeared down a hole of making the perfect SVG for the board art.
Will be an interesting experiment!
I had something similar a few years ago. I ended up creating a json for the pinout and using jinja2 to spit out svg. It didn't turn out great.
Another version that's useful is this ASCII version: https://gabmus.org/posts/raspberry_pi_pico_pinout_in_your_te...
I keep a slightly modified version of it as a top comment in my main C file in every pico project. Super handy for quick reference and you can annotate it with the actual uses in your project.
I did something like this called “picopins” (pip install picopins) which gave a CLI ASCII-like pinout with search.
ASCII-only really cuts to the meat of the problem though.
I've used your pinouts a ton in the past for my small Raspberry Pi projects, good job and thank you!
I wish many manufactures would begin adding Pin mux inside MCU, like espressif. So most of the time you don't care which pin has which function, and make designing pcb for it much less painful.
PIO kinda sorta does this but yeah the Pico could definitely benefit from a more flexible pin mux, since bringing up PIO peripherals is messy.
Pico never quite has a function where it’s needed.
Definitely - the ESP32S3 is an absolute joy to work with and layout.
This is amazing, thank you! If anyone knows of something similar for any of the more popular Esp32 boards I would love to know about it!
Thanks... urge to build a version for ESP32-C5-DevKitC-1 rising...
Thank you. I found this years ago and look it up every time I’m working on a Raspberry Pi project. Keep up the good work!
This looks awesome, thanks! The best thing about this imo is that I can remember the url instead of having to dig through pages to find the official pinout pdf.
And the nice thing is it's usually at the top of search results since it's been a high quality, simple resource for years (maybe even a decade at this point?). Definitely the canonical reference (outside of the official docs, which aren't quite as user friendly).
Thanks! I've been using pinout.xyz quite a few times; maybe you should link from there to the pico versions so it's easier to discover?
Agreed. Thanks!
I have definitely struggled with making the Pinout spinoffs discoverable- the OG site had ten plus years to bed in.
This is AWESOME ... thank you!
pinout.xyz is a treasure when working with Pis in general.
A suggestion. It would be nice if I click on e.g. "SPI0" it should highlight all pins related to SPI0.
Bonus points if it could generate example initialisation code for the selected pins on the fly or maybe even an example snippet of code to get the peripheral going.
Agreed. Click-to-select-related-pins is something I've been experimenting with on a cut-down Raspberry Pi Pinout [1]
And code gen is something I'm looking at with the RP2350A pinout [2] where the JSON export would allow someone to plug it into any tool they like. (KiCAD symbol gen, C/MicroPython init code, etc)
It's difficult to strike a balance between features/minimalism but I'm increasingly drawn to the idea of a full (STM32Cube-like if you're familiar with it) configurator for Pico/RP2 based boards.
1. https://pi.pinout.xyz 2. https://rp2350a.pinout.xyz
That's pretty nice, a lot like pinout.xyz as others mention. Something that would really set it apart would be to be able to select pins and functionality and have other pins greyed out that can't be used in parallel.
At least that's my main pain point when working with microcontrollers. They give you like 20 pins and you plan out all the functionality and then it turns out that one of those pins is like an EEPROM pin that needs to be low at boot or linked to something else internally or some shenanigans like that and the idea is actually completely impossible to implement (looking at you ESP32-CAM lmao). Or PWM channel conflicts that set some specific sets of pins to the same frequency and the like. It would be such a great workflow step to be able to verify if something would theoretically work given the known limitations at least.
Microcontrollers are like if a PC had 4 USB ports and if you used two of them the third and fourth just stopped working cause nobody intended all four to be used at the same time. Absolutely maddening.
For inspiration, STM32Cube is otherwise PoS software, but it has a pretty decent utility for exactly this for most of their STM32 MCU lineup. Why they didn’t just make it a website is beyond me, but it is what it is.
I recently started building something like this for the RP2350A chip [1], deeply inspired by both STM32Cube and also by avoiding recreating the horror of STM32Cube.
I’m currently failing to not build STM32Cube for Pico though, the idea keeps gnawing away at me. There are some idiosyncrasies that my micro site doesn’t quite capture. Though perhaps it could.
1. https://news.ycombinator.com/item?id=44520091