Project tutorial
TinyML Aerial Forest Fire Detection

TinyML Aerial Forest Fire Detection © MIT

Detecting forest fires with a long-range autonomous airplane equipped with satellite communication.

  • 52 respects

Components and supplies

Necessary tools and machines

09507 01
Soldering iron (generic)
DC Power Supply
General Hand Tools

Apps and online services

About this project

The Problem

Forest fires are a serious and deadly problem all around the world, especially in California—our home state. In 2021, 7,480 wildfires burned down a cumulative 2,281,050 acres in California alone, and with climate change, the problem is only going to get worse. Wildfires threaten our homes and wildlife, and once they spread, they can be nearly impossible to stop without seriously endangering our firefighters. One way to prevent wildfires from becoming so consequential is an early detection system.

Specifically, we decided to make an efficient RC plane that is able to fly autonomously while detecting and reporting wildfires using an onboard camera, TinyML, and a satellite modem.


TinyML Aerial Detection

There are only two possible methods for early forest fire detection: sensors placed around a set location or an aerial device that surveys land. The latter is the superior method as it is more reliable and affordable, covers more ground, and can be deployed anywhere. Also, placing sensors in wildlife can potentially cause damage to ecosystems.

Aerial devices are constrained by weight and power so using infrared cameras to detect fires is not ideal—decent cameras weigh a lot and draw too much power. TinyML resolves these constraints as regular images can be processed onboard, allowing for small, light, efficient hardware.

The dataset used was The Flame Dataset, which is composed of Aerial photographs of landscapes with and without fires burning. Other datasets such as the Fire Dataset and Forest Fire were also included. After training a CNN for 100 epochs we achieved a validation accuracy of around 96%, and with quantizing, the model was able to fit onto the memory of the Arduino Nano 33 BLE. To see more on how we trained the model check out the Jupyter Notebook.


Power Consumption

To conserve power, the Arducam OV2640, Arduino Nano 33 BLE, and satellite module sleep for 500 milliseconds after taking each photo. The complete device (including the GPS, drawing 150 mA), has little effect on the battery life of the plane (≈ 0.3% of the total power draw). The plane can last at least 90 minutes in the air at a speed of 30 mph (traversing around 45 mi), and with more batteries (there is room) the plane could fly for significantly longer. Additionally, when flown at high altitudes the plane can cover considerably larger amounts of land in one flight.


Building the Plane

We decided to use a plane because planes generate their own lift, making them much more power efficient than, say, a multirotor. They can also cover longer distances which is useful when searching for fires in vast forests.

1. Obtain and assemble plane using included instructions.

We used the ASW28 V2 Electric Sailplane, a popular glider known to be highly efficient.

2. Obtain the following items (pictured in diagrams and listed below).

A: Pixhawk 4

B: Here GNSS GPS/compass

C: Secondary GPS/compass

D: Pixhawk Power Management Board

E: RFD900x telemetry modem

F: Airspeed Sensor

G: TBS Crossfire Diversity Nano RX


I: Motor

J: Airspeed Tube

K: Pitot Tube

L: Breadboard

M: Camera

*Note: motor and ESC included in most off-the-shelf plane kits.

3. Cut grooves in the foam for the pitot and airspeed tubes, route airspeed tube into fuselage.

4. Obtain a lightweight balsa plate to hold the required avionics. This plate is pictured in Diagram 1, supporting B and E.

5. Cut a hole in the bottom of the plane to provide the camera with a view of the ground.

6. Using double-sided tape, attach all avionics pictured in Diagrams 1 and 2 to their respective positions.

7. Wire avionics according to the included schematic (see bottom of page).



For our ground station software, we chose QGroundControl as it works well with PX4 (the firmware running on the Pixhawk flight controller). Here is an example of one of our missions. It is an interactive map that shows the route our plane took, as well as a multitude of sensor data from the flight. The plane remained fully autonomous for all but the launch, where safety was paramount. This autonomous flight, consisting of the plane traveling to multiple predetermined waypoints, marks a significant step in the future of not only autonomous flight, but public safety and specifically safety against forest fires.

Takeoff — Cleveland National Forest
One of our flights — Fiesta Island


Future Improvements

A modular and efficient way of detecting forest fires is vital to safety and security in the modern world. One improvement over our current design is attaching solar panels to the wings of the plane, allowing the plane to not only fly autonomously, but also be able to fly through the night, and therefore indefinitely.


Custom parts and enclosures

Fire Detection Plane
Full CAD model of fire detection plane.


Wiring diagram for all the electronics in the project


Similar projects you might like

Forest Fire Monitoring & Detection System (with SMS Alerts)

Project tutorial by Ashad Ahmed

  • 24 respects

Droop Detection with Arduino and TFlite

Project tutorial by Terry Rodriguez and Salma Mayorquin

  • 1 comment
  • 20 respects

Person Detection with TensorFlow and Arduino

Project in progress by Team little_lookout

  • 137 respects

Cough Detection with TinyML on Arduino

Project tutorial by Team Edge Impulse

  • 50 respects

Vegetables and Fruits Ripeness Detection by Color w/ TF

Project tutorial by Kutluhan Aktar

  • 15 respects

Spectrino: TinyML Arduino & IoT Based Touch-Free Solutions

Project tutorial by Dhruv Sheth

  • 45 respects
Add projectSign up / Login