Esp32-Wrover User Guide
Esp32-Wrover User Guide
User Guide
Version 1.0
Copyright © 2017
About This Guide
This document is intended to help users set up the basic software development
environment for developing applications using hardware based on the ESP32-WROVER.
Through a simple example, this document illustrates how to use ESP-IDF (Espressif IoT
Development Framework), including the menu based configuration wizard, compiling the
ESP-IDF and firmware download to the ESP32 module.
The document is structured as follows.
Release Notes
Date Version Release notes
4. Configuration .......................................................................................................................... 5
6.1. op ...............................................................................................................................................8
6.3. ap ...............................................................................................................................................9
6.6. ip ..............................................................................................................................................10
1. Introduction
1.1. ESP32
ESP32 integrates Wi-Fi (2.4 GHz band) and Bluetooth 4.2 solutions on a single chip, along
with dual high performance cores and many other versatile peripherals. Powered by 40 nm
technology, ESP32 provides a robust, highly integrated platform to meet the continuous
demands for efficient power usage, compact design, security, high performance, and
reliability.
Espressif provides the basic hardware and software resources that empowers application
developers to build their ideas around the ESP32 series hardware. The software
development framework provided by Espressif is intended for rapidly developing Internet-
of-Things (IoT) applications, with Wi-Fi, Bluetooth, flexible power management and other
advanced system features.
The RF frequency range is 2.412-2.462 GHz(Wi-Fi)/2.402-2.480GHz (Bluetooth/
BLE). The maximum RF transmit power is 23 dBm.
The manufacturer is Espressif Systems (Shanghai) Pte., Ltd, which is shown at the bottom
of the product.
1.2. ESP-IDF
The Espressif IoT Development Framework (ESP-IDF for short) is a framework for
developing applications based on the Espressif ESP32. Users can develop applications in
Windows/Linux/MacOS based on ESP-IDF. It is recommended to use Linux distribution.
Lubuntu 16.04 has been used as an example in this document for illustration purposes.
Espressif ! /12
1 2017.05
2. Getting Started
!
2. Getting Started
2.1. Standard Setup of Toolchain for Linux
Depending on your experience and preferences, you may follow standard installation
process or customize your environment. Instructions immediately below are for standard
installation. To set up the system your own way go to section Customized Setup of
Toolchain.
sudo yum install git wget make ncurses-devel flex bison gperf python pyserial
sudo apt-get install git wget make libncurses-dev flex bison gperf python python-serial
• Arch:
sudo pacman -S --needed gcc git make ncurses flex bison gperf python2-pyserial
https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
• for 32-bit Linux:
https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-61-gab8375a-5.2.0.tar.gz
Download this file, then extract it in ~/esp directory
mkdir -p ~/esp
cd ~/esp
Alternatively, you may create an alias for the above command. This way you can get the
toolchain only when you need it. To do this, add different line to your ~/.bash_profile file:
Espressif ! /12
2 2017.05
2. Getting Started
!
Then when you need the toolchain you can type get_esp32 on the command line and the
toolchain will be added to your PATH.
📖 Note:
Do not miss the --recursive option. If you have already cloned ESP-IDF without this option, run another
command to get all the submodules:
cd ~/esp/esp-idf
The path previously entered in ~/.bash file (or set manually) should be printed out.
Espressif ! /12
3 2017.05
3. Start a Project
!
3. Start a Project
Now you are ready to prepare your application for ESP32. To start off quickly, we will use
get-started/hello_world project from examples directory in IDF.
Copy get-started/hello_world to ~/esp directory:
cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world .
You can also find a range of example projects under the examples directory in ESP-IDF.
These example project directories can be copied in the same way as presented above, to
begin your own projects.
📖 Note:
The ESP-IDF build system does not support spaces in paths to ESP-IDF or to projects.
Espressif ! /12
4 2017.05
4. Configuration
!
4. Configuration
You are almost there. To be able to proceed further, connect ESP32-WROVER to PC,
check under what serial port the board is visible and verify if serial communication works.
Being in terminal window, go to directory of hello_world application by typing cd ~/esp/
hello_world. Then start project configuration utility menuconfig:
cd ~/esp/hello_world
make menuconfig
If previous steps have been done correctly, the following menu will be displayed:
!
In the menu, navigate to Serial flasher config > Default serial port to configure the serial
port, where project will be loaded to. Confirm selection by pressing enter, save
configuration by selecting < Save > and then exit application by selecting < Exit >.
Here are couple of tips on navigation and use of menuconfig:
• Use up & down arrow keys to navigate the menu.
• Type ? to see a help screen. Enter key exits the help screen.
• Use Space key, or Y and N keys to enable (Yes) and disable (No) configuration items
with checkboxes “[*]“.
• Pressing ? while highlighting a configuration item displays help about that item.
Espressif ! /12
5 2017.05
5. Build and Flash
!
This will compile the application and all the ESP-IDF components, generate bootloader,
partition table, and application binaries, and flash these binaries to your ESP32 board.
esptool.py v2.0-beta2
esptool.py v2.0-beta2
Connecting........___
Uploading stub...
Running stub...
Stub running...
Changed.
Wrote 11616 bytes (6695 compressed) at 0x00001000 in 0.1 seconds (effective 920.5 kbit/s)...
Wrote 408096 bytes (171625 compressed) at 0x00010000 in 3.9 seconds (effective 847.3 kbit/
s)...
Wrote 3072 bytes (82 compressed) at 0x00008000 in 0.0 seconds (effective 8297.4 kbit/s)...
Leaving...
Hard resetting...
Espressif ! /12
6 2017.05
5. Build and Flash
!
If there are no issues, at the end of build process, you should see messages describing
progress of loading process. Finally, the end module will be reset and “hello_world”
application will start.
5.2. Monitor
To see if “hello_world” application is indeed running, type make monitor. This command is
launching IDF Monitor application:
$ make monitor
MONITOR
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
...
Several lines below, after start up and diagnostic log, you should see “Hello world!” printed
out by the application.
...
Hello world!
Restarting in 10 seconds...
Restarting in 9 seconds...
Restarting in 8 seconds...
Restarting in 7 seconds...
To exit monitor use shortcut Ctrl+]. To execute make flash and make monitor in one shoot
type make flash monitor.
Espressif ! /12
7 2017.05
6. SSC Command Reference
!
6.1. op
Description
op commands are used to set and query the Wi-Fi mode of the system.
Example
op -Q
op -S -o wmode
Parameter
Parameter Description
6.2. sta
Description
sta commands are used to scan the STA network interface, connect or disconnect AP, and
query the connecting status of STA network interface.
Example
sta -S [-s ssid] [-b bssid] [-n channel] [-h]
sta -Q
sta -D
Parameter
Parameter Description
Espressif ! /12
8 2017.05
6. SSC Command Reference
!
Parameter Description
6.3. ap
Description
ap commands are used to set the parameter of AP network interface.
Example
ap -S [-s ssid] [-p password] [-t encrypt] [-n channel] [-h] [-m max_sta]
ap –Q
ap –L
Parameter
Parameter Description
-S Set AP mode.
-h Hide ssid.
-Q Show AP parameters.
6.4. mac
Description
mac commands are used to query the MAC address of the network interface.
Example
mac -Q [-o mode]
Espressif ! /12
9 2017.05
6. SSC Command Reference
!
Parameter
Parameter Description
6.5. dhcp
Description
dhcp commands are used to enable or disable dhcp server/client.
Example
dchp -S [-o mode]
Parameter
Parameter Description
6.6. ip
Description
ip command are used to set and query the IP address of the network interface.
Example
ip -Q [-o mode]
Espressif ! /12
10 2017.05
6. SSC Command Reference
!
Parameter
Parameter Description
-Q Show IP address.
-i ip IP address.
6.7. reboot
Description
reboot command is used to reboot the board.
Example
reboot
6.8. ram
ram command is used to query the size of the remaining heap in the system.
Example
ram
Espressif ! /12
11 2017.05
FCC Warning:
Any changes or modifications not expressly approved by the party responsible for
compliance could void the user’s authority to operate the equipment.
This device complies with part 15 of the FCC Rules. Operation is subject to the following
two conditions: (1) this device may not cause harmful interference, and (2) this device must
accept any interference received, including interference that may cause undesired operaion.
This equipment complies with FCC radiation exposure limits set forth for an uncontrolled
environment. This equipment should be installed and operated with minimum distance
20cm between the radiator & your body.
This transmitter must not be co-located or operating in conjunction with any other antenna
or transmitter.