ESP32 Chapter 1: Get to Know an Advanced Microcontroller, ESP32
Hello and Welcome!
A new decade, a fresh start. It was just another Tuesday (21/01/2020 to be exact) when I met a new “friend”, in the shape of an electronical device, called ESP32. Thanks to Embedded System, with the assist of Mr. Kusprasapta a.k.a the lecturer of the course, I got to meet and deal with you, at least for the upcoming 3 months.
So, what is an ESP32 and what does it look like?
ESP32 is a series of low-cost, low power system of chip microcontrollers with integrated Wi-Fi and dual-mode Bluetooth, while an ESP32 Development Board is a low-footprint, breadboard-friendly, minimum system development board powered by the ESP32-WROOM-32 module. (Wikipedia)

Well, it basically has similarities with the more popular Arduino Uno, but equipped with way more advanced and up-to-date features, as Mr. Kusprasapta said.
The first mini project of this course — due today — is to set up the ESP32 board so that it can be connected to the PCs. This includes severals steps mentioned below.
- Arduino IDE installation and configuration
- Package Board ESP32 installation
- Serial communication setting between the ESP32 board and PC using USBtoUART
- Connecting the ESP32 board to PC using USB Type A to MicroUSB cable
The port and the ESP32 board configuration differs based on the board and settings. I used COM4 for the port and DOIT ESP32 DEVKIT V1 for the board.
Then, we’re to make the ESP32 board’s LED blink, using the “blink” code from examples. By continuing the steps above, this is how you make the LED blink.
- Verify the code, then upload the program
- By the time the program is uploading and written “connecting” , press the boot button until it is done uploading
- Press the EN button, and the LED blinking should just work
Here below are the code and the video of ESP32 board’s LED blink, ON every 1 second and OFF every 1 second.
void setup(){
pinMode(LED_BUILTIN, OUTPUT);
}void loop(){
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
I made a very simple improvisation by changing the delay time, so now the LED will be ON every 5 second and OFF every 1 second.
void setup(){
pinMode(LED_BUILTIN, OUTPUT);
}void loop(){
digitalWrite(LED_BUILTIN, HIGH);
delay(5000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
At first I was a little bit confused by selecting the board and port of Arduino IDE, as it is different with the one shown on the module. I also found difficulties in how to deal with the error message once it was uploaded as well as when and how to press the boot button, whether to “press and hold” or “press only”. But thanks to the course module, it finally worked. I managed to change the blinking duration (delay time), although it was a very simple procedure to do. Overall, it was a great and quite simple start and I am looking forward to exploring a lot more from this little thing.
Christovito Hidajat
18218043