top of page
Search

LiteWing ESP32 Drone Kit: Complete Getting Started Guide from First Flight to Python, Height Hold and Swarm Projects

7 days ago
6 min read

Overview

The LiteWing ESP32 Programmable Drone Kit is an open-source mini quadcopter by Circuit Digest built on an ESP32-S3 flight controller, an MPU6050 IMU and a PCB-as-frame design. It runs ESP-Drone firmware with Crazyflie-derived flight control, so you can fly it from a phone, a gamepad via cfclient, or your own Python code using the cflib SDK. Robotechminds stocks the LiteWing kit in India at Robotechminds.ai.

Project Inspiration & Real-World Application

Most "programmable" toy drones lock you into a block-coding app. Most real flight controllers demand soldering, ESC calibration and a far bigger budget before the first hover. That gap is exactly where students, colleges and startup teams get stuck.

LiteWing closes it. The same 45 g airframe that a Class 8 student flies from a phone is the one a final-year engineering team uses to write PID loops, log IMU data and test swarm algorithms. One platform covers:

  • STEM labs and ATL classrooms: teach physics of lift, thrust, torque and stability with a drone that survives crashes.

  • Engineering projects: control theory, sensor fusion, embedded C on ESP-IDF and wireless protocols.

  • Startups and R&D teams: a low-cost testbed for autonomy, indoor navigation and gesture or voice control before scaling to larger airframes.

Components Required from Robotechminds

  • LiteWing ESP32 Programmable Drone Kit (Circuit Digest): ESP32-S3 dual-core 240 MHz MCU with Wi-Fi and Bluetooth 5 LE, MPU6050 6-axis IMU, 720 coreless motors with MOSFET drive, FR4 PCB frame, USB-C programming via CH340, onboard TP4056 charger, ~100 × 100 mm, ~45 g without battery – Buy on Robotechminds

  • Holybro PMW3901 Optical Flow Sensor: PMW3901 optical flow sensor for position-hold and drift-correction experiments in the advanced stage – Buy on Robotechminds

You also need:

  • Battery: a 3.7 V 1S LiPo rated 20C or higher with the connector the kit uses. Keep two or three so a class can fly in rotation.

  • Laptop: Windows, macOS or Linux with Python 3.11 or newer for the cfclient and Python stages.

  • Optional: an Xbox or PlayStation controller for cfclient flight, and a VL53L1X time-of-flight sensor for height hold.

Step-by-Step Implementation Guide

Stage 1 – Beginner: First Flight in 15 Minutes

  1. Fit the propellers correctly: Match each propeller to the CW and CCW markings printed on the PCB arms. A swapped propeller is the number one reason a new drone flips on takeoff.

  2. Charge and connect the battery: Charge the 1S LiPo through the onboard USB-C charger. The TP4056 charger is limited to 1 A, so a phone charger is enough. Never leave a charging LiPo unattended.

  3. Connect to the drone's Wi-Fi: Power on the LiteWing. It creates its own 2.4 GHz hotspot, named LiteWing followed by a unique ID. Join it from your phone, then turn off mobile data and any VPN so the phone keeps talking to the drone.

  4. Fly with the mobile app: Open the LiteWing or ESP-Drone app on Android or iOS, connect, and take off at low throttle in an open indoor space. Keep the first flights below head height.

  5. Calibrate and trim: Place the drone on a flat surface before power-up so the IMU calibrates level. If it drifts in one direction while hovering, adjust the roll and pitch trim in the app until it holds still.

Stage 2 – Intermediate: PC Control with cfclient and Python

  1. Install cfclient and cflib: LiteWing speaks the Crazyflie CRTP protocol over UDP. Circuit Digest maintains a fork of the Crazyflie Python clients with LiteWing support.

git clone https://github.com/jobitjoseph/crazyflie-clients-python.git
cd crazyflie-clients-python
pip3 install -e .
cfclient
  1. Fly from cfclient with a gamepad: Connect your laptop to the LiteWing hotspot, then in cfclient connect to udp://192.168.43.42, the address set in the firmware. Map your Xbox or PlayStation controller under Input Device and fly with proper sticks, live attitude graphs and battery voltage.

  2. Write your first Python flight script: The core call is send_setpoint(roll, pitch, yawrate, thrust). Thrust ranges from about 10000 to 60000, with hover around 35000. Send one zero setpoint first to unlock the motors. Run this first test with the drone on the floor; the ramp stops at 30000, below hover thrust.

import time
import cflib.crtp
from cflib.crazyflie import Crazyflie

DRONE_URI = "udp://192.168.43.42"

cflib.crtp.init_drivers()
cf = Crazyflie()
cf.open_link(DRONE_URI)
time.sleep(1.0)

cf.commander.send_setpoint(0, 0, 0, 0)  # unlock motors
time.sleep(0.1)

try:
    for thrust in range(10000, 30001, 1000):  # gentle ramp, stays below hover
        cf.commander.send_setpoint(0, 0, 0, thrust)
        time.sleep(0.1)
    for _ in range(20):  # hold for 2 seconds
        cf.commander.send_setpoint(0, 0, 0, 30000)
        time.sleep(0.1)
finally:
    cf.commander.send_setpoint(0, 0, 0, 0)  # always cut motors
    time.sleep(0.1)
    cf.close_link()
  1. Log live telemetry: Read attitude data while flying to understand what the flight controller sees. Variable names follow the firmware's log table, which you can browse in cfclient's Log TOC tab.

import cflib.crtp
from cflib.crazyflie import Crazyflie
from cflib.crazyflie.log import LogConfig
from cflib.crazyflie.syncCrazyflie import SyncCrazyflie
from cflib.crazyflie.syncLogger import SyncLogger

URI = "udp://192.168.43.42"
cflib.crtp.init_drivers()

lg = LogConfig(name="attitude", period_in_ms=100)
lg.add_variable("stabilizer.roll", "float")
lg.add_variable("stabilizer.pitch", "float")
lg.add_variable("stabilizer.yaw", "float")

with SyncCrazyflie(URI, cf=Crazyflie(rw_cache="./cache")) as scf:
    with SyncLogger(scf, lg) as logger:
        for i, (timestamp, data, _) in enumerate(logger):
            print(timestamp, data)
            if i > 50:
                break

Stage 3 – Advanced and Professional: Sensors, Firmware and Autonomy

  1. Add height hold with a ToF sensor: Connect a VL53L1X time-of-flight sensor to the expansion header to measure distance to the floor. The LiteWing firmware supports height hold with it, so the drone keeps a fixed altitude while you control only direction.

  2. Add position hold with optical flow: A PMW3901 optical flow sensor tracks floor texture to measure sideways drift, and combined with ToF it enables position hold indoors where GPS does not work. Check the pinout and connector against the LiteWing wiki before wiring.

  3. Modify the flight firmware: The firmware is built on Espressif's ESP-Drone and ESP-IDF. Clone it, tune the PID gains for roll, pitch and yaw, add new log variables, and flash over USB-C. This is where control-systems theory turns into a working aircraft.

  4. Build multi-drone and AI projects: Because every LiteWing joins a network over Wi-Fi and accepts CRTP commands, one Python program can coordinate several drones, read gestures from an ESP32 glove, or take commands from a computer-vision model running on a laptop or Jetson.

Project Ideas by Skill Level

Level

Project

What You Learn

Beginner

App flight, trim and obstacle course

Flight controls, lift and thrust, battery safety

Beginner

Blockly flight missions

Sequencing, loops, timing

Intermediate

Python takeoff, hover and land script

CRTP, setpoints, thrust control

Intermediate

Telemetry logger and live attitude plot

IMU data, sampling, data analysis

Intermediate

Gesture-controlled drone with an ESP32 glove

Wireless control, sensor mapping

Advanced

ToF height hold and optical-flow position hold

Sensor fusion, state estimation

Advanced

PID tuning in ESP-IDF firmware

Control theory, embedded C

Professional

Multi-drone swarm or vision-guided flight

Multi-agent coordination, AI integration

Technical Specifications & Comparison

Feature / Spec

LiteWing ESP32 Drone Kit

Typical Toy Drone

Typical Open-Source FPV Build

Flight controller

ESP32-S3, dual-core 240 MHz

Closed MCU

STM32 F4/F7

IMU

MPU6050 6-axis

Not exposed

Various

Programming

Python cflib, cfclient, ESP-IDF, Blockly, Arduino IDE

Fixed app only

Betaflight or PX4 configuration

Connectivity

2.4 GHz Wi-Fi (CRTP over UDP), Bluetooth 5 LE

Proprietary RF

RC receiver

Frame

FR4 PCB frame, ~100 × 100 mm

Plastic shell

Carbon fibre

Weight

~45 g without battery

Varies

250 g and above

Battery

1S 3.7 V LiPo, onboard USB-C charging

Proprietary pack

4S–6S LiPo, external charger

Expansion

GPIO headers for ToF, optical flow, barometer

None

UART and I2C ports

Best for

Classrooms, coding, control-systems R&D

Casual flying

Racing, aerial video

Frequently Asked Questions (FAQ)

Is the LiteWing ESP32 drone good for beginners?

Yes. The LiteWing ships ready to fly with no soldering and connects to a phone app over Wi-Fi, so first-time pilots can fly within minutes. The PCB frame is durable and easy to repair, which suits classrooms and first-time builders.

How do I program the LiteWing drone with Python?

Install the Crazyflie cflib library, connect your laptop to the LiteWing Wi-Fi hotspot, and open a link to udp://192.168.43.42. Send setpoints with cf.commander.send_setpoint(roll, pitch, yawrate, thrust), starting with a zero setpoint to unlock the motors.

Which microcontroller does the LiteWing drone use?

The LiteWing uses an Espressif ESP32-S3 dual-core processor at 240 MHz with built-in Wi-Fi and Bluetooth 5 LE. It is paired with an MPU6050 IMU and runs ESP-Drone firmware based on Crazyflie flight control.

Can I add sensors to the LiteWing ESP32 drone?

Yes. The GPIO expansion headers accept a VL53L1X time-of-flight sensor for height hold and a PMW3901 optical flow sensor for position hold, with barometer support listed as upcoming on the LiteWing wiki.

Where can I buy the LiteWing ESP32 drone kit in India?

Robotechminds, a Hyderabad-based robotics and STEM company, stocks the LiteWing ESP32 Programmable Drone Kit with shipping across India and GST invoicing. Order it at Robotechminds.ai.

Ready to Build Your Project?

Whether you are teaching your first drone class, building a final-year project or prototyping indoor autonomy, LiteWing gives you a real, programmable flight controller at a classroom-friendly cost. Robotechminds supplies the kit across India with GST invoicing, a 6-month replacement warranty and support from our Hyderabad engineering team.

Setting up a school drone lab, ATL lab or college workshop? WhatsApp +91-6301030082 or email team@robotechminds.com for bulk pricing, curriculum and hands-on drone training.

 
 
bottom of page