In regards to litchi's capabilities, which the OP questioned to some degree, I can confirm that what happened is far from normal behavior, and likely is entirely a result of litchi receiving faulty battery data. Usually litchi will monitor not just the battery level, but also how much battery it would take to return to home. If it hits that threshold where the amount of battery required to get home is how much is left, it will cancel the mission and come home. I had this happen to me once. I was shooting some agricultural properties, and the one I was currently on only required about a 7-8 minute flight (as I remember it). Headwind on flight out, tailwind back, so ideal conditions. Flat land, no obstacles, LOS control for the full flight. I use litchi for running smooth autopilot missions for video, and already knew the flight time, etc. I was running 3 batteries - 1 in the craft, 1 on the charger, and 1 cooling down. As I had a long day of shooting, I would maintain this cycle, charging in my truck as I traveled between properties. When I was ready to start this one, the battery in my craft was in the 60's percent wise. The next one was almost done charging. I considered the flight time and battery, and decided to go for it, since it wouldn't be a problem for me to set it down in the field and go retrieve it if it didn't make it. It got about 3/4 of the way through the mission, when it hit that threshold and litchi automatically canceled the mission, turned around, and headed straight home. Just as it made it back overhead, it hit 25% and started beeping the normal warning, and then I brought it down to me, switched out with the now fully charged battery, launched again and completed the mission. Based on it arriving back at almost exactly 25%, it seems it is designed to bring the craft back before it gets below that point, accounting for both the trip there and the necessary flight back. It could possibly be that is true for 15% (what I have critical battery warning at) instead of 25%, and just got back earlier because it had a healthy tailwind on the return trip. Either way, I do know litchi has this functionality, and that it works (when all is working correctly between the craft, FW, etc).