Google Chat:---
+86-0755-88291180
sales@spotpear.com
dragon_manager@163.com
tech-support@spotpear.com
zhoujie@spotpear.com
WhatsApp:13246739196
WhatsApp:13424403025

A super-compact quadcopter based on an ESP32 development board, featuring a built-in web remote controller and also supporting app and physical remote control.
Replication takes only three steps:
1. Download the [Bill of Materials table] from the attachments on this page, prepare the materials according to the BOM, and fabricate the PCB.
Design drawings, schematic diagrams:https://pro.lceda.cn/editor#id=a3328da24c31463983d68b78a7c95b36

The PCB thickness should preferably be 1.2 mm, as the socket dimensions of the base are designed for a 1.2 mm thickness.
For the main components, try to purchase ones of better quality. The quality of accessories varies, which will directly affect the build results.
2. Separate the PCB. The front, back, left, and right sections are the motor mounts, and the middle section is the main controller board. Since panelized PCBs cannot use free coupons, the PCB is not pre-separated. Before assembly, separate the main controller board from the motor mounts. You can use tools to help; flush cutters make it easy to cut them apart.

3. Solder the components.

After soldering is complete, it is recommended to use a multimeter to briefly test the circuit for cold solder joints or short circuits, and confirm there are no issues before applying power.
4. Solder the motor mounts.
The motor mounts can effectively protect the drone when it loses control and also serve as the support for the entire aircraft. Installation is recommended. Solder pads are provided near the brackets; reinforce them with solder.
What it looks like after soldering

5. Install the motors.
The motor rotation direction must follow the specified direction. The PCB has silkscreen markings indicating the corresponding direction, and the two diagonal motors must rotate in the same direction.
It is recommended to use two motors with black-and-white wires and two with red-and-blue wires, so the colors make installation more intuitive; alternatively, four motors with the same wire color can be used.
The motors are secured to the bracket with rubber rings, or fixed directly with hot glue.
Motor rotation direction reference:

6. Install the propellers.
The propellers must also be installed in the specified direction! When the motor rotates in the marked direction, the higher side of the propeller should face forward and blow air downward. The diagonal propellers must also face the same direction. Refer to the installation direction shown in the figure below.
The safest approach is to complete debugging, arm the motors, and confirm that all four propellers blow air downward.
The mechanical strength of the motors and propellers is limited. Do not use excessive force during installation; tightening them securely is sufficient.

1. Download the compiled BIN firmware file.
E1_Nano firmware 20261027.bin
2. Use a USB cable to connect the ESP32 development board to the computer.
When the development board is connected to the computer for the first time, it usually does not automatically enter download mode and will keep disconnecting. Hold down the BOOT button and then connect it to the computer.
3. Flash using the official Espressif tool.
Flashing tool download address:https://docs.espressif.com/projects/esp-test-tools/zh_CN/latest/esp32/production_stage/tools/flash_download_tool.html
Flash settings:


If you don't know which COM port to use, plug and unplug the development board and see which COM port changes—select that one.
1. Connect the battery to the drone, and connect your phone to the drone's Wi-Fi: Drone_WIFI, password: 12345678. Some phones have an automatic network optimization feature that automatically switches between Wi-Fi and mobile data, so this needs to be disabled; or a more direct method: turn off mobile data on your phone.
2. Open your phone's browser and enter the address.:http://192.168.4.1 Confirm and open the remote control interface.

In the web remote controller, click the "Debug" button. In the debug interface that pops up, you can enter debug commands. It is recommended to remove the propellers before debugging.
- Calibrate the IMU (mandatory). Enter the debug command "ca" and position the drone as prompted. Refer to this prompt:
1/6 Level placement: Nose facing forward (normal flight direction), bottom facing down, place it level on a flat surface, ensuring it is completely level with no tilt. Keep it still; calibration will begin after 8 seconds.
Level calibration complete. Please continue.
2/6 Nose up: Keep the nose facing forward, point the nose toward the sky, tail facing down and touching the support surface, perpendicular to the ground. Keep it still; calibration will begin after 8 seconds.
Nose-up calibration complete. Please continue.
3/6 Nose down: Keep the nose facing forward, point the nose toward the ground and touching the support surface, tail facing up, perpendicular to the ground. Keep it still; calibration will begin after 8 seconds.
Nose-down calibration complete. Please continue.
4/6 Right side down: Keep the nose facing forward, place the right side of the aircraft facing down and touching the support surface, left arm facing up, perpendicular to the ground. Keep it still; calibration will begin after 8 seconds.
Right-side-down calibration complete. Please continue.
5/6 Left side down: Keep the nose facing forward, place the left side of the aircraft facing down and touching the support surface, right arm facing up, perpendicular to the ground. Keep it still; calibration will begin after 8 seconds.
Left-side-down calibration complete. Please continue.
6/6 Upside-down placement: Keep the nose facing forward, completely flip the aircraft so the top faces down and the bottom faces up, in a level upside-down position. Keep it still; calibration will begin after 8 seconds.
✓ All calibration complete! Set the aircraft upright and run the "ps" command to check the calibration results.
After calibration is complete, set the drone upright (top facing up) and enter the command "ps" to check the calibration results. You will see something like:
roll: 0.521120 pitch: -0.062948 yaw: 82.711197
roll/pitch close to 0 indicates successful calibration. The normal range is within ±0.5°, the acceptable range is within 2, and if it exceeds 5, recalibration is required. yaw can be ignored; the MPU6500 has no magnetometer, so the yaw axis is a virtual computed value.
IMU calibration only needs to be done once. After that, it does not need to be redone unless there is a significant deviation, hardware replacement, or firmware rewrite.
- Test the motors (optional). First remove the propellers from the motors to avoid injury! Enter the commands "mfl/mfr/mrl/mrr" respectively, corresponding to the front-left, front-right, rear-left, and rear-right motors, and observe whether the four motors rotate normally.
If the phone screen is too small for convenient debugging, you can also use Arduino or GQC for debugging. Refer to the content in the "In-Depth Study" section.
4. Take off. Click the arm button, push the throttle, and take off!

If you are only doing a simple replication, the following sections can be ignored.
This project is licensed under the CC BY-NC-SA open-source license. Commercial use is prohibited without authorization.
Hardware and software documentation, FAQ:http://docs.cherglowtech.com/e-series/e1-nano
Companion ground station:https://gc.cherglowtech.com/
Open-source flight controller source code:https://github.com/songge8/CF-Drone
The flight controller software is developed using Arduino. You can use Arduino for development and compilation, and the console built into the Arduino IDE can also be used for aircraft debugging.
The main board has two reserved data interfaces, by default for the remote control receiver and as a spare. They can be used to connect external devices such as a remote control or to supply power to external devices.
The remote control receiver interface reserved on the main board supports the mainstream CRSF (ELRS) / SBUS remote control protocols. SBUS has been implemented with software inversion, so no hardware inverter is needed; ELRS/CRSF supports one-way control input, and you only need to connect the receiver's GND, 5V, and TX → the drone's G, V, and IO4.
Physical remote control setup method:
The app is available on the QGC official website.https://qgroundcontrol.com/
In addition to controlling the aircraft, the APP's Analyze Tools → MAVLink Console can also be used for flight controller debugging.
The firmware supports the MAVLink protocol.
Component positions and orientations may differ between hardware versions; refer to the actual PCB silkscreen.
Any of the following methods can be used.
The development board has not entered download mode. Hold down the BOOT button, connect it to the computer, and then release the BOOT button.
The flashing process takes about several tens of seconds. If an error occurs, or if it finishes too quickly or takes too long to complete, troubleshoot item by item according to the following:
Plug the data cable directly into the computer's USB port; do not use a USB hub or docking station.
It is recommended to use an Android phone data cable. Some cables only support charging and have no data transfer function.
Do not open Arduino and the Espressif flashing tool at the same time, as the serial port will be occupied.
Confirm that the correct development board model is selected in the flashing tool, and check that the development board model displayed in the title bar of the flashing tool is ESP32-S3.
The development board may not have entered download mode. Perform the following steps:
Plug the development board into USB, open the ESP32 flashing software, select the development board's serial port, hold down the BOOT button on the development board, click START in the flashing software, and release the BOOT button once you see it start connecting. The development board will then enter download mode.
Confirm that the firmware is for the correct model and was downloaded from official channels (engineering documentation, QQ group files, etc.). Third-party firmware is not supported, and MINI/Nano firmware is not interchangeable.
The flashing address is "0x00", where "0" is the Arabic numeral and "x" is the English letter; other characters cannot be used as substitutes.
Confirm that the correct development board COM port is selected. The development board COM port must be selected from the list and cannot be entered manually.
Usually, the drone's Wi-Fi signal appears within a few tens of seconds after power-on. Your phone may take some time to refresh the signal list, so there may be a delay. If it does not appear for a long time, please troubleshoot by following the steps below.
Do not plug the development board into the drone; connect it to the USB data cable alone to avoid the development board failing to start normally due to a circuit short, which would interfere with troubleshooting.
Confirm that the firmware has been written correctly. It is recommended to use the latest firmware. Sometimes poor contact at the computer port or with the data cable can cause write errors, which may lead to Wi-Fi connection failure or incorrect password. You can try changing the computer port/data cable, clearing the development board's storage, and then reflashing the firmware.
The correct default Wi-Fi name: Drone_WiFi, password: 12345678 (marked on the aircraft body).
If you have changed the account and password, connect using the modified account and password. If you forget the password, you can clear the development board's storage and reflash the firmware to reset it.
A Wi-Fi signal starting with ESP_XXXXXX is the development board's factory default signal, indicating that the firmware was not successfully flashed. Flash the firmware and try again.
If the battery level is too low, it may not be able to power the Wi-Fi.
After the firmware is correctly written, power the development board back on, and the red indicator light on the development board will flash once. If the blue indicator light does not light up or stays on continuously, it means the firmware was not successfully written or the program did not run successfully. You can seek help in the technical exchange group.
Before connecting, first confirm that the drone firmware has been flashed successfully.
Confirm that your phone is connected to the drone's Wi-Fi and that mobile data has been turned off.
Web remote control address http://192.168.4.1
All symbols in the web remote control address must be English symbols; do not use Chinese symbols.
Some browsers distinguish between the address bar and the search bar; the address must be entered in the address bar.
In this project, the terms IMU, gyroscope, attitude sensor, and accelerometer all actually refer to the IMU (MPU6500).
This alert indicates that the IMU (MPU6500) has a cold solder joint, a short circuit, or is not working properly.
Use the "ca" command in the web remote debugging console or the console, calibrate the IMU according to the prompts, and then operate again.
Use the ps command to check the attitude data after calibration. If roll/pitch is close to 0, the calibration is successful. The normal range is within 0.5, the acceptable range is within 2, and if it exceeds 5, recalibration is required. yaw can be ignored; the MPU6500 has no magnetometer, so the yaw axis is a virtual computed value.
Set the aircraft body upright (development board facing up, bottom of the aircraft facing down), then run the PS command again.
If the PS command still shows 170+ after the aircraft is placed upright, it means the calibration is incorrect and calibration needs to be performed again.
IMU(MPU6500模块)虚焊、短路、工作不正常。(新版固件会提示IMU故障)
IMU(MPU6500模块)虚焊、短路、工作不正常。(新版固件会提示IMU故障)
IMU校准只需要完成一次,以后如果没有大的偏差、硬件更换、固件重写就不需要再做。
开发板没有刷写固件前部分引脚可能会有默认上拉,可能会启动电机。没有刷写固件前不要上电,或去掉开发板再上电。
正常情况上电后不做任何操作电机不会转,解锁后才会转。
如果上电后不做任何操作电机会转,检查这路电机的驱动电路,这种情况可能是:
需要测试排查电机、电路问题,按下面的步骤进行:
使用网页遥控/控制台调试命令mfl/mfr/mrl/mrr依次测试(测试前去除桨叶!)。如果电机转动正常则说明电机、驱动电路硬件均正常;不转说明这一路电机或驱动电路不正常,需要继续排查。
单独测试电机好坏,把电机取下,电机正负极直连可调电源,1V电压下电机能转说明电机正常。如果没有可调电源可用1.5V干电池或无人机电池代替。
如果调试命令测试电机不转,单独测试电机正常,则判断电机驱动电路可能存在问题。检查对应电机驱动电路:
加油门时,电机转速通过飞控姿态计算等算法实时调整,不是由电池直接供电,转速不同是正常的。 但如果是侧翻或无法起飞,请按侧翻问题排查。
如果需要测试电机,使用网页遥控/控制台调试命令mfl/mfr/mrl/mrr。
正常起飞的必要条件:
排查以上问题后,一般都可以正常起飞。
网页遥控布局为美国手。可以在网上找一些穿越机操控教程学习。
左摇杆上下为油门,左右为偏航;右摇杆为上下为俯仰,左右为横滚。
这是无人机的专业叫法,新手可能误解,所以新版固件中改成大白话了:
左摇杆,上:油门加;下:油门减;左:左转;右:右转;
右摇杆,上:前进;下:后退;左:左移;右:右移。
特技(穿越机模式):手动油门,松油门自动回零;手动控制姿态,姿态不自动回正。
自稳(穿越机模式):手动油门,松油门自动回零;手动控制姿态,姿态自动回正。
定高(类似某疆飞行模式,需配合传感器模块,安装后自动识别):自动油门,油门控制高度上下,松油门自动保持高度;手动控制水平方向;
定点(类似某疆飞行模式,需配合传感器模块,安装后自动识别):自动油门,油门控制高度上下,松油门固定高度悬停;自动保持水平方向,可手动调整,松手固定位置悬停。
无人机只允许一个遥控同时控制,关闭或断开其他遥控器即可(多个遥控网页也算多个遥控)。
少数手机浏览器可能有特殊机制,只有一个网页遥控的情况下可能误报。换个浏览器即可。
受动力功率限制,高度约几米,水平距离理论可达几百米,但因为没有图传,只能在视距内飞行,实际几十米外就已经看不清飞机在哪了。
电池的最佳存放状态是半电,而且电池会自放电,所以收到不是满电的。充满电再使用即可。
套件中带有充电线,推荐使用5V1A充电头,标准电池约半小时左右充满,充电时充电线亮红灯,充满灯灭。
电池接口旁LED为电源指示灯,上电后应该常亮,不亮或闪烁为供电有问题。开发板蓝色指示灯为开发板电源指示灯,上电后应闪烁(亮度可能较低)。
开发板红色指示灯默认为状态指示灯。上电闪一下:程序自检。慢闪:解锁正常。快闪:报警(电量低、遥控失联等)。
飞机背面指示灯为电机运行指示灯,亮灭和电机通电状态一致:电机通电指示灯亮,电机断电指示灯灭,解锁前不亮,解锁后亮。
飞机背面电机指示灯亮度不一致/闪烁:电机指示灯亮度随电机转速变化,解锁后电机转速受算法控制实时变化,是正常现象。
可能烧坏MOS管的情况:
固件在立创硬件开源平台工程文档的附件中、QQ群文件都可以下载到。
源码为固件编译前的源代码,无法直接烧录使用,源码中没有固件。
PS:固件为琛光科技开发,均在琛光相关渠道提供;不要到乐鑫的刷写工具目录里或者刷写工具页面去找。
一般QQ群文件里的固件会更新一些,且最新测试版固件一般会发在QQ群;
立创硬件开源平台的固件一般为稳定版,且更新频率会稍微慢一些。
最新固件一般会领先稳定版固件数十个小版本,很多问题已在新版固件优化,但也可能会有未知问题,可以根据自身情况使用稳定版或新版固件。