DJI Mavic Air battery recovery (Clear PF) using Arduino

Learn how to revive a dead or hibernating Mavic air battery using Arduino by clearing the PF flags.

Hey, are you the owner of Mavic Air Drone, and facing issues like the battery LED lights not glowing, battery not charging, battery not working, battery hibernating or battery voltage fluctuations locked the BMS? Here are the steps to rescue it and make it work again.

In this Tutorial, lets learn how the DJI Mavic air intelligent battery works, its BMS chip and its pinout, battery connections and finally how to remove the PF flag and recovering the battery.

Mavic air battery is also called as an intelligent battery as it has a Battery Management System which monitors everything like cell voltages, temperature, battery health and send it to the drone to display them on the remote controller. Not only monitoring but it also performs safety features like charging the Li-Po cells in limits accordingly, and discharging them automatically when not used for long time to increase the life of them. It also monitors the voltage fluctuations if a battery is malfunctioning and creates power failure Flags which makes battery hibernate and not responsive.

Even when you store the battery for more than 3 months without using in between they switch to hibernation mode. This mode makes the battery unresponsive to push buttons and they wont even charge.

Mavic Air Battery Specifications

  • Nominal Voltage: 11.55 V,
  • Max Charge voltage: 13.2 V,
  • Rated Capacity: 2375 mAh, 27.43Wh
  • Battery Type: Li-Po 3S(3 cells in series)
  • BMS Board: BQ9003

Mavic Air Battery BMS Circuit and Pinout

dji mavic air battery bms circuit board

As you can see from the above image the outer cover of the battery is removed so that the BMS Chip is visible. Its BMS has a lock sensor which checks weither battery is fixed inside the drone or not. It also has a temperature sensor attached between batteries to monitor the heat from the batteries while charging and discharging. This BMS has 10 pins.

Mavic Air Battery Pinout diagram

dji mavic air battery pinout diagram SDA and SCL pins

From the about pin diagram you can see there are 10 pins numbered from right to left. The first 4 right pins are for Ground( GND) and the pins 7,8,9,10 are positive terminals. The between pins 5 and 6 are SDA and SCL respectively. There are the Data pins which can communicate through SMBus and I2C communication protocols.

Also read : best IoT Projects

Required Components:

Product NameQuantityamazon logoamazon logo india
Arduino NANO1https://amzn.to/3jVNZONhttps://amzn.to/3KpUQry
Few Connecting Wireshttps://amzn.to/3H2BV4ehttps://amzn.to/3J0WVu2
You can buy the required components from the given best buy links. We choose the components according to value for money.

Connecting with Arduino

Now lets connect the battery to Arduino with the help of below circuit diagram.

connecting mavic air battery with arduino

Here we are using Arduino NANO board, you can even use Arduino UNO as well the pins are same and very simple. Just take 3 jumper wires and connect them. So in this case the A4 from Arduino which is SDA is connected to Pin 5 of battery and A5 from Arduino which is SCL is connected to Pin 6. And finally the GND pin from Arduino is connected to any of the 1,2,3,4 pins.

Arduino Code:

After connecting, its time to upload the code for that you need Arduino IDE.

  • Download Arduino IDE: here
Due to some reasons we are not able to share the code here. If you need the code please comment below with the reason why your battery is locked or not responding along with your email. we will reply with code.
  • Download exclusive Code : here.
  • Password for Zip file: circuitschools

After downloading the code Download Xloader: here

Next upload the code to Arduino board using it. Choose the port and Baud rate to 115200.

dji mavic air xloader file upload

After uploading the code open serial monitor in Arduino IDE at a baud rate of 115200. There you see the output as below screenshot.

DJI Mavic air unseal and clear pf on arduino serial monitor

This is an automatic process connect the battery, upload the code, open the serial monitor with baud rate 115200 and with in 5 seconds your battery will glow.

Charge the battery and it will be ready to use. Fly with caution for first use.

Errors and Troubleshooting:

  • Battery not connected ……

If you see this error check the wiring between Arduino and Battery. If still error there might be very low voltage in the 3 Li Po cells in it. To solve this you can charge the cells individually with very low current till they reach at least 3.9v and connect it with Arduino.

  • Battery Swollen

If the battery is swollen do not pierce or puncture to remove the air from it. If you do so the battery wont hold the voltage eventually making them to die permanently.

If you like this project please subscribe to our YouTube Channel “Circuit Schools to encourage us to publish more interesting projects. If you have any doubts write to us from below comment section.

CircuitSchools Staff

We at CircuitSchools publish on basics of electronics and electric components and everything related to evolution of electrical technology with complete analysis of development boards and modules along with latest projects with innovative ideas.

Related Articles


  1. hi can u help i need the code for DJI mavic mini BFS reader to clear PF flag due to long storage please
    i did send a message b4 but i gave wrong email .sorry

  2. Hello,
    Excuse me for my approximate English because it is not my native language.
    I own a DJI Mavic Air 1 with two batteries. I haven’t used the device for several months and both batteries have gone into deep hibernation. I can’t reload them. The green LEDs do not light up when the button is pressed.
    I have an Arduino Nano, I read your very well done tutorial, I only need the code to upload to the Arduino.
    Would you be so kind as to send me this code.
    Thanks a lot

      1. Hi Thanks for the information.
        I have a Mavic air I bought second hand with 3 batteries. One works the others are dead lights will not show.
        Batteries are not swollen.
        I would like to try your fix please send me the code.
        Thanks for the information.

  3. Hi, friend. Very good the article. I’ve heard about some guys using a USB/SCI adapter to do the same, but as I already have Arduinos here, it willl be very useful and educative to try. Can you share the code? Thanks!

    1. Went to charge my mavic battery’s after sitting on the shelf for 6 months, hoping this code will recover them before I need to order a cp2112

  4. Hi all,
    i have forgotten to load my my mavic air battery. After 3 month i can’t load them again.
    Please send me the arduino code to bring them back to live. Thank you

  5. Can you make a tutorial on how to replace the cells of Mavic air with Li-Ion batteries. my original batteries are swollen and dead.

    1. It is generally not recommended to replace the battery of a DJI Mavic Air with individual lithium-ion cells. The Mavic Air’s battery is a complex and carefully designed system that includes multiple cells, a built-in battery management system (BMS), and other components that are designed to work together to provide power to the drone and ensure safe operation. Modifying the battery in any way can pose a serious risk of injury or damage to the drone, and may also void the manufacturer’s warranty.

      If you are experiencing issues with the battery on your Mavic Air, we recommend contacting DJI or an authorized DJI repair center for assistance. They will be able to diagnose any problems with the battery and provide recommendations for repair or replacement if necessary.

      But if your country doesn’t has any DJI services you can go for it.

  6. I have 3 DJI mavic air batteries from flymore combo and are not charging, they were unused for 5 months may be thats the reason please help me in turning them on. Also please send the code for arduino. Thanks in advance.

  7. Hi,
    I have a DJI Mavic Air with 3 batteries mod. PBI2375mAh 11,55V. I haven’t used the drone for 2 years and the batteries allready doesn’t work. I can’t charge them, if I press the button, the green LEDs do not light up.
    I need the Arduino code to reset them, can you send me?
    Many thanks, Fabio.

  8. I am in the same boat at Suraj – they were unused for an extended period of time – please help me in turning them on. Also please send the code for arduino. Thanks in advance. happy new year!

  9. Hello sire.
    I have two sleeping batteries not used for allmost one year. Now both are totally non responsive. Can you help please with the arduino code needed to try to activate them again?
    Thank you very much!

  10. I need the code to unlock my Mavic Air Battery. No swelling.

    Also, the link for the Arduino NANO you list above must have changed. https://amzn.to/3pxTUcK goes to a different product.
    Arduino NANO in Amazon brings up the same item photo.

  11. Hello,
    How long should it take? 5 sec? it is stuck there:

    ***Visit circuitschools.com for Circuit diagram and tutorial***
    ***This program will unseal and clearPF automatically for DJI MAVIC AIR***
    ***If this program helped you please comment on our page***
    Unseal/FAS …

    1. It means BMS is not connected to the Arduino NANO.
      Reasons: 1.Connection problem, or 2. the voltages in the internal cells are very low.
      Solutions:1.Check the wiring, 2.Charge the individual cells upto nearly 3.8v with external lipo chargers with very slow speeds.

  12. How long it is suppose to take? it is stuck at unseal/FAS… for ever
    is there a way to get info from the battery?

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button