I'm learning to use SD for data logging, so I'm looking at the Datalogger sketch from the built-in examples. I'm using a (clone) Ethernet shield with microSD socket on a Mega (clone). The sketch is modified to work with the Mega by changing pin 10 to 53, and I'm using Arduino 1.0. The sketch is also at http://arduino.cc/en/Tutorial/Datalogger

The problem is that the sketch seems to get stuck when running, the output looks something like this:

They do. The String class is a resource hog, though. I'd guess that you are right at the limit of not having enough memory.

Thanks for replying. Well, I realize the String class is a resource hog, but I'm curious why it doesn't work in this case. Surely the Mega has enough memory for a simple string in an example sketch? Besides, changing the compound operator to the regular concat operator works.

// On the Ethernet Shield, CS is pin 4. Note that even if it's not// used as the CS pin, the hardware CS pin (10 on most Arduino boards,// 53 on the Mega) must be left as an output or the SD library// functions will not work.const int chipSelect = 4;

void setup(){ Serial.begin(9600); Serial.print("Initializing SD card..."); // make sure that the default chip select pin is set to // output, even if you don't use it: pinMode(53, OUTPUT);

// see if the card is present and can be initialized: if (!SD.begin(chipSelect)) { Serial.println("Card failed, or not present"); // don't do anything more: return; } Serial.println("card initialized.");}

void loop(){ // make a string for assembling the data to log: String dataString = "";