This is my "main controller" board for the Atmel design contest. The ground pour pretty completely fills in the white spaces, so I am showing the board here without them so you can see all the lovely traces.
The SMT part in the center is an ATmega328. The 6-pin connector on the left is the same pinout as an Arduino serial programming port.
So why didn't I just design an Arduino shield?
Well, I tried that. Between the Arduino shield connectors and the interface connectors I need, the board was a mess of pins. The ratsnest was also a mess. The routing looked like it would take at least as long as this board, and for contest judging purposes, the elegance of the solution and BOM cost were not what I wanted.
On the upside, I can fall back to using Arduino boot loader and Arduino libraries if I need to save time.
I've got some protoboard shields that I can use with actual Arduino boards in the early part of system debug, and then shift to my board when it arrives. That way, I can have debuggged (I hope) software running on my un-debugged hardware.
I've been struggling with non-Arduino libraries, trying to find a usable I2C driver. It was looking like a lot of work to get something usable for my project, when a fortuitous Google search found an Atmel app note with code for connecting an AVR processor to the Atmel touch controller. I think I just saved a few days in my software schedule.
Which is good, because I'm running short on days.