Imposible conectar con placa Lora32u4

Puede ocurrir que después de cargar un programa en una placa basada en el bootloader de Arduino, no sea posible volver a conectar para transferir un programa. Por ejemplo, esto puede ocurrir si se hace uso de alguna función que active el modo sleep, provocando la deshabilitación del interfaz USB.

Para intentar recuperarla la conexión con una placa Lora32u4 a la que se había transferido un programa que hacía uso de la función sleep, se siguieron los pasos indicados a continuación, consiguiendo que la placa permitiese transferir un nuevo programa desde Arduino IDE.

  1. Presionar el boton reset dos veces rápidamente. El led blanco desteallará cíclicamente. Esto indica que la placa está en modo upload. Al cabo de 14 segundos, la placa saldrá del modo upload si no recibe un nuevo programa desde el puerto USB y comenzará a cargar el programa almacenado en la flash (nuestro sketch), por lo que se debe de presionar nuevamente el botón de reset cada 10 segundos.
  2. Seleccionar el puerto serie, COM X, al que está conectada la placa. Al estar en modo upload Arduino IDE sólo mostrará el puerto COM físico, sin hacer referencia al nombre de la placa.
  3. Presionar Ctrl+U para compilar y transferir el programa
  4. Repetir el paso 0 periódicamente (10s) para mantener la placa en modo transferencia
  5. Cuando Arduino IDE este intentando conectar con la placa, asegurarse que esta esta en modo upload. (repetir paso 0)
  6. Completada la transferencia, ya se tendría que poder ver correctamente el puerto COM al que esta conectada, indicando además el nombre de la placa (COM X (Adafruit Feather 32u4).

También podría ocurrir que la conexión con la placa resulte complicada, desde el Arduino IDE, después de un reset o cuando se iniciar la placa, debido a que el bootloader (led blanco destelleando) hace uso del puerto usb. Finalizada la ejecución del bootloader, comienza la ejecución del programa (nuestro sketch) almacenado en la memoria flash (el led blanco se apaga), lo que provoca un reset del puerto USB. Esto puede originar que el PC al que está conectado la placa, no inicie correctamente el puerto USB al que esta conectado la placa COMX (Adafruit Feather 32u4).

Para evitar esto, se puede añadir un pequeño delay en la función setup, antes de realizar la configuración del interfaz serie de la placa:

void setup() {
  delay(2500);   // Dealy para que el puerto USB pueda sere reconocido por el SO del PC al que está conectada la placa.
  
  Serial.begin(115200);
...

Deja un comentario