# Guía de Instalación del Driver CH340

---

## **Objetivo General**

Permitir la correcta detección y comunicación entre una computadora y tarjetas Arduino genéricas (Uno, Nano, Mega, etc.) que utilizan el chip CH340/CH340G/CH340C como interfaz USB. Esta guía incluye instrucciones específicas para sistemas operativos Windows, Linux y macOS.


---

## ¿Qué es el CH340?

El CH340 es un chip fabricado por WCH (Nanjing Qinheng Microelectronics) que convierte la comunicación USB en serie UART. Se encuentra en muchas placas Arduino genéricas como reemplazo de chips más costosos como el FTDI o el ATMEGA16U2.

Este chip requiere un **driver** para que el sistema operativo reconozca correctamente la placa.


---

## ¿Cómo saber si necesito instalarlo?


1. Revisa el chip junto al conector USB en tu placa:

* Si dice **CH340**, **CH340G** o **CH340C**, necesitas instalar el driver.
* Si la placa es oficial y usa **ATMEGA16U2**, no necesitas ningún driver adicional.


1. Si conectas la placa y el **IDE de Arduino no muestra un puerto COM disponible**, lo más probable es que falte el driver.


---

## 1. Instalación del Driver CH340 en Windows

### **Descarga**

Descarga el siguiente archivo:

[CH134SER.EXE](https://drive.google.com/file/d/1o1cD2Fn3MBkmXoI_7CLT25SQGyjC7hYU/view?usp=sharing)


---

### Instalación


1. Ejecutar el archivo `CH341SER.EXE` como administrador.
2. En la ventana que se abre, hacer clic en el botón **Install**.
3. Esperar a que aparezca el mensaje:
4. Conectar la placa Arduino por USB. El sistema debería instalar el driver automáticamente.


---

### Verificación


1. Abrir el **Administrador de dispositivos** (clic derecho en "Equipo" > Administrar > Administrador de dispositivos).
2. Buscar la sección **Puertos (COM y LPT)**.
3. Deberías ver algo como: `USB-SERIAL CH340 (COMx)`


---

## 2. Instalación del Driver CH340 en Linux

### Verificación previa

En la mayoría de las distribuciones modernas de Linux (Ubuntu, Mint, Fedora, Debian), el driver CH340 ya está incluido en el kernel (versión 3.4 o superior). Para verificar si el dispositivo fue reconocido, ejecuta:

```bash

dmesg | grep tty
```

Deberías ver algo como:

```arduino

ch341-uart converter now attached to ttyUSB0
```

### Si no funciona


1. Asegúrate de que tu usuario tenga permisos sobre el puerto serie:

```bash

sudo usermod -a -G dialout $USER
```


1. Cierra sesión y vuelve a iniciarla.
2. Vuelve a conectar el dispositivo.

## ¿Y si **no está** el módulo `ch341`?

Puedes cargarlo manualmente (si está disponible en tu sistema):

```bash

sudo modprobe ch341
```

Si no está instalado en absoluto (muy raro), podrías compilarlo desde el [link fuente del kernel](https://github.com/torvalds/linux/blob/master/drivers/usb/serial/ch341.c), pero eso solo aplica en sistemas embebidos o kernels personalizados.


---

## 3. Instalación del Driver CH340 en macOS

### Descarga

* Versión oficial: [Descargar CH341SER_MAC_ZIP](https://drive.google.com/file/d/18gtj3mfej1jeeeYe6Sq9p5Y5-Q4GIJOW/view?usp=drive_link)
* Versión alternativa (comunidad, recomendada por compatibilidad): [Driver CH340 para macOS en GitHub](https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver)

### Instalación


1. Descargar y descomprimir el archivo.
2. Ejecutar el instalador `.pkg`.
3. Si el sistema bloquea la instalación, ir a: `Preferencias del sistema > Seguridad y privacidad > Permitir`
4. Completar la instalación y reiniciar el sistema.
5. Conectar la placa.

### Verificación


1. Abrir el IDE de Arduino.
2. Ir a **Herramientas > Puerto**.
3. Verificar que aparezca un puerto tipo: `/dev/cu.wchusbserialXXXX`


---

## Enlaces de Descarga Directos

**Windows:** [CH134SER.EXE](https://drive.google.com/file/d/1o1cD2Fn3MBkmXoI_7CLT25SQGyjC7hYU/view?usp=sharing)

**MAC:** [CH341SER_MAC_ZIP](https://drive.google.com/file/d/18gtj3mfej1jeeeYe6Sq9p5Y5-Q4GIJOW/view?usp=drive_link)


---

## Resultado Esperado

* El sistema detecta correctamente la placa Arduino basada en CH340.
* Se asigna un puerto COM (Windows), ttyUSB (Linux) o cu.wchusbserial (macOS).
* El IDE de Arduino puede subir programas sin errores de comunicación.