Arduino pin locations on PCB

Hi,

I'm making a shield design and used the proto shield file from adafruit. The locations of the 4 rows of pin headers are bit strange. I checked the one included in Eagle library by Stechanie Lange. Her pin headers are more regular. Here are the coordinates of the leftmost pins on the pin headers (usb connector side is assumed left):

Top left (0.925, 2.000)
Bottom Left (1.300, 0.100)
Top right (1.800, 2.000)
Bottom right (2.000, 0.100)

Are these accurate? Thank you.

Seems like the two top headers are separated by 0.15" instead of 0.1", thus the 0.05" gap on the arduino main board. On the other hand, the bottom headers are separated with 0.1" gap. Am I correct?

I think that is right, but wait for others to chime in. It was basically a historical design mistake caused by a rush for order or such (there's a thread somewhere on here that the mods clarify what happened). Of all the things I wish could be fixed (but can't now), this would be a big one.

Thanks cr0sh. Simple mistake as it was, I guess future arduino "historians" will find plenty of "facts" to say otherwise, like what some say about the purpose of the great pyramid in the history channel, will be interesting ;D

Having built several of them, I can report that the Adafruit Protoshield fits directly to the Duemilanove, so the pin offset you see is correct. The distance between the two female headers on the digital pin side is not a multiple of 0.10 inch. If you correct the header locations to fit on a 0.10 grid, you will have to bend the pins on the header so they will line up. Adafruit sells a female socket set with prebent pins so you can use standard Vector Board, etc. Here's their offering DIY shield for Arduino : ID 187 : $6.00 : Adafruit Industries, Unique & fun DIY electronics and kits showing the necessity due to the offset.

Soo... The Adafruit Eagle layout is a good base for creating your own customized shield layout.

Simple mistake as it was, I guess future arduino "historians" will find plenty of "facts" to say otherwise

Oh, I tend to doubt that unless these boards die, and the messages are taken along with it, and mellis et. al. cease to exist on this plane of existence, etc...

From what I understand, the developers of the Arduino were going back and forth with designs on the PCB that would become the Arduino, back when it was using the ATMega8 (this is also why we are "stuck" with 16 MHz; for backward compatibility - I don't think this was a bad decision, though), and at the last minute, they were told by the business that was going to produce the boards to "get them to us in the next 30 minutes, or..." - the price went up or something to that effect. Well they were in "crunch mode", and one of them got a hold of the board, made some changes, didn't realize they had shifted the design layout slightly on the header...

The rest is history. I suppose the order was going to be for something large (more than just a few boards) - and so the error was probably realized relatively quickly after the boards arrived (if not sooner), but it was "set in stone" at that point, and inertia carried the day.

I would say that despite this flaw, the Arduino has been successful, people have found ways around it, and perhaps it spurred more people to learn real PCB design using such schematic capture tools, just to be able to make their own shields and shields for others.

:slight_smile:

cr0sh, Thanks for the history lesson. I've been hooked on arduino since I got mine some months ago. I was not very good with breadboarding or designs or digital circuits but all those became history, thanks to arduino.

As an item of interest, use the SparkFun Eagle Library. It has the Arduino shield (ARDUINO_SHIELD) as a component you can use with all the pins and a few minor items taken care of. The Schematic view is pretty nice for the Arduino itself.

http://www.opencircuits.com/SFE_Footprint_Library_Eagle