Hi Fellow Arduino Fans,
Many people have bought these cheap shields and had problems getting them to work and also noted that there is very little in the way of documentation. I also had problems and finally, after wasting many hours, discovered the problem was more mechanical than electrical. I thought I would offer some documentation and some thoughts on compatibility with various Arduino models:
Specification: Arduino UNO shield with full-size SD card reader and DS1307 RTC clock with 3V CR1220 battery holder.
- The board has a 3.3v step-down regulator so that it is perfectly safe to use 5V.
- There is a power LED near pin A0
- There is a prototype area in the middle of the board for your own experimental circuit.
- There are 2 additional LEDs next to the reset button that you can use with your custom circuit by connecting to pin holes L1 and L2 marked near D4 and D3.
- Next to pin hole L1 is a Chip Select (CS) pin hole linking to D10 and used by the SD card.
- Near to A2-A3 you have pin holes for 5V and GND
- Near to A4-A5 there are pin holes for I2C SDA connected to A4 and SCL connected to A5 used by the RTC.
- Next to the crystal there are 4 pin holes for 3.3V, the Square Wave output (SQ) from the RTC, a write protect detection (WP) from the SD reader that will be LOW if the write protect tab on the card is set and finally a Card Detect (CD) that goes LOW when a card is inserted.
Arduino UNO - If you have a UNO with a USB type B connector this shield may NOT WORK because the male pins are NOT LONG ENOUGH. You can prove this by forcing the D10 - D13 pins down when running your sketch. You may find then that the SD card works but as soon as you let go you will probably get a card read/write error. This shield works best, therefore, on an Arduino UNO with a USB type A connector or Micro USB connector.
Arduino Leonardo - The SD card is an SPI device but the shield has no ICSP connector. On an Arduino Leonardo, SPI is only available via the ICSP connector. You will need to connect pins D11 - D13 to the appropriate pins on the Leonardo ICSP connector to use this shield.
Arduino Mega - SPI pins are D50,D51 and D52 so these will need to be mapped from the D11-D13 pins on the shield. Also D53 is normally used for SS rather than D10. On a Mega, A4 and A5 are not used for I2C but the shield should map A4 and A5 to the I2C pins next to AREF. You may also have the same problem with the USB type B connector.
I hope this saves others the hours of wasted effort I had. If you have not bought one of these shields yet but are looking for a data logger, may I recommend that you pay a little more and get the Adafruit one instead.