Used an Arduino Uno clone with this method. Connected the pins A5 and A6 + GND of the Arduino board to the battery (not the SDA and SCL labeled pins of the board - that didn't work). Selected CR03, the right com port (the com port that discovered the board in arduino IDE) , baud rate 115200 and uploaded. Opened the serial monitor. Worked like a charm. 80€ saved. Thanks.
First of all, I would like to express my gratitude to the developer who generously shared the Maverick Air battery recovery code and provided an easy-to-follow explanation. My battery had not been used for about 6 months, and one of the two batteries had low voltage, causing the battery management system (BMS) to lock the battery, preventing it from charging, and the green LED was not functioning, as described in the video. Following the instructions in the video, I purchased an Arduino Nano and the necessary cables to prepare for coding. Since one cell of the battery had dropped below 3 volts, I disassembled the battery and individually charged the three cells using the 1-cell lithium polymer battery charging function of an RC battery charger. After charging the 3 cells to the same level of 3.7 volts, I prepared the program and files as instructed in the video. There were many trials and errors in the process. Even though I followed the video, the file did not upload, and the red transmission LED on the Arduino Nano did not blink. Despite trying to change the transmission speed, as suggested in other comments, the file still did not transfer. Finally, changing the COM port from COM4, as mentioned in the video, to COM7 allowed the upload to succeed. After a successful upload, following the remaining steps outlined in the video resulted in the battery coming back to life perfectly. I then charged the recovered battery with a DJI charger and successfully completed a flight. Since the voltage of the three battery cells in my case did not drop significantly, there seemed to be no impact on the battery performance. If not using the battery, it seems advisable to charge it at least once every three months. Charging until the green LED shows two bars should be sufficient; it doesn't need to be fully charged. I hope everyone can successfully recover their batteries.
Many thanks for producing this video as it saved me the cost of a new battery. I had to open the battery and used my bench power supply set to 0.05A constant current to get each of the three cells to 3.7V before trying to remove the PF in BMS with the Arduino Nano. Purchased the AN especially for this fix and it was a great learning experience and will no doubt open up a few more projects to enjoy.
what happens if you use 5v phone charger with a TP4056 to charge the cells?? did I screw them up? because I got them up to 4v but the arduino IDE is stuck on Unseal/FAS ...
Thanks for this great instruction video. It felt like a miracle to see the green battery leads flash like in the old days. At first I encountered some trouble with Xloader, but uploading with a baudrate of 57600 instead of 115200 was the solution (took a while to find out 🙂). Also the use of TP4056 was a succes . I bought 2 for nearly 1 euro! Connected it to the usb out of the Mavic charger and within a few minutes I had charged the 3 cells from 2.40 -1.21-1.51 to 2.85-2.82 and 2.89. This was enough to properly run the HEX. Thanks a bunch ! While typing this the battery indicates it is fully charged. Greetz from the Netherlands.
If you get stuck keep retrying and or adjusting wires I Took some retrying multiple times but I finally got it to take. I had issues with the xloader device settings not seeing my device so I ahead to change it to the cc01 and not the cr03. Even though it said the 4854 bytes were uploaded.
You're really awesome, thank you!👍You saved my Mavic Air 1 battery.🙂 I had to use the TP4056 charger, charged the battery's 3 cells up to about 3.6V, and after the script was also able to recognize and unseal the battery. Xloader wasn't working at 115200, so i just left it in 57600. I used an Arduino Nano clone (cheaper) and it was fine. Greetings from Hungary!
what happens if you use 5v phone charger with a TP4056 to charge the cells?? did I screw them up? because I got them up to 4v but the arduino IDE is stuck on Unseal/FAS ...
I finally was able to get it to work. The two batteries that weren't responding had to be opened up (found a pretty quick disassembly video on youtube) and I used a TP4056 board from Amazon (you can get like a 5 pack next day for like 6 or 7 dollars. I soldered a bunch of breadboard jumpers to all the pads on the board, and powered the board with the 5V out from my Arduino Uno. Placed a push button switch in line to the power to the TP4056 board so that I could control when I was actually charging. Hooked up a voltage meter across the Bat+ and Bat- leads on the breadboard so that I could read the voltage of the battery. Cycled on and off charging for a few seconds at a time by using the button, and then periodically checking the voltage. All 3 cells charged pretty quickly from about 2.7ish to about 3.2 before starting to slow. Charged all 3 cells from one battery up to 3.5 (took a WHILE), and then decided to test the unsealing script again and it worked. Finished charging in the charging cradle once it would recognize. Charged the second battery's 3 cells up to about 3.07, and the script was also able to recognize and unseal the battery, so try with about 3.05-3.1 volts instead of waiting a long time to try to get to like 3.8 as the guide says. Other than that, it works. Would love to see the code, interested in what's going on behind the scenes.
Is your Uno an R3 version like mine with the dedicated SCL/SDA I2C pins or the original that repurposes the A4/A5 analog input pins as control pins? I can't figure out which ones I should be using to talk to the battery.
Very good my friend. It worked like a charm. I just had first charge the cells to at least 3.2V. Thank you so much for sharing this work with the community!
Great program that has worked for me. Due to a lack of battery power, I also had to open battery case and manually charge each of the 3 Lipo batteries. The Ardunio UNO R3 (ATMEG328P) worked fine after trying the software on a NANO "every" ATMEGA4809 chip set.😅 Thank you, Circuitschool
To have a good contact with the battery, use metal tape that we use to make lithium battery packs (this takes soldering very well) cover with a welding film on 8mm, solder one end of a strap wire above cut with scissors to have the pin of the strap like a flag (the flag being the ribbon). you now have a connector that ensures a good connection. I think it must be possible to do it with a piece of tin can (I haven't tried)
It would be good if you tried to open the battery of a Mavic Air 2 and transfer it to the battery of a Mavic Air 1 to increase its flight time, since one has more milliamps than the other. PD: Good video 🎉
Youre awesome, thank you! it worked on my spark. xloader wasn't working at 115200, so i just left it in 57600 and it worked. And then in arduino serial monitor, 115200 worked
hi, i have dji spark and arduino uno. I need to reset the battery, it seems that cp2112 is needed on the internet to reset it, but I don't have it. can i do it with arduino uno can you help me?
@@enestelkes I'm not sure what cp 2112 is, but an uno will definitely work. I just looked up what cp2112 is and I don't think you need one because the uno should have i2c compatibility. a nano/pro mini is practically the same as an UNO, and that's what I used
@@nickkirastoulis4617 thanks, I tried it for Spark with Uno, but it stays on "Unseal/FAS ...", I don't know what to do. by the way i did 57600 as you said but "uploading" remained, so i did 115200
So I did everything perfectly but the battery light still didn't come on even when pressing the button. I had to take apart the battery. No need to drill holes or anything crazy. Using a pen knife you can carefully ubdo the back of the case by working near the connector. It will open like its on a hinge and you will see the BMS board at the top. There are three cells that each should be over 3 volts. There are 6 total pads. 3 on the right and 3 on the left. Each two pads should show you the voltage using a volt meter. Find the cell that is low. Usually one will be under 2 volts. Make sure to take note of the positive and negative side and take a 4 volt battery supply and connect Pos to pos and neg to neg. Do this for only a few seconds using some wires. No need to solder anything then check the voltage. Keep doing this until the voltage is over 3 volts. The program should now work and you can charge fully using the DJI charger.
Thanks to OP and comments here like this one for the help! I had to open the battery and get the cells up to 3.6v before I could reset the battery using the arduino as in the video, although I flashed the arduino via the command line on my mac using avrdude, installed using like so: > brew install avrdude plug in your arduino to a usb port and use this to discover its location via > ls /dev/tty* | grep usb > avrdude -p m328p -b 57600 -P [INSERT YOUR USB DEVICE LOCATION HERE] -c stk500v1 -U flash:w:Mavicair_pfreset_circuitschools.hex 2 batteries saved, thanks!
You are amazing. This worked! For charging the battery above 3V i used phone charging adapter, cut a spare micro usb cable and connected the end of this cable to battery terminals. It charged the batteries quite comfortably. I just ensured that the voltage of battery was only about 5V
Here's how i charged individual cells: I used a regular battery charger designed for AA batteries, connecting two wires with positive (+) to positive (+) and negative (-) to negative (-). Then, I checked all three cells by referring to images online that indicate the positive and negative terminals of each cell. After checking the voltage of each cell, I discovered that one out of the three had a voltage below 2V. I charged that particular cell up to 2.11V (while the other two cells were around the same range, 2.11V to 3V). Charging just that one cell was sufficient. I reconnected it to the chip, ran the software, and it worked like a charm. Similarly, with my second battery, the voltages were similar, except this time the bottom cell was below 2V. I charged it to 2.11V, ran the software, and everything worked perfectly. The batteries now look brand new and function flawlessly.
@@jaredwseely You can carefully pry the outward-facing surrounding portion of the case (where the button and LEDs are) away from the back panel that has the specifications printed on it and which is attached to the multipin connector and controller circuit board. The seam is just around the face of that back panel.
Normally I dun comment to UA-cam videos. But this tutorial just saved 2 of my Mavic Air batteries. The HEX file is zipped and password protected. The password is reveal on the website. Go check it out.
I was stuck as Unseal/FAS forever. I charged each cell to 4.0v using the TP4056 with a 5v 550mA charger - still couldn't get past Unseal/FAS. Similar to other people XLoader wouldnt use baud rate 115200 with the Nano clone I was using, but 57600 would work. After everything failed I decided to try it with an Arduino UNO clone instead (Using the UNO's A4, A5 and GND pins). XLoader would now upload on 115200 and finally it fixed my battery. I'm not sure what could've been the problem with my Nano but if anyone else is in a similar situation it might be worth trying an UNO instead. Hope this helps.
Thank for the info: I am trying to reset a battery of my Mini SE (same one as Mini 2) but I'm stuck at "Unseal/FAS ..." Now I know I need to recharge the cells
@Angelo-krto, Yes, after balancing the cells, batteries were still locked. I used Arduino uno and the code on two DJI mini2 batteries. Both are working now properly.
@@ludmilkostov4067Okay thank you for replying. I’m trying to make a custom battery pack for my Dji mini 2. I saw some 3500mah lipo cells on aliexpress specifically for the Mini 2. If replace the original lipo cells from the pack with the 3500mah cells will this same method work for unsealing & sealing the pack? And can you rewrite the new 3500mah capacity in the bms for the drone to recognize the new capacity?
@@Angelokrto Usually BMS's don't care about capacity of the cells, but voltage and balancing. I saw youtube clips where people put additional battery pack connected with wires to the original BMS. Unsealing should work, but I haven't tested it with new batteries (I charged the original cells separately to the same voltage, without de-soldering them from the BMS).
Hi, your codes work wonderfully I've tried resetting the cycle number and work perfectly. Is it possible to customize the cycle number to 7 or 10? Thanks
@@bazza8746 You can carefully pry the outward-facing surrounding portion of the battery case (where the button and LEDs are) away from the back panel that has the specifications printed on it and which is attached to the multipin connector and controller circuit board. The seam is just around the face of that back panel.
what happens if you use 5v phone charger with a TP4056 to charge the cells?? did I screw them up? because I got them up to 4v but the arduino IDE is stuck on Unseal/FAS ...
Someone is so kind to clarify whether or not it works with Mavic 2, the same one that works for Mavic air Or do we need another specific file for Mavic 2?. They have asked a lot and no one answers. Thank you
@@CircuitSchools I crossed my fingers and I did it with Arduino uno and it went well, so yes, it is compatible with the batteries of the Mavic 2. The process is done exactly the same, making the correct connection in the battery. Of course!
Will this method work for the dji mavic pro. I work in a hospice and we were gifted one but the batteries are non responsive. We are going to use it to check the gutters and roof of our building, that is if I can get it working again - not sure if it works though so not wanting to buy a new battery etc.
I'm using the Arduino UNO R3 which has dedicated SCL and SDA pins for I2C control - should I use those or the dual-purpose pins A4,A5 for analog input and SCL,SDA for I2C control?
@@SebastianHagemeister our code is just to reset the PF flag, may be the same code works. if the board is same, check the SCL and SDA pins according to ronin and connect.
Can you change battery capacity with this too or do I need cp2112 to change capacity values. I’m trying to make a Dji mini 2 battery with 3500mah lipo cells
My battery total voltage was 7,8v (3v, 3v and 1,8v). Charged it with balance charger and first it didn´t work, but when i powered up the "charger side positive pin" jumping directly from battery it worked. BMS does not seem to power up itself again from battery side even if voltage is enough high
With many thousands of Mavic Pro and Mavic Pro Platinum owners having the (now) very common 'Battery Error' in many of our original DJI batteries, have you given any consideration to creating a data upload file for both these Mavic batteries similar to what you have done for your Mavic Air battery so we can use your Arduino procedure? I for one, am very interested in obtaining such data file specifically for my Mavic Pro Platinum battery; even if you charged a (small?) fee for doing this for interested Mavic Pro / Pro Platinum owners! There is total confusion on what Pins 1 & 10 in this battery actually are; e.g., in the only "reliable" Mavic Pro / Pro Platinum complete pinout [[which are completely different for all other Mavic models battery pinouts]] I have come across on the Net, Pin 1 is shown as RXD (UART Receive) and TXD (UART Transmit), BUT do Pins 1 & 10 also actually correspond to the SCL & SDA pins respectively (or even vice versa), and if so, which is which?? I am not knowledgeable in UART understanding! I know there are SCL & SDA locations on these batteries internal circuit board however, you have to essentially destroy the battery casing in getting access to this board - also, it is a time-consuming exercise and one that carries a fairly high "danger risk" for the inexperienced (and experienced alike) to attempt dismantling the battery casing! I've tried the CP2112 board procedure which failed every time stating 'battery not connected or similar error message' and come to the conclusion Pins 1 & 10 (SCL & SDA) are NOT connected to these UART designated external pins???? Appreciate your (or any of your viewers) advice here, please. I have three Mavic Pro Platinum batteries and all three show absolutely no puffing or damage or other adverse observations and all three can be discharged (for the defective DJI battery via the USB - battery adapter) and charged fully! The only difference is that the defective battery shows the "Battery Error" fault which, therefore, prevents the drone from flying!!!! Clearly, IMO, the issue is solely that the PF Flag is blocking the battery from operating!!! Having received the "Over current flashing code" during charging this battery wherein the charger actually put out more current than it should have(??) and repeatedly does this for the few times I repeated this process, I no longer use this charger and am waiting on delivery of a new one! Greatly appreciate your help in resolving this wide-spread issue with Mavic Pro Platinum batteries, please. Cheers from Down Under and Seasons Greetings to all. [PS: I have subscribed to your site and sent you a shorter version of the above email].
I tried this procedure and Arduino just pauses at Unseal/Fas but nothing further. No battery errors or anything. Is there any other way to know what might be the issue?
if it pauses at Unseal/FAS, the batteries are not in the state to turn on the BMS to send the data. So you need to charge the internal batteries, please watch the video ending for this troubleshooting guide. Thanks
Thanks for the video ! I'm trying to repair my 3 DJI Mavic Air batteries, but i'm stucked on "Unseal/FAS". I've also bought a lipo charger and charged the cells to a correct voltage, but nothing changes. The thing I'm doing different from the video is using a "DCcduino" Arduino UNO Chinese clone, should this be a problem ?
uno de los problemas es que si tu celda esta menos de 3.9voltios no te funciona, debe pasar ese voltaje y lo otro es que si usas arduino uno tienes que utilizar los otros pines sdl que no es el a4 sino uno superior igual con el otro pin, el pinout sale en la pagina de arduino
@@CR7te es lo mismo, solo debes buscar los pines de conexion de la bateria y los conectas al arduino, abajo sale una pagina, mira detalladamente la pagina para que te guies mas, aparte debes abrir la bateria y cargar con una fuente externa cada bateria a mas de 3.9 voltios para que funcione
Genial, me llego hoy un arduino nano supongo chino por mercado libre argentina, parecido a amazon o ebay de eeuu. y funciono al segundo intento, cambiando de puerto com e instalando los drivers ch340g.
Hi, I have tried all the steps, however stops at loading the hex with xloader. (I have used it for other hex). Can the issue be that I have the Micro version? Different chip on it. Any tips for me would be great. 😀
Just add that I managed to upload the hex both with Avrdude and xloader, however the Audrino Micro just freezes, most likely since the hex is made for a different chip. Still looking for a similar hex file for the Micro. Thanks for any tip.
I'm following the mentioned steps but in Arduino after choosing serial monitor and selecting 115200 baud it stuck at Unseal/FAS ... So, no Done unsealing and writing Done. Do you have any idea why this is the case?
It has strong glue pads sticked hardly, You need to pull slowly to avoid damage, but still we get small scratches on platics, better use an old credit card or guitar picks
1. I need this for 4 new old stock DJI Spark batteries. Any ideas? 2. I have Raspberry Pi Pico RP2040 with Arduino IDE 1.8 software as your video shows. Could this work? Or does it need ATMega2560?
thanks i charge the battery to 12.2 , and it works trying to 3.7 but no luck second battery at 12.2 no luck make a jumper wire connected to front +ve and start the Arduino IDE and second battery haven been saved thanks a lot
Check the connector to CR01 is the error i am getting. Any pointers on how I can fix this. Even for working battery I cannot read data. The uploaded bytes are around 30156 which is different fro what I see in the video.
using wrong hex file in XLoader (I did the same thing initially), the hex file to use is the one linked to on the page the one linked to on the circutschool page
Is there somewhere detailed instructions on how to proceed if you need to load the cells like in the last part of the video. Unfortunately, I am quite inexperienced here and would need help or guidance.
Obrigado pelo vídeo tutorial de como restaurar. Comigo deu certo da seguinte maneira: Tinha a versão do arduino ide atual e não deu certo. Tive que baixar a versão 1.8.18 igual a do vídeo. Outro detalhe a taxa de transferência o baud comigo não deu certo o valor de 115200, funcionou com a taxa de 57600(xloader). Tive que alterar a taxa no arduino uno para 115200, pois de fabrica veio em 9600. E por último Tive que abrir a bateria e carregar cada célula até a voltagem de 3.85v ou superior para voltar a vida. Pois quando fiz o procedimento, não acendia igual a parte final do vídeo. E ao elevar a voltagem para os 3.85v, ao ligar novamente no computador, a bateria acendeu novamente e estou conseguindo carregar novamente. Obrigado🙂👍🏼
Id like to unlock and get rid of my pf error code on phantom 4 pro battery due to sitting so long. is it the same process? and can i get the code. liked and subscribed. thanks
you can download the code from the website. and as we dont have phantom 4 pro battery we havent tested. May be this works or not you can make a try as its cheap to try.
Hello friend. For some reason I'm not being able to download the hex file completely. And xloader is failing to upload bytes to Arduino. Any suggestions?
@@darrenfam3782I had the same problem. There is an file called device.txt in the same folder as xloader. Here you can add the details of your Arduino. This is advice I got, so if this is the wrong method, please correct me. 😅
@@CircuitSchools another question, Incase one of my battery voltage way below the normal status, is it possible to charge my battery from the pin socket without open the battery case? thanks
@@CircuitSchools another update, had successfully unlock the battery, but whenever i put in the docking all the led blinking 3 times.. I've been trying 2 times unsealing the battery.. any idea.. I've charged the battery to 7.2V update 2. i tried to put the battery on mini 2, it said battery cell error (30074) any idea?
Hello, my father has a mavic mini 2 fly more combo and left the batteries inside the 2 way charger, and they are all dead, after a year in the closet, i'm trying to save them using this method, can you please provide the arduino code ?
Used an Arduino Uno clone with this method.
Connected the pins A5 and A6 + GND of the Arduino board to the battery (not the SDA and SCL labeled pins of the board - that didn't work).
Selected CR03, the right com port (the com port that discovered the board in arduino IDE) , baud rate 115200 and uploaded. Opened the serial monitor. Worked like a charm.
80€ saved. Thanks.
Thanks so much for this comment. I should have figured it out myself. It's so obvious 👍
First of all, I would like to express my gratitude to the developer who generously shared the Maverick Air battery recovery code and provided an easy-to-follow explanation. My battery had not been used for about 6 months, and one of the two batteries had low voltage, causing the battery management system (BMS) to lock the battery, preventing it from charging, and the green LED was not functioning, as described in the video.
Following the instructions in the video, I purchased an Arduino Nano and the necessary cables to prepare for coding. Since one cell of the battery had dropped below 3 volts, I disassembled the battery and individually charged the three cells using the 1-cell lithium polymer battery charging function of an RC battery charger. After charging the 3 cells to the same level of 3.7 volts, I prepared the program and files as instructed in the video. There were many trials and errors in the process. Even though I followed the video, the file did not upload, and the red transmission LED on the Arduino Nano did not blink. Despite trying to change the transmission speed, as suggested in other comments, the file still did not transfer. Finally, changing the COM port from COM4, as mentioned in the video, to COM7 allowed the upload to succeed.
After a successful upload, following the remaining steps outlined in the video resulted in the battery coming back to life perfectly. I then charged the recovered battery with a DJI charger and successfully completed a flight. Since the voltage of the three battery cells in my case did not drop significantly, there seemed to be no impact on the battery performance. If not using the battery, it seems advisable to charge it at least once every three months. Charging until the green LED shows two bars should be sufficient; it doesn't need to be fully charged. I hope everyone can successfully recover their batteries.
Many thanks for producing this video as it saved me the cost of a new battery. I had to open the battery and used my bench power supply set to 0.05A constant current to get each of the three cells to 3.7V before trying to remove the PF in BMS with the Arduino Nano. Purchased the AN especially for this fix and it was a great learning experience and will no doubt open up a few more projects to enjoy.
what happens if you use 5v phone charger with a TP4056 to charge the cells?? did I screw them up? because I got them up to 4v but the arduino IDE is stuck on Unseal/FAS ...
Thanks for this great instruction video. It felt like a miracle to see the green battery leads flash like in the old days. At first I encountered some trouble with Xloader, but uploading with a baudrate of 57600 instead of 115200 was the solution (took a while to find out 🙂). Also the use of TP4056 was a succes . I bought 2 for nearly 1 euro! Connected it to the usb out of the Mavic charger and within a few minutes I had charged the 3 cells from 2.40 -1.21-1.51 to 2.85-2.82 and 2.89. This was enough to properly run the HEX. Thanks a bunch ! While typing this the battery indicates it is fully charged. Greetz from the Netherlands.
I can confirm, using the default baudrate (57600) worked for me. I was able to restore 2 batteries using arduino nano clone.
If you get stuck keep retrying and or adjusting wires I Took some retrying multiple times but I finally got it to take. I had issues with the xloader device settings not seeing my device so I ahead to change it to the cc01 and not the cr03. Even though it said the 4854 bytes were uploaded.
You're really awesome, thank you!👍You saved my Mavic Air 1 battery.🙂
I had to use the TP4056 charger, charged the battery's 3 cells up to about 3.6V, and after the script was also able to recognize and unseal the battery. Xloader wasn't working at 115200, so i just left it in 57600. I used an Arduino Nano clone (cheaper) and it was fine.
Greetings from Hungary!
what happens if you use 5v phone charger with a TP4056 to charge the cells?? did I screw them up? because I got them up to 4v but the arduino IDE is stuck on Unseal/FAS ...
Dji Mavic air battry cell hold 4v in each cell so it okay
Normally 3 cell battry fully charge 12.6v but Dji battry hold 13v
I finally was able to get it to work.
The two batteries that weren't responding had to be opened up (found a pretty quick disassembly video on youtube) and I used a TP4056 board from Amazon (you can get like a 5 pack next day for like 6 or 7 dollars.
I soldered a bunch of breadboard jumpers to all the pads on the board, and powered the board with the 5V out from my Arduino Uno.
Placed a push button switch in line to the power to the TP4056 board so that I could control when I was actually charging.
Hooked up a voltage meter across the Bat+ and Bat- leads on the breadboard so that I could read the voltage of the battery.
Cycled on and off charging for a few seconds at a time by using the button, and then periodically checking the voltage. All 3 cells charged pretty quickly from about 2.7ish to about 3.2 before starting to slow. Charged all 3 cells from one battery up to 3.5 (took a WHILE), and then decided to test the unsealing script again and it worked. Finished charging in the charging cradle once it would recognize.
Charged the second battery's 3 cells up to about 3.07, and the script was also able to recognize and unseal the battery, so try with about 3.05-3.1 volts instead of waiting a long time to try to get to like 3.8 as the guide says.
Other than that, it works.
Would love to see the code, interested in what's going on behind the scenes.
Would you have a link to that video you mentioned to show how to take the case apart?
@@Bits-n-Bobs /watch?v=5iX4DzljDMU
Is your Uno an R3 version like mine with the dedicated SCL/SDA I2C pins or the original that repurposes the A4/A5 analog input pins as control pins? I can't figure out which ones I should be using to talk to the battery.
Very good my friend. It worked like a charm. I just had first charge the cells to at least 3.2V. Thank you so much for sharing this work with the community!
Great program that has worked for me. Due to a lack of battery power, I also had to open battery case and manually charge each of the 3 Lipo batteries. The Ardunio UNO R3 (ATMEG328P) worked fine after trying the software on a NANO "every" ATMEGA4809 chip set.😅
Thank you, Circuitschool
Was able to recover two batteries with your guide and software. Thank you very much.
great tutorial. Thanks to you I brought 2 batteries back to life. Thank you very much.
You're welcome!
To have a good contact with the battery, use metal tape that we use to make lithium battery packs (this takes soldering very well) cover with a welding film on 8mm, solder one end of a strap wire above
cut with scissors to have the pin of the strap like a flag (the flag being the ribbon).
you now have a connector that ensures a good connection.
I think it must be possible to do it with a piece of tin can (I haven't tried)
It would be good if you tried to open the battery of a Mavic Air 2 and transfer it to the battery of a Mavic Air 1 to increase its flight time, since one has more milliamps than the other.
PD: Good video 🎉
It works! I'm using all the same setup except Arduino Uno. Also the charging of battery when it's stuck at "unseal" was a lifesaver! Thanks so much :)
nit working for me even after charging the battry its stuck at Unseal/FAS
@@kilatore667 Same here
@@ChrisKonieczny ok just make sure every cell is at 3.9 v
@@kilatore667 Is there a way to charge each cell without taking the battery apart?
@@ChrisKonieczny no ,, but take it easy and you have nothing to lose
Thanks a million!! This worked great for my 3 batteries and my drone is back in the sky!! 😊
Youre awesome, thank you! it worked on my spark. xloader wasn't working at 115200, so i just left it in 57600 and it worked. And then in arduino serial monitor, 115200 worked
hi, i have dji spark and arduino uno. I need to reset the battery, it seems that cp2112 is needed on the internet to reset it, but I don't have it. can i do it with arduino uno can you help me?
@@enestelkes I'm not sure what cp 2112 is, but an uno will definitely work. I just looked up what cp2112 is and I don't think you need one because the uno should have i2c compatibility. a nano/pro mini is practically the same as an UNO, and that's what I used
@@nickkirastoulis4617 thanks, I tried it for Spark with Uno, but it stays on "Unseal/FAS ...", I don't know what to do.
by the way i did 57600 as you said but "uploading" remained, so i did 115200
So I did everything perfectly but the battery light still didn't come on even when pressing the button. I had to take apart the battery. No need to drill holes or anything crazy. Using a pen knife you can carefully ubdo the back of the case by working near the connector. It will open like its on a hinge and you will see the BMS board at the top. There are three cells that each should be over 3 volts. There are 6 total pads. 3 on the right and 3 on the left. Each two pads should show you the voltage using a volt meter. Find the cell that is low. Usually one will be under 2 volts. Make sure to take note of the positive and negative side and take a 4 volt battery supply and connect Pos to pos and neg to neg. Do this for only a few seconds using some wires. No need to solder anything then check the voltage. Keep doing this until the voltage is over 3 volts. The program should now work and you can charge fully using the DJI charger.
Thanks to OP and comments here like this one for the help!
I had to open the battery and get the cells up to 3.6v before I could reset the battery using the arduino as in the video, although I flashed the arduino via the command line on my mac using avrdude, installed using like so:
> brew install avrdude
plug in your arduino to a usb port and use this to discover its location via
> ls /dev/tty* | grep usb
> avrdude -p m328p -b 57600 -P [INSERT YOUR USB DEVICE LOCATION HERE] -c stk500v1 -U flash:w:Mavicair_pfreset_circuitschools.hex
2 batteries saved, thanks!
You are amazing. This worked! For charging the battery above 3V i used phone charging adapter, cut a spare micro usb cable and connected the end of this cable to battery terminals. It charged the batteries quite comfortably. I just ensured that the voltage of battery was only about 5V
Here's how i charged individual cells: I used a regular battery charger designed for AA batteries, connecting two wires with positive (+) to positive (+) and negative (-) to negative (-). Then, I checked all three cells by referring to images online that indicate the positive and negative terminals of each cell. After checking the voltage of each cell, I discovered that one out of the three had a voltage below 2V. I charged that particular cell up to 2.11V (while the other two cells were around the same range, 2.11V to 3V). Charging just that one cell was sufficient. I reconnected it to the chip, ran the software, and it worked like a charm.
Similarly, with my second battery, the voltages were similar, except this time the bottom cell was below 2V. I charged it to 2.11V, ran the software, and everything worked perfectly. The batteries now look brand new and function flawlessly.
Did you have to take apart the battery to individually charge them? If so, is there a tutorial on how to do that?
@@jaredwseely You can carefully pry the outward-facing surrounding portion of the case (where the button and LEDs are) away from the back panel that has the specifications printed on it and which is attached to the multipin connector and controller circuit board. The seam is just around the face of that back panel.
Normally I dun comment to UA-cam videos. But this tutorial just saved 2 of my Mavic Air batteries. The HEX file is zipped and password protected. The password is reveal on the website. Go check it out.
I was stuck as Unseal/FAS forever. I charged each cell to 4.0v using the TP4056 with a 5v 550mA charger - still couldn't get past Unseal/FAS. Similar to other people XLoader wouldnt use baud rate 115200 with the Nano clone I was using, but 57600 would work. After everything failed I decided to try it with an Arduino UNO clone instead (Using the UNO's A4, A5 and GND pins). XLoader would now upload on 115200 and finally it fixed my battery. I'm not sure what could've been the problem with my Nano but if anyone else is in a similar situation it might be worth trying an UNO instead. Hope this helps.
Thanks so much, it works with uno and Dji Mini 2 battery as well.
Thank for the info: I am trying to reset a battery of my Mini SE (same one as Mini 2) but I'm stuck at "Unseal/FAS ..." Now I know I need to recharge the cells
The same code that was used in this video also works for the Dji Mini 2?
@Angelo-krto, Yes, after balancing the cells, batteries were still locked. I used Arduino uno and the code on two DJI mini2 batteries. Both are working now properly.
@@ludmilkostov4067Okay thank you for replying.
I’m trying to make a custom battery pack for my Dji mini 2. I saw some 3500mah lipo cells on aliexpress specifically for the Mini 2. If replace the original lipo cells from the pack with the 3500mah cells will this same method work for unsealing & sealing the pack?
And can you rewrite the new 3500mah capacity in the bms for the drone to recognize the new capacity?
@@Angelokrto Usually BMS's don't care about capacity of the cells, but voltage and balancing. I saw youtube clips where people put additional battery pack connected with wires to the original BMS. Unsealing should work, but I haven't tested it with new batteries (I charged the original cells separately to the same voltage, without de-soldering them from the BMS).
Hi, your codes work wonderfully
I've tried resetting the cycle number and work perfectly.
Is it possible to customize the cycle number to 7 or 10?
Thanks
it works perfectly after opening the battery pack and recharging each element alone above 3.7V. Well done and thank you !
How did you take the top off of the battery and what charger did you use ?
@@bazza8746 You can carefully pry the outward-facing surrounding portion of the battery case (where the button and LEDs are) away from the back panel that has the specifications printed on it and which is attached to the multipin connector and controller circuit board. The seam is just around the face of that back panel.
what happens if you use 5v phone charger with a TP4056 to charge the cells?? did I screw them up? because I got them up to 4v but the arduino IDE is stuck on Unseal/FAS ...
MUCHAS GRACIAS. SI FUNCIONA. BATERIA RECUPERADA. SALUDOS DESDE CHILE
Qué cable usb se usa para conectar el Arduino nano a la laptop?
Someone is so kind to clarify whether or not it works with Mavic 2, the same one that works for Mavic air Or do we need another specific file for Mavic 2?. They have asked a lot and no one answers. Thank you
as we dont have mavic 2 battery, its not possible for us to test it. As this setup is soo cheap you can make a try.
@@CircuitSchools I crossed my fingers and I did it with Arduino uno and it went well, so yes, it is compatible with the batteries of the Mavic 2. The process is done exactly the same, making the correct connection in the battery. Of course!
Will this method work for the dji mavic pro. I work in a hospice and we were gifted one but the batteries are non responsive.
We are going to use it to check the gutters and roof of our building, that is if I can get it working again - not sure if it works though so not wanting to buy a new battery etc.
What is the board that you're using Do I need that or can I just soldier the pins
I'm using the Arduino UNO R3 which has dedicated SCL and SDA pins for I2C control - should I use those or the dual-purpose pins A4,A5 for analog input and SCL,SDA for I2C control?
you can use it on any of those. Both works same
Is this possible with the Dji Mini 2 battery?
Please update to work with Ronin M or MX batteries which also use BQ30Z55 but have 4 cells. 🙏
@@SebastianHagemeister our code is just to reset the PF flag, may be the same code works. if the board is same, check the SCL and SDA pins according to ronin and connect.
does this method work also with the battery of Mavic pro?
Hello, great video. Does it work for Mavic Pro?
Thank you!!
Sorry brother, this program only works for: Mavic 3, Mavic 2 pro/zoom, Mavic Air 2s/2/1, Mavic mini SE/2/1 and Spark batteries.
Can you change battery capacity with this too or do I need cp2112 to change capacity values. I’m trying to make a Dji mini 2 battery with 3500mah lipo cells
hello can i use this your work on dji mini 1 battery that hasn't been charged for 2 years?
ciao posso usare questo tuo lavoro su batteria dji mini 1 che non e stata caricata per 2 anni?
My battery total voltage was 7,8v (3v, 3v and 1,8v). Charged it with balance charger and first it didn´t work, but when i powered up the "charger side positive pin" jumping directly from battery it worked. BMS does not seem to power up itself again from battery side even if voltage is enough high
Hello quick question waht is the white board that the tp 4056 sits on?
Breadboard amzn.to/3CcBR16
Hi, do you have it for a inspire 1 battery? Thank you
With many thousands of Mavic Pro and Mavic Pro Platinum owners having the (now) very common 'Battery Error' in many of our original DJI batteries, have you given any consideration to creating a data upload file for both these Mavic batteries similar to what you have done for your Mavic Air battery so we can use your Arduino procedure? I for one, am very interested in obtaining such data file specifically for my Mavic Pro Platinum battery; even if you charged a (small?) fee for doing this for interested Mavic Pro / Pro Platinum owners! There is total confusion on what Pins 1 & 10 in this battery actually are; e.g., in the only "reliable" Mavic Pro / Pro Platinum complete pinout [[which are completely different for all other Mavic models battery pinouts]] I have come across on the Net, Pin 1 is shown as RXD (UART Receive) and TXD (UART Transmit), BUT do Pins 1 & 10 also actually correspond to the SCL & SDA pins respectively (or even vice versa), and if so, which is which?? I am not knowledgeable in UART understanding! I know there are SCL & SDA locations on these batteries internal circuit board however, you have to essentially destroy the battery casing in getting access to this board - also, it is a time-consuming exercise and one that carries a fairly high "danger risk" for the inexperienced (and experienced alike) to attempt dismantling the battery casing! I've tried the CP2112 board procedure which failed every time stating 'battery not connected or similar error message' and come to the conclusion Pins 1 & 10 (SCL & SDA) are NOT connected to these UART designated external pins???? Appreciate your (or any of your viewers) advice here, please. I have three Mavic Pro Platinum batteries and all three show absolutely no puffing or damage or other adverse observations and all three can be discharged (for the defective DJI battery via the USB - battery adapter) and charged fully! The only difference is that the defective battery shows the "Battery Error" fault which, therefore, prevents the drone from flying!!!! Clearly, IMO, the issue is solely that the PF Flag is blocking the battery from operating!!! Having received the "Over current flashing code" during charging this battery wherein the charger actually put out more current than it should have(??) and repeatedly does this for the few times I repeated this process, I no longer use this charger and am waiting on delivery of a new one! Greatly appreciate your help in resolving this wide-spread issue with Mavic Pro Platinum batteries, please. Cheers from Down Under and Seasons Greetings to all. [PS: I have subscribed to your site and sent you a shorter version of the above email].
I tried this procedure and Arduino just pauses at Unseal/Fas but nothing further. No battery errors or anything. Is there any other way to know what might be the issue?
if it pauses at Unseal/FAS, the batteries are not in the state to turn on the BMS to send the data. So you need to charge the internal batteries, please watch the video ending for this troubleshooting guide. Thanks
Thanks for sharing this! How long did it take you to charge the individual cells with TP4056?
will this work on a spark battery with Arduino Pro Micro ATmega32U4. Need your help
Yes It works for spark battery, as the tutorial is simple and easy make a try
I would like to do the same but with MAVIC PRO 1 battery. Is there an .ino file ready to upload to arduino and use a software to unlock PF?
is this also applicable on laptop battery with the same chip bq30z55??
Thanks for the video ! I'm trying to repair my 3 DJI Mavic Air batteries, but i'm stucked on "Unseal/FAS". I've also bought a lipo charger and charged the cells to a correct voltage, but nothing changes. The thing I'm doing different from the video is using a "DCcduino" Arduino UNO Chinese clone, should this be a problem ?
may be there is any connection problem, please check the wiring and try. It works with any arduino clones.
@@CircuitSchools On an actual UNO R3 revision, should we use it's dedicated I2C SDA/SCL pins or the repurposed analog pins A4/A5?
@@stevehoge you can use any of those as both work same.
Is the code work on mavic pro battery? Thanks
Hi! Is this method works on DJI Spark?
Hello can u help on a phantom 4 battery
uno de los problemas es que si tu celda esta menos de 3.9voltios no te funciona, debe pasar ese voltaje y lo otro es que si usas arduino uno tienes que utilizar los otros pines sdl que no es el a4 sino uno superior igual con el otro pin, el pinout sale en la pagina de arduino
Has podido usar esta guía en alguna otra batería me gustaría tener más información tengo arduino 1 y quiero recuperar mini 2 😅 pero no veo info
@@CR7te es lo mismo, solo debes buscar los pines de conexion de la bateria y los conectas al arduino, abajo sale una pagina, mira detalladamente la pagina para que te guies mas, aparte debes abrir la bateria y cargar con una fuente externa cada bateria a mas de 3.9 voltios para que funcione
Can you reprogram the BMS for custom battery for example if i get some 4000+ mAH batterys ? Do you have a tool for that ?
My cells are at 1.6v , 2.5v , 2.5v so i guess its dead. And if im going to replace them i was thinking of getting the best cells i could get
I need the code. Trying to revive my DJI Mavic Air battery that was unused for a while.
Is circuischools website stil active, cant access it at the moment?
Genial, me llego hoy un arduino nano supongo chino por mercado libre argentina, parecido a amazon o ebay de eeuu. y funciono al segundo intento, cambiando de puerto com e instalando los drivers ch340g.
Hola , tienen el método y código para una batería dji mini 2 ?
Hello, do you have the method and code for a dji mini 2 battery?
Hi, I have tried all the steps, however stops at loading the hex with xloader. (I have used it for other hex). Can the issue be that I have the Micro version? Different chip on it. Any tips for me would be great. 😀
Just add that I managed to upload the hex both with Avrdude and xloader, however the Audrino Micro just freezes, most likely since the hex is made for a different chip. Still looking for a similar hex file for the Micro. Thanks for any tip.
I'm following the mentioned steps but in Arduino after choosing serial monitor and selecting 115200 baud it stuck at Unseal/FAS ... So, no Done unsealing and writing Done. Do you have any idea why this is the case?
batteries power is low to power up the BMS, Look the ending part of the video to solve this.
How do you open the Mavic Air 1 case/cover without marking the plastics much, to get to the cells.
It has strong glue pads sticked hardly, You need to pull slowly to avoid damage, but still we get small scratches on platics, better use an old credit card or guitar picks
I have a DJI mavic air but xloader hé does not want IT upload file,more Than one hour I tried it,anyone help?,using a arduino nano v3
change the baud rate and try again
1. I need this for 4 new old stock DJI Spark batteries. Any ideas?
2. I have Raspberry Pi Pico RP2040 with Arduino IDE 1.8 software as your video shows. Could this work? Or does it need ATMega2560?
our provided hex code works only with arduino based boards. Thanks, buy an arduino nano which is cheap.
@@CircuitSchools does the code you provided also work with the dji spark battery?
@@CircuitSchools sir my mini 2 bms is locked. Can i unlock the bms by arduino nano?
@@FaridAmarFuadi__DB will work with spark batteries but check pinout and connect
@@nazmulkhan5437 don't know, if you already have Arduino board make a try, and let me know
Helou friend work for mavic 2 mini ?
This is great. Will this work with mavic pro battery? do you have codes for mavic pro?
Need the same
Chief can you help me i’m using MAC OS. I can’t seem to run the XLOADER. Thank you
Did you get this to work with MacOS? Using virtual windows or anything?
Hi, i tried this past it works. Now i replace the cells and tried this again but now its stuck at unseal/FAS no blinking leds.😢 please help
thanks a lot sir Easy way to unlocke Air Drone Battery sir Phantom 4 battery BQ30z55 ko unlock krny k liy bhi Aisa hi koi trik bta dain ya HEX file
How can I do it with Arduino Uno?
thanks i charge the battery to 12.2 , and it works trying to 3.7 but no luck second battery at 12.2 no luck make a jumper wire connected to front +ve and start the Arduino IDE and second battery haven been saved thanks a lot
Jumper from what to +ve?
Check the connector to CR01 is the error i am getting. Any pointers on how I can fix this. Even for working battery I cannot read data. The uploaded bytes are around 30156 which is different fro what I see in the video.
using wrong hex file in XLoader (I did the same thing initially), the hex file to use is the one linked to on the page the one linked to on the circutschool page
Hello guy, can you please send the code to configure my arduino (nano) to a usb to a SMBUS ?
Hi, How can I get the code for mavic 2 pro?
Is there somewhere detailed instructions on how to proceed if you need to load the cells like in the last part of the video.
Unfortunately, I am quite inexperienced here and would need help or guidance.
Same
Obrigado pelo vídeo tutorial de como restaurar. Comigo deu certo da seguinte maneira:
Tinha a versão do arduino ide atual e não deu certo. Tive que baixar a versão 1.8.18 igual a do vídeo.
Outro detalhe a taxa de transferência o baud comigo não deu certo o valor de 115200, funcionou com a taxa de 57600(xloader). Tive que alterar a taxa no arduino uno para 115200, pois de fabrica veio em 9600.
E por último Tive que abrir a bateria e carregar cada célula até a voltagem de 3.85v ou superior para voltar a vida. Pois quando fiz o procedimento, não acendia igual a parte final do vídeo. E ao elevar a voltagem para os 3.85v, ao ligar novamente no computador, a bateria acendeu novamente e estou conseguindo carregar novamente.
Obrigado🙂👍🏼
great video, do you think this can be used for the batteries of the dji spark ? thanks and greetings from belgium -Domi
yes it work for spark battery, look for spark pin diagram and connect scl and sda accordingly
luv u bro
ez unlock my mavic 1 bat
Id like to unlock and get rid of my pf error code on phantom 4 pro battery due to sitting so long. is it the same process? and can i get the code. liked and subscribed. thanks
you can download the code from the website. and as we dont have phantom 4 pro battery we havent tested. May be this works or not you can make a try as its cheap to try.
Will it work with mavic 3 battery?
Hi, I also own a Mavic air battery with the usual problem. But I don't have arduino, how can I do to bring her back to life? Thank you
You can buy an arduino from the link given in the description. Cheap and easy
I'm stuck. I'm using an arduino Uno rev4, ive tried both 57600 and 115200, it just gets stuck on uploading. No idea what to do now. Please help.
Estou com este mesmo problema
hi, i have dji spark and arduino uno. I need to reset the battery, can i do it with arduino uno can you help me?
yes you can
Hello friend. For some reason I'm not being able to download the hex file completely. And xloader is failing to upload bytes to Arduino. Any suggestions?
does the code you provided also work with the dji spark battery?
Yes it will work, but check pinouts for spark battery and connect accordingly
Hello,
When I open the application, CC01 and CR03 appear on the devices. How do I add the Arduino? Can you help with this?
Which board you are using Arduino Uno or Nano
@@CircuitSchools Hi friend, does it work with Arduino Nano? I having the same situation, only CC01 and CC03 appears on the device list. Thanks.
@@darrenfam3782I had the same problem. There is an file called device.txt in the same folder as xloader. Here you can add the details of your Arduino. This is advice I got, so if this is the wrong method, please correct me. 😅
Can i send my batteries to you to reset and if so what is cost?
@@davidhanlin351 from which country you are?
@@CircuitSchools canada
Thats not our country and you cannot ship though, if you buy the components like Arduino and connectors from description I can help you online
@@CircuitSchools ok thank you I will look into it further then
@@CircuitSchools ok thank you i have ordered the components. If i have trouble interpreting what to do i will try and get hold of you.
Hi, will this work for a DJI Ronin M battery?
No it's not for ronin batteries
@@CircuitSchools Do you know any alternative for ronin batteries?
hi i am stuck in unseal fas even i chargfe the battery in 2nd step all cells is 4 vlots now why nothing happens if unsealing
may be there is a problem with connections or the BMS itself is not responding
Hello, I uploaded the code but got nothing in the serial monitor(using 115200 baud rate)
Hello bro please soon reply video for dji air ,mini ,mavic battery upgrade capacity edit in arduino nano please soon
@@Nmrathnayaka sry bro at present I don't have the code to update them. You can do it with cp2112 and battery killer software
How to buy this chip?
Required components:
Arduino NANO: amzn.to/3jVNZON
Connecting wires: amzn.to/3H2BV4e
I am using an Arduino Uno... when using Xloader, which device is used CR01 or CR03? is there a difference?
CR03 worked for me
Thanks
I get only message : Check the connector to CR01
hi, will it work for mini 1 battery?
we didn't tested for it, you can try it, check for pinout diagram and connect SDA and SCL pins accordingly.
@@CircuitSchools another question, Incase one of my battery voltage way below the normal status, is it possible to charge my battery from the pin socket without open the battery case? thanks
@@nagaterbang5833 may be NO
@@CircuitSchools another update, had successfully unlock the battery, but whenever i put in the docking all the led blinking 3 times.. I've been trying 2 times unsealing the battery..
any idea..
I've charged the battery to 7.2V
update 2.
i tried to put the battery on mini 2, it said battery cell error (30074)
any idea?
@@nagaterbang5833 no bro, I don't have idea on this.
I tried it but got stuck on the unseal fax i think the battery cells are dead. What do i need to charge the battery cells
Check my comment above. I had the same issue. The fix is easy actually, just carefully charge the cell below 2v.
Hello, my father has a mavic mini 2 fly more combo and left the batteries inside the 2 way charger, and they are all dead, after a year in the closet, i'm trying to save them using this method, can you please provide the arduino code ?
it is already given in the page
It doesn't work for me.When I open xLoader i have COM3 only. Anyone have ideas to solve the problem?
Greetings
Check in device manager, is com3 for Arduino?
Where is Arduino Code? Is encrypted?
Xloader stuck in uploading. tried several times but it says uploading but does not finish
chamge the baudrate in xloader
hi sir i allready email for code help but no respose on mavic unzip code
Unzip code is given below the download link, please check.
@@CircuitSchools Hi Pal i am having trouble as well unzipping the hex file its asking for password??
@@CircuitSchools All done thanks very much
@@pilotpete8013 password
circuitschools.com
status unseal/FAS is long time wait, why ?