I’m using an ATmega328 UNO board with a VMA202 SD Shield that sits on top of it. Everything works fine and I can log timestamped data on my SD card.
However, as soon as I add the VMA203 LCD Shield on top of the SD shield, I can’t initialize the SD card anymore (same code, I just add the LCD shield). The LCD shield demo code works fine.
I believe this is due to a chipSelector number interference between the SD and the LCD shield, but I can’t understand why it fails.
My CS for the SD card is 10, as stipulated in the Velleman documentation. I also tried some other CS, but none of them work. I am a complete newbie in electronics so if anyone could provide me insight so I can have the whole setup working, that would be great. Thanks in advance for your help,
I believe that my issues are due to the fact that the SD shield uses pin 10 as Chip Select AND the LCD shield is also using the same pin for back lighting the screen. It looks strange that 2 shields from the same manufacturer would be incompatible, but definitely my low experience could lead me to misunderstand what is going on. Can someone confirm this please?
If my previous statement above is correct, I guess my other option would be to physically connect the CS pin of the SD shield to an unused digital input (let’s say D2). I did that, and I updated the code by changing this line of code
if (!SD.begin(SS)) {
with
// see if the card is present and can be initialized:
if (!SD.begin(2, 11, 12, 13)) {
And somehow it only works randomly : sometimes the SD card can be initialized, sometimes not, and I have to reboot the board several times before it eventually recognizes the SD card… Weird. Any idea on that?
You are using the same pins as the VMA203 (11,12,13) -
This is how it looks like when connecting externally - not using a shield on shield (which is not possible with the VMS205 as the pins are not aligned)
So you have a conflict… UNO doesn’t have enough ports to support both…