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

I did fly in hover to have comparable results with other people testing. If you read the first post you would have noticed that the LiIon battery weighs only 100g more than the original one. Which for me is not too much.
 
  • Like
Reactions: OldCoder
I don't fly just hovering.
If the flight is just hovering of course it would be a shorter flight time.

If I wanted something to just hovering I attach to a tether for power.

9000mah battery weighs way too. much.

I want to believe everything I hear or read, but i don't until I see it, in short I need to see it to believe it, I've been very involved in making my own 3rd party batteries for my SOLO successfully and currently putting cycles on multiple homemade packs, i have studied flight times in many different scenarios with different capacity batteries using both lipo and li-ion chemistries ranging in capacity from 5200 mah to 9000 mah, 26 mins on a stock 3dr battery with gimbal and GP is a miracle, one of the masterminds behind the development of the SOLO, Phillip Rowse, has himself responded to my facebook posts and said he has clock 21 mins on standard gimble at the most......26 mins sounds like a stretch bud please post a log, this is no pissing contest, this is me wanting to see this miracle of science.....
 
I have some questions for OP. I built the battery with Samsung 30Qs, but I'm only getting a 10 minute flight time with the gimbal and gopro installed. I did the following when building the battery:
1. I built the battery
2. I connected it to a bms from an old Solo battery.
3. I charged it with the Solo charger until all the lights went out.
4. I connected it to the Solo.
5. I turned on the Solo.
6. I calibrated the Solo using SidePilot for iOS.
7. I changed the parameters to your specifications using SidePilot for iOS.
8. I flew the Solo using SidePilot for iOS.

As I said it only flew for about 10 minutes before RTL. Is there something else I need to do, like calibrating the battery first? The old battery I took the bms from would only last about 2 minutes before RTL. The old battery would continue to fly a good 5 minutes after reporting that it had 0% charge. Could my problem be a bad bms, or something I'm not doing with the new Li-Ion battery?
 
Because the SMART Battery electronics have a pre determined capacity which is 5200mAh which cannot be changed so its reporting to the flight controller all sorts of nonsense because you have a 9000mah pack but the SMART BMS only sees it as a 5200mAh pack, you need to eliminate the SMART BMS from your homemade pack because it is not compatible for charging or for flying in the SOLO, for the SMART BMS to work you need to make a Li-ION pack that's as close to 5200mAh as possible if you want to re-use the SMART BMS from the SOLO stock battery packs.
 
I gave it another go with the same procedure I used previously and this time the battery lasted 21 minutes and 45 seconds. This is a definite improvement. Maybe the new battery just needed a couple charge cycles to reach peak capacity? The only problem I have now is the controller stopped reporting the battery percentage at 62% and was stuck there for the last 10 minutes of flight.
 
I gave it another go with the same procedure I used previously and this time the battery lasted 21 minutes and 45 seconds. This is a definite improvement. Maybe the new battery just needed a couple charge cycles to reach peak capacity? The only problem I have now is the controller stopped reporting the battery percentage at 62% and was stuck there for the last 10 minutes of flight.

because once disconnecting the smart bms from a battery pack you need to complete a calibration cycle to train it what 0 capacity and full capacity is, and it may never show the correct battery percentage due to the fact the bms is programmed for a 5200mah battery so it may never work as you expect, at best you can fly by voltage and disable the battery failsafe voltage parameter so it doesn't send you packing even though you still have capacity to burn, the fact of the matter is the bms is NOT programmed for a 9000 mah battery capacity so it will always act not as you expect when looking at battery percentage remaining
 
you need to train that bms by taking that lion pack safely to its lowest voltage by completing a discharge cycle than charge it to full capacity, battery calibration is critical for the bms to learn min and max capacity of whatever new battery pack you attach it to.
 
the smart bms uses a mathematical formula known as coulomb counting in order to determine fuel gauge level so that's why the predetermined 5200mah capacity works against you because it thinks the battery is a 5200mah battery even though its a 9000 mah battery
 
  • Like
Reactions: wuwuwu
A short update:
Replaced the Pixhawk Cube 2.0 with the Pixhawk Cube 2.1 (modified black one) and redid the cabling such that it is much nicer now. The bower board (ACSP7) is soldered as close as possible to the Solo carrier board. I cut the cables coming from the carrier board short like below in the picture.

soldered.jpg
finished.jpg
 
Any further updates? My last solo battery died permanently today so I am sourcing some 18650s to build a pack. I really like the power module method so I’m going to go that way. How is the pack you built holding up over time? It’s really too bad that AP doesn’t have an API like DJI so we could use 3rd party apps like Litchi or Autoflight to give “solo-like” moves to any AP powered multi rotor. If that functionality existed, I wouldn’t even bother with solo but anyhoo, here I am.
Thanks for all the effort on this and sharing the info in this post.
 
Hi

The batteries are doing great, as expected. No problem at all. I have more than 50 flights with the drone on 2 packs and still getting ~20min flight time with the gimbal without going to the edge. With the Cube 2.1 I have full power available which gives me more than 50A in flight (~700w !). I disabled the internal compass of the Pixhawk (in parameters) and only use the leg compass because of the interference with the metal shells of the 18650 batteries.

My Upgrades:
- Cube 2.1
- Solex
- OpenSolo
- ArduPilot 3.6.1 (Thanks Matt!)
- Ublox M8N GPS
- MA 10" propellers (quieter and a tiny bit more efficient)
- 18650 battery with power module
- Artoo battery upgrade: Went from 2S1P 2600mAh to 2S2P 18650GA, 6700mAh total. I just replaced the cells and using the BMS of the 2600mAh battery - it works.

Overall very happy with the drone. Though would like to do a gimbal upgrade with Storm32 to be able to use other cameras, like GP7. But no time so far unfortunately.
Oh and if somebody knows where the DCDC step down converter (aka BEC) for 5V on the Solo board is please let me know. I would like to solder a capacitor to the output to smoothen the voltage.

Will take it for a flight today ; )
 
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 = Voltage sensor
Pin 49 = Current 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 47
Pin 4 BATT_CURRENT connect with pin 49
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.4
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!

This guy @Derriell convinced me to take risks.


Here is a small photo report

Flight time clearly exceeds the standard battery. It is a fact. But the risk with telemetry is not yet resolved.
 
Last edited:
  • Like
Reactions: makatanav
This guy @Derriell convinced me to take risks.


Here is a small photo report

Flight time clearly exceeds the standard battery. It is a fact. But the risk with telemetry is not yet resolved.
Hmm.

One wonders if this couldn't be combined with the work of @webbs for full telemetry reporting.

Could you quantify how much greater your flight time is with this pack setup?? As has become painfully clear to me over the last year, my time is not unlimited. Which is forcing me [against my will!] to have to pick and choose things to pursue.
 
  • Like
Reactions: Kiraniv Group
Hmm.

One wonders if this couldn't be combined with the work of @webbs for full telemetry reporting.

Could you quantify how much greater your flight time is with this pack setup?? As has become painfully clear to me over the last year, my time is not unlimited. Which is forcing me [against my will!] to have to pick and choose things to pursue.
the guy is doing the work! Cool! I am a hacker with batteries so-so, but the idea with Arduino is great. Here are examples of boards - not Arduino here is an example - 1 and here is an example - 2. Comrade @Derriell example - 1 set and said that everything works fine. But to achieve how, what and to what has not yet succeeded.
 
Do not know how to deal with the third contact of the smart battery?
I thought of this idea initially as i had used these for my APM and Pixhawk but currently there is no interface in the Solo for the 2 analogue outputs from this unit. This unit could plug into the arduino and give the current and total voltage for the battery via my project. The latest release of open solo is looking for 4 individual cell readings so it would be possible to divide the total voltage by 4 and send it through that way. I am using a ACS758LCB-050B-PFF-T in my current setup so is very similar.
 
This may be a stupid idea, but here it is...

How about a smart, translating BMS? It seems that maybe a new smart battery module could be made that uses a micro Arduino connected to the original 3DR Solo battery BMS, which reads the new battery data and then emulates the original BMS for the 3DR Solo, sending translated and scaled battery data appropriately?

The Arduino code could scale the battery capacity so that a full 10,000 Mah pack would look like a full 5,000 Mah pack to the 3DR Solo? You could scale the reported Mah remaining, and you could also scale the battery voltages, to make return to land happen at the correct voltage for a new battery chemistry?

In theory, it seems that this could work without adding wires to the Solo Cube?

Chris Shaker
 

Members online

No members online now.

Forum statistics

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