Hey guys, For a project I'm trying to create a GPS-tracker with an Arduino Uno, the Arduino GSM Shield and the Adafruit ultimate GPS-logging shield. So far I've managed to write a few scripts that address parts of the required functionality, however when I add these scripts together I run out of space both memory-wise and ram-wise. Could anyone advise me on how to solve this problem? I've added the code below (the combined script) that takes roughly 106% storage space and 120% memory space. I've already tried to comment out the serial println statements, to reduce the library size (which I failed at terribly) and I've also tried to build the configuration with an Arduino Mega. With the Arduino Mega however I ran into problems that first I had to connect ports with jumber cables, and that I could not get the code to run properly on it at all. I've also removed the server url due to privacy concerns. [code] #include #include #include #include #include // #include AltSoftSerial mySerial(8, 7); Adafruit_GPS GPS(&mySerial); // Set GPSECHO to 'false' to turn off echoing the GPS data to the Serial console // Set to 'true' if you want to debug and listen to the raw GPS sentences #define GPSECHO true /* set to true to only log to SD when GPS has a fix, for debugging, keep it false */ #define LOG_FIXONLY true // Trying to change to gps logging rate #define PMTK_SET_NMEA_UPDATE_10SEC "$PMTK220,10000*2F" // The number after the comma indicates the amount of miliseconds // this keeps track of whether we're using the interrupt // off by default! boolean usingInterrupt = false; void useInterrupt(boolean); // Func prototype keeps Arduino 0023 happy // Set the pins used #define chipSelect 10 #define ledPin 13 File logfile; // read a Hex value and return the decimal equivalent uint8_t parseHex(char c) { if (c < '0') return 0; if (c <= '9') return c - '0'; if (c < 'A') return 0; if (c <= 'F') return (c - 'A')+10; } // blink out an error code //void error(uint8_t errno) { // /* // if (SD.errorCode()) { // putstring("SD error: "); // Serial.print(card.errorCode(), HEX); // Serial.print(','); // Serial.println(card.errorData(), HEX); // } // */ // while(1) { // uint8_t i; // for (i=0; i