
Introduction
LiteWing is a compact, WiFi-controlled drone based on the ESP32-S3 microcontroller. Designed for hobbyists, makers, and engineers, LiteWing offers a simple yet powerful platform for drone experimentation and development. It is an open-hardware project, making it easy to modify and expand.
Whether you're new to drones or an experienced developer looking to create custom flight applications, LiteWing provides an accessible and affordable way to explore drone technology. Unlike traditional drones that require proprietary controllers, LiteWing connects to your smartphone, allowing for an intuitive flying experience without additional hardware.
The firmware on LiteWing supports Crazyflie cfclient and cflib, meaning you can program and control your drone using Python and add more features like height hold, position hold, gesture control, and more.
The latest version includes more GPIO pins, sensor mounts, LED indicators to make it easier to tinker with and program. The PCB frame design keeps it lightweight while reducing costs, making it one of the most affordable DIY drones available.
Key Features

|
Feature |
Description |
| Open Hardware | Fully open-source design with schematics and Gerber files available |
| WiFi Control | 2.4GHz WiFi connectivity using CRTP over UDP protocol |
| Mobile App Support | Dedicated apps for Android and iOS devices |
| PC Control | Compatible with CFClient and custom Python SDK |
| Crazyflie Compatible | Firmware based on ESP-Drone and Crazyflie,making it compatible with cfclient and the cflib Python library. |
| Easy Assembly | PCB frame design eliminates need for 3D-printed parts |
| Expandable | 24-pin GPIO breakout for additional sensors and modules |
Specifications
|
Core Specifications |
||
| Category | Specification | Details |
| Microcontroller | ESP32-S3 | Dual-core Xtensa LX7, 240 MHz, 512 KB SRAM |
| IMU Sensor | MPU6050 | 3-Axis Gyroscope + 3-Axis Accelerometer |
| Communication | WiFi 2.4GHz | CRTP over UDP Protocol |
| Programming Interface | USB Type-C | CH340 USB to UART bridge |
|
Motor and Propulsion |
|
| Component | Specification |
| Motor Type | 720 Coreless DC Motors |
| Propeller Size | 55mm or 65mm |
| Motor Control | MOSFET-based PWM Speed Control |
|
Power System |
|
| Component | Specification |
| Battery | 3.7V 1S LiPo Battery 20C or higher |
| Charging Circuit | TP4056 Li-ion Charging IC (1A Max) |
| Voltage Regulator | SPX3819, 500mA, Low Noise LDO |
|
Physical Specifications |
|
| Parameter | Value |
| Frame Material | Custom PCB Frame FR4 |
| Dimensions | 100mm x 100mm |
| Weight | ~45g (without battery) |
| Payload Capacity | ~25g with 55mm propeller |
|
Optional Sensors |
|
| Sensor | Function |
| VL53L1x ToF Sensor | Height Hold |
| MS5611 Barometric Pressure Sensor | Altitude Hold |
| PMW3901 Optical Flow Sensor | Position Hold |
|
Control Options |
|
| Platform |
Method |
| Mobile | Android & iOS App (WiFi-based control) |
| PC | CFClient Support and Custom Python SDK |
Getting Started with LiteWing

Quick Start Guide
|
Step |
Action |
Documentation |
| 1 | Select and install battery | Battery Selection Guide |
| 2 | Assemble drone (DIY kit only) | Assembly Instructions |
| 3 | Download and flash firmware (if needed) | Firmware Guide |
| 4 | Download mobile app and connect | Mobile Application Flight Guide |
| 5 | Calibrate & Start flying | Calibration Guide |
| 6 | Control LiteWing Drone using Python (Optional) | Crazyfile Cflib Python SDK Guide |
Hardware Overview
ESP32-S3 Microcontroller
The LiteWing drone is powered by the ESP32-S3, a highly efficient microcontroller that offers low power consumption and an increased number of GPIO pins for enhanced expandability. It is powered by a dual-core Xtensa LX7 core, capable of running at 240 MHz, accompanied by 512 KB of internal SRAM and integrated 2.4 GHz, 802.11 b/g/n Wi-Fi and Bluetooth 5 (LE) connectivity.

Its improved computational efficiency ensures better flight stabilisation and allows seamless future firmware upgrades. The built-in USB interface simplifies programming, debugging, and firmware updates.
MPU6050 IMU Sensor

For precise flight stability, the LiteWing features an MPU6050 IMU, which provides accurate motion tracking and stabilisation.
Programming Interface

The LiteWing can be easily programmed through the onboard USB Type-C connector without the need for any external programmers or debuggers, thanks to the onboard USB-UART bridge controller and auto-reset circuitry.

Designed for minimalist efficiency, the LiteWing drone incorporates an all-in-one PCB frame, eliminating the need for additional structural components. The frame includes hook & loop battery strap slots for easy mounting and removal of the battery.
Motor Drivers

The LiteWing employs PWM-based motor control, ensuring smooth acceleration and manoeuvrability with precision. The motor driver circuit is built around an N-channel MOSFET along with a flyback diode and a pull-down resistor.
Power Management

LiteWing features a simple but efficient power management circuit:
|
Component |
Function |
| TP4056 | Battery charger with up to 1A charging current |
| SPX3819 | Ultra-low-noise 3.3V LDO for ESP32, IMU, and other components |
| Power Path Control | P-Channel MOSFET and Schottky diode for automatic USB/battery switching |
For detailed information on battery selection, see the Battery Selection Guide
Status & Debugging Indicators

LiteWing features an intuitive LED status system for real-time feedback:
|
Indicator |
Function |
| PWR | Power Indicator. On when LiteWing is turned on. |
| CHRG | Charging Indicator. On when the battery is charging. |
| FULL | Full Charge Indicator. On when the battery is fully charged. |
| SYS | System Status. Slow flash indicates sensor calibration; normal flash when ready to fly. |
| ERR | Error Indicator. On when the battery is low. |
| Link | Link Status Indicator. Flashes when connected to the App or PC. |
Audio Indicator Option

LiteWing also features an option for audio indications via a 1.25mm pitch JST connector near the ESP32-S3 SoC for connecting a passive piezo buzzer.
Expansion Capabilities
GPIO Expansion Pins

With extra GPIO breakout pins, the LiteWing is designed for expandability, allowing users to integrate additional sensors for enhanced flight capabilities.
|
Important Silkscreen Labelling Correction: In the first revision of this product, there is incorrect silkscreen labeling for some IO pins:
Refer to the pinout diagram for correct pin labelling. This issue has been corrected in the latest revision. |
Optional Modules for Assisted Flight Control

The firmware is designed with future updates in mind, enabling features such as position hold and altitude hold:
| Module | Interface | Function | Status |
| VL53L1X ToF Sensor | Auxiliary I2C | Height Hold | Tested and working |
| MS5611 Barometer | I2C | Altitude Hold | Coming soon |
| PMW3901 Optical Flow | SPI | Position Hold | Tested and working |
Assisted flight control is currently supported with the LiteWing App and the custom Python SDK. For setup details, see the New Mobile App Guide.
Development and Programming
Firmware Overview
The LiteWing drone firmware is built using ESP-IDF, the official development framework by Espressif for ESP32-series microcontrollers. ESP-IDF provides a set of libraries, drivers, and tools essential for embedded development.
| Framework Feature | Description |
| WiFi & Bluetooth | Built-in support for wireless communication |
| FreeRTOS | Seamless multitasking capabilities |
| Debugging Tools | Performance monitoring and power management |
The LiteWing firmware is based on ESP-Drone, an open-source flight control firmware specifically designed for ESP32-powered drones. ESP-Drone integrates flight control algorithms from the Crazyflie open-source project.
Firmware Components
| Component | Function |
| Flight Control Core | Sensor data processing, stabilization, motor control, PID adjustments |
| Hardware Drivers | Communication with peripherals (I2C, SPI, UART) |
| Communication Modules | Telemetry, remote control, data logging via WiFi |
| Software Libraries | Signal filtering, sensor fusion, real-time data processing |
Download Firmware
Programming Options
| Platform | Method | Documentation |
| Python SDK | Crazyflie cflib library | Python Programming Guide |
| CFClient | Desktop application for control and monitoring | cfClient Installation Guide |
| Arduino | ESP32-S3 Arduino programming | Coming soon |
CrazyFlie and Python Tutorials
LiteWing comes preloaded with firmware based on ESP-Drone and Crazyflie, making it compatible with cfclient and the cflib Python library. You can control it using an Xbox or PS4/PS5 controller and monitor flight data in real time.
| Tutorial | Description | Link |
| Gesture Control | Control LiteWing using hand gestures | View Tutorial |
| Python SDK Basics | Getting started with cflib | Python Programming Guide |
Arduino Tutorials
The brain of the LiteWing drone is the ESP32-S3 SoC from Espressif, allowing users to program it from scratch using the Arduino IDE. Basic flight testing with Arduino code and a user-friendly GUI for programming and monitoring has been completed. A step-by-step tutorial on flying LiteWing with Arduino will be available soon.
Hardware Design and Files
The hardware design for LiteWing, including the schematics and Gerber files, is made open-source for people to try and experiment. All designs are under a CC license; you are free to build, modify, and share.

| Resource | Description | Link |
| Circuit Diagrams | Circuit Diagrams | GitHub Repository |
| Gerber Files | Gerber Files | GitHub Repository |
| Firmware Binary Source | Firmware Binary Source | GitHub Repository |
Circuit Diagram Explanation
USB Input and Power Path Control
A Type-C USB port is used for both charging and programming purposes. The pull-down resistor on the CCx lines ensures that the LiteWing can be charged or programmed from any standard USB-A or USB-C port.
The power from the USB port is connected to a power path controller circuit built around a P-Channel MOSFET (U1) and a Schottky diode (D1). When USB power is available, the device will be powered from the USB and will also charge the internal battery. When USB power is not present, the device will automatically switch to battery power.
For voltage regulation, the design uses a SPX3819 3.3V LDO from Maxlinear, which is capable of providing up to 500mA of current with a very low dropout voltage of 550mV even at full load.

Battery Charger Circuit
The internal battery is charged using the TP4056 charge controller IC, which is capable of a maximum charge current of 1A. The charge current can be adjusted by changing the value of the current programming resistor R5.
The TP4056 provides two charge status indicator outputs: one for charging and one for charge completion. Both outputs are connected to LED indicators for visual feedback. The IC also features a battery temperature monitoring option, though this feature is not utilised in the current circuit design.

Battery Monitoring and Power Switch
Battery voltage sensing uses a classic voltage divider circuit that reduces the battery voltage to a safe level for measurement. The output from the voltage divider connects to an ADC input of the ESP32, which continuously monitors battery voltage levels.
A slide switch controls the on/off state of the LiteWing. The switch, with a pull-up resistor, connects to the enable pin of the SPX3819 LDO. When this pin is pulled to ground, the LDO shuts down, powering off all components except the battery charging section.

USB to UART Programming Circuit
Although the ESP32-S3 has native USB support, the design includes an external USB to UART bridge for firmware flashing. The CH340K USB to UART bridge controller from WCH provides the following features:
| Feature | Description |
| Interface | Hardware full-duplex UART |
| Buffer | Integrated transmit-receive buffer |
| Baud Rate | 50bps to 2Mbps |
| Oscillator | Integrated crystal oscillator |
For auto-reset functionality, a 2N7002DW dual N-channel MOSFET in a single package reduces component count and saves PCB space.

ESP32-S3 Microcontroller Schematic
The ESP32-S3 module section includes manual reset and boot buttons for easier operation and debugging. All connections are labelled, and apart from two strapping pins and one normal GPIO, all other pins are either used for LiteWing functionality or brought out as expansion ports.
A two-pin connector near the module supports a small piezo buzzer for audio output. Standard bypass capacitors and pull-up resistors required by the ESP32-S3 module are also included.

MPU6050 IMU Schematic
The MPU6050 provides 6-axis motion tracking with an integrated 3-axis gyroscope and 3-axis accelerometer. This sensor is essential for maintaining stability, detecting orientation changes, and responding to flight movements in real time.
| Function | Description |
|
Communication
|
I2C interface with ESP32
|
|
Processing
|
Raw sensor data for attitude estimation
|
|
Integration
|
Works with PID controller for motor speed adjustment
|
|
Calibration
|
Required to minimize drift and improve flight accuracy
|
In the LiteWing firmware, the MPU6050 works alongside the flight control core to adjust motor speeds based on pitch, roll, and yaw readings

Motor Driver Circuit Schematic
Each motor driver consists of an IRLML6344 N-Channel MOSFET, a flyback diode, and a pull-down resistor. There are four identical circuits, one for each motor.
| Component | Function |
| N-Channel MOSFET | Controls motor on/off state via gate signal |
| PWM Signal | Controls motor speed by varying duty cycle |
| Flyback Diode | Prevents damage from back EMF during switching |
| Capacitors | Suppress voltage spikes for stable operation |
When a high signal is applied to the MOSFET gate, it turns on and allows current to flow, powering the motor.

Status LED Schematic
Three debugging LEDs are included in addition to the power and charging indicators:
| LED Color | Behavior | Meaning |
| Green | Slow blink | Sensor calibration in progress |
| Green | Fast blink | System ready for takeoff |
| Blue | Blinking | UDP connection established with controller app |
| Red | Continuous | Battery voltage below safe threshold |

Expansion Connector Schematic
Four expansion connectors provide a total of 24 pins for extending functionality:
| Pin Category | Pins Available |
| Power | VBUS, +3.3V, GND |
| Communication | UART, I2C, Auxiliary I2C, SPI |
| General GPIO | 11 additional pins |

Optional Sensor Module Pads
SMD solder pads on the bottom of the LiteWing PCB enable easy installation of optional sensors for advanced flight modes:
| Sensor | Interface | Function |
| VL53L1X ToF | Auxiliary I2C | Height hold |
| MS5611 Barometer | I2C | Altitude hold |
| PMW3901 Optical Flow | SPI | Position hold |
When using these solder pads, the battery may need to be mounted on top of the LiteWing.

Troubleshooting
Common Issues and Solutions
| Issue | Possible Cause | Solution |
| App Connection Issue | Mobile data interfering | Ensure mobile data is off and WiFi is connected to drone's hotspot |
| VPN active | Turn off any VPN | |
| Auto network switching | Disable automatic WiFi switching for networks without internet | |
| App glitch | Restart the LiteWing APP | |
| Drone Disconnecting During Takeoff | Insufficient battery power | Use a higher discharge rating battery (e.g., 650mAh 30C). See Battery Guide |
| Not Responding to Controls | Connection issue | Check app connection and LED indicators |
| Sensor Calibration mode active |
If SYS LED blinks slowly, place on flat surface and reset | |
| Improper startup | Always place on flat surface before turning on | |
| Drone Not Taking Off Properly | Wrong propeller placement | Verify motor rotation and propeller installation per PCB markings. See Assembly Guide |
| Drone was Unstable / won’t hover straight | IMU Calibration issue | See the Calibration Guide. |
Contact and Support
Litewing is designed and maintained by CircuitDigest. If you have any questions, please post them on our forums, or you can also join our WhatsApp community to chat with our community members. We will continue to provide support and more tutorials on this page.
Purchase LiteWing
Available at the following stores:
For custom development or bulk enquiries, please get in touch using the Contact Us page.
Document Index
| Description |
Document |
| Assembly Guide | DIY kit assembly instructions with propeller installation |
| Battery Selection Guide | Choosing the right LiPo battery for optimal flight |
| Firmware Guide | Downloading and flashing firmware |
| Flight Guide | Flying with the mobile application |
| Calibration Guide | Roll and pitch trim calibration |
| New Mobile App | New app features including height hold |
| Python Programming | Programming with Crazyflie cflib SDK |
Last Updated: December 8, 2025 | Build Status: Tested & Verified
Sir,
How to implement Height Hold Using TOF Sensor in the litewing drone, please explain the principle, working and the necessary modification in the firmware
You don't need to do any firmware modifications. Once you connect the sensor, the diode will automatically detect the sensor. Currently, to use the height hold feature, you have to use the cfclient. Check the documentation for cfckeint for more details. We are working on incorporating these features into the mobile app.
Can you tell if you tested your drone with this ToF Sensor - GYVL53L0XV2, or it is only compatible with VL53L1X , as there is huge difference in price ? Also recommend where to buy this sensor so there wouldn't be much issues.
Use VL53L1X.
Thanks, my son and I managed to connect sensor. It shows some stability over height. But got following questions :
- Which buttons and xbox controller to press , as drone does not maintain height, thrust goes down. We tried various combinations of xbox controller looking at your video.
Thanks for this project, I am planning on building one, of all the components I am unable to find the CH340K chip , can you please suggest any alternative please or any link where i can purchase the same. Thanks in advance.
I recently bought the Lite wing from Quarz components. When I started the system, I get the sensor errors and not able to connect. Link LED doesn't glow.
Please find below short Error log:
W (2783) ZR2: Z-down sensor [FAIL]
W (2783) SENSORS: VL53L1X I2C connection [FAIL].
I (2783) gpio: GPIO[42]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
W (2839) SENSORS: PMW3901 SPI connection [FAIL].
Is the firmware with all three sensors?
How to bypass these sensors?
If I want to download and compile the code on github, do I need ESP-IDF version 4.4?
Please guide.
Kiran
These errors won't be an issue. These errors indicate that the height hold and position hold sensors are not attached. It doesn't affect the normal functionality. Yes, for the firmware, use the recommended IDF version, as per the GitHub repo.
i'm having an issue with the mpu-6050 ic. it doesn't seem to work. i see that the chip receives power and has a voltage across the 3v3 and ground pins, but isn't being detected by the software when i run a scan on the pins. what could be the reason for this issue? i see this issue on multiple boards. for context, i used the schematic files and ordered the drone through a vendor, and when presented with engineer questions, i directed them to fill the unused vias at several locations. maybe this is affecting it somehow? any help would be appreciated!
If you have modified the PCB check your connections. Check the soldering too.
Sir
I want to connect VL53L1X. TOF sensor to Litewing, but the pin details( names) in the sensor are in a different order when compared to the pin labelling in the Litewing drone. What should I do ?
You can use tiny flexible wires to connect it or get a module with the correct pinout.
Hello,
How can I switch the drone from AP mode to station mode?
I have purchased 3 drones and I want them to work in swarm.
Sir , CFclient is not regoganise my litewing drone, any fix for that?
i want to add magnetometer to the drone , how to add with arduino code?
Sir my drone is booting again and again on battery it is not stable
I want to make a swarm three drone using this kits are they capable?
Sir,
How to implement Height Hold Using TOF Sensor in the litewing drone, please explain the principle, working and the necessary modification in the firmware
You don't need to do any firmware modifications. Once you connect the sensor, the diode will automatically detect the sensor. Currently, to use the height hold feature, you have to use the cfclient. Check the documentation for cfckeint for more details. We are working on incorporating these features into the mobile app.
*drone
Thanks Sir
Can you tell if you tested your drone with this ToF Sensor - GYVL53L0XV2, or it is only compatible with VL53L1X , as there is huge difference in price ? Also recommend where to buy this sensor so there wouldn't be much issues.
Use VL53L1X.
Thanks, my son and I managed to connect sensor. It shows some stability over height. But got following questions :
You can configure the button mapping in the cfclient. To do so open the Input Device menu and select Configure Device Mapping.
Thanks for this project, I am planning on building one, of all the components I am unable to find the CH340K chip , can you please suggest any alternative please or any link where i can purchase the same. Thanks in advance.
You can check LCSC for CH340K.
I recently bought the Lite wing from Quarz components. When I started the system, I get the sensor errors and not able to connect. Link LED doesn't glow.
Please find below short Error log:
W (2783) ZR2: Z-down sensor [FAIL]
W (2783) SENSORS: VL53L1X I2C connection [FAIL].
I (2783) gpio: GPIO[42]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
W (2839) SENSORS: PMW3901 SPI connection [FAIL].
Is the firmware with all three sensors?
How to bypass these sensors?
If I want to download and compile the code on github, do I need ESP-IDF version 4.4?
Please guide.
Kiran
These errors won't be an issue. These errors indicate that the height hold and position hold sensors are not attached. It doesn't affect the normal functionality. Yes, for the firmware, use the recommended IDF version, as per the GitHub repo.
i'm having an issue with the mpu-6050 ic. it doesn't seem to work. i see that the chip receives power and has a voltage across the 3v3 and ground pins, but isn't being detected by the software when i run a scan on the pins. what could be the reason for this issue? i see this issue on multiple boards. for context, i used the schematic files and ordered the drone through a vendor, and when presented with engineer questions, i directed them to fill the unused vias at several locations. maybe this is affecting it somehow? any help would be appreciated!
If you have modified the PCB check your connections. Check the soldering too.
Sir
I want to connect VL53L1X. TOF sensor to Litewing, but the pin details( names) in the sensor are in a different order when compared to the pin labelling in the Litewing drone. What should I do ?
You can use tiny flexible wires to connect it or get a module with the correct pinout.
Hello,
How can I switch the drone from AP mode to station mode?
I have purchased 3 drones and I want them to work in swarm.
Sir , CFclient is not regoganise my litewing drone, any fix for that?
make sure the PC/laptop is connected to the drones WiFi.
i want to add magnetometer to the drone , how to add with arduino code?
Sir my drone is booting again and again on battery it is not stable
I want to make a swarm three drone using this kits are they capable?