Leonardo Clone out already!

Saw this in the Spanish Forum

http://arduino.cc/forum/index.php/topic,78600.0/topicseen.html

homemade board with ATmega32U4, uses built in USB interface

I for one am excited! Looking at the datasheet it seems that chip pins 10 and 11 are for the USB communication. They say (PDI/PCINT2/MOSI) PB2.....PDO/PCINT3/MISO) PB3.

Newark price/ eagle file / and datasheet:
http://www.newark.com/atmel/atmega32u4-au/ic-8bit-mcu-megaavr-16mhz-tqfp/dp/26R5633?Ntt=ATmega32U4

Features
• High Performance, Low Power AVR® 8-Bit Microcontroller
• Advanced RISC Architecture
– 135 Powerful Instructions – Most Single Clock Cycle Execution
– 32 x 8 General Purpose Working Registers
– Fully Static Operation
– Up to 16 MIPS Throughput at 16 MHz
– On-Chip 2-cycle Multiplier
• Non-volatile Program and Data Memories
– 16/32K Bytes of In-System Self-Programmable Flash (ATmega16U4/ATmega32U4)
– 1.25/2.5K Bytes Internal SRAM (ATmega16U4/ATmega32U4)
– 512Bytes/1K Bytes Internal EEPROM (ATmega16U4/ATmega32U4)
– Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
– Data retention: 20 years at 85°C/ 100 years at 25°C(1)
– Optional Boot Code Section with Independent Lock Bits
In-System Programming by On-chip Boot Program
True Read-While-Write Operation
All supplied parts are preprogramed with a default USB bootloader
– Programming Lock for Software Security
• JTAG (IEEE std. 1149.1 compliant) Interface
– Boundary-scan Capabilities According to the JTAG Standard
– Extensive On-chip Debug Support
– Programming of Flash, EEPROM, Fuses, and Lock Bits through the JTAG Interface
• USB 2.0 Full-speed/Low Speed Device Module with Interrupt on Transfer Completion
– Complies fully with Universal Serial Bus Specification Rev 2.0
– Supports data transfer rates up to 12 Mbit/s and 1.5 Mbit/s
– Endpoint 0 for Control Transfers: up to 64-bytes
– 6 Programmable Endpoints with IN or Out Directions and with Bulk, Interrupt or
Isochronous Transfers
– Configurable Endpoints size up to 256 bytes in double bank mode
– Fully independent 832 bytes USB DPRAM for endpoint memory allocation
– Suspend/Resume Interrupts
– CPU Reset possible on USB Bus Reset detection
– 48 MHz from PLL for Full-speed Bus Operation
– USB Bus Connection/Disconnection on Microcontroller Request
– Crystal-less operation for Low Speed mode
• Peripheral Features
– On-chip PLL for USB and High Speed Timer: 32 up to 96 MHz operation
– One 8-bit Timer/Counter with Separate Prescaler and Compare Mode
– Two 16-bit Timer/Counter with Separate Prescaler, Compare- and Capture Mode
– One 10-bit High-Speed Timer/Counter with PLL (64 MHz) and Compare Mode
– Four 8-bit PWM Channels
– Four PWM Channels with Programmable Resolution from 2 to 16 Bits
– Six PWM Channels for High Speed Operation, with Programmable Resolution from
2 to 11 Bits
– Output Compare Modulator
– 12-channels, 10-bit ADC (features Differential Channels with Programmable Gain)
– Programmable Serial USART with Hardware Flow Control
– Master/Slave SPI Serial Interface
– Byte Oriented 2-wire Serial Interface
– Programmable Watchdog Timer with Separate On-chip Oscillator
– On-chip Analog Comparator
– Interrupt and Wake-up on Pin Change
– On-chip Temperature Sensor
• Special Microcontroller Features
– Power-on Reset and Programmable Brown-out Detection
– Internal 8 MHz Calibrated Oscillator
– Internal clock prescaler & On-the-fly Clock Switching (Int RC / Ext Osc)
– External and Internal Interrupt Sources
– Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby, and Extended Standby
• I/O and Packages
– All I/O combine CMOS outputs and LVTTL inputs
– 26 Programmable I/O Lines
– 44-lead TQFP Package, 10x10mm
– 44-lead QFN Package, 7x7mm
• Operating Voltages
– 2.7 - 5.5V
• Operating temperature
– Industrial (-40°C to +85°C)
• Maximum Frequency
– 8 MHz at 2.7V - Industrial range
– 16 MHz at 4.5V - Industrial range

More discussion on the Spanish thread shows this too:

http://ladyada.net/products/atmega32u4breakout/

with links to software for the USB stuff.

Atmel summary datasheet

& other interesting info

How about an Uno-like version using the ATMega32U4 chip like Leonardo/Teensduino?

I think I have this one pretty far along. Still thinking how to bring the 6 extra IO pins out.

Uno-like? You mean physically? Have you seen

http://code.google.com/p/micropendous/

Yes, physically, fully shield compatile.
Had not seen Micropendous, looks similar but uses the AT90USB1287 instead and adds a few more features like I did with my ATMega 1284 Bobuino.
No end of variety out there!

I was wondering how long it would take you to make your own board CrossRoads! As far as the extra I/O pins, I think they could be put on the end similar to the Mega. I think you just about have to, in order to make it shield compatible.

Nice work!

I think it's done...

I honestly I don't need anymore boards but, I still would like to build a couple of these. If you are going to have them made I would take 2.

Maybe I'll order up 10 bare boards from iteadstudio then! Lets see if anyone else is interested.

CrossRoads:
How about an Uno-like version using the ATMega32U4 chip like Leonardo/Teensduino?

I think I have this one pretty far along. Still thinking how to bring the 6 extra IO pins out.

You seem to have both a power select switch or jumper and also a auto-voltage selector/FET. How are both those features going to work together?

Lefty

Hmm, let me tweak that a little. Need 5V on the USB power pins to receive D-/D+, that's not arranged qute right.
Want the option to power everything from Vin/external 5V, or power everything from USB, or power everything from Vin/external 5V and keep USB alive while not powering from USB.

Leonard itself isn't out yet, right? So in theory the pin mapping that it will use isn't known for sure? (there is a pins_arduino.h file for it in the v1 release candidate distributions.)

I've "always" wanted to put a bigger chip on the standard arduino board, and make the extra pins do duty as extra features (so the upload port would be different that pins 0/1, and the ISP port would be different than 11/12/13, and maybe there would be some extra peripherals on the board that didn't interfere with the standard "pins." Sorta like the extra LED on ChipKit.)

err... where's the 3.3V supply?

I highly recommend running the entire circuit at 3.3V instead of 5, honestly, how many 5V devices are being used vs how many 3.3V devices there are?

Hi chaps,

I've seen that you are following the PaperDuino Leonardo. We have also created a very low cost easy to solder "Leonardo will be clone" called vinciDuinio, though it doesn't provide a 3.3V output like the original Leonardo. You can find details about the board here:

http://arduino.cc/forum/index.php/topic,78781.0.html
and its wiki page here:
https://bitbucket.org/fmalpartida/vinciduino/wiki/Home

We are currently in the process of ordering beta samples to try out the boards.

@Crossroads, very nice work. Excellent job there!!

Putting out 5V on the 3.3V supply pin seems like a bad idea to me :frowning:

There were murmurings that the Arduino team was going to add another pin (or something) to make it determinable whether a shield wanted 5V or 3V logic. Have there been any details of THAT posted yet?

Nice design!!!
I have been using the ATMEGA32U4 from Adafruit with Arduino 1.0 Bootloader with great success.

And the below seems to be the correct pin mapping from hardware/arduino/variants/leonardo/pins_arduino.h

// ATMEL ATMEGA32U4 / ARDUINO LEONARDO
//
// D0				PD2					RXD1/INT2
// D1				PD3					TXD1/INT3
// D2				PD1		SDA			SDA/INT1
// D3#				PD0		PWM8/SCL	OC0B/SCL/INT0
// D4		A6		PD4					ADC8
// D5#				PC6		???			OC3A/#OC4A
// D6#		A7		PD7		FastPWM		#OC4D/ADC10
// D7				PE6					INT6/AIN0
//
// D8				PB4					ADC11/PCINT4
// D9#		A8		PB5		PWM16		OC1A/#OC4B/ADC13/PCINT5
// D10#		A9		PB6		PWM16		OC1B/0c4B/ADC12/PCINT6
// D11#				PB7		PWM8/16		0C0A/OC1C/#RTS/PCINT7
// D12		A10		PD6					T1/#OC4D/ADC9
// D13#				PC7		PWM10		CLK0/OC4A
//
//			A0		PF7					ADC7
//			A1		PF6					ADC6
//			A2		PF5					ADC5
//			A3		PF4					ADC4
//			A4		PF1					ADC1
//			A5		PF0					ADC0
//
// New pins D14..D17 to map SPI port to digitial pins
//
// D14				PB0					RXLED,SS/PCINT0
// D15				PB1					SCK,PCINT1
// D16				PB2					MOSI,PCINT2
// D17				PB3					MISO,PCINT3
//
// TXLED			PD5
// RXLED		    PB0
// HWB				PE2					HWB

Hi westfw,

thanks for your kind feedback. The latest version of the board has now a 3.3V on the 3.3V pin.

I haven't seen anything regarding the 3.3V or 5V selectable shield. Am curious.

" the correct pin mapping from hardware/arduino/variants/leonardo/pins_arduino.h"

Hmm, hope I was not far off!
I actually let it autoroute, tweaked placement a little and autoroute again, then moved traces to let missing grounds connect up.
Will see how for off I was when I get home ...