mini_ardubot rev. 1 board

After waiting 18 days (13 of those in shipping), my board, hastily named "mini_ardubot" has made it through Seeedstudio's Propaganda PCB service and looks pretty good. A quick explanation of the board is that is a small Arduino-compatible platform (has an AVR on board) that prioritizes servo control and IR communication and has support for ISP and serial (Arduino) development. It also has some nice things like a power LED and a user-programmable LED. Ultimately, I am hoping to learn some things from designing this board so the second, more complex, revision will go smoother.
This is the schematic, designed in EAGLE (attached below). A lot of this was ripped straight off the design for the Arduino Diecimila, but obviously, a lot of the support circuitry was gutted out, especially the FTDI chip who's functionality will be handled by an external cable. The main additions are the IR receiver module and current-limiting resistors for IR LED outputs. There are also a bunch of headers for breaking out the pins.
I laid out the components in roughly the same place as the Arduino and tried to place them near where they had to be connected. I imported the DRC file provided by Seeedstudio so constraints would be followed and also set trace widths to 12mil (for signals) and 24mil (for power). Then I used EAGLE's autorouter to magically do the rest... Well, that's not exactly true, I did have to ripup and redo it several times to make adjustments. The ground planes went in last because they kept screwing up the autorouter. I then messed with the silkscreen layer to put in some useful labels since I was paying for it anyway.
So the boards come in after much anticipation and it looks like I get six instead of the promised five! But while I was happy to get these very pretty boards, there were a few disappointments when assembling it:
  1. Only the "place" and "names" layers were printed in silkscreen. I had a lot of nice labels which I put on the "values" layer which didn't get printed. Next time I'll have to put them on the place or names layers or just try to clarify it with the company.
  2. A few ground connections I neglected to put thermals on and instead the pin/pad had a direct connection to the ground plane. This made it really hard to heat up the pad and apply solder, so the lesson here is: thermals are not optional!
  3. The big 100uF SMD capacitor is intended to be reflow soldered so that its plastic base can lay flush against the board. Well, there's no way to get an iron down there like that so I had to apply solder to the pins first and some to the pads and then try to keep both hot while I set the part down. Now there is a bulge of solder in the middle and the capacitor rocks which is a little disconcerting. In the future I need to use a thru-hole part or get a hot-air gun.
  4. The ICSP header is too close to the capacitor. It needs some room around it because the connector is a fairly wide hunk of plastic. Luckily, as I always do with mating headers/connectors, I put the header in the connector while soldering it so I am sure the connector will fit. So this connector in particular is a little bit tilted.
Here is the component-side of the board with the ICSP plugged in and a lipo battery. One really nice feature of AVR's ICSP as opposed to PIC's is that they don't try to hijack the target board's power supply and instead reads it and stays compatible with it. This means I can use a 3.7V power supply and other parts and not worry about over-voltage conditions or the programmer fighting to pull-down the power supply. This is a major problem with PICs which must have their supply controllable in order to program them.
Here is a side view where you can see the green user LED and the IR sensor. This side is theoretically the top side of the board once it is mounted.