 }
 
 
-void WriteDataToLogger(float Temperature, float Pressure, float Altitude, float Latitude, float Longitude) {
+void WriteDataToLogger(int TimeStamp, float Temperature, float Pressure, float Altitude, float Latitude, float Longitude) {
   if(!DataLogger.isListening()) { DataLogger.listen(); }
 
+  DataLogger.print(TimeStamp);
+  DataLogger.print(",");
   DataLogger.print(Temperature, 2);
   DataLogger.print(",");
   DataLogger.print(Pressure, 0);




void PrintToSerialOutput(float Temperature, float Pressure, float Altitude, float Latitude, float Longitude) {

  // We print each component of the data line using separate calls instead of using something like sprintf to
  // format a single string.  This is done because the version of sprintf available to us for the Arduino does
  // not support floats.  This was the simplest Plan B we could come up with.
  
  Serial.print(Temperature, 2);
  Serial.print(",");
  Serial.print(Pressure, 0);


// *********************************************************************
// GPS Receiver subroutines
void ExtractGPSComponent(char* buffer, int index)
{
  int sentencePos = 0;
  int fieldPos = 0;
  int commaCount = 0;
  while (sentencePos < sentenceSize)
  {
    if (GPSRawData[sentencePos] == ',')
    {
      commaCount ++;
      sentencePos ++;
    }
    if (commaCount == index)
    {
      buffer[fieldPos] = GPSRawData[sentencePos];
      fieldPos ++;
    }
    sentencePos ++;
