Arduino Leonardo is a micro-controller board based on the ATmega32u4. This board form factor and functionality is quite similar to Arduino UNO (7.1 cm x 5.3 cm x 1.5 cm ; 20 g) , with the exception that the USB interface is built into the micro-controller itself instead of using external serial-USB converter IC on the board (like used in Arduino UNO and Duemilanove). Arduino Leonardo 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, USB connection, a power jack, an ICSP header, and a reset button.
Arduino Leonardo differs from all preceding Arduino boards in that the ATmega32u4 has built-in USB communication, eliminating the need for a secondary processor. This allows the Leonardo to appear to a connected computer as a mouse and keyboard (feature used for example in MaKey MaKey product), in addition to a virtual (CDC) serial / COM port . And since the communication with the computer is done through a simulated serial port over USB, the hardware serial port on the processor is free for your applications.
FreArduino Leonardo R3 for Arduino is a pretty cheap Arduino Leonardo compatible board from Elec Freaks. Freaduino Leonardo is an Arduino Leonardo 100% compatible board. Freaduino Leonardo promises that all code, shield and IDE for Arduino Leonardo are also valid on Freaduino Leonardo.
FreArduino Leonardo R3 for Arduino is based on Arduino Leonardo design, but there are some enhancements: The board is 3.3v or 5v IO selectable (allow you connect easily to 3.3v modules when needed). The board uses miniUSB connector and has SPI bus breakout. FreArduino Leonardo R3 for Arduino is recommended to be powered from 7-12V DC power source (input voltage limits are 6-20V) or power from USB interface (5V). The board comes with short (12cm) USB cable.
The board basically works well as expected. There are some some annoying features that make me like this Arduino Leonardo board less than some older models (Arduino UNO and Duemilanove). Where the older boards worked very reliably (always came up on same port and programmed always), this board has some issues that made to feel this no so reliable. I have for example found that COM port number shown to PC changes when board is reset, which causes annoying quess-work when connecting to board. The board programming feels to be unreliable, sometime works well and sometimes fails very often. There are also problems with the compatibility issues due different implementation of the USB interface, which causes that many older Arduino example codes do not work in this board (especially when they have something to do with serial port communications).
Leonardo upload failures is a recognized issue by Arduino community: Uploading sketches to Leonardo can fail, due to timing interaction of the USB code on the Leonardo, and the host systems USB device enumeration and initialization. One symptom is that the sketch can show up running on a different com port than the port on which the upload occurred.
I feel that Arduino Leonardo is a microcontroller board is OK for the applications where there is need for the new features. If you don’t need those new features, it might be generally better idea to stick with older board models (Arduino UNO and Duemilanove) that generally are compatible with all code and work reliably. If Arduino Leonardo is the right tool for the application, FreArduino Leonardo R3 for Arduino feels to be a good quality board that is worth to consider.