Arduino UNO (clon chino con CH340G) deja de ser reconocido en Windows 10

Hola a todos.

Tengo un problema que me está haciendo volverme loco. Os pongo en antecedentes.

Me estoy construyendo una minigrabadora laser DIY basada en este proyecto:
https://www.instructables.com/DIY-Mini-CNC-Laser-Engraver/

Para ello he comprado un juego de placas Arduino UNO R3, CNC Shield y drivers A4988. El Arduino UNO es un clon chino con chip CH340G. He instalado el software LaserGBRL y me ha funcionado a la primera, ya que para otros proyectos que estoy desarrollando ya tenía instalado el driver CH341SER, para un programador de ESP8266

El laptop es un HP con procesador Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz 2.50 GHy 4 GB de RAM con Windows 10 PRO 22H2 64 bits x64

El caso es que ha estado funcionado correctamente, movía los motores y encendía el laser perfectamente, hasta que un día, durante las pruebas, no sé porqué el laptop se reinició espontáneamente, y al rearrancar recibí este mensaje:
image

En el programa del láser (LaserGBRL), ya no aparece el puerto COM8 para conectarme a él.
En el Administrador de dispositivos, tampoco aparece el puerto USB -SERIAL CH340 (COM8), en la sección de Puertos (COM y LPT). En la sección de Controladoras de bus serie universal aparece
image
Desenchufé la CNC Shield con el mismo resultado y todas las pruebas las he vuelto a realizar solo con el Auruino UNO

En el Arduino se encienden las luces ON, RX, TX y L
Cuando lo desconecto y conecto al laptop Windows emite un sonido y vuelve a aparecer el mensaje
Desde ese momento nohe podido volver a conectarlo. He intentado actualizar los drivers, a los originales del fabricante WCH DriverVer = 02/11/2023, 3.8.2023.02, a los anteriores DriverVer = 01/30/2019, 3.5.2019.1

Según el chat de Bing, buscando: como se resetea el chip CH340G de un Arduino UNO

Para resetear el chip CH340G de un Arduino UNO, puedes seguir los siguientes pasos:
1. Desconecta el Arduino UNO de la fuente de alimentación y del puerto USB.
2. Presiona el botón de reset en la placa del Arduino UNO y mantenlo presionado.
3. Conecta el Arduino UNO al puerto USB mientras mantienes presionado el botón de reset.
4. Espera unos segundos y luego suelta el botón de reset.

Tampoco ha funcionado. He borrado el dispositivo del administrador de dispositivos y al conectarlo de nuevo vuelve a la misma situación, sale el mismo error

He probado con otro cable y con otro PC, con el mismo resultado.

Recabando más datos, por si pudiera ser de utilidad. En el Administrador de dispositivos, seleccionando propiedades del dispositivo que indica el error, si seleccionamos la pestaña eventos indica tres eventos en el momento de conectar el Arduino:
- Dispositivo no migrado
Detalles:
No se migró el dispositivo USB\VID_0000&PID_0002\6&855bfbe&0&3 debido a una coincidencia parcial o ambigua.
Id. de última instancia del dispositivo: USB\VID_0718&PID_0704\0707261933D7B008
GUID de clase: {36fc9e60-c465-11cf-8056-444553540000}
Ruta de acceso de la ubicación:
Rango de migración: 0xF000FFFFFFFFF132
Presente: false
Estado: 0xC0000719

- Dispositivo configurado (usb.inf)
Se configuró el dispositivo USB\VID_0000&PID_0002\6&855bfbe&0&3.
Nombre del controlador: usb.inf
GUID de clase: {36fc9e60-c465-11cf-8056-444553540000}
Fecha del controlador: 06/21/2006
Versión del controlador: 10.0.19041.3570
Proveedor del controlador: Microsoft
Sección del controlador: BADDEVICE.Dev.NT
Clasificación del controlador: 0xFF0000
Id. de dispositivo correspondiente: USB\DEVICE_DESCRIPTOR_FAILURE
Controladores superiores: usb.inf:USB\DEVICE_DESCRIPTOR_FAILURE:00FF2000
Dispositivo actualizado: false
Dispositivo principal: USB\ROOT_HUB30\5&36f57827&0&0

- Dispositivo  no iniciado
El dispositivo USB\VID_0000&PID_0002\6&855bfbe&0&3 tuvo un problema al iniciarse.
Nombre del controlador: usb.inf
GUID de clase: {36fc9e60-c465-11cf-8056-444553540000}
Servicio: 
Filtros inferiores: 
Filtros superiores: 
Problema: 0x2B
Estado del problema: 0x0

He encontrado un fichero log en C:\Windows\INF llamado setupapi.dev.log que contiene entradas que se corresponden con los 3 eventos anteriores:

>>>  [Device Install (DiShowUpdateDevice) - USB\VID_0000&PID_0002\6&855BFBE&0&3]
>>>  Section start 2023/10/27 02:41:50.700
      cmd: mmc
     dvi: {DIF_UPDATEDRIVER_UI} 02:41:50.702
     dvi:      Default installer: Enter 02:41:50.703
     dvi:      Default installer: Exit
     dvi: {DIF_UPDATEDRIVER_UI - exit(0xe000020e)} 02:41:50.704
     ndv: {Update Driver Software Wizard - USB\VID_0000&PID_0002\6&855BFBE&0&3}
!    ndv:      Searching Windows Update has been disabled for the Update Wizard.
!    ndv:      Policy has been set to prevent searching Windows Update for drivers.
     ndv:      Search options: 0x00000011
     ndv:      Searching currently installed INF
     dvi:      {Build Driver List} 02:41:56.978
     dvi:           Searching for hardware ID(s):
     dvi:                usb\device_descriptor_failure
     dvi:           Searching for compatible ID(s):
     dvi:                usb\device_descriptor_failure
     dvi:           Created Driver Node:
     dvi:                HardwareID   - USB\DEVICE_DESCRIPTOR_FAILURE
     dvi:                InfName      - C:\WINDOWS\System32\DriverStore\FileRepository\usb.inf_amd64_957325410e55ffd3\usb.inf
     dvi:                DevDesc      - Dispositivo USB desconocido (Error de solicitud de descriptor de dispositivo)
     dvi:                Section      - BADDEVICE.Dev.NT
     dvi:                Rank         - 0x00ff0000
     dvi:                Signer Score - INBOX
     dvi:                DrvDate      - 06/21/2006
     dvi:                Version      - 10.0.19041.3570
     dvi:      {Build Driver List - exit(0x00000000)} 02:41:56.992
     ndv:      Recursively searching directory 'C:\Users\Paco\Documents\Domotica\CH341SER\CH341SER (1)'
     dvi:      {Build Driver List} 02:41:57.005
     dvi:           Searching for hardware ID(s):
     dvi:                usb\device_descriptor_failure
     dvi:           Searching for compatible ID(s):
     dvi:                usb\device_descriptor_failure
     dvi:      {Build Driver List - exit(0x00000000)} 02:41:57.014
     dvi:      {DIF_SELECTBESTCOMPATDRV} 02:41:57.014
     dvi:           Default installer: Enter 02:41:57.015
     dvi:                {Select Best Driver}
     dvi:                     Class GUID of device changed to: {36fc9e60-c465-11cf-8056-444553540000}.
     dvi:                     Selected Driver:
     dvi:                          Description - Dispositivo USB desconocido (Error de solicitud de descriptor de dispositivo)
     dvi:                          InfFile     - c:\windows\system32\driverstore\filerepository\usb.inf_amd64_957325410e55ffd3\usb.inf
     dvi:                          Section     - BADDEVICE.Dev
     dvi:                {Select Best Driver - exit(0x00000000)}
     dvi:           Default installer: Exit
     dvi:      {DIF_SELECTBESTCOMPATDRV - exit(0x00000000)} 02:41:57.019
     ndv: {Update Driver Software Wizard exit(00000000)}
<<<  Section end 2023/10/27 02:42:04.714
<<<  [Exit status: SUCCESS]

Este mismo log tiene muchas entradas repetidas con esta otra secuencia, que debe ser cada intento de conexión del arduino:

>>>  [Device Install (UpdateDriverForPlugAndPlayDevices) - CH341PORT\SER5523]
>>>  Section start 2023/10/28 02:05:38.553
      cmd: C:\Users\Paco\Documents\Domotica\CH341SER\DRVSETUP64\DRVSETUP64.EXE
     ndv: INF path: C:\Users\Paco\Documents\Domotica\CH341SER\CH341SER.INF
     ndv: Install flags: 0x00000001
!    ndv: Unable to find any matching devices.
<<<  Section end 2023/10/28 02:05:38.568
<<<  [Exit status: FAILURE(0xe000020b)]

Solo se me ocurre probar con otra tarjeta. Ya he pedido otro Arduino UNO, pero con el procesador Atmega16U2 para el puerto USB, estoy esperando a que me llegue para probarlo. Este tiene la ventaja de que se puede resetear el chip USB

Me ha salido un poco ladrillo, pero creo que está bien explicado, y si alguien tiene alguna pista, lo agradecería mucho.

  • Abre Administrador de Dispositivos
  • En menú Ver marca Mostrar dispositivos ocultos
  • Busca el COM8 y dale doble click (abre ventana Propiedades)
  • En la pestaña Controlador haz click en Desinstalar dispositivo
    Edito
  • Reinicia la PC

Conecta la placa y fíjate si se soluciona, luego coméntanos los resultados.

Agrego:
Me pasó algo similar hace un par de meses luego de una actualización, de 3 Nano con CH340, 1 dejó de funcionar (justamente de distinto fabricante que los otros).
En mi caso directamente se apagaba el puerto, quedaba sin alimentación (en principio pensé que tenía un cortocircuito).
La solución, en este caso particular, fue usar un hub USB.

En primer lugar, muchas gracias por tu rápida respuesta.

He seguido tus instrucciones, aunque no me aparece el puerto COM8, creo que el que era COM8 se ha convertido en el que da el error "Dispositivo USB desconocido". He hecho lo que me dices con esa entrada (de hecho había 2 y lo he hecho con las 2)

El resultado es el mismo, sigue dando el mismo error.

Ahora no tengo aquí un hub USB, pero lo probaré en cuanto pueda.
Por si es útil, esto es lo que aparece en el fichero setupapi.dev.log

>>>  [Device Install (DiShowUpdateDevice) - USB\VID_0000&PID_0002\6&855BFBE&0&4]
>>>  Section start 2023/10/28 20:34:33.702
      cmd: mmc
     dvi: {DIF_UPDATEDRIVER_UI} 20:34:33.718
     dvi:      Default installer: Enter 20:34:33.718
     dvi:      Default installer: Exit
     dvi: {DIF_UPDATEDRIVER_UI - exit(0xe000020e)} 20:34:33.718
     ndv: {Update Driver Software Wizard - USB\VID_0000&PID_0002\6&855BFBE&0&4}
!    ndv:      Searching Windows Update has been disabled for the Update Wizard.
!    ndv:      Policy has been set to prevent searching Windows Update for drivers.
     ndv:      Search options: 0x00000011
     ndv:      Searching currently installed INF
     dvi:      {Build Driver List} 20:34:49.237
     dvi:           Searching for hardware ID(s):
     dvi:                usb\device_descriptor_failure
     dvi:           Searching for compatible ID(s):
     dvi:                usb\device_descriptor_failure
     dvi:           Created Driver Node:
     dvi:                HardwareID   - USB\DEVICE_DESCRIPTOR_FAILURE
     dvi:                InfName      - C:\WINDOWS\System32\DriverStore\FileRepository\usb.inf_amd64_957325410e55ffd3\usb.inf
     dvi:                DevDesc      - Dispositivo USB desconocido (Error de solicitud de descriptor de dispositivo)
     dvi:                Section      - BADDEVICE.Dev.NT
     dvi:                Rank         - 0x00ff0000
     dvi:                Signer Score - INBOX
     dvi:                DrvDate      - 06/21/2006
     dvi:                Version      - 10.0.19041.3570
     dvi:      {Build Driver List - exit(0x00000000)} 20:34:49.268
     ndv:      Recursively searching directory 'C:\USERS\PACO\DOCUMENTS\DOMOTICA\CH341SER'
     dvi:      {Build Driver List} 20:34:49.268
     dvi:           Searching for hardware ID(s):
     dvi:                usb\device_descriptor_failure
     dvi:           Searching for compatible ID(s):
     dvi:                usb\device_descriptor_failure
     dvi:      {Build Driver List - exit(0x00000000)} 20:34:49.299
     dvi:      {DIF_SELECTBESTCOMPATDRV} 20:34:49.299
     dvi:           Default installer: Enter 20:34:49.299
     dvi:                {Select Best Driver}
     dvi:                     Class GUID of device changed to: {36fc9e60-c465-11cf-8056-444553540000}.
     dvi:                     Selected Driver:
     dvi:                          Description - Dispositivo USB desconocido (Error de solicitud de descriptor de dispositivo)
     dvi:                          InfFile     - c:\windows\system32\driverstore\filerepository\usb.inf_amd64_957325410e55ffd3\usb.inf
     dvi:                          Section     - BADDEVICE.Dev
     dvi:                {Select Best Driver - exit(0x00000000)}
     dvi:           Default installer: Exit
     dvi:      {DIF_SELECTBESTCOMPATDRV - exit(0x00000000)} 20:34:49.299
     ndv: {Update Driver Software Wizard exit(00000000)}
<<<  Section end 2023/10/28 20:34:54.128
<<<  [Exit status: SUCCESS]

Si sale "dispositivo desconocido" prueba reinstalando el driver.

No soy un experto en windows pero puede que lo que te está pasando es que el arduino entra en bucle reseteándose y se resetea una y otra vez hasta que windows dice que no lo reconoce.
Quizá puedas probar con otro uno usándolo como ISP por si lo arreglas.
https://www.instructables.com/How-to-Restore-the-Arduino-UNO-R3-ATmega16U2-Firmw/

Ya lo he reinstalado varias veces, en distintas versiones. En el dispositivo que marca como desconocido dice que ya tiene el último driver instalado, creo que usa el USB.INF

Gracias por responder.

Ese enlace que me indicas ya lo he estudiado, y no me vale, ya que es para resetear el chip ATmega12u, y mi Arduino lleva el chip CH340G.

He hecho otra prueba que puede darme alguna pista nueva.

He soldado unos pines en la conexiones que lleva la tarjeta marcadas como RX,TX,5V y GND
En esos pines he conectado un interface USB-TTL (CP210) que tengo para otros proyectos, para ver si podía comunicar con el Arduino UNO.
Cuando lo conecto se encienden las luces del Arduino, el software del grabador (laserGBRL) reconoce el puerto que me ha creado al conectarlo (COM6), pero al intentar comunicar no lo reconoce. El Arduino debe tener cargado el firmware GRBL, que cargué cuando lo puse en marcha, pero no logra comunicarse con él.

He hecho otra prueba, para ver si lograba comunicar con el Arduino. Con el Arduino conectado de esta manera, he entrado en Arduino Cloud y me ha reconocido el Arduino en el puerto COM6. Una vez en este estado, ya no sé que puedo hacer para resetearlo,

¿Alguna pista de por donde puedo continuar?

Daría la impresión de que la falla está en el 340 del uno.

No creo que te haya reconocido el arduino mas bien te ha reconocido el cp210.
Puedes hacerle el loopback test? para desechar que el chg340 esté malo o no.
Haz esto:

  1. Desconecta todo del arduino (incluida alimentación, usb,.. todo).
  2. Pon un puente entre GND y RST para que siempre se quede en reset.
  3. Pon otro puente entre RX y TX (pines 0 y 1 creo).
  4. Conecta al USB el arduino
  5. ¿NO te reconoce el puerto COMx? entonces el chg está averiado.
  6. Si te reconoce puerto COMx entonces abre el monitor serie y escribe algo. te debe llegar lo mismo que escribes (al estar los pones 0 y 1 unidos). Da igual la velocidad que pongas el monitor serie

También sería de ayuda que pasaras algunas fotos de la placa.

Salud

Hola,
Siguiendo tus instrucciones, al enchufar el Arduino sigue sin reconocer el puerto.
No es posible hacer el test loopback, el puerto no lo reconoce.

Cuando conecté el Arduino por el dispositivo CP210, no solo me reconoció el puerto sino que el Arduino Cloud me dijo que era un Arduino UNO, sin que yo lo especificase. Por eso decía que si hay alguna forma de cargar algo en el Arduino que haga resetear el CH340.

Si no se puede, para este proyecto no me vale, pero el Arduino podría usarse en otro proyecto que no necesite de comunicaciones COMx, para la carga del programa puedo usar esta alternativa del CP210

Hola, muy buenas tardes.

  1. ¿Alguna novedad acerca de este tema? Desde hace unos 2 días (10-Oct-2023) las "entradas" USB del laptop CQ-40 W10 (ya sé, es muy viejo) no reconoce a ninguno de dos Arduinos, cosa que venía haciendo desde hace años.

  2. Las notificaciones descritas al principio de este hilo aparecen a cada rato, y en forma espontánea, esto es, sin que se intente volver a conectar al Arduino. Descargué el programa USBOblivion, para borrar los registros de errores en los puertos USB. Funciona bien , las notificaciones dejan de aparecer, pero si intento una nueva conexión de algún Arduino, vuelven a aparecer esas notificaciones.

  3. Otro detalle: en el Administrador de Dispositivos se encuentra la pestaña desplegable Ver. Una de sus opciones es Mostrar Dispositivos Ocultos, que te permite ver otros triangulitos amarillos, signo que los drivers no están haciendo su pega.

  4. Último comentario: también probé deshabilitando el requerimiento de W10 acerca de cargar solamente programas certificados. Así, en el caso que nuestros drivers CH340 no tuvieran certificaciones Microsoft, igual se podrían cargar... nada... buahhh.

Please, si alguien encuentra la solución, que grite... y entre todos lo aplaudiremos.

Saludos cordiales, Keko.

Moderador:
Pregunta @kekoehijo eres el mismo usuario @ pecheve?

Respondo yo. No, no somos el mismo usuario

He dado algún paso más, pero no estoy muy seguro de si he avanzado. Compré otra placa Arduino ONE, asegurándome de que no llevase chips CH340, sino que llevase el ATmega16U2 para el control de los puertos serie.

Cuando la he recibido el problema sigue apareciendo con esta tarjeta. Lo he probado en el mismo laptop donde estoy haciendo las pruebas, pero lo he probado en 3 PC más distintos y en todos se comporta igual. Lo he probado con 3 cables USB diferentes, empezando por el que viene con la placa y el resultado es el mismo. He preguntado al proveedor de la tarjeta, y me dice que puede ser un fallo hardware de la placa y me va a mandar una nueva. Cuando llegue os contaré

Moderador;

Entiendo que tienes un problema similar si es el caso te invito a que crees un nuevo hilo con tus comentarios.

Después de varios meses dándole vueltas al asunto y sin dar con la solución encontré un video muy ilustrativo (Arduino not showing Device Manager? It's NOT your drivers.) en el que explica que probablemente sea un problema que no tiene que ver con los drivers. Esto explicaría porqué me da el mismo problema con 2 tarjetas que usan chips serie diferentes (uno es el CH340 y otro el ATmega16U2) y que necesitarían drivers diferentes.

Para avanzar en esta línea he instalado un sniffer de puerto USB (USBPCAP) con la intención de analizar el tráfico USB con Wireshark para ver donde se produce el problema.

Bueno pues es imposible, instalo USBPCAP, lo lanzo y configuro para que capture el puerto donde voy a conectar el arduino, conecto el arduino, da el error de DEVICE DESCRIPTOR FAILURE, pero no se captura nada de tráfico.

Para verificarlo, he conectado un interfaz USB-puerto serie con un CH340 que tengo para otros proyectos, me lo ha reconocido, después el arduino y otra vez el CH340. Pues en la captura del tráfico aparece el tráfico del CH340 las dos veces, pero nada de nada con el arduino

Voy a intentar profundizar en el protocolo de conexión de USB a ver si así averiguo algo

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.