Note: It has been some time since I started the project and it has become much bigger than I initially thought. Therefore, I will split the project into several sub-projects. Logs that disappeared here reappear there ;)
My initial research showed that DJI FPV smart batteries consist of an "smart" control board and an ordinary LiPo battery. They communicate with the drone via a three-pin plug and provide information about battery voltage, temperature, etc. Without these additional informations, the drone refuses to start the motors.
So my original idea was to separate the brain from the body. The LiPo battery control board from the LiPo Battery cells. My hope was that it would be possible to create some kind of a modular system. Use the original smart battery control board as the base module and add any LiPo battery pack as the second module.
To test this, one of my DJI FPV smart batteries had to be
Disassembly of a DJI FPV smart battery
There are already some pictures and even videos of the inside of the batteries. But I took a few pictures and that shouldn't be wasted.
Opening the battery case without damaging it is not easy (impossible?). It won't open after removing the two obvious screws. In addition to four clips, there is some sort of double-sided tape holding the battery cover in place. It took me a while to open it...
After removing the cover it was still not possible to remove the control board and the LiPo cells. The cells were additionally fixed to the bottom of the housing with double-sided adhesive tape. But the cells and the control board could be pulled out with a little effort and a lot of patience.
Now the time had come to separate the brain from the body. Besides the two main power wires and the six balancing wires, there was a temperature sensor that had to be carefully detached from the LiPo cells. The glue used to attach the sensor to the LiPo cells is very soft and can be carefully removed with a knife or screwdriver.
The prototype of a modular smart battery
After that I thought the hardest part was over. I soldered XT60 connectors to the main power wires and JST-XH connectors to the balance wires. A rapid test showed that the patient survived. In addition to a simple battery test, I tested the modified battery with the drone. Everything worked fine. I was able to turn on the drone and even start the motors. Nice!
In the next step, further battery cells should be tested. The first attempt was to use six Samsung INR18650 35E LiIon batteries as a 6S pack. Weighing around 250 g and with a capacity of 3500 mAh, this battery had almost the same weight (even lighter) as the original battery but with a much higher capacity. So I soldered six of these batteries together to give it a try. Soldering LiIons is not recommended and even dangerous, but I don't have a spot welder... To hold everything together I 3d printed a case for the control board and a seperate case the battery pack. Both could be screwed together to build the battery unit. However, I wasn't sure how changing the technology from LiPo to LiIon would affect the discharge process controlled by the "smart" control board.
(I know that the maximum discharge current of this kind of LiIon batteries is much lower than the maximum discharge current of LiPos. But it was just a test and I even hoped it would be enough for some slow and smooth flights.)
When things started to go wrong
So it was time to assemble the control board and the LiIon 6S package and to turn on the drone. After connecting the pack to the board, two of the status LEDs lit up for a few seconds. After a click on the battery test button, all four LEDs lit up, indicating that the battery was fully charged. Strange because it wasn't. After turning on the drone, everything seemed fine. But then I noticed that the battery status was highlighted with a red rectangle and the drone's status LEDs were flashing red. Not a good sign. Apparently the battery control board was smart enough to notice that something was not as it should be.
I decided to fully charge the LiIon battery pack with my balance charger, but that didn't change anything. My next try was to drain the battery a bit and charge it using the DJI charger and smart controller board. Now I have a 100 % battery status without the nasty red rectangle and the drone's status LEDs no longer showed any problems either. Ready to fly? Yes!
I was able to start the engines and flew through my apartment. But I realized that the flight time was really bad. I bearly reached 6 minutes. Using the original DJI battery and try to do the same flight I got about 10 minutes in the air. After the flight (20 % left) I measured the battery voltage. I'm not sure, but I think it was around 22 V (3.67 V per cell). These cells can be discharged down to 2.65 V. So there was a lot of unused energy left over. At the time, I wasn't sure if the problem was with the smart LiPo control board, thinking that 3.67 V equals 20 %, or if the discharge current was too high, causing the voltage to drop much lower under load.
If your drone doesn't like LiIon, feed it LiPo
So I tried to get my hands on a LiPo battery. I got one with a capacity of 3000 mAh and a discharge rate of up to 60 C (180 A!). No advantages without disadvantages. While the capacity of this battery is 1.5 times that of the original battery, the battery (including the adapter and control board) weighs 580 g, twice the weight of the original battery (290 g). Therefore, the weight of the drone including the battery has increased by 133 % (875 g -> 1165 g). Hm... What does that mean in terms of flight time? There was only one way to find out. So I printed a (poor) adapter to attach the LiPo to the drone and tried it.
It must be mentioned that I had the same battery error when I first connected the LiPo to the smart control board and the drone (the angry red rectangle). But after charging the LiPo cells via the board and DJI charger it worked, too! The engines started and I flew around my apartment for a few minutes as before. Now I got about 7 minutes flight time (100 % -> 20 %). Much worse than my assumption (10 min * 3000 mAh / 2000 mAh * 875 g / 1165 g = 11.27 min).
After few minutes of cooling, I measured the voltage of the LiPo battery. 22.74 V, which means 3.79 V per cell. When I do the same with the original battery (flight down to 20 % + cool down) I measure 21.53 V (3.59 V per cell). This might seem like a small difference, but it can make a big difference in terms of capacity used.
What went wrong?
Honestly I'm not sure! I think the "smart" battery control board is too smart. Or too dumb. Possibly both.
It seems that the "smart" control board does not only measure the voltage of the battery cells it also seems to know the maximum capacity and take it into account calculating the battery status.
For, that which must not, can not be.
If I assume that the control board only allows 2000 mAh, the flight times achieved seem reasonable.
(10 min * 2000 mAh / 2000 mAh * 875 g / 1165 g = 7.51 min)
It is possible to take the original smart battery control board and separate it from the LiPo cells to make them interchangeable with regular 6S LiPos. But every time you disconnect them, the control board resets and the battery needs a few percent (up to 100 %) of charging to "calibrate" the battery to the new LiPo.
I've tried using a simple capacitor circuit to keep some power on the board when changing LiPo, but this leads to the interesting effect that the battery/drone thinks the new LiPo has exactly the same capacity left than the previous one . So if you fly down to 20 % swap out the battery for a fully charged LiPo, the drone would still show you 20 % left (and act like that!).
So right now I see two ways to handle this information.
1. Only use 2000 mAh LiPos and accept that you have to charge them for a few minutes after each swap. This fixes the pricing issue, but it's not very convinient.
Unfortunately I haven't found one that fits the drone really well (smaller 40 mm x 60 mm x 60 mm). Therefore, I would appreciate hints!
2. Replace the original control board by my own.
What could be done in the future?
I would like to learn more about the communication between the battery control board and the drone. Maybe it's possible to mimic the communication and build my own control board using an Arduino, Teensy or even an Attiny. A CAN bus seems to be used for communication (https://forum.dji.com/thread-238228-1-1.html). So I ordered an MCP2515 CAN bus module for my Arduino to find out more...
I would appreciate any idea, hint or advice you could give me!