El gestor de arranque del Arduino no ejecuta inmediatamente el código de su aplicación. Más bien, mira el puerto serie para la secuencia de semáforo enviada por Avrdude. que a su vez se inicia por el proceso de carga IDE de Arduino después de la compilación. Donde Avrdude abriendo el puerto serial causará un reinicio del Arduino, como para atrapar el cargador de arranque al enviar el semáforo. Este proceso anterior debería funcionar. Independientemente de su código de aplicación.
Inmediatamente después de encender o reiniciar el leo, debería ver en su administrador de dispositivos un puerto COMM durante unos 5 segundos y luego desaparecer, reemplazándolo con su interfaz de juego. Esto hará lo mismo para el IDE cuando se cargue.
Si esto no ocurre, es posible que hayas borrado el cargador de arranque y la aplicación se esté ejecutando directamente. Tenga en cuenta que cuando el ISP programe la aplicación, el cargador de arranque quedará en blanco.
Es posible que la máquina de su IDE, su avrdude y el tiempo de Leo estén apagados y falten. Podría intentar restablecer manualmente el leo justo después de compilar y cuando se inicie avrdude. En las preferencias de IDE, puede activar el verboso para compilar y cargar para ver mejor cuándo reiniciar el leo.
Este fue el camino de los viejos Arduino de Bluetooth que no tenían el DTR del puerto Serial vinculado al reinicio del ATmega. Donde con el Leo, un reinicio remoto se desencadena por la apertura y cierre del puerto serie a 1200 baudios. Donde aquí puede ser posible que con una aplicación de controlador de juegos el puerto serie virtual CDC USB no se pueda abrir a 1200 baudios. Por lo tanto, como se indicó anteriormente, es posible que solo tenga que programar el reinicio.