GPS and sensor data logger only works when connected to serial connection

PeterH:

jmagnus:
Speaking of working. I found out I had fried my arduino uno. I didnt realize I needed a voltage regulator if I wanted to power it via the usb port.

Do you mean you were supplying more than 5V through the USB port? Yes, that wouldn't do it any good.

That is exactly what I was doing. I figured the Arduino had a built in regulator for usb power(that would be redundant)... ID10T error!

In other news I got the device to work using the following code.

Thanks for everyones input and help!

/* 
 This Sketch uses the TinyGPS library and SD card library to log GPS data and save it on a SD card.
 
 Important: This version is intended for Arduino 1.0.1 IDE. It will
 not compile in earlier versions. Be sure the following files are
 present in the libraries folder:
 
 TinyGPS.h
 Adafruit_BMP085.h

 Written By: Joseph Magnus
 Date: 10/18/2012
 */

#include <SoftwareSerial.h>                          //Standard Software Serial Library
#include <TinyGPS.h>                                 // Version for 1.0.1
#include <SD.h>                                      // Standard Arduino SD card Library
#include <Wire.h>
#include <Adafruit_BMP085.h>

File myFile;                                         
Adafruit_BMP085 bmp;                                 
TinyGPS gps;                                         
SoftwareSerial nss(6, 255);                          //Yellow wire to pin 6. (Based on using Parallax 28500-RT PMB-648 GPS SiRF III Internal Antenna)
int led = 13;                                        //Pin 13 is declared as led

//declare variables for GPS
float flat, flon;                                 
unsigned long age, time, date, speed, course, satellites, altitude, speedmps;      
//end variable declaration for GPS

//Declare variable declaration for Humidity Sensor
int humPin = 0; //// Humidity sensor on Analog pin 0
//end variable declaration for Humidity Sensor


//declare variables for temp sensor
int tempPin = 2; // TMP-36 on Analog pin 2
int tempReading = 0;
float temperatureC = 0;
float temperatureF = 0;
const int interval = 10*100; // the interval between sensor reads, in ms
long lastReadTime = 0;        // the last time you read the sensor, in ms
//end variable declaration for temp sensor

//Setup                                     
void setup() {

  Serial.begin(9600);
  nss.begin(4800);
  bmp.begin();
  pinMode(led, OUTPUT);                              

  digitalWrite(led, HIGH);                           

  Serial.println("Flight_DATA_LOGGER");
  Serial.println("WRITTEN BY: Joseph Magnus");
  delay(1000);
  Serial.println("....................");
  delay(1000);
  Serial.println("***");

  //Initialize Barometer
  Serial.println("Initializing Barometer...");
  delay(1000);

  Serial.println("Initialization Completed Successfully!");
  // End initialize Barometer

  // Initialize SD card
  Serial.println("Initializing SD card...");
  delay(2000);
  pinMode(10, OUTPUT);                               //Set SD Card Pin to digital pin 10
  if (!SD.begin(10))                                 //If no SD card available then fail
  {
    Serial.println("Initialization Failed!");
    return;
  }
  Serial.println("Initialization Completed Successfully!");
  // End initialize SD Card

  digitalWrite(led, LOW);                              
}
//End Setup

//Begin Loop
void loop() {
  bool newdata = true;
  unsigned long start = millis();
  while (millis() - start < 5000) {                 // Update every 5 seconds
    if (feedgps())
      newdata = true;
  }
  if (newdata) {
    gpsdump(gps);

  }
}
void gpsdump(TinyGPS &gps) {
  //Start GPS read
  gps.f_get_position(&flat, &flon, &age);           
  gps.get_datetime(&date, &time);                   
  speedmps = gps.f_speed_mps();                     
  satellites = gps.satellites();                   
  altitude = gps.f_altitude();                      
  course = gps.course();     
  //End GPS read
  delay(1000);
  //Start TMP36 temp sensor read
  tempReading = analogRead(tempPin);                      // READ TEMPERATURE
  float tempVoltage = tempReading * 5;                    // convert readings to voltage, using 5V power supply
  tempVoltage /= 1024.0;
  temperatureC = (tempVoltage - 0.5) * 100 ;              // now print out the temperature degrees C
  temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;       // now convert to Fahrenheight
  //End TMP36 temp sensor read

  //Start Humidity sensor read
  int humReading = analogRead(humPin);                      // read the value from the pin  
  double volt = humReading / 1023.0 * 5;                    // convert it into voltage (Vcc = 5V)  
  double sensorRH = 161.*volt/5 - 25.8;                     // calculate the sensor humitidy  
  double trueRH = sensorRH / (1.0546 - 0.0026*temperatureC);// adapt this for the given temperature  
  //end humidity sensor reading

  //Print data to Serial Debug
  Serial.println("Data Prints Correctly");
  Serial.print(flat, 4);
  Serial.print(", ");
  Serial.print(flon, 4);
  Serial.print(", ");
  Serial.print(date);
  Serial.print(", ");
  Serial.println(time);
  //End Serial print  

  digitalWrite(led, HIGH);                           //LED on before opening file 
  // Open Tracking.csv from SD Card
  myFile = SD.open("tracking.csv", FILE_WRITE);

  // if the file opened okay, write to it:
  if (myFile) {
    Serial.print("Writing to Tracking.csv...");
    myFile.print(flat, 4);                          
    myFile.print(", ");
    myFile.print(flon, 4);                      
    myFile.print(", ");
    myFile.print(altitude);                      
    myFile.print(", ");
    myFile.print(date);                      
    myFile.print(", ");
    myFile.print(time);                          
    myFile.print(", ");
    myFile.print(satellites);                      
    myFile.print(", ");   
    myFile.print(course);                          
    myFile.print(", ");
    myFile.print(speedmps);                         
    myFile.print(", ");
    myFile.print(bmp.readTemperature());
    myFile.print(", ");
    myFile.print(bmp.readPressure());
    myFile.print(", ");
    myFile.print(bmp.readAltitude());
    myFile.print(", ");
    myFile.print(temperatureC);
    myFile.print(", ");
    myFile.print(temperatureF);
    myFile.print(", ");
    myFile.print(sensorRH);
    myFile.print(", ");
    myFile.println(trueRH);

    delay(200);

    // close the file:
    myFile.close();
    digitalWrite(led, LOW);                            
    Serial.println("done."); 
  } 
  else {                                            // if the file didn't open, print an error:

    Serial.println("error opening tracking.csv");
  }
}
// Feed data as it becomes available 
bool feedgps() {
  while (nss.available()) {
    if (gps.encode(nss.read()))
      return true;

  }
  return true;
}