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:
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
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.