We sure love the ATmega328 here at Adafruit, and we use them a lot for our own projects. The processor has plenty of GPIO, Analog inputs, hardware UART SPI and I2C, timers and PWM galore - just enough for most simple projects. When we need to go small, we use a Pro Trinket 3V or 5V, but when size isn't as much of a concern, and an USB-serial converter is required, we reach for an Adafruit METRO.
This is the Adafruit METRO with headers. It comes with headers soldered on. It's a fully assembled and tested board with SMT headers attached as well as through hole headers. If you don't want a Metro with through-hole headers or at least, holes for them, but not attached for super-slimness, check out our Metro without Headers.
METRO is the culmination of years of playing with AVRs: we wanted to make a development board that is easy to use and is hacker friendly. At the heart is an ATmega328P, with 32KB of flash and 2KB of RAM, running at 16 MHz
Power the METRO with 7-9V polarity protected DC or the micro USB connector to any 5V USB source. The 2.1mm DC jack has an on/off switch next to it so you can turn off your setup easily. The METRO will automagically switch between USB and DC.
METRO has 19 GPIO pins, 6 of which are Analog in as well, and 2 of which are reserved for the USB-serial converter. There's also 6 PWMs available on 3 timers (1 x 16-bit, 2 x 8-bit). There's a hardware SPI port, hardware I2C port and hardware UART to USB. Logic level is 5V but by cutting and soldering closed a jumper, you can easily convert it to 3.3V logic
USB to Serial converter, there's a hardware USB to Serial converter that can be used by any computer to listen/send data to the METRO, and can also be used to launch and update code via the bootloader
Four indicator LEDs, on the front edge of the PCB, for easy debugging. One green power LED, two RX/TX LEDs for the UART, and a red LED connected to pin PB5
Easy reprogramming, comes pre-loaded with the Optiboot bootloader, which is supported by avrdude and only uses 512 bytes.