La primera es que las cadenas ocupan mucha memoria y escribir etiquetas XML usa muchas cadenas. Debe insertarlos en la memoria del programa y nadie sabe qué tamaño de fragmento puede tomar.
En lo que respecta al formato txt Definitivamente tiene sentido escribir datos en fragmentos de 512 bytes, y usar interrupciones para registrar los datos en 1 búfer mientras se escribe un segundo búfer en SD es un buen enfoque. Poner a un lado dos buffers de 512 bytes usa la mitad de los 2kB de RAM de UNO. Por lo tanto, es factible, pero dejar algo de espacio para la pila significa que solo le quedan entre 500 y 700 bytes de RAM para jugar. Eso podría ser suficiente, dependiendo de su aplicación.
También sugeriría Arduino VB Lab
Arduino VB Lab está codificado en VB.NET y permite a los usuarios crear interfaces de control personalizadas para controlar el Arduino desde la PC. Los usuarios pueden agregar indicadores, botones, imágenes, etc., a una página vacía y usar los botones para controlar algo, o usar la información que se muestra. Puede registrar todos los datos del sensor en una base de datos de SQL Server y seleccionar un rango de fechas en los gráficos para ver diferentes períodos de tiempo de datos.