LiteWing ESP32 Drone Kit: Complete Getting Started Guide from First Flight to Python, Height Hold and Swarm Projects
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
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.
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.
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.
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.
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
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
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.
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()
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
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.
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.
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.
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.
Start flying and coding: LiteWing ESP32 Programmable Drone Kit – Buy on Robotechminds
Add position hold: Holybro PMW3901 Optical Flow Sensor – Buy on Robotechminds
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.



