Skip to content


ESP-IDF is an official Espressif SDK for ESP32 development. It contains latest features and provides full access to chip functionality and configuration. Almost any ESP32 framework (like ESP32 Arduino) is based on ESP-IDF, which provides required low-level drivers.
In combination, Totemmaker provides totem-bsp (Board Support Package) for RoboBoard development using ESP-IDF. It contains required drivers to control on board features (like motor drivers).

Step 1. Setup ESP-IDF

Visit Getting Started to setup ESP-IDF toolchain.

Manual setup (click to expand)

Clone esp-idf project:

mkdir ~/esp
cd ~/esp
git clone --recursive
cd esp-idf
Install required tools (install.ps1 for PowerShell):
Load esp-idf environment (export.ps1 for PowerShell):
Go to your project and run: build

Step 2. Create a project

  1. Create new ESP-IDF project or use command: create-project roboboard_project
  2. Inside project create manifest file main/idf_component.yml or use command: create-manifest
  3. Add roboboard_x3 or roboboard_x4 as dependency:
## IDF Component Manager Manifest File
  # Include roboboard_x3 component
    path: roboboard_x3
## IDF Component Manager Manifest File
  # Include roboboard_x4 component
    path: roboboard_x4

Step 3. Write firmware

Include totem-bsp.h header and code into project main/roboboard_project.c file:

#include "bsp/totem-bsp.h"

void app_main(void)
    // Initialize board
    // Spin motor A at 100% power
    bsp_cmd_write(BSP_DC_POWER, BSP_PORT_A, 100);
    // Spin servo A to 500us pulse
    bsp_cmd_write(BSP_SERVO_PULSE, BSP_PORT_A, 500);
    // RoboBoard X4 LED on
    // bsp_cmd_write(BSP_LED_STATE, 0, 1);
    // bsp_cmd_write(BSP_RGB_COLOR, BSP_PORT_ALL, 0xFF00FF00);

Step 4. Build project

Build project: build

Flash to board: flash monitor

Step 5. Using Arduino IDE

For more information read following topics:

Code documentation:

Code examples:


Visit ℹ Support page to find more information or help from our community.