IceDrone
IceDrone
A small, 3D-printable brushed quadcopter built around the Seeed Studio XIAO ESP32-S3 Sense, a GY-91 IMU, VL6180X ToF sensor, four 8520 brushed coreless motors and 75/76 mm propellers. The project combines an Open32Drone-derived flight stack with Wi-Fi camera streaming and a modular printable airframe sized for an Anycubic Kobra S1.
Current mechanical design: Airframe V2.
Current electrical design: V3.4 HW-VERIFIED. V3.2/V3.3 drawings are obsolete for soldering.
Full documentation: icepaule.github.io/IceDrone anddocs/.
Electrical V3.4
The current 70×30 mm perfboard prototype and the custom-PCB path share the same V3.4 electrical profile:
- M1 rear-left: GPIO4 / D3
- M2 rear-right: GPIO44 / D7
- M3 front-right: GPIO6 / D5
- M4 front-left: GPIO5 / D4
- I2C: SDA GPIO2 / D1, SCL GPIO43 / D6; firmware uses
Wire.begin(2, 43) - motor flyback: SS34-class ≥3 A Schottky
- C1: 470 µF / 10 V low-ESR
- C2: 100 µF / 10 V low-ESR
- raw 1S LiHV is not fed directly into XIAO 5V/BAT; V3.4 uses an off-board 1S→5 V boost followed by D5
- photographed VL6180X order:
VIN | 2V8 | GND | GPIO | SHDN | SCL | SDA
For the temporary perfboard build use docs/10_PERFBOARD_V34_SOLDERING_DE.md and the machine-readable files in hardware/.
Airframe V2

The current airframe is a modular 123 mm Quad-X design with dedicated mounts for the 1S battery, electronics deck, XIAO ESP32-S3 Sense camera board, GY-91 IMU and a lightweight flight cage or closed canopy.

Detailed part descriptions, OpenSCAD sources, STL downloads, Kobra S1 print settings and validation notes are in cad/airframe_v2/.
Main printable parts
| Part | Preview | Source / STL |
|---|---|---|
| Main Quad-X frame | ![]() | frame_v2.scad · frame_v2.stl |
| Electronics deck | ![]() | electronics_deck_v2.scad · electronics_deck_v2.stl |
| Battery sled | ![]() | battery_sled_650_v2.scad · battery_sled_650_v2.stl |
| XIAO camera mount | ![]() | xiao_camera_mount_15deg.scad · xiao_camera_mount_15deg.stl |
| GY-91 IMU saddle | ![]() | imu_gy91_saddle.scad · imu_gy91_saddle.stl |
| Flight cage | ![]() | flight_cage_v2.scad · flight_cage_v2.stl |
| Closed canopy | ![]() | canopy_v2.scad · canopy_v2.stl |
| Motor-cup fit test | ![]() | motor_cup_test_v2.scad · motor_cup_test_v2.stl |
Propellers and replacement CAD
The purchased 75 mm propellers can be used directly. Parametric replacement/test models are kept separately under cad/propellers/ so the flight airframe and experimental propeller work remain clearly separated.
| Standard 75 mm | Experimental toroidal / low-noise concept |
|---|---|
![]() | ![]() |
The repository includes CW/CCW STL exports and a 1 mm shaft-fit coupon. The toroidal model is experimental and should be bench-tested for current draw, vibration, balance and thrust before flight use.
Design goals
- mostly printable micro quadcopter
- 123 mm diagonal motor-center wheelbase
- 8520 brushed motors, nominal 1.0 mm shafts
- 75/76 mm two-blade CW/CCW propellers
- target takeoff mass around 60–80 g
- XIAO ESP32-S3 Sense as flight/camera computer
- QVGA MJPEG live video over 2.4 GHz Wi-Fi
- MAVLink telemetry/control over UDP 14550
- stabilized/manual first-flight target
- printable on an Anycubic Kobra S1 with a 0.4 mm nozzle
Repository layout
.
├── README.md
├── bom/
├── cad/
│ ├── airframe_v2/
│ │ ├── scad/
│ │ ├── stl/
│ │ └── renders/
│ └── propellers/
│ ├── scad/
│ ├── stl/
│ └── renders/
├── docs/
├── firmware/
└── hardware/
Quick start
- Read
docs/01_BOM.mdanddocs/02_ELECTRICAL.md; V3.4 is authoritative. - If building the temporary 70×30 mm perfboard, follow
docs/10_PERFBOARD_V34_SOLDERING_DE.mdhole by hole and multimeter-test each stage. - Print
cad/airframe_v2/stl/motor_cup_test_v2.stlbefore committing to the full frame. - Print the Airframe V2 parts using the settings in
docs/03_MECHANICAL.md. - Assemble and power electronics without propellers, following
docs/05_BUILD_AND_TEST.md. - Run the V3.4 bench firmware in
firmware/bench_test/and verify IMU orientation and every motor channel. - Only after all bench checks pass, install balanced propellers and continue with
docs/06_FIRST_FLIGHT.md.
Primary references
- Open32Drone: https://github.com/npu-ius-lab/open32drone
- ESP-FLY: https://github.com/Seeed-Projects/Co-Create_ESP-FLY
- XIAO ESP32-S3 Sense: https://wiki.seeedstudio.com/xiao_esp32s3_getting_started/
Important safety rule
Never test motor channels, arming logic, mixer direction or firmware changes with propellers fitted. Verify motor order and direction at low output first. Printed propellers in particular require careful balancing and restrained bench testing before flight.
License and attribution
Project documentation, original CAD and bench-test code are provided under Apache-2.0 unless a file states otherwise. Open32Drone source is not duplicated here. See NOTICE and LICENSE.









