Femtoduino: ultrasmall arduino 20.7x15.2 mm

Original blog post: Femtoduino: designing an ultrasmall arduino compatible board with the ATMEGA 328P QFN/MLF32

As a personal learning exercise and challenge to myself, I designed an ultrasmall Arduino compatible board based on the ATMEGA 328P in the QFN/MLF32 package.

Using the smallest 328P uC currently available, very small package components (eg 0402 caps and resistors) and 0.05" headers I've been able to design an Arduino compatible board which is only 20.7x15.2 mm.

Given that the Arduino Pro Mini, currently the smallest Arduino board available, is 34x18 mm and I restricted myself to use a 2 side PCB, I think I accomplished a pretty good result.

I called this board Femtoduino. Have a look at the schematics. Of course this will be a free (as in speech) hardware.

I plan to submit this board to the DorkbotPDX group PCB order of the 3rd January and I'm currently looking for reviews and comments for the project. So, if you have knowledge of this topics please have a look at the Femtoduino designs.

You can get the Kicad sources (as of 30-12-2010) from here. I'm using a weekly updated version of Kicad, so if you have problems with older versions of Kicad you can try use a recent snapshot for Windows or Ubuntu 10.10.

You can get the most updated sources from my personal repository using bzr with the following command:

bzr co http://repository.varesano.net/Femtoduino

Thanks for your help!

Some questions:

What's the plan for getting a bootloader in it so that sketches can be uploaded? Will you have some kind of socket it can be placed on top of for testing?

Can the pinout be adjusted to make it more convenient to connect a standard FTDI (or equivalent) adapter for programming?

Why have a 10K current limit resister for the power indicator, and then load down D13 with 330 ohm? Will the power LED even turn with ~0.3mA? ((5V-2V)/10K as an estimate)

I think this is pretty neat.

Hi CrossRoads, thanks for having a look at Femtoduino.

What's the plan for getting a bootloader in it so that sketches can be uploaded?

According to my understanding of the original Arduino UNO schematics, the programmer header is simply connected to D11, D12, D13, RST, VCC and GND so it should be possible to use ad hoc programmer cables connected to regular pinout pins to load the bootloader or to program the uC using the programmer instead of the bootloader.

Will you have some kind of socket it can be placed on top of for testing?

There are 0.05" female headers similar to those of the Arduino UNO, just smaller. For prototyping that will be the best option.

Can the pinout be adjusted to make it more convenient to connect a standard FTDI (or equivalent) adapter for programming?

I initially wanted to keep the pinout FTDI compatible. Unfortunately, I wasn't able to keep that as the necessary pins where too distant in the QFN version of the ATMEGA328 so it would have required make the PCB bigger.

So, given also the fact that it uses 0.05" headers you still wouldn't have been able to connect the FTDI directly, I decided to break compatibility with FTDI.

I plan to design a simple connector from the Femtoduino pinout to standard FTDI (following Sparkfun pinout) and/or designing it's own FTDI breakout directly compatible with the Femtoduino pinout.

Why have a 10K current limit resister for the power indicator, and then load down D13 with 330 ohm? Will the power LED even turn with ~0.3mA? ((5V-2V)/10K as an estimate)

I used the Arduino Pro Mini schematics as starting point and 10K was the value they used in their schematics.

Given that I never designed for SMD LEDs I assumed that was a correct value.. but it looked too high also to me. I'm now comparing that value to UNO and Nano schematics and they all have very smaller resistors so it's probably an error on the Pro Mini Schematics.

However this doesn't impact the design too much as I still did not choose the specific final components so changing the value of that resistor is not a problem at all.

Thanks again.

My main concern for hobbyist popularity is the use of .05" headers. That means it can't directly plug into solderless breadboards and not as easy to find header/socket? I understand one can't be the smallest and still hang on to .1" connectors. Maybe a simple breakout board to fan out the connection to standard .1" headers, and a serial inline header, and even a standard 2x3 ICSP connector pins.? Make the breakout board shield compatible and it might make a cool daughter/mother combination where the processor module can be detatched for ultra small installation applications?

However for applications like airborne R/C installations where smallest size, lightest weight means a lot, it would be a winner.

Lefty

I designed one with a 0.5mm board-to-board connector before. Slightly larger than Femtoduino but have everything on board (FTDI, crystal). I guess the main idea was not to be prototyping friendly and but maybe for prototype stage, you can make a base board that breaks out to the standard 0.1" (something that stacks from the bottom).