diecimila headers are not on 2.54mm grid

the disk-eject menu item that was in the OS for 10 years which all Mac users knew to avoid because of the disk swap nightmare.

Apple never bothered to fix the menu item and it was just a useless pimple on the Interface, or worse if a newbie used it and got caught.

I feel the need here to defend what was actually a solution by Apple, it could be argued it eventually warranted removal, but never fixing.

Let's imagine your working on a Mac Plus, it has 1MB of memory, no disk drive, and a single disk 800K floppy drive. You've just finished your novel, and it's a whopping 700K; you save it to your floppy drive. Now you need to make a copy for your editor (who's very modern and accepts electronic manuscripts). You can't load the entire file into memory along with the OS and an application, so you open the disk's window and then eject the disk; a ghost of the original appears on your desktop. Now you insert a new floppy disk, format it, and drag the file from the open window to your new disk. MacOS prompts you to insert the original disk and buffers most of the file into RAM, it asks you for the second disk, and writes the data out, the first disk again and copies the rest of the file, the second disk and writes it all out. You can now 'put away' the first disk from the desktop.

The features down-side was understanding what "Put Away" (ejects a disk and removes it's existence from memory) and "Eject" (ejects a disk) did. Many new users got this wrong. Apple could probably have done a better job on documentation or naming here, but technology wise it was a good solution to a problem. (Keep in mind it was invented for the 128, which had 400K of floppy storage and 128K of memory.)

re: conspiracy theories, Well to be fair, they have admitted the form factor was indeed a mistake. A hasty change was made to make "this weeks" PCB run deadline. Stuff happens, I'm real glad there is an arduino, and that the people felt compelled to get it out the door. it has opened a door into microprocessors for so many.

Though I do see things like the Nano redefining the form factor though, so change is possible.

Conspiracy theorists have suggested that Arduino team deliberately created the off-grid design to make their hardware incompatible. Does an official explanation from the team exist of where this odd quirk came from?

We were given an official explaination in this thread: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1212632541 post 13.

I'm sure there was no evil intent, but it would still be nice to see the next release fix it even if it makes older shields obsolete.

re: Apple disk swap nightmare - I'm glad to hear that at least one person understood and used that piece of nonsense. How many person-hours were wasted by people swearing at it, and instructors telling students "just never, ever use that, it's worst than useless."

It could have easily been implemented in a simple, self-explanatory way, with a cancel button. Maybe someone should do a poll on whether that was more or less useless than Microsoft's office assistant. And why don't bad ideas ever come with a "Cancel" button or a "Never, ever show this again." button one can click?

re: Pin spacing. I'm delighted to have read the other post and put all the conspiracy theory stuff to rest. Kudos to the team for admitting it was a mistake.

I'm also looking forward to the next production run of the Diecimila fixing the mistake. Raise your hand if you think there will be fewer Freeduinos/Arduinos in the future? The time to fix this is now.

I just posted an instructable detailing a simple method for overcoming this problem: http://www.instructables.com/id/Embarassingly_Easy_Arduino_ProtoShield/

It seems like an easy way to correct this would be to add a second digital header 'outside' the original one with normal spacing. It would make the board very slightly larger, but I'm thinking that wouldn't be a major issue in most uses. A few versions could then populate both header sets until it seemed like most everyone who cares is using the new layout. Then stop populating the weird ones.

It seems like an easy way to correct this would be to add a second digital header 'outside' the original one with normal spacing.

Have you seen this: http://www.seeedstudio.com/depot/seeeduino-v11-fully-assembled-arduino-compatible-p-114.html

the more I think about it, the more I like this shifted male header: Originally it was just a way to make a cheap protoShield. But if these can be made in decent quantities (I'm looking at making something that does,) it may provide a clean upgrade path for the arduino pin spacing problem.

it would let the current arduino mate with shields that are standard spaced, and let old shields mate with new arduinos that are standard spaced. Shield makers could move to the new spacing without fear of being incompatible with the 60k+ Arduinos out there. Consumers could get a standard spaced 'duino and not worry that there's no shields for it.

am I being dumb here? what am I missing

Sounds like a simple and neat solution to me!

Sounds good to me too!

My solution to this misery has been to glue another row of pin headers directly outside the mis-spaced ones, leaving one pin blank and connecting the offset pins "diagonally", somewhat like this:

 \\\\\\\\ ||||||||

That way I can continue using "standards compliant" shields, or simply make my own perfboard shields (which will be 2.54mm or one pin row wider than standard shields, but have an even spacing).


Nice job. That looks like a nice, simple and quickist way to deal with the 'problem'. Thanks for sharing.

That seems to be kind of the way that one of the Seeduino boards handled it by etching double holes and allowing the user to optionaly populate a second set of female headers at the 'proper' spacing.



This is a board I designed back in September 2008, but never made it to the market:

I think the double row socket makes total sense, as well as the i2c sockets... as implemented by Seeeduino.

But for those who already have an Arduino board, I came up with a terminal block shield, that because of a mistake, I sold it as a protoboard shield. Why protoboard? Because it converts the odd socket spacing on the Arduino board to a standard 0.1" (2.54mm) spacing for using cheap and simple protoboards.

In my opinion, the odd spacing is here to stay, as a legacy of backward compatibility to older boards.

So, more innovation is needed... keep throwing ideas...

My solution to this misery has been to glue another row of pin headers directly outside the mis-spaced ones, leaving one pin blank and connecting the offset pins "diagonally", somewhat like this: oooooooo*oooooooo \\\\ |||||||| oooooooo.oooooooo

What a neat solution! :D

Thanks all for sharing your ideas and products, too! I wasn't aware of the seeeduino, drawing my inspiration from the Illuminato, and I find it interesting how everyone has put the additional pin headers on the inside, preserving the footprint of the original PCB. I opted for enlarging the footprint instead because this would easily allow to retrofit existing Arduinos...

I think this is going to do the trick:

I worked up a jig, and I can crank them out pretty quickly:

The first batch went to Adafruit today. Hopefully having these widely available will result in the upgrade path I talked about above. Only time will tell I suppose.


The approach I am using on a board I'm laying out now is to add one 8-pin header parallel and 0.1 offset from the D8-Vref header but aligned with the grid. The other three headers are okay. There is no need to duplicate them all.

If you are willing to spend a good 6 dollars you could buy one of these: http://www.adafruit.com/index.php?main_page=product_info&products_id=187 It is a PCB with the arduino headers and one of them is bent to accommodate the nonstandard pin spacing. That is most likely where the previous poster's headers went to.

I’m sad to see the “radio shack” style non-tinned pads. Those are a pain to use after they sit around for a while. I would prefer a proto board with tinned pads.

I wonder why they don't just sell the offset headers by themselves, or as a piece in a bundle like the $2.00 set of their shield stacking headers. Why bundle them with a proto board anyway?