Creative Commons images are CC BY-NC-SA 3.0

24.95

added to your
shopping cart

quantity
In stock 451 in stock
24.95 1+ units
22.46 10+ units
19.96 100+ units

Description: Arduino is an open-source physical computing platform based on a simple i/o board and a development environment that implements the Processing/Wiring language. Arduino can be used to develop stand-alone interactive objects or can be connected to software on your computer (e.g. Flash, Processing, MaxMSP). The open-source IDE can be downloaded for free (currently for Mac OS X, Windows, and Linux).

The Leonardo is Arduino's first development board to use one microcontroller with built-in USB. Using the ATmega32U4 as its sole microcontroller allows it to be cheaper and simpler. Also, because the 32U4 is handling the USB directly, code libraries are available which allow the board to emulate a computer keyboard, mouse, and more using the USB-HID protocol!

It has 20 digital input/output pins (of which 7 can be used as PWM outputs and 12 as analog inputs), a 16 MHz crystal oscillator, a micro USB connection, a power jack, an ICSP header, and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started.

Not sure which Arduino or Arduino-compatible board is right for you? Check out our Arduino Buying Guide!

Features:

  • ATmega32u4 Microcontroller
  • Input Voltage: 7-12V
  • 20 Digital I/O Pins
  • 7 PWM Channels
  • 12 ADCs
  • 16MHz Clock Speed
  • 32 KB Flash Memory

Documents:

Comments 90 comments

  • I’m looking forward to playing around with this board when I can get my hands on one.

    One thing that will probably be an issue for shield compatibility is that anything using SPI will have to get it through the ICSP connector - the hardware SPI pins are not connected to pins 10..13 on the Leonardo.

    On the other hand that does give you 3 more digital pins, if you want to access MISO, MOSI and SCK and don’t mind hooking up to the ICSP instead of the regular headers.

    • This seems like a really bad design decision and I’d like to know why the Arduino team did this. On a separate note, the correct term is ISP (In-System Programming), not ICSP. ICSP is not only a different technology but also a trademark of Microchip Technology Inc. (the PIC people.) Both Arduino hardware and datasheets make this error for some reason.

    • At first I thought “No way!” but you’re right. Wonder why they did this? Isn’t it going to break a lot of things? I wonder if SPI is going to be done in software for compatibility.

      • On older Arduino boards, two of the SPI pins (10 and 11) were also PWM outputs. On the ATMega32U4, none of the SPI pins have PWM functions. So the choices were, either put the SPI port where it was before (losing the PWM feature on those pins), or put PWM pins there and lose access to the hardware SPI port on the shield header. They went with the latter, of course, and I think it was probably the better option: Mostly when you use SPI on Arduino, the Arduino is the bus master - and bit-banging is usually good enough for the bus master of a synchronous serial port… Particularly with SPI, in which there’s no flow control (unlike I2C with its clock stretching) Implementing PWM via software would have a greater impact both on the performance of the PWM feature and on the timing behavior of the user’s code. It is a bit unfortunate that they didn’t add separate SPI lines to the shield headers the way they did with I2C, but they’re starting to run out of space for adding more shield pins for the current Arduino form factor.

  • Any chance we will see this as part of the inventor’s kit at some point?

    • I second this motion. SparkFun should make a separate inventors kit for the Leonardo. (Except for the fact that they just switched from Uno to RedBoard, so they’re probably not permitted to use another arduino board.)

  • IN STOCK! IN STOCK!

  • wow, i actually posted a comment relevant to this about a week ago on the Atmel32u4 product page! (com-11181) :) little more expensive than the teensy from pjrc, but is shield compatible with my micro sd and proto shields, so might end up getting one later on :D

  • I just purchased a Leonardo and I’m having issues with it on 7. I plug it in and for about ten seconds it recognizes the device as an Arduino Leonardo under “Other divices”. Then it switches to an unknown device under usb controllers. I rush to check the hardware ids before it changes and get USB\VID_2341&PID_0036&REV_0001 USB\VID_2341&PID_0036 When I try updating the drivers windows tells me it already has the best drivers for it. I’ve tried the 1.0 and 1.01 ide’s drivers and none work. Could it be a bootloader issue?

  • I got my Arduino Leonardo today and I am having troubles uploading any sketches. I have been looking at forums and such but without results. I have the driver installed but it still isn’t working. Has anyone else having similar problems? Can anyone help? This is the error I am getting:

    Found programmer: Id = “BUe ”; type = . Software Version = . ; Hardware Version = . avrdude: error: buffered memory access not supported. Maybe it isn’t a butterfly/AVR109 but a AVR910 device?

    • I have a similar issue. using Windows 7 32 bit, hardware manager , Leonardo appears installed correctly for about 5 seconds, after which it seems to disconnect and connect back as unknown usb device. I tried installing it according to the instructions on the artuino.cc website, no success. I then tried to use it in Ubuntu 32 bit: first arduino IDE recognizes it, then I upload a sketch successfully. After about 20 s it appears as if its disconnected. If I press reset on the leonardo or restart the IDE all is good for another 20 s.

      Any thoughts?

      PS: i tried 2 different USB cables, 2 different computers, 3 different USB ports, and all are the same.

    • I’m having the exact same problem!

    • Had the same problem, I found it to be that my system needed “manual” install of the driver (you have to pick the correct device from the menu) for !!!BOTH!!! normal and bootloader mode, the bootlader mode is more tricky since you only have 8 seconds to do each step, then you have to reset it again, otherwise the system will not see it and fail…

      It took me a while to realize that while “normal mode” was recognized, the “bootloader mode” was not, because it has a different PID, that was the whole problem on my side!

      I have W7 Professional SP1 64bit…

    • I too am having a problem with this device disappearing from the list of COM ports (Win7 64bit) in the device manager and in the Arduino IDE itself (v1.3). I have had the same exact issue on 2 separate PCs, and 2 separate SparkFun Leonardo’s … REGARDLESS of the code uploaded on the device (yes, even BLINK). The board will work perfectly for a few hours, then at some point it just never stays recognized as a COM port (Serial buffer overflow??). Typically, resetting the Leonardo does nothing (transiently a USB device, never a PORT device). Resetting the Arduino IDE does nothing.

      Workarounds for the desperate: Uploading: Even in this state I can sometimes upload to the board if I do what is described on Arduino’s website and elsewhere: Hold down the reset button until the “Uploading” text appears on the Arduino IDE and then let it go. Do this a few hundred times a day and you may achieve enlightenment.

      Port Recognition 1: If the above fails (or below fails), I have had success doing the following. Symptoms: Arduino IDE fails (even after restarting everything) to recognize the port but the port shows up in Device Manager: 1) Press Leonardo reset. 2) In Arduino IDE, quickly go Tools->Serial Port-> and Select the (Temporary) USB COM# (usually Serial port COM# +1). 3) Then, quickly go back to Tools->Serial Port-> Serial COM# should now be available to select. Yes. This has really worked for me, more times than I can count.

      Port recognition 2 (This will only work for as many USB ports as you have): Above fails and Arduino Leonardo is not showing up in device manager: Try switching to a different USB port (at which point the OS SOMETIMES behaves as though it is a new device and I can re-install the drivers. At this point it then assigns a new COM#.

      Port recognition 3 - Use Linux. Or connect your Leonard to Linux temporarily and then connect back to Win 7.

      Seems likely that there’s a serious bug in the Windows driver/Arduino IDE(v1.3). Does anyone have a true fix to this? I need the device to remain recognized by the computer. Anyways, I bought 4 of these clunkers and I seriously regret it. Stick with UNO if you want a dependable product (and preferably NON-SMD Rev3 at that)… this thing is wasting my time.

      • Thanks for the help! After giving it a fresh start again after seven months I was finally able to upload code to my Leonardo after installing the drivers and holding down the reset till “Uploading” appeared on the Arduino IDE.

  • Hi. I have a question. I want to make a MIDI Controller, but I don’t really know what kind of arduino I should use. This one is good or can you recommend something good for my project? I want to use this components for my project: a LCD screen, an on/off switch, a button pad 4x4 + 2x2 and 2 Motorized Pot Knob.

  • Will the usbMIDI library from pjrc work with this board?

  • whats the difference between this and the Uno?

    • The major difference is that this runs off of the ATMega32u4 which has built in USB capabilities, while the Uno runs off of the ATMega328 and has a separate chip for USB to serial communication- the ATMega16U2.

  • Just tested my first Leonardo (R3) on Win7 x64 and ran into similar issues described above. Looking ad the Device Manager it seems that the problem might have to do with the fact that when reset occurs it takes a few seconds for Windows to update the driver to the new COM port. By that time the bootloader sequence expires and Windows re-loads the driver again. If I keep pressing the reset button during upload sequence the Arduino IDE successfully programs the board, but only after quite a few tries.

    In short, I think the bootloader and/or reset sequence needs some adjustment to work reliably in Windows. I am surprised these issues haven’t been resolved on the board shipping now. I’ll likely be programming it via ICSP which is to say I don’t recommend this board for beginners.

    • It sounds like you might have the drivers installed incorrectly. Because the USB is native the code must have its own VID/PID for the computer to recognize it and properly assign the drivers. The bootloader and the sketch are considered different pieces of code and each have their own VID/PID. Depending on your application you may want to write your own drivers and so the VID/PID are changeable on the sketch. They are store in the boards.txt file and are uploaded every time you upload a new sketch. If you select the wrong board you may have uploaded a set of VID/PID numbers the computer doesn’t recognize meaning to upload or do anything you must do it in the 8 seconds the bootloader is up. In other words the board should work fine, but you might be using the wrong settings. Also I don’t believe the Leonardo has an R3, they should still be on the first revision. If you have any other questions please email techsupport@sparkfun.com.

  • This is undoubtedly one of the worst microcontrollers ever to be sold by Sparkfun. Perhaps not Sparkfun’s fault: simple negligence when there are too many Arduinos to track the actual performance and function of any one? Recommendations: (1) customer? read the initial set of comments in this forum and run for the hills; and (2) Sparkfun? stop selling this lemon. Stinks like a GM Vega or Ford Pinto.

    • From what I’ve seen this board works and works fine. But its not a beginner board. There are things that this board doesn’t do that the Uno does and things it does that the Uno doesn’t. I don’t recommend getting this board as a replacement for the Uno, but if you are curious and want to learn it, or need the features it has to offer than I would recommend it.

  • [moved to reply to Joel_Q]

  • Recently purchased this and trying to get it running. I’ve been getting a lovely BSOD (BAD_POOL_CALLER) about 10 seconds after plugging it in. I’m open to any suggestions. I’ve tried a few coding tweaks mentioned in other places, but no help. I have not tried the bootload change. I’m not sure how to do that, the cable needed, etc…The best I can tell is that the Leo board acts as a serial port before swapping to USB. When it changes to USB is when it crashes.

    • I’ve been getting the same problem with a Due’s OTG port with an old PC running Win2K. However, I can upload sketches through that port on Win7 using a driver for some GPS-related device, but only when the flash was empty. The serial port hosted by the sketches is not recognized.

  • I can’t get this device to work n Windows 7. I’ve installed the IDE (1.0.2), installed the driver in the driver directory, and tried to download the Blink sketch. The download LEDs blink and then I get

    avrdude: stk500_getsync(): not in sync: resp=0x54

    Some Googling indicates I may have a bad bootloader. Do I need to send this back? It’s a short, high quality USB cable, so I don’t think that’s the issue.

  • I have some question for using the leonardo with wifi shield. As I mount the wifi shield on leonardo board, I will be putting on all the pins of wifi shield stacked onto the pins of leonardo. Then, is pin 11,12, and 13 of the leonardo going to be connected to MOSI,MISO and SCK? Then, what’s the point of saying that the leonardo board has the SPI pins (MOSI,MISO and SCK) separated from its digital I/0 pins? Afterall, once the wifi shield is mounted, won’t the SPI pins stacked onto digital I/0 pins of leonardo? I am a bit confused there. Can i still use the pin 11,12, and 13 of leonardo for other purpose after I have mounted the wifi shield on leonardo?

  • Wait… the wifi shield sold here won’t work for this board?

    If it can’t do wifi it’s useless. Does anyone have a workaround?

  • does the ardumoto work on the leo

  • Is it Retail or OEM version?

  • [rant] For years I facepalmed at Arduino using a doubly-deprecated and bulky B connector that shorted out shields. Instead of moving to miniB, which almost every other development board uses and I have 2 of on my dev machine, plus 10 more in a bucket, they go with flimsy micro which i hate and have 1 of, and it’s for my cell phone charger. Now I need to buy another cable just to have 3 different flavors of the same bloody interface on my bench. Briliant. [/rant]

    • Mini-USB plugs typically wiggle around inside their connectors, introduce electrical noise and become unreliable over time. This is a good move and pretty soon the cables and connectors will be ubiquitous.

      • I am not happy with the MicroUSB on mine. On its first use I already had to put some downward pressure on the cable otherwise the board spuriously disconnects/resets because of the unreliable connection. Now, I only have one MicroUSB cable on hand (as opposed to a ton of MiniUSB), so it is possible that my cable is defective or out of spec. I would have strongly preferred MiniUSB or even USB-B like the older Arduinos!

        Also, no signed driver for Win7 x64? Ouch. :(

        • I have to amend my comment about MicroUSB: getting a new cable solved the connection reliability issues, so the Arduino itself is fine.

          • Just saw your post and wanted to comment that I’m having reliability problems with my Leonardo too.

            I’m going to take your suggestion and try a new cable. I assumed it was a software problem with the boot-loader.

  • So will the Due pretty much be a Mega-sized version of this? I just like having the bigger size and more pins of the Mega, but I would like a board with a direct USB interface.

    • No, the Due will use an ARM, a completely different type of chip with different different underlying architecture and instructions (though you’ll still be able to program it in C++ (aka “Wiring”) like the Arduino, with the same tools. Previous and current Arduinos use AVR chips, and other existing variations use ARM cores, like the Leaf Labs Maple or the Netduino, and some even use PICs, an entirely different type of CPU.

      But yes, the Due will have a larger board with more connectors like the Mega. And like the Mega, it will carry a higher pice tag.

  • What’s with the lousy micro usb connector?

    • Micro-USB connectors are rated for more insert-remove cycles than mini-USB and are both smaller and generally better-built, which product designers like. Virtually all new products that can’t fit an old-school square ‘B’ connector (like what you’d find on a printer) have moved, or are moving to, the micro-USB connector. They’re not lousy if the right part is used, the board is well-designed and it’s well-built.

  • Looking at the schematic and Eagle files on the Arduino page (http://arduino.cc/en/Main/ArduinoBoardLeonardo), it seems like there is an IC underneath the microcontroller. Anyone know what is going on?

    • Underneath the TQFP package footprint is the QFN package footprint (no legs) which means that if the supply of one type of chip dries up production can continue with the other type without much hassle.

  • Would anyone care to provide a pro and con comparison between this and Uno?

    • What I like about the leonardo:

      • Mini USB interface
      • TQFP44 package for atmega32U4
      • Micro-controller supports direct connection to USB (D+/D-).

      The best thing about the Leonardo is that if you are using shields, there is a lot of room in between to place an Xbee or GPS. Which proved to be extremely useful for me :)

      • Lemme point out that it isn’t Mini usb. Its micro USB. Arduino switched over because the USB people declared Mini to be out of date since a cable with Micro connection ships with each mobile phone these days.

  • Mine doesn’t auto reset. I need to press reset after pressing upload. Not a big deal.

  • Did they move i2c from a4/a5 or just add additional dedicated headers? On that issue, has anyone seen 10 position stacking headers yet for the new boards (also on Uno r3)?

    • The ATMega32U4 has I2C on different pins than the ATMega328. This is why the I2C pins are no broken out specifically on the 2 new pins. On the Uno (Rev3) these pins are connected to a4/a5, where on the Leonardo they are connected to D2/D3. In theory new shields will use these pins for I2C connection instead of being board specific

  • Anyone know how to deal with the fact that the SPI and I2C pins have been moved? Do we need to make some sort of go between shield or is this somehow magically fixed through software? Not sure how shields like ethernet and SD are going to work now…

    • Unfortunately, it’s hard to keep the pins in the same place on boards with different processors. For example, some ATmega’s place the I2C pins on analog inputs and others don’t. That’s why we added the dedicated I2C pins. If you’d like to make a shield that’s compatible with the latest Arduino boards, you can get I2C from those pins and SPI from the ICSP header. Those will be compatible between the Uno (rev 3), Mega (rev 3), and Leonardo.

  • There’s a much better picture on the Arduino specs page.

  • I wonder if they plan on making an IC version of the chip. At this point I’m past using Arduino’s and onto soldering Atmega chips straight onto my PCB’s. I use an external FTDI for programming. If USB interface was a part of the IC that would be totally awesome!

    • The 32U4 does not exist in a DIP package. Exclusively TQFP and QFN.

    • “IC” = “Chip”. Did you mean DIP (two rows of pins, spaced at 0.1") format? It’s not likely they’ll release that because DIP is generally undesirable for electronics professionals and because hobbyists, with even a mediocre soldering iron, can solder QFP (like the ATmega on this board) chips without difficulty. The only difficulty, of course, is having the right board, like a general breakout for the QFP64 format, on hand.

      But aren’t hobby boards, like the Arduino, simply break-outs for microcontrollers anyway? They just happen to offer a USB connector and a power supply too.

      • Yes, I meant DIP. I’m not quite at the SMD level. The appeal of DIP format with Atmega’s is that I can easily move the chips between Arduino Duemilanove and the end PCB end designs. AT-Tiny’s that I use are also DIP… Well… I guess it’s just a personal preference.

        • I’ve not been doing electronics long (a few months) and have a medical condition that causes fine tremors in both hands and I can solder SOIC and QFN chips (Not tried a QFP yet). I’m sure you’re at that level, you just need to do a bit of practice.

  • Is a Pro version in the works?

    • There is a version of the Leonardo without headers that should retail for less. You can see it on the Arduino store and I’m assuming distributors will start to carry it soon.

      http://store.arduino.cc/ww/index.php?main_page=product_info&cPath=11_12&products_id=225

    • If Sparkfun does make a Pro version of the Leonardo, I implore them to make further provisions for port strain-relief if their version uses a micro-USB that is only attachted by SMD pads. If nothing else a pair of small holes so the port can be tied-down or mechanically restrained with a plastic bar and some fastners, just so some of their customers can use the board and still sleep well at night.;)

      • Most mini usb conneectors are made in a version that has two or four through hole tabs to add mechanical support. Hopefully this feature will be made available in the micro usb connectors at some point. Note that when the board with the connector is screwed into a box and there is a tight fitting hole in the box in front of the connector to snug up to the plug body then mechanical strength is less of an issue because there will be less tendency to move the plug body from side to side or up and down generating shear forces. It’s only an issue on a bare board like the Arduino.

        • Many micro-usb connectors do feature both surface-mount pads and through-hole pins for structural support. I use one on my products and put it though mechanical stress-tests (it did well.)

        • The Netduino/Netduino Plus has a superb micro-USB connector; perhaps the same part could be used on other micro USB devices.

  • I dont understand the need for Micro USB on this.. The board is BIG, this is not a small device. Also Micro USB has the problem of being pulled off / broken too easy.

    Mini USB is just fine for this and other. Seems like some crazy designers are taking over.

    Just to end this is… Micro USB is supposed to be used on something small and space constrained… why use micro over mini if there is enough space?

    • Mini USB is basically (though not officially) deprecated in favor of micro USB for new designs. It has a much longer useful life, it’s compatible with USB OTG, and in the next few years all the new devices you get will have it and not mini. The ‘crazy designers’ are the USB Specification authors and the designers working at major electronics manufacturers; this isn’t something that’s decided by or for hobbyists.

      If your MicroUSB receptacles are getting pulled off/broken, you either need to superglue/epoxy them down to the board (common for connectors), surround them in an enclosure to protect them from stress/strain, or use different solder or soldering techniques.

      Micro is slightly smaller than mini, but that doesn’t mean it’s only for ‘small and space constrained’ devices. It’s the new standard. Large devices like printers and hubs will probably continue to be USB-B, but everything else should be micro USB going forward.

    • Yeah on mine there is like a clip on the cable that keeps it in place so that good so you dont unplug it but, i feel like its gonna break after so many times. on the other hand its really cheap!

      • Micro USB has higher insertion rate compared to Mini USB. I’m sure the reason not going for those with a restrain would be the need of slots hole as the the restrain usually are longish metal instead of round. Slots hole are more expensive to make!

  • Hi guys , will you sell the Leonardo without headers version ?

  • I got one early at maker faire! The massimo guy said it was supposed to come out monday? Arduino 1.1 came out with support for the leonardo. At maker faire there were like 50 i got 3 of them. They were 20 bucks each not 25? I like how it costs half as much than at radioshack! dont believe me? http://www.youtube.com/watch?v=UdNmGRODuCI&list=UUqYR0Rk4VRvQP18c9nKOWCw&index=1&feature=plcp

    check the date

    • they were cheaper at maker faire. this is the MSRP according to Arduino.

      Radioshack doesn’t yet have them on their site. Are they selling them locally at stores yet?

      • the due is supposed to be cheaper than the arduino mega! according to massimo

      • there is also a new solder time 2 watch with an led display instead of a 7 segment. Also a new printrbot jr.

      • Massimo said that makershed would put it online on monday also he said it was $20. The arduino due the 32 bit one is supposed to come out in june or july. He was like talking about an arduino beta were 10 people at maker faire would get a free arduino due and member ship for life were they get all the pre release boards for beta testing. Im really not sure anymore cause it was repeatedly said monday. Anyone wanna buy one from me? :)

        • The ones without headers are going to retail for $20. and I’m not seeing it on makershed’s site yet…

  • Until we get more information, here’s the link to the Arduino.cc hardware spec: http://arduino.cc/en/Main/ArduinoBoardLeonardo

    Looks like it’s MicroUSB rather than the full-size type B (or mini)

  • its… already out of stock?

  • I hope the version shipped will not have those lifted pads where the USB connector should be. And by the way, 12 ADCs? Arduino is really going to be in the heart of every module I make.

    • This was the only picture we had. We still have yet to see one in person, so had to use the picture they provided :-(

      It will get updated once we get stock.

    • The current product picture highlights the one serious concern I have about the Leonardo’s design. I can understand the switch to a microUSB port, but why didn’t the design include extra strain relief or even a just couple of small holes (~#2 sized) on either side to facilitate adding more mechanical restraint on the port later? I have a feeling that for many people some of the price difference between the Leonardo and the Uno is going to be eaten up by the hotglue/epoxy/etc… just to make plug insertion and removal during programing a non-suspenseful activity!

      Edit: The product photo has been updated and includes the mirco-USB port.

    • Unfortunately, the extra ADC inputs are located on existing digital pins, so those are going to be even more scarce than they already were.

      • Don’t be fooled, you can use the pins as digital as well. The ADC pins are A0-A5, and A6,A7,A8,A9,A10, and A11 are (also) D4,D6,D8,D9,D10,and D11.

        DigitalRead will work on all of them, as it does now.

        • You’re quite right, and I did not mean to imply that those pins would be entirely lost as digital pins. What I meant was that for each extra analog pin you use, you lose one digital pin, so in total you don’t get more pins, just more versatility for the existing ones.

          • Well, it’s a good excuse to either learn or brush-up on digital signal multiplexing. In most cases, it’s easier to share I/O pins with digital signals than analog signals. Therefore the net gain in analog capabilities is a significant benifit, and even the more limited digital I/O (when using most or all of the ADC capabilities) can spur a more creative design. As the old saying goes, “Necessity is the mother of Invention.”


Related Products