3DR Solo with LiIon 9000mAh battery | up to 30min flight time

Joined
Jan 2, 2018
Messages
72
Reaction score
69
Hi everyone


I would like to share my experience with building a custom LiIon battery for 3DR Solo and have correct battery % display on the App and Artoo controller. My goal was to build a battery that lasts longer than the original one without any performance cuts. There are several ways to do a battery mod in this thread. Please read careful what you need to do for your mod. Not all writing bellow is important for you! The italic writing is contend that I discovered during the process of all this. It represents to me a less optimal solution. I leave it there for knowledge. If you do this mod you need to take great precaution! If done not properly you can endanger yourself, other people and property! I'm not taking any responsibility in any way for damage that may result!


1. Choosing the right cells
When flight testing my 3DR Solo the maximum amp draw it could produce was 46A in stabilized mode giving full throttle. This kind of flying style isn't suited for Solo in my opinion but the battery should be able to deliver the power needed. Looking at 18650 cells and knowing each cell weighs 45-48g there are two options to make a battery pack. The original Solo batter weighs 492g.

a) 4S2P which weighs around 370g cells only
b) 4S3P which weighs around 550g cells only

In hover and slow cruising Solo consumes 15-20A. From this I knew that there would be 18650 cells that will deliver the required amount of power. Having a look at different cells and comparing them here Battery test-review 18650 comparator

Samsung 18650-25R 2500mAh 20A continuous discharge
Samsung 18650-30Q 3000mAh 15A continuous discharge
Sanyo 18650GA 3500mAh 10A continuous discharge

I decided the 30Q would be the best option for a 4S3P pack considering the cells become less power full with time as IR increases. And they hold voltage better under load than the 25R. I m sure the GAs will work good as well and they would give even better flight time. Other 18650 cells are suited as well for sure.


2. Building the 4S3P LiIon battery
The battery is a 4S3P. Build it accordingly. I used a spot welder but if careful and fast soldering should work as well with no problem. Cover the LiIon battery with tape or shrink tube. I used XH balancing cables. The 4S3P 30Q battery weighs 593g, 100g more than the Solo battery. Internal resistance of each cell of the pack is 6-7 mOhm which I m very happy about! Make sure not to short anything during the process! I did not use plus pole paper prodection rings on the 18650 cells. Which I will use in future.


3. Getting battery telemetry
3DR Solo uses smart BMS in each Solo battery which will give battery telemetry to Solo and ground station. There are different ways to get this information.

a) Don‘t have telemetry: Solder the battery connectors directly to the Solo board. You need then to use a LiPo alarm and/or timer. It works but it is not what we want.

b) Using the Solo BMS: It will give all the telemetry. And allows to use your own battery. However there is a 5200mAh capacity limit coded in the BMS. That means if you use a 8000mAh battery the Solo BMS will report 0% battery after 5200mAh used in flight although there are still 2800mAh left. In Software hack down bellow I show a way to get around it.

c) Use your own smart BMS: Solo uses SMBUS v1.1 specification. Found here: SMBUS Spec.pdf Any BMS that support this can be used. The available SMBUS BMS are either too big and heavy or have too little amp support. And they are expensive. Unfortunately this does not seem the way to go.

d) Use a power module: A power module allows to use any battery and to use your own RTL parameters. There is no 5200mAh limit. And it saves weight. The Solo BMS with connector weighs around ~60g. The power module only ~20g. This is my prefered method. It requires very difficult soldering.


Taking apart a Solo battery
I would like to thank the kind user from Solo Hack group on FaceBook who sent me defective batteries.
The Solo batteries are made very well and difficult to take apart. It is impossible to take it a part and put it back together! With a bench grinder I removed as much plastic around the battery where the two half's connect and then it is quite easy to open. Underneath the battery where the sticker is and where it is glued to the plastic, there is a protective aluminium plate on the LiPo cell. You can use a flat screw driver and go between the plastic and the cells and you wont do any damage. Be careful with the open battery (shorting it)!!! Unsolder all cables from the Solo LiPo in order to reuse them. There are several videos on YouTube that show you how to open a Solo battery.


Soldering connectors to the Solo BMS
Soldering your favourite connectors to the Solo BMS battery leads is easy. Be careful that you solder the balancing cable the right way around! AN1 stands for ground and P+ is positive pole. For an image check this post here: 3DR Solo with LiIon 9000mAh battery | up to 30min flight time
After that connect a 4S LiPo battery to it and check if it works. If successful cover it with shrink tubing or insulation tape.


Charging the LiIon battery with the Solo BMS and charger
To say it short: It simply works!
I discharged the LiIon battery completely down to 2.8V per cell (at least 8300mAh used) and was able to charge it completely with the Solo BMS and charger! And the Solo BMS reported a full battery. If you don't trust the Solo BMS and charger you can use your normal RC battery charger. If you charge the battery externally and plug it in to the Solo BMS it will report that last battery stage it was at. Eg. if you just flew one battery empty with this BMS and you plug a fully charged battery to the same BMS it will report an empty batter. Voltage and amps are correct though. To prevent this plug the unit to the solo charger a couple of minutes for the Solo BMS to adjust or connect to Solo and set BATT_CAPACITY parameter to the specific value of the battery you want to fly with.


Flying
The battery is strapped with a walkro to Solo. Does not look nice but it holds. Because of the metal case of the 18650 cells the compass needs recalibration. Even after swapping one LiIon battery for the other. At least with the stock compass. I don‘t know how it is with the Here compass. I imagine it to be better. After calibration it works just fine. If you change from LiIon to the original battery you have to calibrate it as well. The Solo BMS with your battery is recognized as a normal Solo battery. However in the case of LiIon batteries, they have lower voltage level and can be discharged to a lower voltage (2.5V vs. 3V LiPo per cell). Thus Solo with LiIon battery will trigger RTL and low battery alarm too early. How to prevent this see section Software hacking below below.
If RTL is triggered just press pause, A or B. After that you have to monitor the voltage with the App in order to have an idea about battery life. This needs some experience with battery discharge curves to be able to tell. I recommend flying down to 11.6-12V (2.9-3V per cell) with LiIon batteries and 14V (3.5V per cell) with LiPo batteries. Tests have shown that Solo flies even with 10.9V.
If you charged the battery externally and the Solo BMS is reporting 0% capacity from the last flight but you still want to fly it, you have to move and hold the left stick to the centre and down and Solo will arm. You wont see any information on the Artoo controller - just the battery warnings. But on the App all the information is there.


How to install a power module
For pictures see this post (I cant fit more pictures to this post): 3DR Solo with LiIon 9000mAh battery | up to 30min flight time

PRO: It works! With correct battery % on artoo and in Solex
CON: The soldering job is very difficult

I managed to solder cables to pins 47 and 49 (the standard power module input pins on the Pixhawk Cube). It seems that on the Solo board these pins are not used at all and no traces are leading from the plug either. This means that in order to use a power module you need to solder to these pins! The soldering job is very tiny and difficult! Please consider very thoroughly if you want to do this! The cables I had were too thick. I had cut half the stripes in half to get a fine enough wire. To lead the wires out under the Pixhawk Cube it was required to make some space. I did a quick and dirty job by using the soldering iron and melting the plastic (350°C) of the Pixhawk Cube. Worked well.

Pin 47 = Current sensor
Pin 49 = Voltage sensor

Connect these pins to the power module which will have 6 Pins. Solder the power module to the power input on the Solo board and solder your plug system at the battery input input of the power module.

Power module pin output:
Pin 1 VDD 5V do not connect
Pin 2 VDD 5V do not connect
Pin 3 BATT_VOLTAGE_SENS_PROT connect with pin 49
Pin 4 BATT_CURRENT connect with pin 47
Pin 5 GND no need to connect
Pin 6 GND connect to ground on Solo board eg. on the battery input

I used this power modul: mRo Hall Sens Power module ACSP7 (Next Gen)
This looks great too: 100A / 200A Hall Sensor PM for Pixhawk / APM
Others work as well for sure ...

Each power module model is different to what settings have to be set in parameters. The ACSP7 uses these parameters (to be set in Mission Planner or QGroundControl): ACSP7_config.pdf You have to do a calibration in Mission Planner with a multimeter/wattmeter and measure voltage (important!) and amps. Amps should be measured under load to calibrate. Ideally 10+A.
That's it! Solex will display the values from the power module and the Pixhawk will calculate battery percentage based on used mAh and BATT_CAPACITY and this percentage will be displayed in Solex and artoo. No need to change it or flash artoo! With Mission Planner you can change the the RTL voltage and RTL remaining capacity paramters as you wish.

My settings for this LiIon battery:
FS_BATT_ENABLE = 2
FS_BATT_VOLTAGE = 12.6
FS_BATT_MAH = 0
BATT_CAPACITY = 8000

The battery percentage in Solex and artoo (no need to flash it) is calculated based on used mAh. The formula is: (BATT_CAPACITY - used mAh) * 100 / BATT_CAPACITY RTL here is based on voltage (safer if the battery ages or you fly with a non fully charged battery). If you start flying with a half full battery Solex will report a full battery. But who goes out on the field with a half full battey anyway? The messages on artoo that it will RTL @ 10% is wrong, it does not really matter. I changed it to "RTL soon - battery is criticaly low". If you wish to have this slightly modified artoo firmware let me know.


Disabling RTL (only use with great care, no need to do it with Solo BMS or power module)
In order to prevent RTL kicking in at 520mAh or under 14V left I disabled some features in Arducopter (see here: 3DR Solo - ArduCopter Master Upgrade — Copter documentation). For this connect Solo network via computer/phone/tablet with Mission Planer or QGroundControl and change following parameters:

Original:
FS_BATT_ENABLE = 2
FS_BATT_VOLTAGE = 14
FS_BATT_MAH = 520

Modified:
FS_BATT_ENABLE = 0
FS_BATT_VOLTAGE = 0
FS_BATT_MAH = 0

With these settings Solex and artoo will play low battery alarm after you reached the programmed thresholds, which is a bit annoying. But RTL will not kick in! Use voltage to land!


Artoo software hacking for battery % when flying with a Solo BMS

Make it RTL when you want
FS_BATT_ENABLE is triggered by a set voltage (FS_BATT_VOLTAGE), used mAh (FS_BATT_MAH) or at a specific percentage of battery remaining (artoo ?). I found out that the SMBMS sets at every boot of the drone the BATT_CAPACITY parameter on the pixhawk. You can change the parameter BATT_CAPACITY with Mission Planer / QGroundControl but after a reboot the changes are gone. The SMBMS has a coded capacity limitation of max. 5200mAh what ever the battery is. The Solo BMS learns at every discharge what its capacity is. But it is never more than 5200mAh. When flying with BATT_CAPACITY = 5200 it does a BATT_FAILSAFE at ~4900mAh which is not what we want. To overcome this connect Solo before flying with Mission Planer or QGroundControl and set BATT_CAPACITY to what ever your high mAh battery is (remember the discharged mAh under load is a bit less than printed). This value will stay until you power Solo off. To overcome the manual changing of the parameter I wrote python script on Solo that Solex can trigger from commands at every connect and overwrites BATT_CAPACITY written to the Pixhawk from the SMBus. This means no more RTL at ~4900mAh used and no need to manually change parameters before flight. The 5200mAh limit means as well that the used mAh in flight ae never more than 5200mAh. This resulst that on the App or Artoo the % is still after 5200mAh used capacity. In the 8000mAh example the 5% would stay still at 35% ((8000-5200)/80).

Making artoo display correct battery % (but not Solex!)
Artoo code reads mavlink messages and one of these messages is the battery percentage coming directly from Pixhawk and Solo battery. However this is not correct with a higher than 5200mAh battery.
I took the mavlink volt and ampere readings and calculated a battery % based on them. It does calculate for the voltage drop under load and compensates it to give a smoother output. The voltage range is set to 16.8V - 11.6V. The percentage comes down to personal preference and safety.
Flashing artoo is quite easy: documentation/flash-custom-firmware.md at master · OpenSolo/documentation · GitHub

Settings on Pixhawk:
FS_BATT_ENABLE 2
FS_BATT_VOLTAGE 12.4
FS_BATT_MAH 0

Now it does:
- RTL does work at a set voltage or used mAh (thouhgh no more than 5200mAh)
- No need to tweak or setup anything before flight /script runs automatically)


This video shows overriding BATT_CAPACITY parameter and RTL at 12.4V.
To view this content we will need your consent to set third party cookies.
For more detailed information, see our cookies page.

As I have no code from Solex, the app does show the percentages and alarms according to SMBus battery percentage. Nothing to be done here. As not every custom battery is the same it does not make sense to do anything here.



Here is a video of the Solo hovering 30:20m not in ground effect with the new battery. AUW 1650g, average power consumption 228w, 500 m.a.s.l, 1°C.
To view this content we will need your consent to set third party cookies.
For more detailed information, see our cookies page.

Here is a video of the Solo hovering 23:28m not in ground effect with LiIon battery, gimbal and recording GoPro 4 Silver. AUW 1948g, average power consumption 285w.
To view this content we will need your consent to set third party cookies.
For more detailed information, see our cookies page.


Fun and safe flying!
 

Attachments

  • IMG_20180204_233403.jpg
    IMG_20180204_233403.jpg
    855.2 KB · Views: 769
  • IMG_20180204_233424.jpg
    IMG_20180204_233424.jpg
    959.1 KB · Views: 715
  • IMG_20180209_215853.jpg
    IMG_20180209_215853.jpg
    797.5 KB · Views: 672
  • IMG_20180209_210225.jpg
    IMG_20180209_210225.jpg
    823.1 KB · Views: 641
  • IMG_20180209_011013.jpg
    IMG_20180209_011013.jpg
    736.2 KB · Views: 642
  • IMG_20180209_010700.jpg
    IMG_20180209_010700.jpg
    762 KB · Views: 666
  • 20180207_204807.jpg
    20180207_204807.jpg
    1.3 MB · Views: 625
  • 20180207_210139.jpg
    20180207_210139.jpg
    1 MB · Views: 637
  • 20180212_175123.jpg
    20180212_175123.jpg
    1 MB · Views: 542
  • Pins Cube.jpg
    Pins Cube.jpg
    1.3 MB · Views: 472
Last edited:
Those LiIon cells can only handle a 100A burst with 20A constant discharge, Solo spec says it 120A burst? Wonder what happens to the cell if that occurs?
 
The LG HE2s are also really nice Hybrid IMR 18650s with similar specs as the Samsung 25R (2500mAh / 20A discharge with 30A pulse). The LG HG2 is an INR 18650 with 3000mAh / 20A discharge.

18650s seem like a logical choice for a battery upgrade. Most of the record holders for long runtime copters switched to Li-Ion chemistry. I think the current record holder went with Li-Ion if I'm not mistaken.
 
Last edited:
  • Like
Reactions: Derriell
I like it and would be curious to see how it performed in strong winds, as I fly a lot with strong winds. If this proves safe it might be worth getting a proper BMS setup that the PixHawk can read and interact with. Then maybe a vacuformed cover so it looks nicer.
 
I'm liking the sound of the lighter 4S2P pack for performance.


I like it and would be curious to see how it performed in strong winds, as I fly a lot with strong winds. If this proves safe it might be worth getting a proper BMS setup that the PixHawk can read and interact with. Then maybe a vacuformed cover so it looks nicer.
 
@oliveira: In my opinion it does not matter because max. A I could produce in flight were 46A for half a second, it went down to the high 30s after that. And if the drone would require 120A in flight it would definitely burn the motors! And thus you would have other problems than the battery.
This battery pack has a constant discharge of 45A, aka 650w. In hover the drone consumes only 230w. I think the battery pack has enough power because in slow to medium flight the drone uses even less power then in hover.

@P2P: Okay thank you. I will enable it. With it disabled I could still hit RTL and it worked on the controller. But I did not test turning the radio off.

@vision the LGs would definitely be a good choice. For my flying style a 4S2P would be good I am sure. I think flight time wont be much worse. With the stock battery in hover it consumed 197w and AUW was 1500g. So for 10% more weight the Solo consumes 16% more energy with 1650 AUW. A 4S2P would be lighter than the stock pack and hold similar energy (~80wh).

@just bruce: What is the power consumption in strong winds of your Solo?
 
@oliveira: In my opinion it does not matter because max. A I could produce in flight were 46A for half a second, it went down to the high 30s after that. And if the drone would require 120A in flight it would definitely burn the motors! And thus you would have other problems than the battery.
This battery pack has a constant discharge of 45A, aka 650w. In hover the drone consumes only 230w. I think the battery pack has enough power because in slow to medium flight the drone uses even less power then in hover.

@P2P: Okay thank you. I will enable it. With it disabled I could still hit RTL and it worked on the controller. But I did not test turning the radio off.

@vision the LGs would definitely be a good choice. For my flying style a 4S2P would be good I am sure. I think flight time wont be much worse. With the stock battery in hover it consumed 197w and AUW was 1500g. So for 10% more weight the Solo consumes 16% more energy with 1650 AUW. A 4S2P would be lighter than the stock pack and hold similar energy (~80wh).

@just bruce: What is the power consumption in strong winds of your Solo?
I've never recorded it, but usually I'm lucky to get 10 minutes from a fully charged standard battery. This is landing around 20%, and with some hefty maneuvering as I film kite surfers and sailboats. This means a gimbal and GPH4B so extra weight.

The same standard battery will get me 15-16 minutes just hovering in calm conditions.
 
I've never recorded it, but usually I'm lucky to get 10 minutes from a fully charged standard battery. This is landing around 20%, and with some hefty maneuvering as I film kite surfers and sailboats. This means a gimbal and GPH4B so extra weight.

The same standard battery will get me 15-16 minutes just hovering in calm conditions.

Assuming that your battery is new and has 80wh energy stored fully charged. When landing at 20% this means the energy used in flight is at maximum 64wh. Lets take 10min flight time in wind which is 1/6 h. Average power consumption according to this numbers is max 6*64w = 384w (~25A average). This battery is able to deliver 45A continuous so I see absolutely no problem there. To be absolutely sure it has to be tested. When I did the test in 1 C° temperature and 230w load the battery was barely warm after.
 
My concern isn't the average. It's the peaks when I turn to follow into a 20kt wind after having been flying downwind. Even with the wind I can often hear the prop noise from such changes
 
My concern isn't the average. It's the peaks when I turn to follow into a 20kt wind after having been flying downwind. Even with the wind I can often hear the prop noise from such changes

Do you have logs of those flights? Looking at the internal resistance of the battery (~32 mOhm) I have no concerns about peaks.
 
Update:
I adjusted the artoo code for it to display correct percentage of the battery. Because LiIon cells have different voltage range (2.5 - 4.2V LiIon vs 3 - 4.2V LiPo). It is only voltage and amp based. As well I wrote a little script to run on Solo to make it RTL at a set voltage or used mAh. Battery percentage and RTL works basically like with the original battery, no limitations anymore :)

If you are interested, I m happy to share the compiled artoo binary and script via PM. As there are for now too many things that could go wrong with it I prefer for now not to post it here.
 
Not yet. I have no GoPro so far (I own Solo since beginning of February)
 
Rock on Dude. Awesome what y'all are capable of..just really sweet. Don't stop! That goes for everyone who does this stuff. From Matt, Kelly, Mike, everyone. Much love, gang. much love.
 

Members online

Forum statistics

Threads
13,093
Messages
147,741
Members
16,048
Latest member
ihatethatihavetomakeanacc