Desde hace algunas semanas vengo notando una exasperante lentitud a la hora de hacer uso del IDE de Arduino en Windows 7. El tiempo de carga inicial es exagerado, pero aún lo es más el uso del menú de Herramientas (Tools). Y todo ello especialmente si lo comparamos con la respuesta del IDE en Debian, en una máquina mucho más limitada.
Por suerte, tirando del hilo he podido encontrar este artículo: Slow Arduino IDE, en el que explican que la causa del problema reside en una librerñia para comunicarse con los puertos de comunicación (rxtx), que al ser el IDE es un proyecto de plataforma cruzada, da algunos problemas en Windows, tanto Vista, como 7 en adelante.
¿La solución? Reemplazar la dichosa librería por una optimizada para Windows. Y aunque el artículo es antiguo, el mismo autor ha realizado una actualización este verano, indicando que la solución sigue siendo válida.
Las posibilidades de diversión que generan los sistemas empotrados basados en Windows no tiene límites: atención al error que mostraban todos los monitores de tiempos de un tren de cercanías de Madrid, que tomé hace algunas noches:
El sistema reclamaba un archivo para continuar con la instalación de algún componente. No sé de qué alegrarme más, de que no hubiera lector de DVD ni puerto USB, o de que las pantallas no fueran táctiles.
Algunas veces nos encontramos con la necesidad de matar un proceso en Windows para cerrar el puerto que ese proceso ha dejado abierto. Las razones para eso pueden ser varias: desde una aplicación que se ha quedado colgada, dejando el puerto bloqueado, hasta la irrupción de virus en nuestro sistema. Aquí va una mini-receta para solucionar este problema.
En primer lugar, se ha de lanzar desde una consola el comando “netstat -aon”. Este comando nos permitirá ver qué puertos tiene abiertos nuestra máquina, y el PID del proceso del que dependen. Una captura de pantalla del comando:
Una vez hayamos identificado el puerto, así como su PID correspondiente, será tan sencillo como ejecutar el siguiente comando:
taskkill /F /PID nro_pid
…siendo nro_pid, el PID identificado con anterioridad.