# ESP RAINMAKER TUTORIAL This tutorial walks you through the most important steps neccessary to provision ESP32-WROOM device. > [!TIP] > _WHAT'S REQUIRED:_ > > ESP32-WROOM, either a Module or DevKit
> Wi-Fi Access Point, preferrably with dedicated vLAN for IoT devices
> Smart phone with RainMaker installed ### ESP-IDF: Create a New Project Launch ESP-IDF extention on VS Code ESP-IDF. Create a New Project Specify project name, directory path and ESP32 module (ESP32-WROOM or ESP32-C3). In addition, you may state the Serial port where ESP32 Module is connected to; this setting can be changed latter, if neccessary. ESP-IDF. Create a New Project On the next screen, specify ESP Rainmaker extention and select example code to start with. For this tutorial, an example code for _ _Switch_ _ was selected. Click "Create project using template switch". ESP-IDF. Create a New Project ### Modify Template Code Make the following changes to app_main.cpp source file. Change the TAG variable as follows: ```C++ static const char *TAG = "ESP32-Nodes app main"; ``` ESP-IDF. Create a New Project ### Modify Configuration Navigate to the ESP-IDF: SDK Configuration Editor (menuconfig). Some of the default values provided by RainMaker Switch template need to be changed in order to match GPIO used to turn LED Lights on or off. Click on Example Configuration section, and change **Output GPIO** value to _4_, which corresponds to the GPIO connected to the LED lights control pin. Set **Claiming Type** to _Assisted_, and **Provisioning Transport Method** to _BLE_. ESP-IDF. Create a New Project Click _Save_ and then build the project by running the command _ESP-IDF: Build Project_. This step can take some time. ESP-IDF. Create a New Project ### Adding RainMaker Device ESP-IDF. Create a New Project ESP-IDF. Create a New Project ESP-IDF. Create a New Project ESP-IDF. Create a New Project