Your first steps with an ESP32 board
(Updated at 12/23/2022)
This guide will help you get started with your ESP32 board.
Warning
The ESP32 board mentioned in this tutorial is the uPesy ESP32 WROOM DevKit , but this guide is also relevant for other ESP32 boards.
Programming the ESP32: The different platforms and languages
For beginners, the most common and easiest way to program the ESP32 is to use the Arduino IDE software . Although it is intended for Arduino boards, we can use it to program other types of boards, thanks to the additional board manager.
For more advanced users, I recommend using VS Code with PlateformIO to use the ESP32 features fully. It’s a “game-changer”, especially when you realize Wi-Fi/Web-oriented projects where you mix several languages (C, HTML, CSS, Javascript). You can even program the ESP32 in pure C without using any Arduino code with only the ESP-IDF framework.
There is also an increasingly popular alternative, especially since the release of the Raspberry Pi Pico:MicroPython . It is, in fact, possible to program the ESP32 in Python. This port of the Python language on a microcontroller (hence the name Micro Python) allows you to benefit from all the advantages of Python with, of course, less good performances than with Arduino code. To mention only one of these qualities, the uploading and execution a new program are almost instantaneous. At the same time, it takes up to several minutes with Arduino code for the compilation and uploading of the program to be finished. It makes all the difference when you are a beginner and can test your code regularly.
In summary, I recommend:
If you are already using Arduino boards, start your discovery of the ESP32 via the Arduino IDE and eventually migrate to PlateformIO.
Important
Once you test PlateformIO on VS Code, returning to the Arduino IDE isn’t easy. 😉
If you are familiar with Python and have never done any Arduino code, start by testing MicroPython.
An installation guide is available for each platform:
Apart from the choice of programming language, since it is an electronic board, it is essential to know how the pins work.
ESP32 Pinout: Understanding the ESP32 pins
The pins of the ESP32 have many more features than those of the Arduino boards. However, unlike Arduinos, the pin positions differ depending on the model. Fortunately, even if the pins on your ESP32 board are positioned in one place, they still function in the same manner.
On the detailed pinout diagrams (ESP32 Pinout), the pin functions indicated are the default ones. On the ESP32, we can choose the pins that will use the SPI, I2C, UART, I2S, and DAC peripherals. I strongly invite you to consult the tutorial on the detailed operation of each pin of the ESP32 (ESP32 Pinout) for more details and to become knowledgeable about the ESP32 pins.
For those with a uPesy ESP32 board, you can get more information on technical documentation for ESP32 boards .
Learn programming on the ESP32
A series of tutorials are available to progress in programming the ESP32 according to your chosen language. You will find in the section Programming tutorials to program the ESP32 with Arduino code and tutorials to learn the basics of MicroPython .