User avatar
By RichardS
#43034 User

This is a UAV flight controller on a small (0.71 in x 1.22 in) pc board using the ESP8266EX 80 MHz Tensilica Xtensa system-on-chip, the EM7180+MPU9250+BMP280 (Ultimate Sensor Fusion Solution) for motion sensing and low on-resistance (20 mOhm) n-type DMN2041L MosFets to drive up to four brushed motors using PWM signals. The ESP8266EX integrates an enhanced version of Tensilica's L106 Diamond series 32-bit processor, with on-chip SRAM, which features extra low power consumption and 16-bit RISC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz.

There is a 1 Mbyte W25Q80BLUX1G SPI NOR flash on the board for ESP8266 serial and OTA programming, and for user file storage or flight data logging. The board is powered by a single 1S LiPo battery (not included). There is a TI TPS61240 5 V boost converter to supply power to the rc radio (not included) and a NCP161 3V3 LDO (150 mV typical) voltage regulator to provide power to the ESP8266 and motion sensing circuitry. The power section, including a reverse polarity diode, is sized to provide up to 450 mA to the ESP8266 and associated control and sensing circuitry from the LiPo battery. The 5 V boost converter ensures that the voltage and current required to run the radio and ESP8266 is sufficient for stable operation even when the motors are at their full power. There is a voltage divider on VBAT to allow real-time monitoring of the battery voltage via the ESP8266 ADC.

All of the GPIOs {GPIO 1, 3 (UART), GPIO 0, 2 (I2C), GPIO 4, 5, 12, 13, 14, 15, 16} are broken out (GPIO 6 - 11 are for the QSPI flash) so this board can also be used to drive ESCs for use with brushless motors, and the flight controller also makes a great general purpose robotic control board.

Solder a 1.25-inch-long, 28-gauge insulated copper wire to the solder pad for a simple but effective RF antenna. Transmission range is easily 40 feet in the open, plenty for a robot or small UAV. This means real-time telemetry can be broadcast to a tablet or smartphone, and that control of the robot or UAV via the embedded wifi is straightforward and practical.

The use of the Ultimate Sensor Fusion Solution allows smooth and stable flight even with the smallest of UAVs because of the superior heading accuracy and effective magnetic anomaly detection afforded by the EM7180 and its embedded algorithms. The orientation estimation remains accurate even in the presence of strong fixed magnetic fields from the nearby brushed DC motors but also from the stray fields generated by the several amps of current flowing at the highest motor drive.

Why did you make it?

The ESP8266 SoC is a remarkably powerful and versatile SoC considering its small size (5 mm x 5 mm) and low cost (~$2 in volume). It makes a great control platform for robotics and many other applications. In addition to fast processing and low cost, it has embedded wifi and, most importantly, it is programmable via an Arduino IDE so it is very easy to use. I decided to design a small but generally useful pcb using the ESP8266 and the obvious first application is to use it in a quadcopter!

The easiest way to make use of this flight controller is to solder a conventional rc radio (receiver) onto the board using 5V/GND and GPIO 13 as the signal pin. Then use a conventional transmitter to control the UAV.

But this flight controller has an ESP8266 SoC with embedded wifi capability, so it should be possible to design a custom transmitter that also has an ESP8266 SoC and some joysticks for input and control the UAV that way. This is the plan but we are not there yet!

What makes it special?

This is a very small and light (< 2 g) pcb with almost everything you need to control a UAV. The intended use is to replace the electronic control board in a commercial quadcopter (i.e., a Hubsan) with this flight controller board that you can then program yourself using the Arduino IDE. We have flight control software that we will make available for customers to use. Or buy the rest of the parts you will need (350 mAH LiPo battery, frame, brushed motors, rc receiver and transmitter) and you should be able to assemble and program your very own quadcopter or rolling robot or...whatever you can imagine!




(245.47 KiB) Downloaded 554 times
(9.2 KiB) Downloaded 806 times
(90.95 KiB) Downloaded 834 times