[SOLUCIONADO] Transferir un archivo a la SD

jlsogorb:
Pues no estaría nada mal que lo hicieras porque buena falta hace :wink:

Mis conocimientos de programación están limitados al C++ de Arduino y Java; así que si lo desarrollo, sería en ese último lenguaje.
Java es portable a través de todos los sistemas operativos, pero no es lo más eficiente. Considerando la velocidad de transferencia real, la ineficiencia de una JVM dudo mucho que sea un problema.

Incluso sería mejor si fuera un controlador para el sistema operativo, que explorar archivos del Arduino sea como con pendrive.

jlsogorb:
Durante el fín de semana haré distintas pruebas e intentaré provocar que se cuelgue o ver sus limitaciones y si funciona correctamente lo daré por solucionado.

Provocar cuelgues... solo que hagas algo verdaderamente estúpido (perdona la palabra) en el código, o desconectes el USB durante una transferencia.

Te lo dejo así:

  • Prácticamente no hay uso de la asignación dinámica de memoria por el lado del Arduino; por lo tanto, un cuelgue es imposible que ocurra por software.
  • TeraTerm debería ser lo suficientemente robusto para manejar errores como la desconexión repentina del puerto serial; caso contrario sería una limitación.
  • Si los baudios son demasiado altos, se satura el buffer RX del Arduino; lo que lleva a recibir un archivo incompleto.
  • millis() se desborda cada 49 días; el momento justo que eso ocurra, el timeout se te va a disparar prematuramente.
  • Desconozco el comportamiento de la librería SD cuando la tarjeta se llena, me imagino que en un desastre.
  • Desconozco el comportamiento de la librería SD cuando el archivo alcance los 4 GB; si tienes un par de días de tiempo para una trasferencia así de descomunal, eres bienvenido para intentarlo.