Connecting Ethernet shield to ICSP header vs Digital pins

I've been workign to get the Arduino Ethenet shield (latest revision) working with a breadbaord Arduino. With the Arduino's D11, D12, and D13 pins connected to the shield's ICSP header pins and the Arduino's D10 pin connected to the D10 pin on the shield everyhtign works fine. What I don't understand, is why can't I connect the Arduino's D11, D12, D13 pins to the same pins on the shield? And on a related note, why did the Ethernet shield designers opt to use the ICSP header over the digital I/O pin headers?

By using the ICSP pins, the Mega2560 can use the ethernet shield too. The SPI data pins are not the same on the mega and the uno.

Hum, OK. Is there a reason that the ICSP header pins aren't conencted to the I/O header pins though (that is pins 11, 12, and 13 on the ATMega would conenct to both the 11, 12, 13 I/O pins and the ICSP header)?

rtadams89: Hum, OK. Is there a reason that the ICSP header pins aren't conencted to the I/O header pins though (that is pins 11, 12, and 13 on the ATMega would conenct to both the 11, 12, 13 I/O pins and the ICSP header)?

I'm not sure what you mean, but the SPI data pins are on each device's digital pins and the ICSP. The Uno SPI data pins are on the ICSP pins, and digital pins 11-13. The Mega data pins are on the ICSP pins, and digital pins 50-52. (not connected to the ethernet shield)

The reason most ethernet shields do not connect the SPI to data pins 11-13 is to allow the Mega to use those pins as digital I/O.

I did not vote either way, but I prefer a Mega, so if I had to vote... :D