If you’re building an Arduino shield, you must align the connectors & holes with the Arduino board underneath. That seems to be easy enough, assuming you start with the Eagle CAD layout found there, but when you’re starting with your own layout, then things get messy.
Here’s how to verify that you have everything in the right spot, at least for Diecimilla-class boards. Start by holding the Arduino board with the component side facing you, USB connector on the upper left. Rotate your own PCB layout appropriately or stand on your head / shoulders as needed.
With the exception of J3, the center points of the connectors & holes seem to be on a hard 25-mil grid with the origin at the lower-left corner of the board (below the coaxial power jack):
- J3 (AREF) @ (1.290,2.000)
- J1 (RX) @ (2.150,2.000)
- POWER @ (1.550,0.100)
- J2 (AIN) @ (2.250,0.100)
- Upper-left hole = 0.125 dia @ (0.600,2.000)
- Upper-right hole = 0.087 dia @ (2.600,1.400)
- Lower-right hole = 0.125 dia @ (2.600,0.300)
- Reset button = (2.175,1.065)
Offsets between points of interest:
- connector rows Y = 1.900
- right holes Y = 1.100
- UL hole to UR hole = (2.000,-0.600)
- UL hole to J3 X = 0.690
- J3 to J1 X = 0.860
- J3 to POWER X = 0.260
- POWER to J2 X = 0.700
- J1 to UR hole = (0.450,-0.600)
- J2 to LR hole = (0.350,200)
Note that the three etched fiducial targets are not on the 25-mil grid. They’re not on a hard metric grid, either, so I don’t know quite what’s going on. Fortunately, they’re not holes, so it doesn’t matter.
Memo to self: perhaps I’ve measured & calculated & transcribed those values correctly. Double-check before drilling, perhaps by superimposing double-size PCB layouts on a light table or window. Finding it then is much less annoying than after drilling the board… ask me how I know.