Getting Started with ESP-WROOM-02

Welcome to our Getting started guide on ESP-WROOM-02 board. We had already introduced this board in our previous guide Introduction to ESP8266, there we had mentioned about the ESP-WROOM-02 adapter board as well. Here in this blog, we are using ESP-WROOM-02 with Adapter board, since using the adapter board will give us the flexibility to build and test circuit on a breadboard. Let us have a look at the list of items we needed for getting started with ESP-WROOM-02.

Hardware Needed:

ESP-WROOM-02 Board

Breadboard

3.3V Voltage Regulator

1K Resistors

100uf Electrolytic Capacitor

7mm Tactile Switch

5V Power Adapter

10k Resistor

5mm LED

Mini USB Cable

USB to Serial Converter

Jumper Wires

3.3uf Electrolytic Capacitor

Breadboard Power Supply

Micro USB Pin Breakout Board

0.1uf Ceramic Capacitor

You do not need all the above mentioned hardware, some of them are optional, which we had mentioned in details in various sections below.

ESP-WROOM-02 Pinouts:

It is always important to understand the board which you are working with, is capable of what all stuffs, for this we had added a graphical pinouts and description below:

ESP-Wroom-02 Graphical Description

Circuit Schematics:

The ESP-WROOM-02 boards needs few external components to get it working, we had a schematics for ESP-WROOM-02 board below:

Circuit Schematics

Now, if you notice in the schematics, we had added pullup resistors on most of the communication lines, if you are not using those pins, you can ignore those resistors. But the resistors on following lines are must to get it working, i.e GPIO0, reset and enable.

Note: The power Supply schematics is not included in the above circuit.

The power supply to the circuit must be 3.3v and you can use any option to power the circuit, like using breadboard power supply(listed in the hardware needed section) and 9v battery or you can power the board directly from USB to serial converter, make sure that converter must be 3.3v logic ones and it is capable enough to supply minimum of 500mA. We tried to power the system from Sparkfun basic 3.3v FTDI converter but we had faced issue several times, if you are looking to power from converter only, we will recommend you to use the Sparkfun beefy FTDI board. We had used 5v Power Adapter and a 3.3V voltage regulator setup on breadboard to power the system, We had added the 3.3V voltage regulator Schematics below:

3.3V Voltage Regulator Schematics

The voltage Regulator Part is really Simple, if you seen the schematics, you can notice that, we used 4 capacitor in the circuit, Cout capacitor can be replaced with 3.3uF Capacitor or some other higher value than 10uF if you have. We supplied Vin from the 5v USB power Adapter (Refer the hardware needed section), we used the Micro USB Breakout Board (Refer the hardware needed section) to breakout the power lines from USB adapter, you can use your phone chargers as well,if you have these breakout board with you.

Make sure you use the proper pins of the voltage regulator while assembling your circuit. Refer the LD33V pinouts below:

LD33V Pinouts

Now, its time to assemble all this circuit into a breadboard, make sure you follow the connections, as shown, otherwise, your circuit might not work.

Assemble the Circuit on a Breadboard:

The first thing in the breadboarding is always begin with Power supply, if you are using breadboard Power Supply module (Refer the hardware needed section) then you do not have to worry much, all you need is battery with DC Jack Male Connector or you might have power adapter with DC Male Jack on it, use it and you are ready to go. Refer the below diagram for using a breadboard power supply.

Breadboard Power Supply

But we are using Voltage regulator to build our own power supply and which we can use to fed power from standard micro USB power adapter/ Mobile Charger. Refer the Power Supply section below for better idea on this.

3.3V Breadbord Power Supply

Note: If you are using some other voltage regulator than what we mentioned, then make sure that you cross check the pinouts and connect accordingly. Refer the hardware needed section for the USB Breakout Board which you can use.

Once the power supply is done, now we will assemble the circuit for ESP-WROOM-02 Board as shown in the schematics above.

ESP-WROOM-02 Breadboard Arrangement

Now you are all done with connections, now its time to upload the code, now for this you need a USB to Serial Converter to establish a Serial communication between the WROOM board and the computer. We used the sparkfun basic ftdi board to made it work, you can use any 3.3V logic converter to do the serial communication, just make sure to make the proper connection with this WROOM board. For this we had added a simple graphical representation, where you need to make the connections, refer the image below:

ESP-WROOM-02 Serial Communication

As you can see that it is clearly labeled which connection will go where into this breadboard, all you need to do is connect jumper wires to your Serial Converter and connect it exactly at the same position, i.e RX,TX and GND , these three lines are required. There is no need to cross connect the RX TX line, since it is already been take care of while labeling, just connect straight away the converter TX pin to WROOM pin 11 and Converter RX pin to WROOM pin 12 and common ground is must between the circuits. Lets begin with programming the WROOM board.

Uploading first Program

Step 1: Put the WROOM Board in Program Download Mode:

Since you are ready with hardware, its time to put the WROOM board into UART Download mode,to do so, all you need to do is:

Press both the RESET button and PROGRAM Button together.

Leave the RESET button alone and keep Pressing the PROGRAM button for 1 more second.

Leave the PROGRAM Button, now you are in UART Download mode.

So every time, when you need to upload the code, you have to do this before uploading, this is because the “auto Program” is not implemented in the circuit we built. To do so you need to add some transistors and you need to make some more connections from the Serial Converter board, this feature is not covered in this tutorial. Refer the Reset and Program Switch in the above image.

Step 2: Set proper serial port and board in the Arduino

Once the board is in download mode. You need to Open the Arduino and install the ESP8266 Core for the Arduino, if you have this in Arduino, you can ignore this. If you don’t have any ESP8266 board present in you Arduino. You need to do the following :

If there is an entry already, add the line by inserting a comma. If you need more instruction visit this github page.

Restart the Arduino after above step and open the boards manager from tools -> boards option and install the ESP8266 Core to the boards, after installation ,restart the Arduino again and you will see a set of ESP8266 boards as follows:

ESP8266 Boards

Now if you see we had selected the board option as ThaiEasyElec’s ESPino , we tried out other boards as well and we did not had any issue with other boards as well. The common setting for most of the board is to set the frequency to 80Mhz, you can overclock the board if needed. Flash Size if available set to 2M, else leave it to defualt option. The WROOM board comes with 2MB SPI Flash with four supported SPI modes: Standard SPI, DIO (Dual I/O), DOUT (Dual Output), QIO (Quad I/O) and QOUT (Quad Output).

Once the Clock and Flash is set, select the proper serial port and you are ready to upload the code.

Step 3: Upload the first program

Since you are done with everything, lets begin uploading the first code. Refer the image below:

Example Program

Upload the following code from File -> Examples -> ESP8266 -> Blink

/*
ESP8266 Blink by Simon Peter
Blink the blue LED on the ESP-01 module
This example code is in the public domain
The blue LED on the ESP-01 module is connected to GPIO1
(which is also the TXD pin; so we cannot use Serial.print() at the same time)
Note that this sketch uses LED_BUILTIN to find the pin with the internal LED
*/
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // Initialize the LED_BUILTIN pin as an output
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, LOW); // Turn the LED on (Note that LOW is the voltage level
// but actually the LED is on; this is because
// it is acive low on the ESP-01)
delay(1000); // Wait for a second
digitalWrite(LED_BUILTIN, HIGH); // Turn the LED off by making the voltage HIGH
delay(2000); // Wait for two seconds (to demonstrate the active low LED)
}

Note: Make Sure the converter is connected and board is in program Download Mode.

Once uploaded you can see that the LED connected in the GPIO Pin 16 will start blinking. The LED_BUILTIN is defined different to other boards but for ThaiEasyElec’s ESPino board, the LED_BUILTIN is set to GPIO 16, if you still feel doubtful we will recommend you to initialize pin numbers manually with pinMode(Pin_number, INPUT/OUTPUT);

Note: If you are not able to get any blinking, try the serial window debugging and if you are getting any WDT(Watchdog Timer) related issues, try changing the power supply, since the WROOM board needs a stable power supply.

Hope you enjoyed this getting started tutorial, now its your turn to build some cool IoT Projects with this cheap and tiny little board. Do let us know, what you build with this little beast. We are happy to help if you found yourself in some sort of trouble.

1 Comment

Gerhard
December 28, 2018

Hi!

There is a discrepancy between the schematic and the picture of the breadboard. The 10k pull-up on nRST is not shown.