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

# Configure Arduino IDE 2.x for Proton AI Core Board

> Install and configure Arduino IDE 2.x to program Proton AI Core. Add the ESP32 board package, select ESP32S3 Dev Module, and upload your first sketch.

Arduino IDE 2.x is the quickest way to get started programming Proton AI Core. By adding Espressif's board package, you gain access to the full ESP32-S3 toolchain directly inside the IDE, letting you write, compile, and flash firmware over the built-in USB-C connector.

## Prerequisites

Before you begin, make sure you have the following ready:

* **Arduino IDE 2.x** installed on your computer ([arduino.cc/en/software](https://www.arduino.cc/en/software))
* **USB driver** installed for your operating system — see the [Drivers](/setup/drivers) page if you haven't done this yet
* A **USB-C data cable** (charge-only cables will not work)

## Setup Steps

<Steps>
  <Step title="Open Board Manager">
    In Arduino IDE, go to **File > Preferences** (macOS: **Arduino IDE > Settings**).

    In the **"Additional boards manager URLs"** field, add the following URL:

    ```text theme={null}
    https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
    ```

    If you already have other URLs in that field, click the icon to the right of the field to open a multi-line editor, then add this URL on a new line.

    Click **OK** to save.
  </Step>

  <Step title="Install ESP32 by Espressif">
    Open **Tools > Board > Boards Manager**.

    In the search box, type **esp32**.

    Find **"esp32 by Espressif Systems"** and click **Install** to install the latest version. The download may take a few minutes.
  </Step>

  <Step title="Select the Board">
    Once installation is complete, go to **Tools > Board > ESP32 Arduino > ESP32S3 Dev Module**.

    The board name in the bottom status bar of the IDE should update to reflect your selection.
  </Step>

  <Step title="Configure Board Settings">
    Under the **Tools** menu, apply the following recommended settings:

    | Setting         | Value     |
    | --------------- | --------- |
    | Flash Size      | 8MB       |
    | PSRAM           | OPI PSRAM |
    | Upload Speed    | 921600    |
    | USB CDC On Boot | Enabled   |

    Setting **USB CDC On Boot** to **Enabled** is important — it allows `Serial.print()` output to appear over the USB-C connection. See [Enabling USB CDC](#enabling-usb-cdc) below for more details.
  </Step>

  <Step title="Select Port">
    Connect Proton AI Core to your computer with the USB-C data cable, then go to **Tools > Port** and select the port that corresponds to your board:

    * **Windows:** appears as `COM3`, `COM4`, etc.
    * **macOS:** appears as `/dev/cu.usbmodem...` or `/dev/cu.SLAB_USBtoUART`
    * **Linux:** appears as `/dev/ttyUSB0` or `/dev/ttyACM0`

    <Tip>
      If the port doesn't appear after connecting, make sure you installed the correct USB driver. See the [Drivers](/setup/drivers) page.
    </Tip>
  </Step>

  <Step title="Upload a Sketch">
    You're now ready to upload firmware. To test your setup, you can start with a simple sketch or use one of Espressif's built-in examples:

    * **Hello World:** Create a new sketch, paste the code below, and click the **Upload** button (→):

      ```cpp theme={null}
      void setup() {
        Serial.begin(115200);
        Serial.println("Hello from Proton AI Core!");
      }

      void loop() {
        // nothing here
      }
      ```

    * **Camera demo (if using a camera module):** Open **File > Examples > ESP32 > Camera > CameraWebServer**, update the camera model and Wi-Fi credentials in the sketch, then upload.

    After uploading, open the Serial Monitor (**Tools > Serial Monitor**) at **115200 baud** to see output.

    <Note>
      If you see upload errors, try holding the **BOOT** button while pressing the **EN/Reset** button to manually enter bootloader mode, then attempt the upload again.
    </Note>
  </Step>
</Steps>

## Enabling USB CDC

Proton AI Core uses the ESP32-S3's built-in USB peripheral to expose a virtual serial (CDC) port over USB-C. When you set **USB CDC On Boot** to **Enabled** in the Tools menu, the board enumerates as a serial device immediately on power-up, and `Serial.print()` calls are routed directly over USB-C — no separate UART adapter or FTDI cable is required.

To verify the setting is applied, check **Tools > USB CDC On Boot > Enabled** before uploading. If it is set to **Disabled**, your `Serial` output will not appear in the Serial Monitor when connected over USB-C.
