Having been at this Arduino project game for a while, I find that the appeal of the UNO is great since I can use it side-by-side with my solderless protoboard and those great little colored jumper wires.
This makes it really easy to test, but the UNO is a big little board with the USB the IC socket, and the vertical headers. One day, I thought, "Why not flatten the headers and squeeze them close to the microcontroller?" And, while I am at it, "Why not eliminate the crystal and the load capacitors?" And, it was good.
Anxious to see if such a concept would actually work, I found a scrap of protoboard and took a fresh Atmega328P-PU from an IC shipping tube. For this trial, I decided to burn the uC fuses to allow for 8MHz internal oscillator without a bootloader. So, I fired up my ArduinoISP sketch on an UNO with a ZIF shield (http://www.adafruit.com/products/462 ) and set the Board to ATmega328 on a breadboard (8 MHz internal clock). The specifics are given in this link: http://arduino.cc/en/Tutorial/ArduinoToBreadboard
Once the uC was programmed (the fuses), I set about to solder everything together.
I generally find that I have no need to run the FLAT-duino at 16MHz since 8MHz is enough computing power for most remote projects. But, you can easily modify the design by adding a 16MHz crystal and two 22pF crystal load capacitors.
I have found that for point-to-point wiring of the crystal load capacitors, it is very easy to use a small piece of copper tape the size of the top of the Atmega328P-PU micro-controller. Physical pin #8 is Gnd on the left-side of the IC, so one of the load capacitor leads is soldered to this pin and to the copper tape. This allows the other load capacitor to reference ground from the tape. The free ends of both capacitors and the crystal are soldered directly to the Xtal 1 and Xtal 2 pins of the IC, physical pins 9 and 10. All three components are bent over the top of the IC and a small amount of epoxy or "GOOP" holds the parts secure.
The pictures to the right show my implementation of the crystal and capacitors and also show that the FLAT-duino can be constructed with both horizontal and vertical headers to suit the needs of individual projects.
Best part of the 16MHz version is that you can use the stock Uno bootloader.
With the microcontroller ready, I inserted it in the center of a piece of breadboard. I cut two lengths of female headers so that the would be 14 pins each and took my dremel and smoothed the edges where I cut the two from one long header strip. I then took my marker pen and lined everything up and marked the left and right boundaries of the board where I would cut. A few deep cuts with my utility knife against a steel ruler scored the board nicely and I used the jaws of a rubber lined vice to break the board evenly.
The exact nature of the assembly will somewhat depend on what you intend to do with the board. I run most of my battery powered circuits from 3-AA battery packs or 4-AA packs. But, with the 8 MHz arduino, you can run from a 2-AA pack! This opens up lots of options for using the FLAT-duino with those little Nokia 5110 B/W displays.
With the uC inserted into the board in the place you desire (usually the center) it is time to bend the pins underneath the chip so that the 328 is firmly against the board. The pins should be bent toward the center of the chip. Now using a vice or a pliers, bend the header pins at a 90 degree angle along the length of the header keeping the bend uniform. Do this for both header strips and then insert the bent pins into the breadboard in the same holes as the uC pins.
Use plastic hobby clamps to hold the headers in place and flat and make sure all of the header pins are in the protoboard and through the back side of each hole. Invert the board, and solder the header pin, the IC pin, and the single pad with a well-tinned small point soldering iron. Do this for all 28 pins.
At this time, you have a choice since the Atmega328 has several pins that are typically connected together. You can connect the Gnd pins (8, 22) and the Vcc pins (7, 20, 21) or you can do this later with jumper wires on the solderless breadboard (this is useful if you plan on experimenting with a separate analog voltage reference.) If you connect them now, simply use small gauge hookup wire and run it on the bottom of the board making certain that the heat of soldering does not melt the insulation and cause a short. You should also add a 100nF noise suppression capacitor between pins 7 and 8 ( or, 7 and 22.) Add this capacitor even if you decide not to make any other connections to the FLAT-duino power pins.
You now have a FLAT-duino. You can program it with the UNO as ISP but remember to always use the Arduino GUI setting of 8 MHz. If you wish, you can add a 16MHz small crystal, two load caps, and reprogram the Atmega328P fuses to be 16MHz and even add the bootloader. But, running at 8MHz is plenty fast enough for most battery powered projects and conserves much battery power for longer life.
I work with Pro Mini, Pro Micro, and Nano and for these boards I have assembled carrier boards so that the modules can plug in and I can add components and wiring on the carrier board - saves damage or destruction to the Arduino modules. While working on a new naked 328P-PU design, I wanted to use one of my pre-build carrier boards. Thus was born FLAT-duino II. He is definitely a chip off the old silicon block.
I really like the II; one FLAT-duino can be used used in multiple projects by assembling multiple carrier boards. Working on a solderless breadboard is OK for a start, but eventually you need to move to a prototype and sometimes you want to move the identical programmed chip between two slightly different circuit designs. The II will allow just that flexibility. The signature sideways mounted female header is ideal for taking voltage or waveform measurements or to just use a pin-jumper to connect to another solderless breadboard.