I made this Arduino Leonardo pinout reference for anyone considering building shields for the Leonardo. Please note that shields designed for the UNO, Duemilanove, Diecimila and others may not work on the Leonardo, because some of the lower-level pin functions have been moved around. This image helps you see some of the differences.
For example, the lower 8 digital pins are no longer all a single port, and many of the pins, with the exception of the RX and TX lines, are moved around. Some of the PWM lines are in the same place, but are now connected to different ports and OC registers than they were before.
On the other hand, you now have access to twice as many ADC pins as you did before, and you don’t have to give up 2 ADCs for I2C. You also get two more low-level interrupt lines and, of course, USB native functionality, which (I personally feel) is exciting!
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.
Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !
This is great.
I like to print things like this on 4×6 photo paper, to keep handy while I’m working. It’s funny how once you start building all of the labels on the PC board disappear.
I’ll stick with compatibility for now.
Correct me if I am wrong… and it might be as simple as rewritting the libraries. Wouldn’t the leo be the perfect time to fix the pin layout. I mean they didnt want to fix the uno since it would break all the shields but with the leo they did that anyway.
Leo = not currently compatible with most shields
@Technologic: perhaps in some cases this could be done, but there are many other cases where it just wouldn’t work. Sketches which use the lower 8 digital pins as PORTD (something which dramatically increases speed) won’t work, because those pins are now spread out over 3 ports, and not continuously.
The best way to look at it is that the Leonardo is a different tool than the Uno or it’s predecessors, to be used in a different way. 🙂
I ment more as making it breadboard friendly.. Getting rid of the weird space.
@Technologic: I was referring to your comment about the libraries.
Regarding the header spacing:it’s done, and there’s nothing any of us can do about it. If the only comment you have to make is a complaint about the board, then please refrain from making any comment at all.
+1 john 🙂
Thanks for the layout picture. It is very helpful.
Also it wasnt ment as a complaint. Sorry if you took it that way.
I wasnt refering that you (adafruit) could do anything about it.. It was ment it as a query as to the fact that they (arduino.cc) couldnt change the arduino spacing becuase of compatibility but since the leo broke compatibility anyway it was the perfect time to do so.
Thought maybe you might have had some logic as to it that I didn’t.
Anyway keep up the Great work.
I swear I read somewhere official that the arduino leonardo was supposed to be a 32bit arm based board with more computing power…. Kind of a letdown since the teensy seems to be about the same thing, and it fits in a breadboard.
Nevermind that’s the arduino Due
I would like to reassure everybody that the Leonardo is compatible with most shields.
Clearly older shields designed years ago only had to deal with 1 board. Already the mega made it impossible for us to have the same pins in the same places so choices had to be made.
With the R3 layout we reached the final layout of this Arduino product line and we managed to have all the most common interfaces (analog/pwm/SPI /I2C) in a consistent place on all boards.
This new layout also allows shields to auto configure when they are used on a 3.3v board (IOREF)
@Technologic: no problem! Please know that the force of my statement about the headers wasn’t directed at you. We received several nasty comments (which never made it past moderation) about the header spacing thing. We just got tired of it, so I had to kinda put the hammer down. 🙂
@Massimo: thank you for responding! I think that definitely clears some things up and helps people understand why choices were made.