Arduino Leonardo Pinout Reference

(cross-posted from my blog)

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!

This pinout was derived from the info found here. PDF is here (it’s big! ~5MB) The Leonardo image is from the official Arduino Leonardo page.

Enjoy!


Halloween season is here!
Halloween season is here! Check out all the posts, gift guides, and more!

Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here: adafruit.com/editorialstandards

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.

Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7:30pm ET! To join, head over to YouTube and check out the show’s live chat and our Discord!

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Join over 38,000+ makers on Adafruit’s Discord channels and be part of the community! http://adafru.it/discord

CircuitPython – The easiest way to program microcontrollers – CircuitPython.org


New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — New Products 10/9/24 Feat. Adafruit RP2040 Snap-on Enclosure for Adafruit Feather RP2040 USB Host

Python for Microcontrollers – Adafruit Daily — Python on Microcontrollers Newsletter: New Python Releases, an ESP32+MicroPython IDE and Much More! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi

EYE on NPI – Adafruit Daily — EYE on NPI Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

Adafruit IoT Monthly — Garden Lights, Bluetooth 6.0, and more!

Maker Business – Adafruit Daily — First Solar’s $1.1 billion development of vertically integrated factory in the U.S.

Electronics – Adafruit Daily — My signal isn’t THAT noisy, is it?

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !



13 Comments

  1. 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.

  2. I’ll stick with compatibility for now.

  3. 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.

  4. @ Denbo

    Leo = not currently compatible with most shields

  5. @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. 🙂

  6. @ johngineer

    I ment more as making it breadboard friendly.. Getting rid of the weird space.

  7. @Technologic: I was referring to your comment about the libraries.

    @everyone:

    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.

  8. +1 john 🙂

  9. Wow.. sorry.
    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.

  10. 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.

  11. Nevermind that’s the arduino Due

  12. 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)

  13. @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.

Sorry, the comment form is closed at this time.