Arduino: avrdude: ser_open(): can’t open device “\\.\COM3”: Access is denied.

Como comentaba en alguno de los posts anteriorres, dedicados a esta increíble plaquita, uno de los peores errores con los que me he encontrado ha sido este:

avrdude: ser_open(): can’t open device “\\.\COM3”: Access is denied.

Bien, el síntoma era cuanto menos, estrobótico:

  • Antes de vacaciones programaba activamente en Arduino, casi a diario, para llevar a cabo algunos temas con mi proyecto NesPi
  • A la vuelta de las vacaciones, no funcionaba la placa, no podía programarla, y obtenía el mensaje de error que da nombre a esta entrada

No tenía ningún sentido, la verdad… Pero os explicaré un par de cosas que os harán ver el problema desde otro punto de vista, totalmente distinto.

  • Te obsesionas, no ves salida, no entiendes nada, no ha cambiado nada en tu pc!!!
  • De repente la placa no se conecta con el IDE de programación, y obtienes el error cada vez que intentas programarla
  • Detectas dos cosas, que a priori no les das importancia:
    • falla de manera intermitente, de modo que si intentas programar de manera continuada, a veces, lo logras…
    • ves que hay luces que parpadean en tu placa, luces que tú no has programado
    • esas luces son los led de TX, y de vez en cuando, RX
    • finalmente, detectas que la placa se reinicia continamente, cada X segundos

Así no se puede…

Vamos directamente a mis observaciones, sin mas preámbulos, porque lo que realmente quiero es haceros ver lo inusual de este problema, y que podáis detectarlo, si es que es lo mismo que os afecta a vosotros:

  • yo no estoy enviando nada a la placa por USB, por lo tanto ese parpadeo de TX no es mío!
  • yo no estoy enviando un reset a la placa, por lo tanto ese reset no es mío!
  • no puedo acceder al COM3 (o el que vosotros tengáis configurado), porque alguien lo tiene ocupado… (de ahí el “can’t open device…”, alguien ya está accediendo!!!)

Y ahora mis deducciones, prestad mucha atención a los palabros que os he puesto en negrita y cursiva en los puntos anteriores:

Alguien me está robando el canal de comunicación COM con mi Arduino, y es por el puerto USB, debido a los drivers FTDI, que también me han dado problemas

La deducción no ha sido sencilla, no os créais… No fue fácil detectar el mal comportamiento de la placa y enlazar todos los efectos… Por eso os los comento, para que seáis capaces de detectarlos rápidamente…

Y aquí está el culpable:

Culpable del COM3 access denied

Culpable del COM3 access denied

Es el driver de mi querido sai Salicru SPS One 900VA… El maravilloso software de ViewPower, que mas que un soft es un virus (os recomiendo no usarlo, y pasaros al NUTo alguno por el estilo…). Y que conste que no es problema del SAI, sino del software, que si no lo tienes conectado al USB escanea continuamente todos los COM en busca del dispositivo que debe controlar, con lo que está haciendo encuestas a todos los puertos abiertos (entre ellos nuestro COM3 del Arduino) para ver quién responde. De ahí que cada cierto tiempo se encendiera el TX del Arduino y no pudiéramos acceder al mismo, ya que el canal siempre estaba ocupado…

Por lo tanto, y para finalizar, si os ocurre esto, os recomiendo que sigáis estos pasos:

  • abrid el gestor de procesos del sistema, ya sea Windows o Linux (mirad en este caso los procesos activos en el sistema, o drivers usb…)
  • buscad candidatos a estar consumiendo conexiones al puerto usb
  • y si no lo véis claro, id parando uno por uno los servicios que véais “extraños”, como yo hice, hasta que el TX deje de parpadear…

Ahora ya funciona mi Arduino Nano, y ya puedo continuar con mis proyectos, tranquilamente…

Podéis seguir el post que abrí en el foro de Arduino, por este mismo problema: http://forum.arduino.cc/index.php?topic=270040

Espero haberos ayudado…

Suerte!!!

 

Jordi

Share

7 comentarios

  1. Este post ha sido de inmensa ayuda, llevaba mas de una hora tratando de solucionar el problema, dejare algunas consideraciones de mi caso por si le pasa a alguien mas:

    *El problema surgió desde que instale Windows 10
    *Me di cuenta de quien estaba usando mi puerto COM3 en el administrador de dispositivos “Intel(R) Active Management Technology -SOL”
    *Ambos dispositivos decian (COM3)
    *Los deshabilité y ahora mi arduino funciona

  2. Pues yo no he podido (WINDOWS 10 COM 4), al principio podia subir los sketchs a la placa sin problemas pero de un dia a otro ya no quiso, ya deshabilite varios arboles de procesos, todos los que pude y que me permitio el administrador de tareas, pero raramente me sube un sketch a la tabla y cuando lo trato de subir de nuevo en ese mismo instante me vuelve a salir el error, ya prove todo lo que se me ocurrio pero aun nada.
    Se agradece la ayuda.

    • Hola Alexandro. Desgraciadamente, los drivers de dispositivos “no originales” no van a funcionar en Windows 10. Ya lo han avisado y así lo etsan haciendo. Así que si no dispones de un Arduino original, con los drivers originales, no vamos a poder trabajar… Yo no puedo hacer nada en mi Windows10, porque todos mis Arduinos, excepto uno, son clónicos (ojo! que no es delito!), y los drivers de terceros no estan homologados en Widnows 10. Por lo tanto, no funcionan…

      Mi recomendación, ponerte una máquina virtual con Windows XP…

      • Que tal Jordi, mi problema se soluciono cuando baje la versión beta de Arduino que esta en la pagina web, apartir de ahí pude trabajar sin problemas subiendo a la placa mis programas con Windows 10.

    • Hola Mario, desdgraciadamente no hay ningún método eficiente. Deberás ir conectando y desconectado elementos y ver en la lista de servicios y puertos qué espacio ocupan. También podrás verlo en el listado de dispositivos… Deberás comprobar que no hay conflicto de direcciones…

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *