Inspired by Nantonos's
http://arduino.cc/forum/index.php/topic,125908.0.html#msg946731
and Nick Gammon's
http://arduino.cc/forum/index.php/topic,84190.0.html#msg630702
pictures that I recently stumbled across, I submit the combi below. Use, abuse, and/or feedback is welcome.
I now believe I have fallen into a trap for the unwary. This was not helped by reading somewhere that the 6 pin ICSP cluster isn't much use to ordinary users and might as well be cut off. I suspect that this advice might be OK if you stick with Unos but not a good idea if you Use Megas and could be a very bad idea if you use both.
Now, I'm not sure what is going on with the SPI bus. This is because the potential problem is not self-evident.
By way of example, the gear I am using is
UNO
- Etherten, this includes on-board Ethernet and on-board SD card - no choice, and no doubts.
MEGA 2560
-
Plain vanilla Mega board
-
Ethernet + SD shield, this has a socket for the ICSP cluster
COMMON to BOTH
-
Home brewed shield with Nokia 5110 display with MOSI on pin 11 and CLK on pin 13.
-
Philips 5110 library with pin assignments edited by me.
Both Arduinos work, but I believe not in the way intended, I have made the wrong assumptions about interchangability, and I have misunderstood the importance of the ICSP six-pin cluster. I can't check this but I believe
- The Ethernet shield uses the ICSP cluster and pins 11,12,13 thereon are merely pass through. This implies that it can be used with Uno or Mega 2560.
I assume having a common CE pin for both Ethernet and SD is not down to luck, they are standardised, and no change to the libraries was required.
- When my display shield is used on the Mega, it is no longer on the SPI bus. It is simply using pins 11,13 as assigned by the library.
I'm not if it will be a problem for me, but bad research is something that might be regretted later, and it might have been better to have flying leads for the SPI bus, in the same manner as I have for the I2C pins.
Any comments? I'm happy to edit/remove the picture if needed.