Arduino Connector & Hole Coordinates: Mega 1280 board

The Arduino Mega uses the ATMega 1280 chip to get more memory and far more analog & digital & PWM I/O pins, but remains more-or-less header-pin-compatible with the older Duemilanove and Diecimila boards (notes on the header coordinates for those boards is there).

Arduino Mega - ATmega1280 chip

Arduino Mega - ATmega1280 chip

Herewith, some useful coordinates for the Mega board in (X,Y) format using the default 0.001 grid: 1 unit = 0.001 inch (a.k.a 1 mil). Values are taken directly from the Eagle PCB layout.

The board outline is bounded by (2100,4000) on the upper right, with (0,0) at the lower left by the power jack. It’s not rectangular, but a conversation with Mr Belt Sander could remove the tab sticking out to the right beyond JP1/JP2 if that were really important.

The header names are not the same as on the old boards. Bolded values seem unusual.

  • PWMH 1×8 @ (1300,2000) ← X is not 1290 as before!
  • PWML 1×8 @ (2150,2000)
  • COMMUNICATION 1×8 @ (3050,2000)
  • JP1 2×8 @ (3750,1550)
  • JP2 2×8 @ (3750,750)
  • POWER 1×6 @ (1550,100)
  • ADCL 1×8 @ (2350,100)
  • ADCH 1×8 @ (3250,100)
  • ICSP 2×3 @ (2555,1100) ← +5 X offset
  • Reset switch @ (2920,1100) ← -30 X offset

The PWMH header is 10 mils to the right of its position on the older boards, but still not on the same grid used by the other headers: it’s now offset by a nice, even 50 mils. This probably doesn’t matter for most headers, given the sloppy fit. If you have a finicky board setup, you’re in trouble.

Here’s what the PWMH and PWML headers look like, measured against a Duemilanove board on the top. The offset is not due to perspective!

Arduino Mega PWMH header offset

Arduino Mega PWMH header offset

The Mega board has four 0.125-inch diameter mounting holes (they use 125.984, which is a hard-metric 3.2 mm). The first one is at the same position as on the Duemilanove board.

  • (600,2000)
  • (600,100)
  • (3550,2000)
  • (3800,100)

Three fiducials:

  • 1 @ (780,2000)
  • 2 @ (2319,1603) ← deliberately offset from the grid?
  • 3 @ (3800,100)

Memo to Self: As always, verify these numbers before you start drilling!



  1. #1 by CircuitGizmo on 2010-09-02 - 09:04

    I always found it aggravating that for an “open source hardware” design, that the headers would be so user unfriendly. If everything had been designed to be on a .100 by .100 grid, then this would be so much easier for all sorts of people to use perf boards with these ‘duino boards. In this way the design seriously missed the mark.

  2. #2 by John Rehwinkel on 2010-09-02 - 09:14

    Pulling that info from their design drawings is a little tricky. I know the odd spacing of two of the headers was a historical accident, but the other weirdness just seems arbitrary to me. It’s all dealable-with, just inexplicable.

    Note, the candy-coloured Arduinos make me smile.

    • #3 by Ed on 2010-09-02 - 11:39

      I always figured it was a keying offset, so you couldn’t plug the things in upside-down or bass-ackwards.

      But it’s true: never ascribe to malice what can be explained by stupidity.

      That works for me, anyway…

  3. #4 by smellsofbikes on 2010-09-02 - 11:13

    MRGHGH. Why do they *do* that? It’s such a neat board, but what on earth made them think it was a good idea to do the offset on the *first* board, rather than having everything on 0.1″ pitch, and why on earth they’d change *that* for the MEGA I’ll never understand. Gah. I keep meaning to make myself a MEGA board and keep not getting around to it… but my boards are all standard headers with a swizzle board in case I ever need to use anything on the weird Arduino header outline standard.

  4. #7 by Brett on 2011-02-01 - 07:21

    Sparkfun and a few others sell a header that corrects for this offset:

    full disclosure, I’m the guy who makes them.

    • #8 by Ed on 2011-02-01 - 08:16

      Fundamental rule of business: Find a need and fill it…

      Well done!