[SOLUCIONADO] Transferir un archivo a la SD

Mira por donde, esta tarde al final he encontrado una solución indirecta en una página de Internet. Aunque en principio solo está pensada para archivos de texto y con un delimitador de EOF (final de archivo). El código es el siguiente:

#include <SPI.h>
#include <SD.h>
char EOF_MARKER = '

Luego hay que abrir un terminal serie (he usado el Teraterm, seleccionar el COM del Arduino, configurar el envio y recepción, como CR+LF y con la opción Send File, enviar el archivo. De momento, como digo el archivo tiene que ser de texto, poniéndole un $ al final del mismo.
Ahora tengo que ir haciendo pruebas con un archivo de texto normal (sin modificar) y luego con un archivo binario.
Si alguien sabe alguna forma más elegante de hacerlo, sería más cómodo. Yo, de momento sigo haciendo pruebas y os informo de los avances.; //Marca de EOF en archivo
File miArchivo;
char ch;
boolean okEOF = false;

void setup() {
  Serial.begin(9600);
  SD.begin(8);
  Serial.print("\nInicializando SD...");

if ( miArchivo = SD.open("ejemplo4.txt", O_CREAT | O_TRUNC | O_WRITE))
  {
    Serial.print("OK");
  }
  else {
    Serial.print("MIAU");
  }
}

void creaStr() {
  okEOF = false;
  while (1) {
    if (Serial.available()) {
      ch = (char)Serial.read();
      Serial.print (ch);
      if (ch == '


Luego hay que abrir un terminal serie (he usado el Teraterm, seleccionar el COM del Arduino, configurar el envio y recepción, como CR+LF y con la opción Send File, enviar el archivo. De momento, como digo el archivo tiene que ser de texto, poniéndole un $ al final del mismo.
Ahora tengo que ir haciendo pruebas con un archivo de texto normal (sin modificar) y luego con un archivo binario.
Si alguien sabe alguna forma más elegante de hacerlo, sería más cómodo. Yo, de momento sigo haciendo pruebas y os informo de los avances.) {
        Serial.flush();
        if (miArchivo) miArchivo.close();
        okEOF = true;
        break;
      }
      if (miArchivo) {
        Serial.print (ch);
        miArchivo.print((char)ch);
      }
    }
  }

  if (okEOF) {
    Serial.println("Encontrado EOF y escrito en tarjeta SD ");
  }
  else {
    Serial.println("No se puede encontrar EOF !!");
  }
  Serial.flush();
}


void loop() {
  if (Serial.available()) {
    creaStr();
  }
}

Luego hay que abrir un terminal serie (he usado el Teraterm, seleccionar el COM del Arduino, configurar el envio y recepción, como CR+LF y con la opción Send File, enviar el archivo. De momento, como digo el archivo tiene que ser de texto, poniéndole un $ al final del mismo.
Ahora tengo que ir haciendo pruebas con un archivo de texto normal (sin modificar) y luego con un archivo binario.
Si alguien sabe alguna forma más elegante de hacerlo, sería más cómodo. Yo, de momento sigo haciendo pruebas y os informo de los avances.