• sales

    +86-0755-88291180

ESP32-MINI-NANO-Drone-B User Guide

1. Project Overview

未标题-1-1.jpg

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.

Specifications

  • Main controller: ESP32-S3-SUPERMINI
  • Wheelbase: 50mm
  • Weight: approximately 25 grams (including standard battery)


Quick start

III. Project Replication

Replication takes only three steps:

  • Hardware assembly
  • Software flashing
  • Simple debugging

Step 1: Hardware Assembly

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

20260822_103812.jpg

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.

20260821_091404.jpg

3. Solder the components.

未标题-2.jpg

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

IMG_2556.jpg

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:

c8766ad3b08d4debabcf14898cebf512.png

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.

IMG_2564.jpg

Step 2: Software Flashing

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:

Snipaste_2026-08-19_23-04-47.png

Snipaste_2026-07-15_23-59-31.png

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.

Step 3: Debugging and Takeoff

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.

IMG_2566.png

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!

20260908_232433.jpg

IV. In-Depth Study

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.

Reserved interfaces

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.

RC hobby remote control

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:

  • Ensure the remote control and receiver are properly connected and the receiver protocol is set correctly.
  • Connect the drone and the receiver.
  • Set the receiver interface protocol and corresponding baud rate via console commands: RC_PROTOCOL, remote control protocol, 0=SBUS, 1=CRSF/ELRS (default); RC_BAUD, remote control serial port baud rate (bps), SBUS=100000, CRSF=420000 (default).
  • Calibrate the remote control; use the CR command in the console and follow the prompts.
  • Push the left stick fully to the bottom right to arm, and fully to the bottom left to disarm.

QGC mobile app

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.

MAVLINK​

The firmware supports the MAVLink protocol.


FAQ

Polarized component connection tips

Component positions and orientations may differ between hardware versions; refer to the actual PCB silkscreen.

  • For diodes, the vertical line on the component marks the negative terminal, corresponding to the vertical line on the PCB silkscreen.
  • For LEDs, the green leg on the front / the arrow direction on the back of the component indicates the negative terminal, corresponding to the pointed end of the PCB silkscreen.
  • For electrolytic capacitors, the black marking on the component indicates the negative terminal; just match the shape of the component's bottom to the PCB silkscreen shape.

Component soldering positions

Any of the following methods can be used.

  • The PCB has the reference designator and value printed for each component. Locate the corresponding position by the reference designator or value. (Recommended)
  • Interactive online component location map https://pcbbom.cherglowtech.com/pcb/E1Nanov1.5Y
  • PCB design drawing

The development board keeps disconnecting and reconnecting when connected to the computer, or keeps making the "ding-dong" connection sound.

The development board has not entered download mode. Hold down the BOOT button, connect it to the computer, and then release the BOOT button.

Unable to download / stuck at syncing when flashing firmware.

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.

Drone Wi-Fi cannot be found / cannot be connected.

  • 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.

The web remote control won't open.

  • 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.

IMU fault alert

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.

"Accelerometer not calibrated" prompt when arming

Use the "ca" command in the web remote debugging console or the console, calibrate the IMU according to the prompts, and then operate again.

Normal range for IMU calibration data.

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.

After IMU calibration, the ROLL value shows 170+.

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校准后数据都是NAN 或 PS命令显示姿态数据roll/pitch全是0.000​

IMU(MPU6500模块)虚焊、短路、工作不正常。(新版固件会提示IMU故障)

IMU校准时长时间卡在第一步,甚至遥控断连​

IMU(MPU6500模块)虚焊、短路、工作不正常。(新版固件会提示IMU故障)

IMU每次开机都需要校准吗?​

IMU校准只需要完成一次,以后如果没有大的偏差、硬件更换、固件重写就不需要再做。

上电后不做任何操作电机会转吗?​

开发板没有刷写固件前部分引脚可能会有默认上拉,可能会启动电机。没有刷写固件前不要上电,或去掉开发板再上电。

正常情况上电后不做任何操作电机不会转,解锁后才会转。
如果上电后不做任何操作电机会转,检查这路电机的驱动电路,这种情况可能是:

  • 10K电阻虚焊(最常见,如果无法确定可以直接加焊);
  • MOS管烧坏导通(通常能看到元件上有烧坏的圆点等痕迹)。

解锁后(怠速时)电机有的转,有的不转​

需要测试排查电机、电路问题,按下面的步骤进行:

使用网页遥控/控制台调试命令mfl/mfr/mrl/mrr依次测试(测试前去除桨叶!)。如果电机转动正常则说明电机、驱动电路硬件均正常;不转说明这一路电机或驱动电路不正常,需要继续排查。

单独测试电机好坏,把电机取下,电机正负极直连可调电源,1V电压下电机能转说明电机正常。如果没有可调电源可用1.5V干电池或无人机电池代替。

如果调试命令测试电机不转,单独测试电机正常,则判断电机驱动电路可能存在问题。检查对应电机驱动电路:

  • 电机插座/焊点是否短路(电阻小于0.5Ω可以判断为短路),如果短路还需要检查MOS管是否已经烧坏;
  • 47Ω电阻、MOS管虚焊(最常见,无果无法确定可以直接加焊);
  • MOS管烧坏(通常能看到元件上有烧坏的圆点等痕迹);
  • 10K电阻短路(不常见);

加油门电机转速不一致​

加油门时,电机转速通过飞控姿态计算等算法实时调整,不是由电池直接供电,转速不同是正常的。 但如果是侧翻或无法起飞,请按侧翻问题排查。
如果需要测试电机,使用网页遥控/控制台调试命令mfl/mfr/mrl/mrr。

加油门起飞时无人机侧翻/部分电机停转/无法起飞​

正常起飞的必要条件:

  • 电池实际放电倍率在25C及以上(官方套件电池已实测符合要求)
  • 电池电量充足。
  • 电机旋转方向必须正确。
  • 桨叶方向安装必须正确。
  • IMU校准无误,校准误差在合格范围内。
  • 电路没有虚焊、短路。

排查以上问题后,一般都可以正常起飞。

网页遥控怎么操作​

网页遥控布局为美国手。可以在网上找一些穿越机操控教程学习。

左摇杆上下为油门,左右为偏航;右摇杆为上下为俯仰,左右为横滚。
这是无人机的专业叫法,新手可能误解,所以新版固件中改成大白话了:
左摇杆,上:油门加;下:油门减;左:左转;右:右转;
右摇杆,上:前进;下:后退;左:左移;右:右移。

飞行模式说明​

特技(穿越机模式):手动油门,松油门自动回零;手动控制姿态,姿态不自动回正。
自稳(穿越机模式):手动油门,松油门自动回零;手动控制姿态,姿态自动回正。
定高(类似某疆飞行模式,需配合传感器模块,安装后自动识别):自动油门,油门控制高度上下,松油门自动保持高度;手动控制水平方向;
定点(类似某疆飞行模式,需配合传感器模块,安装后自动识别):自动油门,油门控制高度上下,松油门固定高度悬停;自动保持水平方向,可手动调整,松手固定位置悬停。

提示被接管​

无人机只允许一个遥控同时控制,关闭或断开其他遥控器即可(多个遥控网页也算多个遥控)。
少数手机浏览器可能有特殊机制,只有一个网页遥控的情况下可能误报。换个浏览器即可。

飞行距离/高度​

受动力功率限制,高度约几米,水平距离理论可达几百米,但因为没有图传,只能在视距内飞行,实际几十米外就已经看不清飞机在哪了。

为什么收到的电池没电?​

电池的最佳存放状态是半电,而且电池会自放电,所以收到不是满电的。充满电再使用即可。

套件中带有充电线,推荐使用5V1A充电头,标准电池约半小时左右充满,充电时充电线亮红灯,充满灯灭。

指示灯闪/不亮​

电池接口旁LED为电源指示灯,上电后应该常亮,不亮或闪烁为供电有问题。开发板蓝色指示灯为开发板电源指示灯,上电后应闪烁(亮度可能较低)。

开发板红色指示灯默认为状态指示灯。上电闪一下:程序自检。慢闪:解锁正常。快闪:报警(电量低、遥控失联等)。

飞机背面指示灯为电机运行指示灯,亮灭和电机通电状态一致:电机通电指示灯亮,电机断电指示灯灭,解锁前不亮,解锁后亮。

飞机背面电机指示灯亮度不一致/闪烁:电机指示灯亮度随电机转速变化,解锁后电机转速受算法控制实时变化,是正常现象。

MOS管烧坏​

可能烧坏MOS管的情况:

  • 电机接线短路;
  • 电机堵转;
  • 二极管接反、虚焊;

找不到BIN固件​

固件在立创硬件开源平台工程文档的附件中、QQ群文件都可以下载到。

源码为固件编译前的源代码,无法直接烧录使用,源码中没有固件。

PS:固件为琛光科技开发,均在琛光相关渠道提供;不要到乐鑫的刷写工具目录里或者刷写工具页面去找。

哪里的固件是最新的?​

一般QQ群文件里的固件会更新一些,且最新测试版固件一般会发在QQ群;

立创硬件开源平台的固件一般为稳定版,且更新频率会稍微慢一些。

最新固件一般会领先稳定版固件数十个小版本,很多问题已在新版固件优化,但也可能会有未知问题,可以根据自身情况使用稳定版或新版固件。


下载

固件​

琛光E1_Nano固件20261027.bin

第三方工具、驱动​

ESP32刷写工具​

https://docs.espressif.com/projects/esp-test-tools/zh_CN/latest/esp32/production_stage/tools/flash_download_tool.html


技术支持
































TAG: Industrial Isolation USB TO RS232/485/422/TTL FT232RNL Serial UART Converter Raspberry-Pi-1.54inch-LCD-Display-Touchscreen-configuration-Bookworm-Lite For Pi5 Raspberry Pi 5 PCIE to MiniPCIe For wireless network WIFI Card USB Bluetooth Raspberry Pi Pico 2 RP2350 CAN Onboard XL2515 CAN Controller RP2350A Raspberry Pi 0.96inch OLED Industrial RS232 to RS485 Raspberry Pi CM5 Mini Base IO Board NANO A Development For Compute Module 5 DeepSeek AI Voice Chat ESP32-S3 Box N16R8 AUDIO Board Support External LCD/Camera AI deepseek Arducam ESP32-S3 SpotPear Mini TOF Time-of-Flight Laser Ranging Radar Sensor Compatible RS485 with Arduino Raspberry Pi ESP32 and Pico X1008 Raspberry Pi 5 PCIe to 2.5" 3.5" SATA HDD/SSD Dual Double-SATA (NOT BOOT From SATA/SSD USB to UART Raspberry Pi 5 Case Raspberry Pi Pico 2 RP2350 1.69 inch LCD TouchScreen Development Board 240x280 1.69inch Display QMI8658 6-Axis Luckfox Pico plus ESP32 S3 Development Board 1.64 inch AMOLED Display 1.64inch TouchScreen For Arduino LVGL With SD-Port/ QMI8658C 6-Axis Sensor Raspberry Pi Camera 8MP IMX415 also For Luckfox-Omni3576 RK3576 Raspberry Pi 5 / 4B UPS With PD Trigger Activation Uninterruptible Power Bank Supply 9600mAh 5V/5A 25W Also For Phone/Mini Computer PC

[Tutorial Navigation]