04-litewing-flight-guide
LiteWing ESP32 Drone — From Box to First Flight
What you bought: the CircuitDigest LiteWing — an open-hardware mini drone where the circuit board is the airframe. An ESP32-S3 runs the flight controller and broadcasts its own WiFi hotspot; you fly it from the official phone app or from Python on a PC. It ships ready-to-fly except the battery — you must buy a 1S LiPo (details below).
Docs hub (bookmark this): https://circuitdigest.com/wiki/litewing/ · Source: https://github.com/Circuit-Digest/LiteWing
The mental model (read this first)
- ELI5: The drone is a tiny robot that balances itself like you balance on a bike. Your phone talks to it over its own WiFi. You tell it "more lift / lean forward / turn," and it does the balancing for you. It does not know where it is in the room — if you let go of the sticks, it slowly drifts, like a balloon in still air.
- Practitioner: Sticks send setpoints (thrust, roll, pitch, yaw) over WiFi as CRTP-over-UDP. The ESP32-S3 runs an ESP-Drone firmware (Crazyflie's flight algorithms) that closes an attitude loop using the MPU6050 IMU and mixes output to 4 brushed motors. There is no position or altitude hold on the base model — you are the outer control loop. Height hold requires the VL53L1X ToF add-on; position hold requires the PMW3901 optical-flow add-on.
- Expert: 1S brushed quad, X config, ESP-IDF firmware forked from Espressif's ESP-Drone which ports Bitcraze Crazyflie's stabilizer stack; the drone is a 2.4 GHz softAP and speaks the Crazyflie Real-Time Protocol encapsulated in UDP, which is why Bitcraze's cfclient and cflib work as PC-side controllers. Betaflight support is also listed in the wiki.
Part 1 — What you need before flight day
| Item | Spec | Why |
|---|---|---|
| Battery (not included!) | 1S 3.7 V LiPo, 20C discharge or higher; if takeoff causes disconnects/brownouts, go 650 mAh 30C | Low-C packs sag under motor load → ESP32 browns out mid-takeoff |
| 1S LiPo USB charger | any 1S (4.2 V) charger matching the pack's connector | Never charge LiPos unattended; charge on a non-flammable surface |
| Flying space | indoor room ≥ 3×3 m, cleared, no ceiling fan, pets out | Base model drifts; you need margin |
| The app | official LiteWing app (Android/iOS — link from the wiki) | Primary controller |
Check the battery connector on your pack matches the LiteWing's socket before flight day (see the wiki's battery selection guide).
Part 2 — Pre-flight (5 minutes, every time)
- Props: confirm each prop is on its marked position — 2 CW + 2 CCW, and the correct rotation is silkscreened on the PCB next to each motor. Wrong prop position is the #1 reason it flips instead of flying.
- Battery: strap a fully charged pack under the board (hook-and-loop slots). If you later add the bottom positioning module, the battery moves to the top.
- Flat surface power-on: place the drone on a level surface before connecting the battery. The IMU calibrates at boot — a slow-blinking SYS LED means calibration is in progress; don't touch it until it settles. Unstable hover later almost always traces back to a bad calibration (power-cycled in your hand, tilted table).
- WiFi pairing: on your phone — join the drone's own hotspot, then turn OFF mobile data, VPN, and "switch away from networks without internet." Android/iOS love to abandon a no-internet WiFi mid-flight; that's the classic "app won't connect / drops randomly" cause.
Part 3 — First flight (the actual instruction)
Stance: drone 1–2 m in front of you, tail toward you (so its left/right matches yours).
- Open the app, confirm it shows a live connection and battery voltage.
- Left stick = throttle (and yaw, later). Right stick = pitch/roll. If the app allows it, start with yaw disabled/ignored — fewer axes, faster learning.
- Spin-up test: blip the throttle to ~10% for a second. All 4 props spin, no rattle, drone stays put. Kill throttle.
- Hop test: smoothly raise throttle until it just leaves the ground (~20 cm), then ease back down. Do this 5 times. You're learning the throttle "hover point" — on a 1S brushed quad it's usually a bit below half stick and it rises as the battery sags.
- Low hover: lift to knee height and hold it there for 10 seconds using only tiny throttle corrections. It will drift — nudge the right stick briefly and gently to correct, then re-center. Sticks are corrections, not steering wheels.
- Box drill: from hover — forward 1 m, back, left 1 m, right. One axis at a time. Land. Rest. Repeat.
- Add yaw only when the box drill is boring: rotate 90°, and notice pitch/roll are now rotated too — this is why yaw comes last.
- Land before the battery is weak: the moment the app warns on voltage or the drone's error LED lights, land. Flying a sagging 1S pack = mushy control, then a drop. (Deep-discharging also ruins LiPos.)
- Emergency stop (app): only for true loss of control — it cuts motors, the drone falls. A controlled bad landing beats a motor cut from height.
Expected failure modes, decoded:
| Symptom | Cause | Fix |
|---|---|---|
| Flips on takeoff | prop in wrong position / wrong direction | re-check PCB markings |
| Won't connect / drops | phone bailed to mobile data or VPN grabbed traffic | Part 2 step 4 |
| Disconnects at throttle-up | battery C-rating too low (voltage sag) | 650 mAh 30C class pack |
| Wobbly / drifts hard | IMU calibrated on a tilted surface | power-cycle on flat ground |
| Error LED on | low battery | land + charge |
Part 4 — Where this goes next (your growth path)
- Python control: the firmware speaks Crazyflie's protocol, so cflib (
pip install cflib) and cfclient on a PC joined to the drone's WiFi can script it — takeoff, square patterns, telemetry logging. This is the "programmable" half of the product and a natural TypeScript-adjacent playground. - Positioning module: the official add-on (VL53L1X ToF + PMW3901 optical flow, bottom 2×12 header) gives height hold and position hold — the app gains a much more beginner-friendly mode.
- Reflash/hack firmware: USB-C + browser-based flasher (Chrome/Edge, ESPtool.js) from the wiki; it's an ESP-IDF project on GitHub, fully open.
Safety & legal (US, brief)
- LiPo care: never charge unattended, never fly a puffed pack, store at ~3.8 V.
- Keep fingers/hair away from props; they're small but coreless motors bite.
- Indoors: no FAA implications. Outdoors: it's well under 250 g so no registration for recreational flying, but recreational flyers are still expected to have the free TRUST certificate and follow the usual rules (under 400 ft, away from people/airports). Calm air only — this thing weighs nothing.
Sources
- Official wiki (specs, troubleshooting, battery, calibration, pairing): https://circuitdigest.com/wiki/litewing/
- Assembly & prop placement: https://circuitdigest.com/microcontroller-projects/assembling-litewing-drone
- Mobile app guide: https://circuitdigest.com/articles/litewing-esp32-drone-gets-new-mobile-app
- Firmware/source (ESP32-S3, open hardware): https://github.com/Circuit-Digest/LiteWing
- Product page: https://www.amazon.com/dp/B0GNN1MGC7