The SPI lines have some differences among different Arduino boards, especially the new Leonardo. Unclearance of this might cause some trouble when making wire connections manually.
For Arduino Leonardo, the pins on the ICSP header are not connected to any of the digital I/O pins as they are on the Uno. They are only available on the ICSP connector. This means that if you have a shield that uses SPI, but does NOT have a 6-pin ICSP connector that connects to the Leonardo's 6-pin ICSP header, the shield will not work.
The following table display on which pins the SPI lines are broken out on the different Arduino boards:
Arduino Board | MOSI | MISO | SCK | SS (slave) | SS (master) |
Uno or Duemilanove | 11 or ICSP-4 | 12 or ICSP-1 | 13 or ICSP-3 | 10 | – |
Mega1280 or Mega2560 | 51 or ICSP-4 | 50 or ICSP-1 | 52 or ICSP-3 | 53 | – |
Leonardo | ICSP-4 | ICSP-1 | ICSP-3 | – | – |
Due | ICSP-4 | ICSP-1 | ICSP-3 | – | 4, 10, 52 |
Note that MISO, MOSI, and SCK are available in a consistent physical location on the ICSP header; this is useful, for example, in designing a shield that works on every board.