Skip to main content
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)
  • USB driver installed for your operating system — see the Drivers page if you haven’t done this yet
  • A USB-C data cable (charge-only cables will not work)

Setup Steps

1

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

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

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

Configure Board Settings

Under the Tools menu, apply the following recommended settings:
SettingValue
Flash Size8MB
PSRAMOPI PSRAM
Upload Speed921600
USB CDC On BootEnabled
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 below for more details.
5

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
If the port doesn’t appear after connecting, make sure you installed the correct USB driver. See the Drivers page.
6

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 (→):
    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.
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.

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.