DOIT ESP32 DevKit | Getting Started & Programming | Tutorial & Project

DOIT ESP32 DevKit | Getting Started & Programming | Tutorial & Project

DOIT ESP32 DevKit is a microprocessor-based development board developed by It contains ESP-WROOM-32 Wi-Fi Module, which integrates an ESP32D0WDQ6 Wi-Fi System-on-a-Chip (SoC). The chip is embedded with Tensilica Xtensa LX6, Dual Core 32-bit Microprocessor, which has a 520KB of SRAM and 448KB of EEPROM, which can be read and written with the EEPROM library. The chip has an external 4MB SPI Flash Memory to store the user program. It runs on the clock speed of 80MHz to 240MHz. It supports IEEE 802.11 b/g/n wireless networking standards and operates on 2.4GHz frequency band. It also supports WEP, WPA and WPA2 security protocols. It is compliant with Bluetooth v4.2 BR/EDR and BLE specifications. The chip also integrates a Hall Sensor and Capacitive Touch Sensor. DOIT ESP32 DevKit uses Silicon Labs CP2102 chip, as a USB-to-Serial Convertor.

DOIT ESP32 DevKit can be programmed with the Arduino IDE software. It allows you to write programs and upload them to your board. The board can be powered with an USB connection of 5V, via Type-Micro B USB Connector.

DOIT ESP32 DevKit has several different kinds of pins, each of which is labeled on the board. Now, let’s see the function of each pins:

- DOIT ESP32 DevKit has 19 digital input/output pins, which are labeled D2, D4, D5, D12, D13, D14, D15, D18, D19, D21, D22, D23, D25, D26, D27, D32, D33, D34 and D35. These pins are used for general purpose input/output and can be configured by using the pinMode(), digitalRead() and digitalWrite() functions.

- DOIT ESP32 DevKit also has 14 analog input pins, which are labeled D4, D12, D13, D14, D15, D25, D26, D27, D32, D33, D34, D35, VN and VP. These pins are connected to on-board 18-Channel 12-Bit Analog-to-Digital Converter (ADC) and are used to read the analog voltages by using the analogRead() function.

Both digital and analog pins can tolerate a maximum voltage of 3.3V and can provide or receive a maximum current of 40mA. Each of these pins has an internal pull-up resistor, which can be enabled by using the INPUT_PULLUP command.

- VIN Pin is used to power the board with an external power supply of 5V to 12V.

- 3V3 Pin provides a regulated 3.3V output from the board.

- GND Pins are the Ground pins.

- Digital Pin D2, D4, D5, D12, D13, D14, D15, D18, D19, D21, D22, D23, D25, D26, D27, D32, D33, D34 and D35 are the External Interrupts pins, which can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value by using the attachInterrupt() function.

- Digital Pin D2, D4, D5, D12, D13, D14, D15, D18, D19, D21, D22, D23, D25, D26, D27, D32, D33, D34 and D35 are also the PWM pins, which can provide 12-bit PWM output by using the ledcWrite() function.

- Digital Pin D21 and D22 are SDA, SCL respectively are the Two Wire Interface pins, which support Two Wire Interface or I2C communication by using the Wire library.

- Digital Pin D5, D18, D19 and D23 are SS, SCK, MISO and MOSI respectively are the SPI pins, which support SPI communication by using the SPI library.

- Digital Pin D25 and D26 are the 2-Channel 8-Bit Digital-to-Analog Converter (DAC) pins, which can be used to convert two digital signals into two analog voltage signal outputs.

- Digital Pin D2, D4, D12, D13, D14, D15, D27, D32 and D33 are the Capacitive Touch sensing pins, which detect variations induced by touching or approaching the pins with a finger or other objects by using the touchRead() function.

- RX and TX Pin are the Serial pins, are used to receive and transmit TTL serial data.

- VN and VP Pin is recommended for use as Analog-to-Digital Converter (ADC).

- EN Pin is the Chip Enable pin, which is to be active HIGH for normal operation.

- EN Button is used to reset the microprocessor when pressed.

- BOOT Button enables us to flash the firmware into the microprocessor when pressed.

- There is a built-in LED which is connected to the Digital Pin D2.

In this tutorial, we will upload a simple Blink sketch, which will turn a LED on and off depending upon the pin value. When the pin value is HIGH, the LED turns on, and when the pin value is LOW, the LED turns off.


Components that are required:

- 400 Tie-Points Breadboard:

- Type-A to Type-Micro B USB Cable:


DOIT ESP32 DevKit | Getting Started & Programming | Tutorial & Project | Connections

Now, let’s see the connections.

- Connect the anode of LED to the Digital Pin D2 of DOIT ESP32 DevKit, via a 220 Ohm Resistor.

- Connect the cathode of LED to the GND Pin of DOIT ESP32 DevKit.

- Connect the one end of USB cable to the DOIT ESP32 DevKit, and another end to the Computer.


In this tutorial, we will use Arduino IDE to program the board. Software and Source Code that are required:

Now, let’s program the board.

- Install the Python 2.x software.

- Install the Git software.

- Clone the Github repository.

- Install the ESP32 repository.

- Open the sketch in the Arduino IDE.

- Select the proper Board from the Tools menu of Arduino IDE.

- Select the proper Serial Port from the Tools menu of Arduino IDE.

- Click on the Upload button to upload the sketch to the board.

If the upload is successful, the message "Done uploading" will appear in the status bar of Arduino IDE. After a few seconds, you should see the LED starts blinking.


Popular posts from this blog

Heltec ESP32 LoRa DevKit | LoRa Controlled Robot Car | Tutorial & Project

Arduino Uno | Getting Started & Programming | Tutorial & Project