Human Following Robot Using Arduino and Ultrasonic Sensor

Submitted by Gourav Tak on

Working of Human Following Robot Using Arduino

In recent years, robotics has witnessed significant advancements, enabling the creation of intelligent machines that can interact with the environment. One exciting application of robotics is the development of human-following robots. These robots can track and follow a person autonomously, making them useful in various scenarios like assistance in crowded areas, navigation support, or even as companions. In this article, we will explore in detail how to build a human following robot using Arduino and three ultrasonic sensors, complete with circuit diagrams and working code. Also, check all the Arduino-based Robotics projects by following the link.

The working of a human following robot using Arduino code and three ultrasonic sensors is an interesting project. What makes this project particularly interesting is the use of not just one, but three ultrasonic sensors. This adds a new dimension to the experience, as we typically see humans following a robot built with one ultrasonic, two IR, and one servo motor.  This servo motor has no role in the operation and also adds unnecessary complications. So I removed this servo and the IR sensors and used 3 ultrasonic sensors. With ultrasonic sensors, you can measure distance and use that information to navigate and follow a human target. Here’s a general outline of the steps involved in creating such a robot.

 

 

Components Needed for Human Following Robot Using Arduino

  • Arduino UNO board ×1

  • Ultrasonic sensor ×3

  • L298N motor driver ×1

  • Robot chassis

  • BO motors ×2

  • Wheels ×2

  • Li-ion battery 3.7V ×2

  • Battery holder ×1

  • Breadboard

  • Ultrasonic sensor holder ×3

  • Switch and jumper wires

Human Following Robot Using Arduino Circuit Diagram

Here is the schematic diagram of a Human-following robot circuit.

Arduino Human Following Robot Circuit Diagram

This design incorporates three ultrasonic sensors, allowing distance measurements in three directions front, right, and left. These sensors are connected to the Arduino board through their respective digital pins. Additionally, the circuit includes two DC motors for movement, which are connected to an L298N motor driver module. The motor driver module is, in turn, connected to the Arduino board using its corresponding digital pins. To power the entire setup, two 3.7V li-ion cells are employed, which are connected to the motor driver module via a switch.

Overall, this circuit diagram showcases the essential components and connections necessary for the Human-following robot to operate effectively.

arduino human following robot circuit

Circuit Connection:

Arduino and HC-SR04 Ultrasonic Sensor Module:

HC-SR04 Ultrasonic sensor Module

  • Connect the VCC pin of each ultrasonic sensor to the 5V pin on the Arduino board.

  • Connect the GND pin of each ultrasonic sensor to the GND pin on the Arduino board.

  • Connect the trigger pin (TRIG) of each ultrasonic sensor to separate digital pins (2,4, and 6) on the Arduino board.

  • Connect the echo pin (ECHO) of each ultrasonic to separate digital pins (3,5, and 7) on the Arduino board.

Arduino and Motor Driver Module:

  • Connect the digital output pins of the Arduino (digital pins 8, 9, 10, and 11) to the appropriate input pins (IN1, IN2, IN3, and IN4) on the motor driver module.

  • Connect the ENA and ENB pins of the motor driver module to the onboard High state pin with the help of a female header.

  • Connect the OUT1, OUT2, OUT3, and OUT4 pins of the motor driver module to the appropriate terminals of the motors.

  • Connect the VCC (+5V) and GND pins of the motor driver module to the appropriate power (Vin) and ground (GND) connections on the Arduino.

Power Supply:

  • Connect the positive terminal of the power supply to the +12V input of the motor driver module.

  • Connect the negative terminal of the power supply to the GND pin of the motor driver module.

  • Connect the GND pin of the Arduino to the GND pin of the motor driver module.

Human Following Robot Using Arduino Code

Here is a simple 3 Ultrasonic sensor-based Human following robot using Arduino Uno code that you can use for your project.

Ultrsonic Sensors on Robot

This code reads the distances from three ultrasonic sensors (‘frontDistance’, ‘leftDistance’, and ‘rightDistance’). It then compares these distances to determine the sensor with the smallest distance. If the smallest distance is below the threshold, it moves the car accordingly using the appropriate motor control function (‘moveForward()’, ‘turnLeft()’, ‘turnRight()’). If none of the distances are below the threshold, it stops the motor using ‘stop()’.

In this section, we define the pin connections for the ultrasonic sensors and motor control. The S1Trig, S2Trig, and S3Trig, variables represent the trigger pins of the three ultrasonic sensors, while S1Echo, S2Echo, and S3Echo, represent their respective echo pins.

The LEFT_MOTOR_PIN1, LEFT_MOTOR_PIN2, RIGHT_MOTOR_PIN1, and RIGHT_MOTOR_PIN2 variables define the pins for controlling the motors.

The MAX_DISTANCE and MIN_DISTANCE_BACK variables set the thresholds for obstacle detection.

// Ultrasonic sensor pins
#define S1Trig 2
#define S2Trig 4
#define S3Trig 6
#define S1Echo 3
#define S2Echo 5
#define S3Echo 7
// Motor control pins
#define LEFT_MOTOR_PIN1 8
#define LEFT_MOTOR_PIN2 9
#define RIGHT_MOTOR_PIN1 10
#define RIGHT_MOTOR_PIN2 11
// Distance thresholds for obstacle detection
#define MAX_DISTANCE 40
#define MIN_DISTANCE_BACK 5

Make sure to adjust the values of ‘MIN_DISTANCE_BACK’ and ‘MAX_DISTANCE’ according to your specific requirements and the characteristics of your robot.

The suitable values for ‘MIN_DISTANCE_BACK’ and ‘MAX_DISTANCE’ depend on the specific requirements and characteristics of your human-following robot. You will need to consider factors such as the speed of your robot, the response time of the sensors, and the desired safety margin

Here are some general guidelines to help you choose suitable values.

MIN_DISTANCE_BACK’ This value represents the distance at which the car should come to a stop when an obstacle or hand is detected directly in front. It should be set to a distance that allows the car to back safely without colliding with the obstacle or hand. A typical value could be around 5-10 cm.

MAX_DISTANCE’ This value represents the maximum distance at which the car considers the path ahead to be clear and can continue moving forward. It should be set to a distance that provides enough room for the car to move without colliding with any obstacles or hands. If your hand and obstacles are going out of this range, the robot should be stop. A typical value could be around 30-50 cm.

These values are just suggestions, and you may need to adjust them based on the specific characteristics of your robot and the environment in which it operates.

These lines set the motor speed limits. ‘MAX_SPEED’ denotes the upper limit for motor speed, while ‘MIN_SPEED’ is a lower value used for a slight left bias. The speed values are typically within the range of 0 to 255, and can be adjusted to suit our specific requirements.

// Maximum and minimum motor speeds
#define MAX_SPEED 150
#define MIN_SPEED 75

The ‘setup()’ function is called once at the start of the program. In the setup() function, we set the motor control pins (LEFT_MOTOR_PIN1, LEFT_MOTOR_PIN2, RIGHT_MOTOR_PIN1, RIGHT_MOTOR_PIN2) as output pins using ‘pinMode()’ . We also set the trigger pins (S1Trig, S2Trig, S3Trig) of the ultrasonic sensors as output pins and the echo pins (S1Echo, S2Echo, S3Echo) as input pins. Lastly, we initialize the serial communication at a baud rate of 9600 for debugging purposes.

void setup() {
  // Set motor control pins as outputs
  pinMode(LEFT_MOTOR_PIN1, OUTPUT);
  pinMode(LEFT_MOTOR_PIN2, OUTPUT);
  pinMode(RIGHT_MOTOR_PIN1, OUTPUT);
  pinMode(RIGHT_MOTOR_PIN2, OUTPUT);
  //Set the Trig pins as output pins
  pinMode(S1Trig, OUTPUT);
  pinMode(S2Trig, OUTPUT);
  pinMode(S3Trig, OUTPUT);
  //Set the Echo pins as input pins
  pinMode(S1Echo, INPUT);
  pinMode(S2Echo, INPUT);
  pinMode(S3Echo, INPUT);
  // Initialize the serial communication for debugging
  Serial.begin(9600);
}

This block of code consists of three functions (‘sensorOne()’, ‘sensorTwo()’, ‘sensorThree()’) responsible for measuring the distance using ultrasonic sensors.

The ‘sensorOne()’ function measures the distance using the first ultrasonic sensor. It's important to note that the conversion of the pulse duration to distance is based on the assumption that the speed of sound is approximately 343 meters per second. Dividing by 29 and halving the result provides an approximate conversion from microseconds to centimeters.

The ‘sensorTwo()’ and ‘sensorThree()’ functions work similarly, but for the second and third ultrasonic sensors, respectively.

// Function to measure the distance using an ultrasonic sensor
int sensorOne() {
  //pulse output
  digitalWrite(S1Trig, LOW);
  delayMicroseconds(2);
  digitalWrite(S1Trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(S1Trig, LOW);
  long t = pulseIn(S1Echo, HIGH);//Get the pulse
  int cm = t / 29 / 2; //Convert time to the distance
  return cm; // Return the values from the sensor
}
//Get the sensor values
int sensorTwo() {
  //pulse output
  digitalWrite(S2Trig, LOW);
  delayMicroseconds(2);
  digitalWrite(S2Trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(S2Trig, LOW);
  long t = pulseIn(S2Echo, HIGH);//Get the pulse
  int cm = t / 29 / 2; //Convert time to the distance
  return cm; // Return the values from the sensor
}
//Get the sensor values
int sensorThree() {
  //pulse output
  digitalWrite(S3Trig, LOW);
  delayMicroseconds(2);
  digitalWrite(S3Trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(S3Trig, LOW);
  long t = pulseIn(S3Echo, HIGH);//Get the pulse
  int cm = t / 29 / 2; //Convert time to the distance
  return cm; // Return the values from the sensor
}

In this section, the ‘loop()’ function begins by calling the ‘sensorOne()’, ‘sensorTwo()’, and ‘sensorThree()’ functions to measure the distances from the ultrasonic sensors. The distances are then stored in the variables ‘frontDistance’, ‘leftDistance’, and ‘rightDistance’.

Next, the code utilizes the ‘Serial’ object to print the distance values to the serial monitor for debugging and monitoring purposes.

void loop() {
  int frontDistance = sensorOne();
  int leftDistance = sensorTwo();
  int rightDistance = sensorThree();
  Serial.print("Front: ");
  Serial.print(frontDistance);
  Serial.print(" cm, Left: ");
  Serial.print(leftDistance);
  Serial.print(" cm, Right: ");
  Serial.print(rightDistance);
  Serial.println(" cm");

In this section of code condition checks if the front distance is less than a threshold value ‘MIN_DISTANCE_BACK’ that indicates a very low distance. If this condition is true, it means that the front distance is very low, and the robot should move backward to avoid a collision. In this case, the ‘moveBackward()’ function is called.

if (frontDistance < MIN_DISTANCE_BACK) {
    moveBackward();
    Serial.println("backward");

If the previous condition is false, this condition is checked. if the front distance is less than the left distance, less than the right distance, and less than the ‘MAX_DISTANCE’ threshold. If this condition is true, it means that the front distance is the smallest among the three distances, and it is also below the maximum distance threshold. In this case, the ‘moveForward()’ function is called to make the car move forward.

else if (frontDistance < leftDistance && frontDistance < rightDistance && frontDistance < MAX_DISTANCE) {
    moveForward();
    Serial.println("forward");

If the previous condition is false, this condition is checked. It verifies if the left distance is less than the right distance and less than the ‘MAX_DISTANCE’ threshold. This condition indicates that the left distance is the smallest among the three distances, and it is also below the minimum distance threshold. Therefore, the ‘turnLeft()’ function is called to make the car turn left.

else if (leftDistance < rightDistance && leftDistance < MAX_DISTANCE) {
    turnLeft();
    Serial.println("left");

If neither of the previous conditions is met, this condition is checked. It ensures that the right distance is less than the ‘MAX_DISTANCE’ threshold. This condition suggests that the right distance is the smallest among the three distances, and it is below the minimum distance threshold. The ‘turnRight()’ function is called to make the car turn right.

else if (rightDistance < MAX_DISTANCE) {
    turnRight();
    Serial.println("right");

If none of the previous conditions are true, it means that none of the distances satisfy the conditions for movement. Therefore, the ‘stop()’ function is called to stop the car.

 else {
    stop();
    Serial.println("stop");

In summary, the code checks the distances from the three ultrasonic sensors and determines the direction in which the car should move based on the 3 ultrasonic sensors with the smallest distance.

 

Important aspects of this Arduino-powered human-following robot project include:

  • Three-sensor setup for 360-degree human identification
  • Distance measurement and decision-making in real-time
  • Navigation that operates automatically without human assistance
  • Avoiding collisions and maintaining a safe following distance

 

 

Technical Summary and GitHub Repository 

Using three HC-SR04 ultrasonic sensors and an L298N motor driver for precise directional control, this Arduino project shows off the robot's ability to track itself. For simple replication and modification, the full source code, circuit schematics, and assembly guidelines are accessible in our GitHub repository. To download the Arduino code, view comprehensive wiring schematics, and participate in the open-source robotics community, visit our GitHub page.

Code Schematics Download Icon

 

Frequently Asked Questions

⇥ How does an Arduino-powered human-following robot operate?
Three ultrasonic sensors are used by the Arduino-powered human following robot to determine a person's distance and presence. After processing this data, the Arduino manages motors to follow the identified individual while keeping a safe distance.

⇥ Which motor driver is ideal for an Arduino human-following robot?
The most widely used motor driver for Arduino human-following robots is the L298N. Additionally, some builders use the L293D motor driver shield, which connects to the Arduino Uno directly. Both can supply enough current for small robot applications and manage 2-4 DC motors.

⇥ Is it possible to create a human-following robot without soldering?
Yes, you can use motor driver shields that connect straight to an Arduino, breadboards, and jumper wires to construct a human-following robot. For novices and prototyping, this method is ideal.

⇥ What uses do human-following robots have in the real world?
Shopping cart robots in malls, luggage-carrying robots in airports, security patrol robots, elderly care assistance robots, educational demonstration robots, and companion robots that behave like pets are a few examples of applications.

 

Conclusion

This human following robot using Arduino project and three ultrasonic sensors is an exciting and rewarding project that combines programming, electronics, and mechanics. With Arduino’s versatility and the availability of affordable components, creating your own human-following robot is within reach.

Human-following robots have a wide range of applications in various fields, such as retail stores, malls, and hotels, to provide personalized assistance to customers. Human-following robots can be employed in security and surveillance systems to track and monitor individuals in public spaces. They can be used in Entertainment and events, elderly care, guided tours, research and development, education and research, and personal robotics.

They are just a few examples of the applications of human-following robots. As technology advances and robotics continues to evolve, we can expect even more diverse and innovative applications in the future.

Explore Practical Projects Similar To Robots Using Arduino

Explore a range of hands-on robotics projects powered by Arduino, from line-following bots to obstacle-avoiding vehicles. These practical builds help you understand sensor integration, motor control, and real-world automation techniques. Ideal for beginners and hobbyists, these projects bring theory to life through interactive learning.

 Simple Light Following Robot using Arduino UNO

Simple Light Following Robot using Arduino UNO

Today, we are building a simple Arduino-based project: a light-following robot. This project is perfect for beginners, and we'll use LDR sensor modules to detect light and an MX1508 motor driver module for control. By building this simple light following robot you will learn the basics of robotics and how to use a microcontroller like Arduino to read sensor data and control motors.

Line Follower Robot using Arduino UNO: How to Build (Step-by-Step Guide)

Line Follower Robot using Arduino UNO: How to Build (Step-by-Step Guide)

This step-by-step guide will show you how to build a professional-grade line follower robot using Arduino UNO, with complete code explanations and troubleshooting tips. Perfect for beginners and intermediate makers alike, this project combines hardware interfacing, sensor calibration, and motor control fundamentals.

Have any question related to this Article?

How to Use Height Hold Mode in LiteWing ESP32 Drone?

Flying a drone manually requires constant attention to throttle control. One moment of distraction and your drone either crashes into the ground or flies away into the ceiling. If you're building your LiteWing from scratch, check out our detailed step-by-step LiteWing assembly guide to get started with your build.  This is where Drone height hold mode becomes a game-changer for drone pilots of all skill levels. Height hold drone automatically maintains your drone at a specific height, letting you focus on horizontal movement while the flight controller handles the vertical stability.

LiteWing drone demonstrating height hold mode with automatic altitude control and hovering stability

The LiteWing drone, an open-source ESP32-powered drone that evolved from our popular DIY WiFi-controlled drone project, makes implementing altitude hold mode drone surprisingly straightforward. Unlike expensive commercial drones that come with this feature built in, height hold mode in LiteWing allows you to understand and build this functionality yourself. In this tutorial, we'll walk you through adding height hold capability to your LiteWing using the VL53L1X Time-of-Flight (ToF) sensor using both the cfclient software and our updated LiteWing mobile App. The LiteWing includes dedicated solder pads on the bottom side of the PCB frame to attach the off-the-shelf VL53L1X module directly.

LiteWing VL53L1X Solder pad GIF

This laser-ranging sensor provides millimetre-accurate distance measurements up to 4 meters, making it perfect for indoor flight applications and precise altitude control drone operations. The VL53L1X communicates over I2C and integrates seamlessly with LiteWing's existing flight control firmware. Once connected, the sensor continuously measures the distance to the ground, and the flight controller uses this data to adjust motor speeds and maintain your desired height automatically.

Comparison chart showing manual drone control vs automated height hold mode with altitude stabilisation

 

Manual Control vs Height Hold Mode

FeatureManual ControlHeight Hold Mode
Throttle ManagementConstant pilot input requiredAutomatic altitude maintenance
Skill Level RequiredIntermediate to advancedBeginner-friendly
StabilityDepends on pilot skillConsistent hovering height
Battery EfficiencyVariable (pilot-dependent)Optimized for longer flight time
Best Use CaseAcrobatic flying, racingAerial photography, surveying, learning

What is Height Hold Mode in Drones?

Height hold mode will convert your drone from being operated manually on your behalf to an autonomous height-holding platform. This mode uses multiple sensors along with advanced algorithms to hold a set height without input from the user, which is necessary for reliable operations.

The Significance of Height Hold:

  • Hands-free hover: Can maintain an altitude and gives the operator the ability to concentrate on video capture or avoiding obstacles.
  • Decreased workload: Relieves the pilot from frequent throttle control, particularly important for less experienced pilots.
  • More time in the air: Allows for optimal performance of the motors to gain more time in the air by not using unnecessary power to gain or lose height.
  • Increased safety: Prevents unintended loss of controlled altitude that could cause a crash or fly-away.
  • Better Aerial Photography: A stable platform allows for smoother video and pictures, and will produce higher quality.
  • Increased accuracy: A must for indoor pilots and for inspection work and confined spaces.

How Height Hold Mode Works

Height hold in drone mode transforms your drone from a manually controlled aircraft into an autonomous hovering platform. This advanced altitude control drone uses multiple sensors and sophisticated algorithms to maintain a constant height without pilot intervention.

Drone's height hold operates as a closed-loop feedback control system that continuously compares the drone's actual height with a predetermined target height. When you activate height hold mode, the flight controller captures the current height as the reference point and works to maintain this position regardless of external disturbances.

The height hold in drone systems consists of several interconnected components working in perfect harmony:

  • Sensor Array: Multiple height measurement devices provide redundant height data
  • Flight Controller: The central processing unit that interprets sensor data and makes control decisions
  • PID Controller: A mathematical algorithm that calculates precise motor adjustments
  • Motor Control System: Electronic speed controllers that modify rotor speeds based on flight controller commands
  • Feedback Loop: Continuous sensor readings create a responsive system that adapts to changing conditions
Flowchart diagram showing drone height hold control loop with sensor input, PID controller, and motor output for altitude maintenance

Types of Sensors Used for Altitude Control in Drones

Modern altitude hold mode drone systems employ various sensor technologies for height measurement, each with distinct advantages and limitations. Understanding these differences helps you choose the right sensor for your specific altitude control drone application.

Sensor TypeRangeAccuracyBest ForLimitations
Barometric PressureUnlimited altitude±1-3 metersOutdoor high-altitude flightWeather-dependent, measures altitude not ground distance
Ultrasonic0-8 meters±2-5 cmLow-cost indoor applicationsAffected by soft surfaces, wind interference
ToF Laser (VL53L1X)0-4 meters±1 mmPrecision indoor hoveringLimited range, bright sunlight interference
GPS + BarometerUnlimited±2-5 metersOutdoor navigation, waypointsNo indoor functionality, GPS dependency

Barometric Pressure Sensors for Height Hold

Barometric Pressure Sensors measure atmospheric pressure changes to determine altitude. These sensors work well for maintaining height over large areas, but can be affected by weather changes and air currents. They're particularly useful for outdoor flight at higher altitudes where pressure differences are more pronounced. 

Technically, this is altitude hold rather than height hold, since barometric sensors measure altitude above sea level (absolute altitude) rather than distance from the ground below (relative height). A drone using only barometric sensors will maintain the same pressure altitude even if flying over terrain that rises or falls, potentially resulting in varying distances from the ground. For this reason, barometric sensors are often combined with ground-relative sensors like ToF or ultrasonic for comprehensive altitude control drone systems.

LiteWing drone adjusting altitude in real-time using barometric pressure sensor for altitude hold mode

Ultrasonic Sensors for Height Hold

Ultrasonic Sensors emit sound waves and measure the time for echoes to return from the ground. While cost-effective and reliable at close range (typically under 8 meters), they can struggle with soft surfaces like grass or carpet that absorb sound waves. Wind can also deflect the sound waves, causing inaccurate readings and affecting drone height hold performance.

Ultrasonic sensor emitting sound waves for measuring ground distance in drone height hold system

Time-of-Flight (ToF) Laser Sensors for Precision Height Hold

Time-of-Flight (ToF) Laser Sensors use infrared laser pulses to measure distance with high precision. These sensors offer excellent accuracy across various surface types and lighting conditions, making them ideal for indoor flight and precise hovering applications. ToF sensors are the preferred choice for height hold mode in LiteWing and similar DIY drone projects.

ToF sensor calculating and displaying precise drone height measurement for altitude control

PID Controller: The Brain Behind Height Hold Mode

The heart of height hold in drone functionality lies in the PID controller algorithm, just as with other flight controller functionalities that utilise PID. This mathematical system doesn't just react to height errors—it predicts and prevents them. The PID controller continuously adjusts motor speeds dozens of times per second to maintain the desired height.

VL53L1X ToF Sensor for Implementing Drone Height Hold

The VL53L1X Time-of-Flight sensor represents cutting-edge technology specifically designed for precise distance measurement in drone measurement in drone height hold applications. This laser-ranging sensor provides the accuracy and reliability essential for effective altitude hold mode drone functionality. The VL53L1X operates using Class 1 laser safety standards, emitting infrared light at a 940nm wavelength.

VL53L1X Time-of-Flight sensor chip for precise altitude measurement in drone height hold systems

VL53L1X Technical Specifications for Height Hold

Measurement Range:4cm to 4 meters with high accuracy
Update Rate: Up to 50Hz for real-time altitude feedback
Accuracy: ±3% at 1 meter distance under optimal conditions
Field of View: Narrow 27° cone for precise ground targeting
Supply Voltage: 2.6V to 3.5V operation
Interface: I2C communication protocol
Current Consumption: 20mA active, 5μA standby

VL53L1x Sensor Working Principle
The VL53L1X uses Direct Time-of-Flight measurement, where the sensor emits short infrared laser pulses and measures the precise time required for light to travel to the target and return. Unlike indirect ToF methods that measure phase differences, direct ToF provides absolute distance measurements independent of surface reflectivity variations.

The sensor incorporates a Vertical Cavity Surface Emitting Laser (VCSEL) array and a Single Photon Avalanche Diode (SPAD) detector array. This combination enables the detection of individual photons, allowing measurements even from surfaces with low reflectivity. For optimal flight time with height hold enabled, selecting the right battery is essential, learn more in our comprehensive guide on how to choose the right battery for your LiteWing drone.

Limitations of VL53L1x ToF Sensor

While highly effective, the VL53L1X has operational limitations:

  • Bright Light Interference: Intense sunlight or bright artificial lighting can saturate the photon detector, reducing accuracy
  • Maximum Range: A 4-meter limit requires alternative sensors for higher altitude operations
  • Power Consumption: Active laser operation draws more current than passive sensors
  • Reflective Surfaces: Highly reflective surfaces may cause measurement errors due to specular reflection

VL53L1X Module

VL53L1x Module

For ease of use, we have used an off-the-shelf VL53L1x module with the LiteWing. We have connected it to the LiteWing drone using SMD male pin headers. Keep in mind that there are different modules with different boards and pin layouts in the market. So, choose the one that looks similar to the one shown in the above picture if you are planning to attach it to the bottom pads of the LiteWing.

VL53L1X Module Parts Marking

The image below shows the typical component arrangement in a VL53L1x module. As you can see, the module has a bare minimum of components. Apart from the VL53L1x sensor itself, the module has a 3.3V regulator along with level-shifting circuitry and some bypass capacitors. The inbuilt voltage regulator and the level-shifting circuit ensure that the module can be used with either 5V or 3.3V circuits.

Height Hold Sensor Parts Marking VL53L1x module

VL53L1X Module Pinout and Connections

Standard breakout modules feature the following pin configuration:

VL53L1x Module Pinout

 VIN  - Positive Voltage Input Pin.

 GND  - Ground Voltage Input Pin.

 SCL  - I2C Serial Clock Pin.

 SDA  - I2C Serial Data Pin.

 GPIO1  - Interrupt output.

 XSHU  - Shutdown Pin, Active Low.

The VIN pin is used to supply power to the module. It typically accepts a regulated input voltage such as 3.3V or 5V, depending on the board design. The GND pin serves as the electrical ground, providing a common reference point for the power supply and signal levels. Communication with the module is achieved via the I2C interface, which uses two pins: SCL for synchronising data transfer, and SDA for sending and receiving data between the sensor and the microcontroller. In addition to these, the module includes a GPIO1 pin, which can be configured as an interrupt output to notify the host system when new ranging data is available or when a specific condition is met. Lastly, the XSHUT pin functions as a hardware shutdown control. It is an active low input, meaning the module enters a low power state when this pin is pulled to ground, and resumes normal operation when driven high.

Installing VL53L1X Sensor for Height Hold Mode in LiteWing

In the LiteWing platform, the VL53L1X connects to the flight controller via the secondary I2C interface, since the primary I2C in LiteWing is used to connect with the IMU onboard. The sensor mounts on the drone's underside with the laser aperture facing downward. You can either use the dedicated pads on the bottom side of the LiteWing or the SDA1 and SCL1 pins available on the GPIO header to interface the VL53L1x sensor module with LiteWing, streamlining the drone height hold setup process.

.

VL53L1X ToF sensor properly mounted on LiteWing drone bottom for height hold altitude control

Flying LiteWing in Height Hold Mode

Now that we are familiar with how the drone height hold works, let's look at how to use it. Flying the LiteWing drone is pretty easy. For that, make sure to attach the VL531X sensor module securely to the LiteWing drone. Once done, all you have to do is first install the latest version of the LiteWing App from the Google Play Store or the Apple App Store. To know more details about configuring and using the LiteWing app, please check out our LiteWing app tutorial( hyperlink). Once the app is configured properly, open the app and connect to the drone. Once it's connected, click on the height hold button. Flying the LiteWing with height hold mode in LiteWing activated transforms your piloting experience, making stable hovering as simple as pressing a button.

LiteWing App with Height Hold Button

Now, when the set target height option is shown, set your desired height for the drone and click on the start button.

LiteWing App Target Height Settings

The drone will count down to three and take off on its own. Once the set height is reached, the LiteWing will automatically hold the height and hover at that. Now you can start flying the LiteWing drone by simply using the roll and pitch controls.

Using cfClient Software for Advanced Height Hold Control

To use the height hold in drone in cfClient, make sure to install and configure the cfClient following the instructions in the How to use Crazyflie cfClient with Litewing tutorial. One thing to keep in mind that to don’t forget to configure the assist control button in the input device configuration. You can also find detailed instructions to do that in the previously linked tutorial. Once everything is configured correctly, turn on the LiteWing drone with the ToF sensor installed and connect to its WiFi. Once the WiFi is connected, connect to the LiteWing using the connect button in the cfClient. Once connected, you can see that the height hold mode in the Assist mode menu is now active.

LiteWing mobile app interface showing height hold button for altitude hold mode activation

Now, to use the height hold mode, make sure to select the height hold mode in the Assist mode dropdown menu. You can set your preferred height at which the LiteWing drone needs to be hovering in the gamepad input menu. You can see the default value is around 0.4 meters. Make sure this value is between 0.1 and 3meters for the best result.

LiteWing app target height settings screen for configuring drone altitude hold parameters

Once the desired height is set, press and hold the assist control button in the controller. The drone will automatically take off and hover at the set height. To keep flying the drone, you must keep pressing the assist control button, and to land, just release the button; the drone will reduce the motor speed and land. Here is a demo showcasing the height hold functionality of the LiteWing drone.

LiteWing Take off Height Hold Demo

 

FAQ - Height Hold Mode in LiteWing

⇥ 1. Why does the height hold not work with the LiteWing drone?
Make sure to attach the VL53L1X sensor module to the drone.

⇥ 2. Even after connecting the ToF sensor, the height hold mode is not working with the LiteWing.
Make sure all the connections are correct. And you can check if the sensor is detected or not in the boot log.

⇥ 3. The height hold is working fine indoors, but not outdoors. Why?
Since the Vl53L1X sensor is an optical sensor, bright light can affect its functionality. If the outdoors is too sunny, it can affect the sensor. We would recommend using the height hold mode indoors.

⇥ 4. Height hold is working fine with the app, but not with cfclient. Why?
In the cfClient, the assist mode must be set to height hold. Also, you should use the assist control button for takeoff.

Other LiteWing Related Projects & Tutorials

Ready to take your LiteWing drone to the next level? Check out these related projects and tutorials that expand your drone's capabilities with gesture control, mobile apps, and advanced flight features.

DIY Gesture Control Drone using Python with LiteWing and ESP32

DIY Gesture Control Drone using Python with LiteWing and ESP32

In this article, we are going to show you how you can build a gesture control drone using the ESP32 dev module along with an MPU-6050.

LiteWing-ESP32 Drone gets New Mobile App

LiteWing-ESP32 Drone gets New Mobile App

Fly your LiteWing ESP32 drone with the new mobile app. Enjoy height hold, battery alerts, smooth landing, and easy controls on both Android and iOS 

 How to Program LiteWing Drone using Python with Crazyflie Cflib Python SDK

How to Program LiteWing Drone using Python with Crazyflie Cflib Python SDK

In this article, we will focus only on Cflib, which is a Python SDK from Crazyflie that allows you to write your own Python code to control your LiteWing drone. If you are not a fan of Python programming, you can also program your LiteWing using Arduino and directly reflash your ESP32, but that is for a different tutorial.

Have any question related to this Article?

Kevin Hess on Mouser’s Global Marketing Strategy and India’s Growing Role

Submitted by Abhishek on

During electronica India and productronica India 2025, CircuitDigest sat down with Kevin Hess, Senior Vice President of Marketing at Mouser. The discussion covered his 35-year career at Mouser, shifts in electronics marketing, and the company’s outlook for India. The veteran reflected on the days of catalog-based sales and how he witnessed it transform into the current digital era.

Power Integrations’ Switcher ICs Let Engineers Pick between GaN, SiC, or Silicon - electronica India 2025

Submitted by Abhishek on

Power Integrations displayed a wide array of new tech for applications including EVs, railways, industrial power supplies, and renewable energy systems at electronica 2025. In their booth, we met with Andrew Smith, their Director of Technical Outreach and Director of Training, who walked us through some of the key highlights. The company showcased its range of switch technologies featuring integrated switcher ICs with voltage ratings of 750 V, 900 V, 1250 V, and 1700 V. Smith underscored, "This makes our integrated switcher ICs very good for the Indian environment."

The company uses three semiconductor materials in their switches: silicon, gallium nitride (referred to as "PowiGaN"), and silicon carbide. The GaN tech is their in-house replacement for traditional MOSFETs in their flyback switcher ICs. Engineers can use the same converter IC with different switch tech on the inside, making it far less of a challenge to select the best tech for their needs. "Our aim is to make it very easy for the engineer to use whichever of those technologies they would like to explore by using the same converter IC with a different switch inside," said Smith.

He pointed out to us a 70-watt design of a bridge switch inverter driver board that was accompanied by support software. The software served as a virtual oscilloscope and offered performance monitoring by capturing characteristics of a motor. The demo used a single-output motor. He emphasized the minimal power consumption quality of the company’s bridge switch technology in standby mode. A 150-watt motor on display used as little as 8 milliwatts.

The company also showcased LLC half-bridge designs for EV and tool chargers, featuring a 720-watt design with programmable current charging for applications including two-wheeler chargers, using their HiperLCS-2 family and Power Factor Controller ICs. Additionally, they demonstrated their gate driver technology portfolio, including fully integrated three-level gate driver architectures and dedicated gate driver boards for power modules across alternative energy, thermal, and automotive applications.

From the company’s press release, the RDK-85SLR is their reference design kit for solar-powered race cars targeted at student teams to compete in the Bridgestone World Solar Challenge. The kit features the InnoSwitch3-AQ flyback power supply IC, which uses the company’s PowiGaN switch tech. With no need for a heatsink, the kit includes all you will need to build a 46-watt power supply that can briefly deliver up to 80 watts. The kit takes inspiration from a design created by Power Integrations' PowerPros engineers in collaboration with ETH Zurich's aCentauri team. The team’s #85 ‘Silvretta’ challenger-class car uses the design to improve auxiliary power supply efficiency. 

Have any question related to this Article?

Getting Started with ESP32-S3-BOX-3: AIoT Development Board

Finding the right ESP32-S3 development kit often means compromising between functionality and deployment readiness. With so many ESP32-S3 dev kits out there, we have been searching for a ready-to-deploy module that doesn’t require extra work like designing enclosures or 3D printing cases. These things can significantly increase the deployment time. One such kit we found is Espressif’s ESP32-S3-BOX-3.

CircuitDigest presents the Smart Home & Wearables Project Contest 2025! Win exciting prizes worth up to ₹7,00,000 and receive free development boards through our partnership with DigiKey. For registration, dive into contest details. 

This isn't just another development board thrown into a generic case. The ESP32-S3-BOX-3 development board is a modern kit designed for AIoT, Edge AI, and industrial IoT projects. The ESP32-S3-BOX-3 runs on the ESP32-S3 chip technology, and it is housed in an attractive, pre-assembled case to ensure you can get started without any extra work. You also have plenty of options to expand to easily customise for different project scenarios. It is compatible with Espressif’s software platform choices, such as ESP-BOX, ESP-SR, ESP-Rainmaker, and ESP-Matter, enabling everything from quick prototypes up to full-featured IoT applications. With such a clean design and flexible features, this modern kit is certainly a worthy addition to the development board category.

With all these features, it makes a perfect choice for our upcoming Smart Home and Wearable Project Challenge, where you can win prizes of up to Rs. 7,00,000. You can also win a development board and some cool goodies just by sharing your project ideas. So don’t forget to check out the Smart Home and Wearable Project Challenge for more details.

Let’s take a closer look at the ESP32-S3-BOX-3.

What's Included in the ESP32-S3-BOX-3 Development Board Package?

The unboxing is a little interesting as we get a lot of usable accessories with the ESP32-S3-BOX-3 kit. Below you can see the unboxing image.

ESP32-S3-BOX-3 AIoT kit package contents including development board and accessories

This dev kit comes with the following accessories,

ESP32-S3-BOX-3:The main unit that can work on its own
ESP32-S3-BOX-3-DOCK:A functional accessory serving as a stand for the main box
ESP32-S3-BOX-3-SENSOR:A functional accessory showcasing sensor applications
ESP32-S3-BOX-3-BRACKET:An adapter accessory for mounting the main box to other devices
ESP32-S3-BOX-3-BREAD:An adapter accessory for easy connection of the main box to a standard breadboard
A USB-C:Power cable
RGB LED Module and Dupont Wires:For testing

We received all this in a little big box. Inside were foam moulds holding all the accessories in place. It’s nicely packed. It might be tricky to perfectly place all the components back in the same spot again. Sometimes it gets confusing to repeat, as all the accessories are tightly packed. So, remember the positions of components while taking them out.

Next, let’s look at the feature that makes us more excited about this dev kit.

Key Features of the Espressif ESP32-S3-BOX-3

To make this development kit outstanding and usable for AI and IoT applications, it comes packed with a rich set of features.

ESP32-S3-BOX-3 Quick Reference

ESP32-S3 Dual-Core Microcontroller –Powerful dual-core Xtensa 32bit LX7 processor running up to 240 MHz with built-in Wi-Fi and Bluetooth connectivity.
Generous Memory Configuration –512 KB SRAM and 384 KB ROM for robust application development, plus 16 MB Octal SPI PSRAM and 16 MB Quad SPI External Flash for extensive storage.
Advanced AI Capabilities –Built-in neural network processing, acoustic algorithms, and computing acceleration for vector operations, complex numbers, and FFT calculations.
2.4-inch Colour LCD Display –Crisp 240 x 320 pixel resolution display with SPI interface running at 40 MHz, driven by ILI9342C controller for vibrant visuals.
10-Point Capacitive Touch Screen –Multi-touch support for intuitive user interaction and gesture recognition.
Wireless Connectivity –2.4 GHz IEEE 802.11b/g/n Wi-Fi with Bluetooth 5 LE and Bluetooth mesh support for versatile IoT applications.
High-Quality Audio System – Dual microphone setup with EST2210 ADC model, mute support, 8 Ohm 1W speaker with NS4150 PA model, and ES8311 codec for crystal-clear audio processing.
Advanced Motion Sensing –3-axis gyroscope and 3-axis accelerometer (ICM-42607-P sensor model) for motion detection and orientation tracking.
Versatile Interface Options –USB Type-C port for power, USB download/JTAG debug, and general USB device functions, plus Goldfinger connector for I/O expansion.
User-Friendly Controls –Onboard Reset, Boot, and Mute buttons with Power LED and Mute LED indicators for easy operation and status monitoring.
Experimental High-Speed PSRAM – 120 MHz PSRAM speed capability for demanding real-time applications.
Compact and Lightweight Design –Measuring just 61 x 66 x 16.6 mm and weighing only 292g, perfect for portable projects.
Flexible Power Options –USB-C power input (5V - 2.0A) with no battery dependency for continuous operation.
Professional Development Support –Ships with FreeRTOS and supports ESP-IDF SDK for professional embedded development.

On the software side, it can be programmed with ESP-IDF or Arduino IDE, and it supports various AI frameworks for machine learning applications. The combination of powerful processing capabilities and rich sensor integration makes it ideal for voice recognition, image processing, and intelligent IoT projects.

ESP32-S3-BOX-3 Applications and Use Cases

Let me add some of the possible applications of this ESP32-S3-Box-3 development board, which will give you a better idea.

  1. Smart Home Control: Voice commands, touch interface for lights, appliances, and security systems
  2. Voice Assistants: Custom wake word detection, speech recognition, and audio response systems
  3. Industrial HMI: Machine control panels, process monitoring, and operator interfaces
  4. AI Edge Computing: Real-time object detection, facial recognition, and predictive analytics
  5. Interactive Displays: Digital signage, information kiosks, and customer engagement systems
  6. Healthcare Monitoring: Patient vitals tracking, medication reminders, and wellness applications
  7. Educational Projects: IoT learning platforms, STEM demonstrations, and programming tutorials
  8. Motion Control: Gesture recognition, orientation sensing, and movement-based interfaces
  9. Audio Processing: Sound analysis, noise monitoring, and acoustic pattern recognition
  10. Wireless IoT: Remote monitoring, data collection, and cloud-connected applications
  11. Prototyping Platform: Rapid development of AI-powered devices and smart solutions
  12. Environmental Sensing: Climate monitoring, air quality tracking, and automated responses

ESP32-S3-BOX-3 Development Board: Physical Overview

Now that we know all the features, let’s move to the physical overview. Since the Espressif Systems esp32 s3 box 3 aiot kit comes with multiple accessories, we'll look at each part, starting with the main unit.

ESP32-S3-BOX-3 Main Unit

The main highlight of the ESP32-S3-BOX-3 is its compact form factor with a boxy design.

ESP32-S3-BOX-3 development board orthographic view showing display buttons and USB-C port

Above, you can see all the peripherals marked in the orthographic view.

It has some unique built-in peripherals like a small 2.4” LCD with capacitive touch support, a pair of microphones at the top of the front screen, a customizable touch button (marked as O) below the display, a speaker on the right, a boot mode selection button, a reset button, and a USB Type-C port on the left side. On the top, you’ll find a mute button, power and mute LED indicators, and finally, a beautiful PCIe X1 connector where all the accessories can be attached.

And now, let’s look in detail at each component and some of the internals.

Microcontroller

  • Chipset: ESP32-S3
  • CPU: Dual-Core Xtensa® 32-bit LX7, up to 240 MHz
  • SRAM: 512 KB
  • ROM: 384 KB
  • PSRAM: 16 MB (Octal SPI, 120 MHz experimental)
  • External Flash: 16 MB (Quad SPI)

Memory & AI Features

  • AI Support: Neural Network, Acoustic algorithm support
  • Acceleration: Vector, Complex number, FFT, etc.

Wireless

  • Wi-Fi: 2.4 GHz, IEEE 802.11 b/g/n
  • Bluetooth: Bluetooth® 5 LE, Bluetooth® mesh

Display

  • Type: 2.4-inch TFT LCD
  • Resolution: 320 × 240 pixels
  • Driver IC: ILI9342C
  • Interface: SPI, up to 40 MHz
  • Touch: Capacitive, 10-point

GPIO Connections:

  • DC → GPIO4
  • CS → GPIO5
  • SDA → GPIO6
  • SCK → GPIO7
  • RST → GPIO48
  • CTRL → GPIO47

Audio Input

  • Microphone: Dual mic
  • ADC: ES7210 (High-performance 4-channel audio ADC)
  • Interface:
    • Config via I²C (0x40)
    • Audio via I²S

GPIO Connections:

  • I²S_MCLK → GPIO2
  • I²S_SCLK → GPIO17
  • I²S_LRCK → GPIO45
  • I²C_SCL → GPIO18
  • I²C_SDA → GPIO8

Audio Output

  • Codec: ES8311 (Low-power mono audio codec)
  • Amplifier: NS4150B (3W mono Class-D audio amp)
  • Speaker: 8 Ω, 1 W (driven via NS4150B)
  • Interfaces:
    • Config via I²C
    • Audio via I²S

GPIO Connections:

  • I²C_SDA → GPIO8
  • I²C_SCL → GPIO18
  • I²S_MCLK → GPIO2
  • I²S_SCLK → GPIO17
  • I²S_LRCK → GPIO45
  • I²S_CODEC_DSDIN → GPIO15
  • PA_CTRL → GPIO46

Controls & Indicators

  • Mute Button: Hardware switch (buffer + D flip-flop to cut ADC line & power)
  • Status Pin: GPIO1 (MUTE_STATUS_L)
  • Onboard Buttons: Reset, Boot, Mute
  • Onboard LEDs: Power LED, Mute LED

Security

  • Chip: ATECC608A (Crypto chip)
  • Features: Hardware encryption, TLS acceleration, secure cloud authentication
  • GPIO Connections:
    • I²C_SCL → GPIO18
    • I²C_SDA → GPIO8

Sensors

  • Type: 6-axis motion sensor (3-axis gyro + 3-axis accelerometer)
  • Model: ICM-42607-P
  • Interface: I²C (0x68)
  • GPIO Connections:
    • I²C_SCL → GPIO18
    • I²C_SDA → GPIO8

Interfaces

  • USB Type-C: Power, USB download, JTAG debug, general USB device functions
  • Goldfinger (PCIe x1 style): Provides GPIO & power I/O expansion
  • OS / SDK
  • OS: FreeRTOS
  • SDK: ESP-IDF

Power

  • USB-C Input: 5 V, 2.0 A
  • Battery: Not available

Outline

  • Dimensions: 61 × 66 × 16.6 mm
  • Weight: 292 g

That’s all packed inside the ESP32-S3-BOX-3 itself. Now, let’s move on to the kit accessories.

ESP32-S3-BOX-3 Accessories Comparison

AccessoryPrimary FunctionBest Use Case
DOCKStand with Pmod headers, USB-A portDesktop projects, USB peripherals
SENSORTemp/Humidity, Radar, IR, BatteryEnvironmental monitoring, portable apps
BRACKETMounting adapterRetrofitting existing devices
BREADBreadboard adapterPrototyping and testing

ESP32-S3-BOX-3-DOCK Expansion Module

ESP32-S3-BOX-3-DOCK is designed to serve as a stand for the ESP32-S3-BOX-3 via its gold fingers and offers versatile expandability. It features two Pmod™ compatible headers, allowing users to connect additional peripheral modules. These headers provide 16 programmable GPIOs and can supply 3.3 V power to peripherals. There is one USB Type-A port for connecting devices such as USB cameras (up to 720p resolution), USB drives, and other HID devices. Another USB Type-C port is dedicated to 5 V input power only.

ESP32-S3-BOX-3-DOCK expansion module with Pmod headers USB-A and USB-C ports

Here’s the orthographic view of the dock. It looks simple, but it actually has four different connectors. Let’s dive into their technical details.

Connectivity Interfaces

  • 12-pin Female Headers (2x)
    • I/O Count: 8 I/O per header
    • Compatibility: Pmod™ Compatible
    • Power Output: 3.3V
    • Supported Protocols: GPIO, I2C, SPI, UART, RMT, LEDC, etc.
  • USB Type-A Port (1x)
    • Power Output: 5V
    • Functionality: USB Host capability
    • Compatible Devices: USB cameras, USB storage devices, HID devices
    • Usage: Connect diverse USB peripherals
  • USB Type-C Port (1x)
    • Power Input: 5V
    • Functionality: Power input only
    • Usage: Dedicated power supply for the dock

Expansion Slots

  • PCIe Connector (1x)
    • Type: 36-pin, 1.00mm (0.0394") pitch
    • Card Compatibility: Accepts 0.062" (1.60mm) thick cards
    • Mounting: Vertical mounting goldfinger connector
    • Usage: Hardware expansion and custom modules

Next is the pinout diagram of the dock. There’s also a label on the dock itself for quick reference.

ESP32-S3-BOX-3 Accessories Comparison  Accessory  Primary Function  Best Use Case  DOCK  Stand with Pmod headers, USB-A port  Desktop projects, USB peripherals  SENSOR  Temp/Humidity, Radar, IR, Battery  Environmental monitoring, portable apps  BRACKET  Mounting adapter  Retrofitting existing devices  BREAD  Breadboard adapter  Prototyping and testing

Next, let’s look at the ESP32-S3-BOX-3-SENSOR.

ESP32-S3-BOX-3-SENSOR

ESP32-S3-BOX-3-SENSOR is a versatile accessory integrating a Temp & Humidity sensor, IR emitter and receiver, radar sensor, 18650 rechargeable battery slot, and MicroSD card slot. It enables users to create a wide range of innovative projects easily. You can integrate multiple sensors for detection and control, use the rechargeable battery for portability, and expand storage with a MicroSD card (up to 32 GB).

Below you can see the Orthographic View of the ESP32-S3-BOX-3-SENSOR.

ESP32-S3-BOX-3-SENSOR accessory with temperature humidity radar IR sensors and battery slot

Sensing Capabilities

Radar Sensor - MS58-3909S68U4 (1x)

  • Operating Frequency: 5.8 GHz
  • Power Consumption: 40 μA (ultra-low power)
  • Detection Range: Approximately 2 meters
  • Application: Human presence detection
  • Technology: Microwave radar sensing
  • RI_SDA - IO41, RI_SCL -IO40, RI_OUT - IO21

Infrared Sensor Array (2x)

  • Emitter: IRM-H638T IR emitter tube [GPIO39]
  • Receiver: IR67-21C/TR8 receiver tube [GPIO38]
  • Range: Up to 4 meters effective distance
  • Application: Infrared control and remote sensing
  • Configuration: Paired emitter-receiver setup

Temperature & Humidity Sensor - AHT30 (1x)

  • Temperature Range: -40°C to +120°C
  • Temperature Accuracy: ±0.5°C
  • Humidity Range: 0% to 100% RH
  • Humidity Accuracy: ±3% RH (at 25°C)
  • Application: Environmental monitoring and climate control
  • AHT21_SCL - IO40, AHT21_SDA - IO41

Storage & Power Management

  • External Storage (1x)
  • Type: MicroSD card slot
  • Maximum Capacity: 32GB
  • Usage: Data logging, firmware storage, media files
  • SD_DAT0-IO9, SD_DAT1 - IO13, SD_DAT2-IO42,SD_DAT3-IO12,SD_CMD-IO14,SD_CLK-IO11 

Battery System (1x)

  • Type: 18650 rechargeable lithium battery slot
  • Voltage: 3.7V nominal
  • Usage: Portable operation and backup power
  • BAT_MEAS_ADC-IO10

Power Control Switch (1x)

  • Type: 2-speed toggle switch
  • Function: Battery charging and discharging protection
  • Safety: Prevents 18650 battery damage from over-discharge

Status & Interface

  • Charging Indicator LED (1x)
  • Red State: Battery charging in progress
  • Green State: Battery fully charged
  • Usage: Visual battery status monitoring

USB Type-C Port (1x)

  • Power Input: 5V
  • Functions: Power supply, USB data transfer, JTAG debugging
  • Compatibility: Standard USB device functions

PCIe Connector (1x)

  • Type: 36-pin, 1.00mm (0.0394") pitch
  • Card Compatibility: 0.062" (1.60mm) thickness
  • Mounting: Vertical goldfinger connector

ESP32-S3-BOX-3-BRACKET

ESP32-S3-BOX-3-BRACKET helps mount the ESP32-S3-BOX-3 to other devices, unlocking many possibilities for turning non-smart devices into smart ones. Installation is straightforward; just prepare two mounting holes and a slot using the provided template. By leveraging its two Pmod™ compatible headers, you can add wireless connectivity, voice control, and screen control features. The bracket allows you to maximise the potential of your non-smart devices.

Below is the orthogonal view of ESP32-S3-BOX-3-BRACKET,

ESP32-S3-BOX-3-BRACKET mounting adapter for device integration and installation

Connectivity

  • 12-pin Female Headers (2x)
  • I/O Count: 8 I/O per header
  • Compatibility: Pmod™ Compatible
  • Power Output: 3.3V
  • Protocols: GPIO, I2C, SPI, UART, RMT, LEDC, etc.

USB Type-C Port (1x)

  • Input Voltage: 5V
  • Functions: Power supply, USB download, JTAG debug
  • Usage: Development and general USB device functions

PCIe Connector (1x)

  • Specifications: 36-pin, 1.00mm (0.0394") pitch
  • Card Support: 0.062" (1.60mm) thickness cards
  • Type: Vertical mounting goldfinger

Mounting Hardware

  • M3 Mounting Bolts (2x)
  • Bolt Size: M3 threading
  • Includes: Bolt, nut, and washer per set
  • Purpose: Secure mounting and component assembly
  • Usage: Attach materials and fasten components together

ESP32-S3-BOX-3-BREAD

ESP32-S3-BOX-3-BREAD is an adapter that lets you easily connect the ESP32-S3-BOX-3 to a standard breadboard. It’s ideal for makers and DIY projects, using a high-density PCIe connector and two rows of 2.54 mm pitch pins to expose the ESP32-S3’s 16 programmable GPIOs.

ESP32-S3-BOX-3-BREAD breadboard adapter with male pin headers for prototyping

Interface Headers

  • 12-pin Male Headers (2x)
  • I/O Configuration: 8 I/O pins per header
  • Power Specifications: 3.3V output, 5V input capability
  • Protocol Support: GPIO, I2C, SPI, UART, RMT, LEDC, etc.
  • Design: Male connector for breadboard compatibility

Development Interface

  • USB Type-C Port (1x)
  • Input Power: 5V
  • Functionality: Power input, USB download, JTAG debugging
  • Usage: Development programming and general USB device operations

Expansion

  • PCIe Connector (1x)
  • Format: 36-pin, 1.00mm (0.0394") pitch
  • Card Thickness: Accepts 0.062" (1.60mm) cards
  • Mount Type: Vertical goldfinger connector
  • Application: Hardware expansion and prototyping

Key Differences from Other Variants

  • Male Headers: Unlike other variants with female headers, this uses male pins for direct breadboard insertion
  • Dual Voltage: Headers support both 3.3V output and 5V input
  • Prototyping Focus: Designed specifically for breadboard-based development and experimentation

ESP32-S3-BOX-3-BREAD pinout diagram for breadboard prototyping connections

With this, you should now have a solid understanding of the ESP32-S3-BOX-3 and its accessories, along with the pinouts and used IOs.

ESP32-S3 Development Board Schematic and Technical Documentation

Espressif has provided plenty of documents for the esp32-s3-box-3 development board. If you are new to development or programming and want to learn more, the documents are worth reviewing. There is a "docs" section in their GitHub repo that contains a “docs” section with everything from a hardware overview to PCB and schematic files.

Keep in mind, the native support is for ESP-IDF.

Through Espressif's official repo, you can access the complete schematic for the ESP32-S3 development board, PCB design files, a bill of materials (BOM), and details about hardware documents.  Still, if you know the pins and have some basic knowledge, you can use the Arduino IDE to program the ESP32 S3 Box 3.

Getting Started: ESP32-S3-BOX-3 Tutorial [Factory Default Firmware]

The ESP32-S3-BOX-3 comes with ready-to-use firmware that supports offline voice wake-up and speech recognition in both Chinese and English. With the ESP-BOX mobile app, you can set up AI voice interactions and create custom commands to control your smart devices. The firmware also includes several sensor demos and supports IR learning, so the box can even act as a controller for your home air conditioners. This ESP32-S3-BOX-3 tutorial will guide you through every step.

Initial Setup and Power-On

⇒ Step 1: Powering the Device

Power on your device using the USB-C cable. Once powered, within a few seconds, you will see the Boot Screen Animation.

⇒ Step 2: Learning the Basics

After the first successful boot, you will see a quick guide provided by the device, like the four screens shown below.

ESP32-S3-BOX-3 user interface showing sensor monitor device control and media player options

The first two pages of the quick guide give an overview of the buttons on your ESP32 S3 box 3. Press the Next button to proceed to the next page.
The following pages explain how to use AI voice control. Tap OK, Let’s Go to access the menu.

⇒ Step 3: Main Menu Exploration

The menu has six options: Sensor Monitor, Device Control, Network, Media Player, Help, and About Us. You can navigate between these options by swiping left or right.

For example, to access the Device Control screen, tap on Light to toggle the light on or off. After that, return to the menu, go to the Media Player screen, and either play music or adjust the system volume.

ESP32 S3 BOX 3 UI

 

Testing Factory Firmware

⇒ Step 4: Quick Testing

Device control and voice commands are a quick way to test the Espressif ESP32-S3-Box-3. To continue, you need to connect the provided RGB Light to the dock’s header pins.

Connections are shown in the image below:

RGB LED wiring diagram for ESP32-S3-BOX-3 tutorial testing with DOCK accessory

Now, in the UI, go to Device Control. By pressing the Light button, you can turn the light on or off.

You can also use voice commands like,

"Turn on the light"
"Switch off the light"
"Turn Red"
"Turn Green"
"Turn Blue"
The LED will respond. Don’t forget to say the wake word before giving commands.

Connecting to ESP-BOX Mobile App

⇒ Step 5: Advanced Feature Testing

So far, all features have been tested offline. Now, let’s move online with a few simple steps.

First, download the ESP-BOX app to your phone. It’s simple: go to Network, and in the top-right corner, click the button to install the app. You will see a QR code to download it.

ESP-BOX mobile app download QR code for ESP32-S3-BOX-3 network setup

After installing the app, sign in with your ESP-BOX account. Turn on Bluetooth on your phone, tap + at the bottom of the screen, and scan the QR code on your device to set up the network.

ESP-BOX app welcome screen and QR scanning function for device pairing

After adding the device, you will see prompts like these in the image below.

ESP-BOX app device connected confirmation screen

Remember:

  • Do not exit the QR code page during network setup.
  • Connect the device to 2.4 GHz Wi-Fi, not 5 GHz, and enter the correct password.
  • An incorrect password will trigger "Wi-Fi Authentication Failed."
  • Long-press the Boot button (Function button) for 5 seconds to clear network information and restore factory settings. If the QR code or Bluetooth does not work after resetting, restart your device using the Reset button.

After successfully adding the device, select it in the app. You can control the device here as well. Unlike the first time, it uses ESP RainMaker for communication.

Tap on the icon to access the Config Menu. Here, you can configure pins directly.

ESP-BOX app configuration menu showing GPIO pin settings and customization options

In Voice Command, you can add custom commands. Enter the text and its action, for example, set "Good Morning" to turn on the light. Click Save to return to the previous screen, then click Save again.

ESP-BOX app voice command input interface for custom command creation

In the Control tab, you can directly configure the LED from the app, adjusting colour, brightness, and saturation.

ESP-BOX app LED color control interface showing brightness and saturation settings

Working with Sensor Accessories

⇒ Step 6: Testing the Given Accessory

Among the accessories provided, the sensor module is the most unique, as it includes multiple sensors to work with, while the others mainly extend connectors for breadboard use. Additionally, it supports different orientations and mounting options.

The ESP32-S3-BOX-3-SENSOR is a versatile accessory that integrates a Temperature & Humidity sensor, a pair of IR Emitters and Receivers, and a Radar sensor. It allows users to easily create sensor networks and other sensor-based applications. The built-in firmware provides a real-time display of temperature and humidity, demonstrates human presence monitoring through a 2.4 GHz radar, and includes an IR learning interface. This lets you use the ESP32-S3-BOX for IR learning of your air conditioner, enabling remote control. The learning feature also works with other in-home IR controllers, such as fans, TVs, and projectors, making the experience interactive and engaging.

  • Temperature and Humidity Sensor

Go to the Sensor Monitor. The interface will prompt you to insert the sensor accessory.

ESP32-S3-BOX-3 sensor monitor interface prompting accessory insertion

After mounting the accessory, you will be able to see the temperature and humidity readings on the screen.

  • Radar Feature

To use the radar, enter the Sensor Monitor screen and tap the ON/OFF button to enable or disable radar monitoring. When the radar switch is ON, a red body icon will appear if a person is detected in front of the device. The icon will turn gray if no one is detected within two minutes.

ESP32-S3-BOX-3 radar sensor ON and OFF states showing presence detection

  • IR Learning

Below the temperature, humidity, and radar functions is the infrared learning module. Currently, this module can only learn the ON/OFF function of a remote controller. Follow the interface instructions to iteratively learn the ON/OFF command of your remote a total of four times. After successful learning, the interface will confirm it.

 IR Learning Interface UI

Perform an ON/OFF test on your air conditioner by pointing the ESP32-S3-BOX-3-SENSOR toward it. If the air conditioner’s ON/OFF behaviour is opposite to what you expect, click the Reversal button to correct it. You can also click Relearn to learn commands from other remote controllers.

Reversal and Relearn IR UI

Remember

  • When the ESP32-S3-BOX-3 is not mounted to the ESP32-S3-BOX-3-SENSOR dock, the entire Sensor Monitor function will not work.

  • While using the built-in firmware with the ESP32-S3-BOX-3-DOCK, avoid hot-plugging the dock or switching to the Sensor Accessory, as this may cause the accessory to be unrecognised. Simply power the ESP32-S3-BOX-3-SENSOR again to restore normal operation.

  • Due to the power limitations of the infrared emitter and differences among air conditioner brands, the effective range for IR learning has been tested to be between 1 and 1.5 meters.

The features of the Box are not limited to the factory firmware; it’s mainly for demonstration purposes. To truly unleash the power of this device, you need to use ESP-IDF. I wouldn’t recommend the Arduino IDE, as many components supported in ESP-IDF don’t have full support in the Arduino IDE. To access all features, it’s best to stick with ESP-IDF.

There are up to 10 example programs available in Espressif’s official ESP-BOX Git repository,

  1. chatgpt_demo
  2. esp_joystick
  3. factory_demo
  4. image_display
  5. lv_demos
  6. matter_switch
  7. mp3_demo
  8. usb_camera_lcd_display
  9. usb_headset
  10. watering_demo

These samples illustrate different aspects of what the board is capable of, and provide useful ideas to get you started with your own projects. 
This development board offers plenty of functionality within a compact, ready-to-use board.  Regardless, if you are prototyping or building larger applications, it's worth analysing what each application provides. For now, take some time to work through the examples to see how they relate to your own project ideas.

So, enjoy exploring this dev board! With it, you can do a lot and really learn while having fun.

Have any question related to this Article?

Understanding MAXREFDES117 Module: A Tiny Optical Heart-Rate Sensor

For wearable projects, having the right sensor module makes all the difference. As you all know, this year’s contest theme is Smart Home and Wearables, so we came up with another sensor module, the MAXREFDES117 optical heart-rate module. This device comes with integrated red and IR LEDs, making it an ideal choice for developers and enthusiasts alike. The MAXREFDES117 optical heart rate module is a compact, low-power sensor designed specifically for wearable health monitoring projects.

How to Purchase on DigiKey using AqTronics as the Local Logistics Partner

Purchasing electronic components from international suppliers can often be a complicated process for customers in India. Traditional ordering from DigiKey in USD requires managing customs clearance, local freight, and cross-border payments, which can be time-consuming and prone to errors. To facilitate electronic component sourcing in India, DigiKey has aligned itself with AqTronics India, an electronics distributor certified in local logistics, to offer easy and seamless payment options for Indian buyers through DigiKey India. Whether you are an electronic hobbyist, a startup, or an established organisation, knowing how to buy at DigiKey using AqTronics will simplify your electronic component sourcing process. This partnership allows buyers to pay in Indian Rupees, receive GST-compliant invoices, and enjoy hassle-free door-to-door delivery. 

CircuitDigest presents the Smart Home & Wearables Project Contest 2025! Win exciting prizes worth up to ₹7,00,000 and receive free development boards through our partnership with DigiKey. For registration, dive into contest details. 

One of the key advantages of using AqTronics as the logistics partner is the simplification of the import process. Customers no longer need to obtain an Import Export Code (IEC) or handle customs clearing procedures themselves. AqTronics takes care of local freight and customs clearance, ensuring that orders reach the customer quickly and efficiently. For most locations in India, deliveries are completed within one to two working days after dispatch from AqTronics’ warehouse in Bangalore, making the entire process far more convenient than navigating international shipping independently.

Author Expertise: This comprehensive DigiKey India purchase guide is based on Circuit Digest's hands-on experience with successfully placing multiple orders through AqTronics as the authorised local logistics partner.

Key Benefits of Using AqTronics as DigiKey's Local Logistics Partner

The partnership between DigiKey and AqTronics India electronics distributor, offers several advantages for how to buy electronic components from DigiKey in India:

1. Simplified Import Process for Electronic Components Sourcing India
2. Financial Convenience with Local Payment Options
3. Reliable Access to Global Electronics Distributor Inventory

Another significant benefit is the financial ease it provides. Payments are made in INR through familiar Indian payment gateways, reducing foreign exchange risks and eliminating the complexities of cross-border transactions. Customers also receive official invoices from AqTronics Technologies, which are fully compliant with Indian GST regulations. This makes accounting simpler for businesses and hobbyists alike, aligning with local financial processes. Apart from that, using AqTronics ensures reliable support and access to the same wide product range offered by DigiKey. While the ordering process is handled locally, the products themselves are sourced directly from DigiKey, maintaining product quality and consistency. In addition, any issues or inquiries can be addressed through local customer service representatives, providing peace of mind and a smoother overall purchasing experience. By combining local expertise with DigiKey’s global inventory, AqTronics makes it easier than ever for Indian customers to access the components they need.

Complete DigiKey India Purchase Guide: Step-by-Step Process

⇒ Step 1: DigiKey India Account Setup and Registration

Before you begin, note that only registered DigiKey users can purchase using the local logistics partner. If you are a new user, create an account on DigiKey; it’s free and takes only a few minutes. Existing users can simply log in with their credentials.

Note: If you are registering as a new user, you will have to wait for the verification email from DigiKey. This usually takes 3-4 hours or more, depending on your region and time of registration. 

DigiKey India account setup and registration process showing login interface for electronic components sourcing

After logging in, locate the country flag icon next to the search bar on the header menu. Make sure India is selected as your country. If you need to change it, click on the flag icon to open a settings window, then select India as the country and INR (Indian Rupee) as the currency.

Setting India location and INR currency for DigiKey India payment options and local logistics

⇒ Step 2: Adding Electronic Components to Your Cart

Next, add the items you wish to purchase to your shopping cart.

DigiKey shopping cart showing electronic components selection for India purchase

Once all items are added, click the shopping cart icon at the top left to view your selections. On this page, you will see two checkout options: Checkout with DigiKey and Checkout with our local logistics partner. Note that the prices displayed are in INR and do not yet include customs taxes, which will be calculated later.

Selecting AqTronics local logistics partner during DigiKey India checkout process

⇒ Step 3: Checkout Process with AqTronics India Electronics Distributor

Under the checkout options, select Checkout with our local logistics partner. Clicking this option will change the checkout button to Checkout with our local logistics partner, and clicking on it will automatically transfer your order details to the AqTronics website for further processing.

DigiKey local logistics partner selection button for AqTronics India checkout

On the AqTronics checkout page, you will see the duty amount and GST fees applied to each item. The total at the bottom includes customs duties, GST, and shipping charges in INR. Once reviewed, click the “Proceed to Checkout” button to continue. 

AqTronics India electronics distributor checkout page showing duty, GST, and total pricing

Provide your billing and shipping address carefully to ensure smooth delivery. For business orders, enter your GST number along with the billing address. Once all details are filled, click on “Next Tab” to continue.

Billing and shipping address form for DigiKey India purchase through AqTronics logistics

⇒ Step 4: Completing Payment Through the Indian Payment Gateway

Review the total amount to be paid and click on “Click here to Pay.”

Final payment page for DigiKey India purchase showing total amount in INR

You will then be redirected to the Razorpay payment gateway, where you can complete your payment using UPI, debit or credit cards, net banking, or other supported online payment methods.

  • UPI payments (Google Pay, PhonePe, Paytm, BHIM)
  • Debit and credit cards (Visa, Mastercard, RuPay, American Express)
  • Net banking (all major Indian banks)
  • Digital wallets (supported e-wallets)

Razorpay payment gateway interface showing DigiKey India payment options including UPI and cards

After completing the payment, your order will be successfully placed on DigiKey with AqTronics as your delivery partner. An order confirmation email, containing your order ID and tracking link, will be sent to your registered email address. Keep this email for reference.

Order confirmation screen after successfully purchasing from DigiKey India using AqTronics

⇒ Step 5: Tracking Your DigiKey Shipping Process India

To track your order, visit the AqTronics website and enter your Order ID that you received via email in the above step. You will also receive all future status updates via email. Typically, deliveries within India take 7–10 business days.

Order tracking interface for monitoring DigiKey India shipment through AqTronics logistics

⇒ Step 6: Delivery and GST-Compliant Invoice Receipt

Orders placed through DigiKey using AqTronics are shipped first to the AqTronics fulfilment center and then delivered to your address using their local logistics network. AqTronics handles customs clearance and local delivery. GST-compliant invoices are shared via email once the order is shipped from the AqTronics warehouse, and a printed copy is provided with the delivery, ensuring full compliance with Indian tax regulations.

Final delivery package and GST invoice from DigiKey India order via AqTronics distributor

Frequently Asked Questions (FAQs) - DigiKey India Purchase

⇥ 1. Is an Import Export Code (IEC) required for ordering from DigiKey India through AqTronics? 

The answer is no, AqTronics, which is the local logistics partner of DigiKey, takes care of all the import documentation and customs clearance for you, so it is very easy for both individuals and organisations to source electronic components without IEC registration.

⇥ 2. What payment methods are available for customers buying from DigiKey India through AqTronics? 

DigiKey India payments through AqTronics are accepted in UPI (Google Pay, PhonePe, Paytm), debit/credit cards (Visa, Mastercard, RuPay, Amex), net banking from any major Indian bank, or selected digital wallets. All the payments will be done in INR via Razorpay's safe transaction gateway.

⇥ 3. Will I get a GST-compliant invoice for my DigiKey order?

Yes, AqTronics India electronics distributor, offers a complete GST-compliant invoice for every order. They have proper tax details, HSN codes, and are eligible for input tax credit. You are provided with both electronic copies through mail and a printed copy along with your shipment.

⇥ 4. Are the components sourced from DigiKey India legitimate and guaranteed?

Certainly! All electronic components are sourced from DigiKey's authorised global inventory, assuring 100% authenticity. These electronic components are guaranteed by the manufacturers, and you will receive the same components from DigiKey International as you would from DigiKey India, so you are assured of the same quality manufacturing by this global electronic components supplier. .   

⇥ 5. Can I cancel an order or make changes to an order once I've placed it with AqTronics?

Changes or cancellations should be made as soon as possible after your order is placed; you should contact AqTronics customer service 2-4 hours after your order is placed. If your order has been processed and shipped from DigiKey's international warehouse, the order cannot be cancelled. Changes must be communicated early.

⇥ 6. What are the steps to track my Digi-Key order through the AqTronics shipping method?

Simply go to the AqTronics URL and enter your Order ID (received in email) in the tracking section. You will receive an email notification as each shipping milestone goes through (customs clearance, out for delivery, etc.). The real-time tracking creates complete transparency for the DigiKey shipping process in India.

Related Resources: For technical specifications and component datasheets, visit DigiKey.in directly. For logistics inquiries, contact AqTronics customer support.

Have any question related to this Article?

Getting Started with Adafruit MEMENTO: Python Programmable DIY Camera Board

There have been many development boards recently built around the ESP32-S3. Most development boards come with a display, some also include cameras and buttons, and a few have speakers and microphones. Finding one that brings all these components together without compromising on quality has been the real challenge for makers and developers. Keeping all this in mind, we found a dev board that brings everything together in one module, the Adafruit MEMENTO.