This article is a  started guide for the ESP32 development board. ESP32 is the sucessor of esp8266. The ESP32 loaded with lots of new features in which most relevant: it combines WiFi and Bluetooth wireless capabilities and included dual-core.


In this article, we’ll be using the ESP32 DEV KIT board as a reference. Information on this page compatible with other ESP32 development boards with the ESP-WROOM-32 chip.

some examples of ESP32 boards.

esp32 development borad

Purchase your Esp32

Our ESP32 projects are build using mainly the ESP32 DEVKIT and that’s the one we recommend getting. You can use the links or go directly to  to find all the parts for projects at the best price!


  ESP32 chip specifications,

  • CPU: Xtensa dual-core (or single-core) 32-bit LX6 microprocessor, operating at 160 or 240 MHz and performing at up to 600 DMIPS
    • Ultra low power (ULP) co-processor
    • Memory: 520 KiB SRAM, 448 KiB ROM
    • Wireless connectivity:
    • Bluetooth: v4.2 BR/EDR and BLE (shares the radio with Wi-Fi)

For more details download the Data sheet for Esp32 from this link .

You can also read the following article about the working of ESP32

To learn more about the ESP32 pinss, read our pinout reference guide: ESP32 Pinout Reference: Which pins should you use?

Programming Environments for Esp32

ESP32 can be programmed using different programming environments

  1. Arduino IDE
  2. Micro Python
  3. Lua
  4. Java Script

In articles , we used ESP32 mainly with Arduino IDE

Preparing the ESP32 Board in Arduino IDE

There’s an add-on availble  for the Arduino IDE . It allows you to program the ESP32 using the Arduino IDE .

 Follow these tutorials to prepare your Arduino IDE for Programing Esp32:

ESP32  Dev Kit Pinout Guide

ESP32 chips come with a multiplexing feature that allows assigning multiple functions to the same pin. If we don’t set them on the code, pins will be used as default configurations –shown in the figure below. Pin location will change depending on the manufacturer.

Esp32 pin-out diagram

Test ESP32 by  Upload Code  using Arduino IDE

We will build a simple example to blink an LED to show you how to upload code to the ESP32 board. All the Esp32 comes up with a build-in Led connected to pin number 22, In this tutorial, we are going to use it.

Copy following code to Arduino IDE:

/*   Blink  */
// ledPin refers to ESP32 GPIO 23
const int ledPin = 23;
// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin ledPin as an output.
  pinMode(ledPin, OUTPUT);
// the loop function runs over and over again forever
void loop() {
  digitalWrite(ledPin, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                  // wait for a second
  digitalWrite(ledPin, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                  // wait for a second

Follow the next steps

  1. Go to Tools > Board, scroll down to the ESP32 section and select the name of your ESP32 board. In my case, it’s the DOIT ESP32 DEV KIT V1 board.
  2. 2) Go to Tools > Port and select a COM port available.

Note: when some users get the  following error when they  trying to upload code, Means that ESP32 board  is not in flashing/uploading mode.

To upload code We need to follow few steps , but first you neeed to verify that you are choosen the right board selected

  1. Hold-down the “BOOT” button in ESP32
  • After that  you see the  “Connecting….” message in Arduino IDE, release the finger from the “BOOT” button:

After sucessfull  upload, the LED connected to GPIO 22 should be blinking every other second.

Blinking LED is a simple project to to  started with the ESP32Board. This tutorial gives a great way to learn the procedure you need to do to upload code to your board.

Refer the other tutorials

ESP32 ADC – Read Analog Values with Arduino IDE

Complete guide on ESP32 Pinout reference: what GPIO pins…