Arduino IDE Tools Menu - (2024)

Introduction

This guide is a walkthrough of the Arduino IDE configuration menu for the ESP32 System on Chip (SoC’s). In this guide, you will see the most relevant configurationto get your project optimized and working.

Since some boards and SoC’s may vary in terms of hardware configuration, be sure you know all the board characteristics that you are using, like flash memory size, SoC variant (ESP32 family), PSRAM, etc.

Note

To help you identify the characteristics, you can see the Espressif Product Selector.

Arduino IDE

The Arduino IDE is widely used for ESP32 on Arduino development and offers a wide variety of configurations.

Generic Options

Most of the options are available for every ESP32 family. Some options will be available only for specific targets, like the USB configuration.

Board

This option is the target board and must be selected in order to get all the default configuration settings. Once you select the correct board, you will see that some configurations will be automatically selected, but be aware that some boards can have multiple versions (i.e different flash sizes).

To select the board, go to Tools -> Board -> ESP32 Arduino and select the target board.

If your board is not present on this list, you can select the generic ESP32-XX Dev Module.

Currently, we have one generic development module for each of the supported targets.

If the board selected belongs to another SoC family, you will see the following information at the build output:

A fatal error occurred: This chip is ESP32 not ESP32-S2. Wrong --chip argument?

Upload Speed

To select the flashing speed, change the Tools -> Upload Speed. This value will be used for flashing the code to the device.

Note

If you have issues while flashing the device at high speed, try to decrease this value. This could be due to the external serial-to-USB chip limitations.

CPU Frequency

On this option, you can select the CPU clock frequency. This option is critical and must be selected according to the high-frequency crystal present on the board and the radio usage (Wi-Fi and Bluetooth).

In some applications, reducing the CPU clock frequency is recommended in order to reduce power consumption.

If you don’t know why you should change this frequency, leave the default option.

Flash Frequency

Use this function to select the flash memory frequency. The frequency will be dependent on the memory model.

  • 40MHz

  • 80MHz

If you don’t know if your memory supports 80Mhz, you can try to upload the sketch using the 80MHz option and watch the log output via the serial monitor.

Note

In some boards/SoC, the flash frequency is automatically selected according to the flash mode. In some cases (i.e ESP32-S3), the flash frequency is up to 120MHz.

Flash Mode

This option is used to select the SPI communication mode with the flash memory.

Depending on the application, this mode can be changed in order to increase the flash communication speed.

  • QIO - Quad I/O Fast Read
    • Four SPI pins are used to write to the flash and to read from the flash.

  • DIO - Dual I/O Fast Read
    • Two SPI pins are used to write to the flash and to read from the flash.

  • QOUT - Quad Output Fast Read
    • Four SPI pins are used to read the flash data.

  • DOUT - Dual Output Fast Read
    • Two SPI pins are used to read flash data.

  • OPI - Octal I/O
    • Eight SPI pins are used to write and to read from the flash.

If you don’t know how the board flash is physically connected or the flash memory model, try the QIO at 80MHz first.

Flash Size

This option is used to select the flash size. The flash size should be selected according to the flash model used on your board.

  • 2MB (16Mb)

  • 4MB (32Mb)

  • 8MB (64Mb)

  • 16MB (128Mb)

If you choose the wrong size, you may have issues when selecting the partition scheme.

Embedded Flash

Some SoC has embedded flash. The ESP32-S3 is a good example.

Note

Check the manufacturer part number of your SoC/module to see the right version.

Example: ESP32-S3FH4R2

This particular ESP32-S3 variant comes with 4MB Flash and 2MB PSRAM.

Options for Embedded Flash

The x stands for the temperature range specification.

  • H High Temperature (-40 to 85ºC)

  • N Low Temperature (-40 to 65ºC)

For more details, please see the corresponding datasheet at Espressif Product Selector.

Partition Scheme

This option is used to select the partition model according to the flash size and the resources needed, like storage area and OTA (Over The Air updates).

Note

Be careful selecting the right partition according to the flash size. If you select the wrong partition, the system will crash.

Core Debug Level

This option is used to select the Arduino core debugging level to be printed to the serial debug.

  • None - Prints nothing.

  • Error - Only at error level.

  • Warning - Only at warning level and above.

  • Info - Only at info level and above.

  • Debug - Only at debug level and above.

  • Verbose - Prints everything.

PSRAM

The PSRAM is an internal or external extended RAM present on some boards, modules or SoC.

This option can be used to Enable or Disable PSRAM. In some SoCs, you can select the PSRAM mode as the following.

  • QSPI PSRAM - Quad PSRAM

  • OPI PSRAM - Octal PSRAM

Embedded PSRAM

Some SoC has embedded PSRAM. The ESP32-S3 is a good example.

Example: ESP32-S3FH4R2

This particular ESP32-S3 comes with 4MB Flash and 2MB PSRAM.

Options for Embedded Flash and PSRAM

  • R2 2MB PSRAM (QSPI)

  • R8 8MB PSRAM (OPI)

  • V 1.8V SPI

The x stands for the temperature range specification.

  • H High Temperature (-40 to 85ºC)

  • N Low Temperature (-40 to 65ºC)

For more details, please see the corresponding datasheet at Espressif Product Selector.

Arduino Runs On

This function is used to select the core that runs the Arduino core. This is only valid if the target SoC has 2 cores.

When you have some heavy task running, you might want to run this task on a different core than the Arduino tasks. For this reason, you have this configuration to select the right core.

Events Run On

This function is also used to select the core that runs the Arduino events. This is only valid if the target SoC has 2 cores.

Erase All Flash Before Sketch Upload

This option selects the flash memory region to be erased before uploading the new sketch.

  • Disabled - Upload the sketch without erasing all flash contents. (Default)

  • Enabled - Erase all flash contents before uploading the sketch.

Port

This option is used to select the serial port to be used on the flashing and monitor.

USB Options

Some ESP32 families have a USB peripheral. This peripheral can be used for flashing and debugging.

To see the supported list for each SoC, see this section: Libraries.

The USB option will be available only if the correct target is selected.

USB CDC On Boot

The USB Communications Device Class, or USB CDC, is a class used for basic communication to be used as a regular serial controller (like RS-232).

This class is used for flashing the device without any other external device attached to the SoC.

This option can be used to Enable or Disable this function at the boot. If this option is Enabled, once the device is connected via USB, one new serial port will appear in the list of the serial ports.Use this new serial port for flashing the device.

This option can be used as well for debugging via the Serial Monitor using CDC instead of the UART0.

To use the UART as serial output, you can use Serial0.print("Hello World!"); instead of Serial.print("Hello World!"); which will be printed using USB CDC.

USB Firmware MSC On Boot

The USB Mass Storage Class, or USB MSC, is a class used for storage devices, like a USB flash drive.

This option can be used to Enable or Disable this function at the boot. If this option is Enabled, once the device is connected via USB, one new storage device will appear in the system as a storage drive.Use this new storage drive to write and read files or to drop a new firmware binary to flash the device.

USB DFU On Boot

The USB Device Firmware Upgrade is a class used for flashing the device through USB.

This option can be used to Enable or Disable this function at the boot. If this option is Enabled, once the device is connected via USB, the device will appear as a USB DFU capable device.

Arduino IDE Tools Menu - (2024)

FAQs

How to add tools in Arduino IDE? ›

Select File > Quit from the Arduino IDE menus. Create a folder named tools under the folder at the path you noted from the "Sketchbook location" preference. Unzip the downloaded file. Copy the unzipped folder to the tools folder you created in step (6).

Where is the Arduino Tools folder? ›

Windows. For a standard Arduino IDE installation the folder is found at C:\Users\{username}\AppData\Local\Arduino15 . Open your user folder in Explorer.

What are the tools contain in Arduino IDE? ›

The Arduino Integrated Development Environment - or Arduino Software (IDE) - contains a text editor for writing code, a message area, a text console, a toolbar with buttons for common functions and a series of menus. It connects to the Arduino hardware to upload programs and communicate with them.

How do I turn on suggestions in Arduino IDE? ›

Follow these steps to enable the feature.
  1. Open the IDE.
  2. Open the Preferences window from the menu bar: Windows/Linux: File > Preferences. macOS: Arduino IDE > Preferences.
  3. Check the Editor Quick Suggestions.
  4. Click OK to save.
Jan 30, 2024

Where are tools in Arduino? ›

* To find your sketchbook folder open the Arduino IDE and select "Arduino" in the top menu bar, then select "Preferences". Your sketchbook folder will be listed there. Navigate to this location and find the "tools" folder, or if you don't have one create a folder called "tools".

How to manually add boards to Arduino IDE? ›

Add boards to Arduino IDE
  1. In the menu bar, select Tools > Board > Boards Manager. ...
  2. Either search for the package name (e.g. “megaAVR”), or the board (e.g. “Uno”, “MKR1000”, or “Portenta”), by typing in the search field.
  3. Find the package that includes your board.
  4. Click Install (the latest version is selected by default).
Jan 29, 2024

Who owns Arduino? ›

In July 2017 BCMI, founded by Massimo Banzi, David Cuartielles, David Mellis and Tom Igoe, acquired Arduino AG and all the Arduino trademarks.

What tools do I need for Arduino? ›

And hardware required to learn Arduino is :
  • Arduino.
  • Led.
  • DC motor.
  • Jumper wires.
  • Resistor.
  • Capacitor.
  • Push buttons.
  • Some basic sensors like IR sensor, Temperature sensor, etc.
Feb 16, 2023

Which Arduino IDE version is best? ›

The choice is up to you!

Whether you use the original, the web editor or the new IDE 2.0, Arduino code will run the same. The underlying language remains the exact same. Whichever IDE you chose is completely up to your preference and however you prefer to interface with programming your Arduino!

How to use AT commands in Arduino IDE? ›

The following AT commands should be written in the Arduino's serial monitor (in order) to program the ESP8266:
  1. “AT” This will check if the module is connected properly and its functioning, the module will reply with an acknowledgment.
  2. “AT+RST” This will reset the wifi module.

How do I auto correct code in Arduino? ›

To enable or disable autocompletion, you need to navigate to File > Preferences. Open the preferences. Then, you will need to tick/untick the box next to "Editor Quick Suggestions", and then click on the "OK" button to apply the changes. Tick/untick the box and click on "OK".

What is the shortcut for Arduino IDE? ›

General
ShortcutAction
Ctrl Shift SSave as
Ctrl NOpen a new sketch
Ctrl OOpen an existing sketch
Ctrl QClose the Arduino IDE
8 more rows

How to add a package in Arduino IDE? ›

In the Arduino IDE, navigate to Sketch > Include Library > Add . ZIP Library. At the top of the drop down list, select the option to "Add .

How do I add a new tab in Arduino IDE? ›

In the window that pops up, click on the New Tab option, and you will see an orange bar below the code section of the Arduino IDE windows. In this orange bar, you can name the new tab and then press the OK button to create the tab.

How to customize Arduino IDE? ›

Use a custom theme for Arduino IDE 1
  1. Open the Sketchbook folder. ...
  2. If open, close Arduino IDE.
  3. In the sketchbook folder, create a subfolder named theme .
  4. Drag and drop the custom theme . ...
  5. Open the Arduino IDE, select the theme from the Arduino IDE at File > Preferences > Theme menu.
  6. Restart the Arduino IDE again.
Jun 3, 2024

References

Top Articles
Latest Posts
Article information

Author: Velia Krajcik

Last Updated:

Views: 6120

Rating: 4.3 / 5 (54 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Velia Krajcik

Birthday: 1996-07-27

Address: 520 Balistreri Mount, South Armand, OR 60528

Phone: +466880739437

Job: Future Retail Associate

Hobby: Polo, Scouting, Worldbuilding, Cosplaying, Photography, Rowing, Nordic skating

Introduction: My name is Velia Krajcik, I am a handsome, clean, lucky, gleaming, magnificent, proud, glorious person who loves writing and wants to share my knowledge and understanding with you.