Go Down

Topic: Ethernet shield + SD Card not working (Read 2278 times) previous topic - next topic


I'm getting very frustrated and annoyed at this thing, i've been trying for days.

Setup is Duemilanove + Ethernet shield (Wiznet 5100) + SD card adapter
Arduino-1.0, code is Examples>SD>cardinfo

The example works out of the box with SD CS on pin 4 and no ethernet shield connected
The ethernet shield works with webserver example (whether SD connected or not)
But SD won't work when the Ethernet is connected,

Ethernet CS is default pin 10, SD CS is set to pin 4,
Here is a trace without ethernet connected and working

Here is a trace with ethernet connected and SD not working

When i zoom in on the trace it looks like the ethernet shield is grabbing the clock and not letting go, it also shows alot of traffic on the MISO line, this is the ether shield not SD.

I hope someone can understand what im trying to get across as im not good at explaining.

The goal will be to store web pages on SD and transfer them to the ether shield
it's about 30 seconds from exiting through the window right now



The standard Ethernet shield already incorporates an SD shield. What type do you use if your's don't have the SD adapter? If it does, I guess the SD card adapter on the Ethernet shield conflicts with the one on the separate shield (both are using pin 4 as CS).


My ether shield is one of the older ones which has the solder pads for SD adapter but not fitted so yes pin 4 on the shield is used but just connected to a blank pad, i've tried pins from 4 to 9 and SD will not work when ether shield is connected


Links to the device datasheets would help.

Are you disabling the w5100 SPI while setting up the SD card? Try just the SD init first. Don't do anything with the w5100 (except disable it) until you figure out why the SD fails. Leave the ethernet shield connected, just don't set it up yet.

Compile and upload this sketch.
Code: [Select]
#include <SD.h>
#include <SPI.h>

void setup() {

 // disable w5100 SPI

 // set up SD card
 if(!SD.begin(4)) Serial.println("SD fail");
 else Serial.println("SD ok");

void loop() {


Do you get ok or fail?


Thanks for that, no it fails, it might be the shield and probably the reason it never had a SD cage fitted, I'll keep trying though


What shields are you using? The "original" shields from Arduino itself?

Go Up