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)


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)

  1. 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.
  2. 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.
  3. 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).
  4. 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).

  1. Open the app, confirm it shows a live connection and battery voltage.
  2. Left stick = throttle (and yaw, later). Right stick = pitch/roll. If the app allows it, start with yaw disabled/ignored — fewer axes, faster learning.
  3. Spin-up test: blip the throttle to ~10% for a second. All 4 props spin, no rattle, drone stays put. Kill throttle.
  4. 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.
  5. 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.
  6. Box drill: from hover — forward 1 m, back, left 1 m, right. One axis at a time. Land. Rest. Repeat.
  7. 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.
  8. 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.)
  9. 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)

  1. 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.
  2. 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.
  3. 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.

Sources