> ## Documentation Index
> Fetch the complete documentation index at: https://docs.protonverse.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Installing USB-to-Serial Drivers for Proton AI Core

> Install the correct USB-to-serial driver for your operating system to connect Proton AI Core to your computer for programming and serial monitoring.

To program Proton AI Core over USB-C, your computer needs the correct USB driver installed. Without it, your operating system won't recognize the board as a serial device and it won't appear as an available port in Arduino IDE or PlatformIO.

<Note>
  Proton AI Core uses either a **CP210x** (Silicon Labs) or **CH340/CH341** (WCH) USB-to-serial chip depending on the board revision. Check the chip markings on your board, then follow the matching driver section below.
</Note>

## Installation

<Tabs>
  <Tab title="Windows">
    **Check Device Manager first**

    Plug Proton AI Core into your computer using a USB-C data cable, then open **Device Manager** (press `Win + X` and select Device Manager). Expand the **Ports (COM & LPT)** section.

    * If you see a named COM port (e.g., `Silicon Labs CP210x USB to UART Bridge (COM4)` or `USB-SERIAL CH340 (COM3)`), the driver is already installed and you're ready to go.
    * If you see **Unknown Device** under "Other devices", you need to install the driver manually.

    **Download and install the appropriate driver:**

    * **CP210x** (Silicon Labs): Download from [silabs.com/developers/usb-to-uart-bridge-vcp-drivers](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers). Run the installer and follow the prompts.
    * **CH340/CH341** (WCH): Download from [wch-ic.com/downloads/CH341SER\_EXE.html](https://www.wch-ic.com/downloads/CH341SER_EXE.html). Run `CH341SER.EXE` and click **Install**.

    After installation, unplug and re-plug the board. It should now appear in Device Manager as `COM3`, `COM4`, or similar under **Ports (COM & LPT)**.
  </Tab>

  <Tab title="macOS">
    **Check if the driver is already present**

    Plug Proton AI Core into your computer using a USB-C data cable, then open **Terminal** and run:

    ```bash theme={null}
    ls /dev/cu.*
    ```

    If you see `/dev/cu.usbmodem...` or `/dev/cu.SLAB_USBtoUART`, the driver is already active and you're ready to go.

    **Driver installation by chip:**

    * **CH340/CH341:** Modern macOS (10.14 Mojave and later) includes a built-in CH340 driver for most boards. No additional installation is needed.
    * **CP210x** (Silicon Labs): Download the macOS VCP driver from [silabs.com/developers/usb-to-uart-bridge-vcp-drivers](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers). Open the `.dmg` file and run the installer package.

    After installation, re-plug the board. It should appear as `/dev/cu.usbmodem...` or `/dev/cu.SLAB_USBtoUART` in Terminal.

    **If macOS blocks the driver:**

    Go to **System Settings > Privacy & Security**, scroll down, and click **Allow** next to the message about the blocked system software. You may need to restart your Mac for the change to take effect.
  </Tab>

  <Tab title="Linux">
    **Check if the driver is already loaded**

    Most Linux distributions include kernel drivers for both CH340 (`ch341`) and CP210x (`cp210x`) out of the box. Plug in the board and run:

    ```bash theme={null}
    dmesg | tail -20
    ```

    Look for a line like `usb 1-1: ch341-uart converter now attached to ttyUSB0` or `cp210x converter now attached to ttyUSB0`. If you see it, the driver loaded successfully.

    The board appears as `/dev/ttyUSB0` or `/dev/ttyACM0` depending on the chip.

    **Add yourself to the `dialout` group**

    By default, serial ports are only accessible to the `root` user and members of the `dialout` group. Run the following command to add your user account:

    ```bash theme={null}
    sudo usermod -a -G dialout $USER
    ```

    Log out and back in for the group change to take effect. You can verify it worked by running `groups` and confirming `dialout` appears in the output.
  </Tab>
</Tabs>

## Troubleshooting

If you're still having trouble after following the steps above, try the solutions below.

**Board not detected at all**
Try a different USB-C cable. Many cables are charge-only and have no data lines — they will power the board but your computer will never see it as a USB device. Use a cable you know supports data transfer.

**Driver installed but port missing**
Unplug the board, wait 5 seconds, and plug it back in. Also try a different USB port on your computer. Some USB hubs can cause enumeration issues; connecting directly to a port on your machine is more reliable.

**Permission denied on Linux**
Make sure you completed the `dialout` group step above and have fully logged out and back in (or rebooted). You can confirm your group membership with:

```bash theme={null}
groups $USER
```

If `dialout` does not appear, re-run the `usermod` command and log out again.
