problema con salto de linea "inesperado " al escribir en microsd

hola.

quisiera saber si alguien sabe porque puede producir un salto de linea al escribir en una microsd. bueno colocare el codigo y captura de pantalla del archivo.txt de la microsd.

solo decir que intentado posicionar el cursor con peek() y con position() pero no me resulto igual salta a la siguiente linea. ¿ puede ser fallo de libreria o algo asi?.

hardware usado

arduino mega + shield ethernet w5100 + shield sim 900 ( geetech).

void ProcessSms( String sms ){
  Serial.print( "ProcessSms for [" );
  Serial.print( sms );
  Serial.println( "]" );
  File myFile = SD.open("leeme.txt", FILE_WRITE);
  if (myFile) {
    myFile.print(sms);
    myFile.close();
  } else {
    Serial.println("error opening leeme.txt");
  }
   return;
}

void ProcessFin( String sms ){
  Serial.print( "ProcessFin for [" );
  Serial.print( sms );
  Serial.println( "]" );
  if (sms.length() < 3){ 
  File myFile = SD.open("leeme.txt", FILE_WRITE);
  if (myFile) {
    myFile.println(sms);
    myFile.close();
    // una vez llenado en la memoria
    
  } else {
    Serial.println("error opening leeme.txt");
  }
   return;
}
else {
  File myFile = SD.open("leeme.txt", FILE_WRITE);
  if (myFile) {
    myFile.println("00");
    myFile.close();
  }
 }
}

no puse todo el codigo por no aburrir pero recibe desde el sim 900 un string y con print lo va ingresando en la microsd

son 3 print seguidos y luego en la misma linea un println para finalizar y saltar a la proxima linea PERO salta antes del println.

porfavor algo de ayuda ya no se me ocurre nada mas. gracias

Asegúrate que el salto de linea no viene con el string y por eso se guarda, prueba por ejemplo con

println(sms.indexOf('\n'));
println(sms.indexOf('\r'));

Usa un visor hexadecimal para analizar tu archivo en busca de caracteres extraños: http://www.onlinehexeditor.com/

Prueba a reducir la velocidad de la comunicación con la SD iniciándola con

SD.begin(cspin, SPI_HALF_SPEED);

o incluso

SPI_QUARTER_SPEED