I keep reading about "uncommanded descents", not sure if these are limited to water or if they occur on land as well.
Those were caused by prop deformation, totally unrelated to water. Previous firmware versions warned of "Max Power Reached" errors. Firmware 1.0.5 introduced a new "Motor Speed Error" warning with explicit instructions to replace the propeller blades on the affected motor identified by the beeping ESC after landing. The warning was later revised to even more explicitly state, "Propeller rotating too fast", again with instructions to replace the propeller blades identified by the beeping ESC.
In particular the rear prop blades are prone to deformation when stored folded crossed laterally. The prop deformation (twist) reduces their lift capability thereby forcing the motors to spin faster to generate the required lift. Eventually the rear motors are incapable of spinning any faster and can't maintain the required tail-high nose-down pitch attitude in forward flight,
Someone please correct me if I'm wrong, but this is what I understood to be the cause of "Uncommanded Descents". The firmware defect was that the flight controller
prioritized the commanded pitch angle rather than altitude hold. Full forward control stick commanded the flight controller to hold a certain nose-down pitch angle to make the aircraft fly forward. If the
rear motors were incapable of providing the required lift to achieve that pitch angle, the flight controller responded by decreasing the
front motor speeds, thereby maintaining the correct pitch angle. But, with the rear motors already struggling, and the front motors now commanded to spin slower, despite holding the required pitch angle for forward flight the overall lift was now insufficient to hold altitude.
Feeding in more throttle would not stop the gradual descent. If the aircraft was over land or snow, it might just bounce off the ground. That may correct the pitch angle back to level allowing the aircraft to then go back to flying "normally" until the same conditions are eventually repeated. But if the aircraft descends into a lake, well that's terminal.
If you ever do encounter such a situation, others have noted that merely halting forward flight, even pulling full reverse stick, can stop the uncommanded descent and save your drone.
If they are limited to water... then it deserves being looked into, as well as any uncommitted action by a drone. When I see so much consistency in these reports, I believe there maybe something to look into here.
Actually, there has been an enormous amount of
inconsistency in these reports. There is so much misinformation out there, that it's difficult to get any accurate diagnosis.
I don't know if the firmware was ever actually "fixed", beyond introducing ever more dire error warning messages. You'll find hundreds of forum posts from people insisting the newly introduced Motor Speed Error warning in firmware v1.0.5 is
itself a firmware bug. They had never seen this warning before, it only appeared after they upgraded to v1.0.5. Some even recommended the "cure" of downgrading to a previous firmware version to make the annoying warning go away. Brilliant.
In any case, the uncommanded descent has nothing to do with the downward facing sensors and is not
caused by flying over water. Take care of your propeller blades. If you suspect any issue with the blades, do the
hover test and plot motor speeds to see what's really happening.
mavicpilots.com/threads/motor-speed-error-mavic-mini.86130/page-13#post-1038918
That said, the downward sensors
can be confused by water, but they will not drive the drone down into the water. The vision sensor camera fixes on any patterned surface detail to very accurately hold position in a hover. If the surface is blank with no detectable pattern, or it's just too dark, then that sensor won't work. Or, if the detected pattern is moving, like waves or ripples on the surface of water, the sensor will follow those. Try hovering over a patterned rug and dragging the rug away. The drone will follow.
The barometric altimeter is usually quite accurate, but is affected by changing air temperature and local air pressure. The infrared height sensors (when within range) bounce a signal off the surface to accurately measure altitude. If anything gets within (~1m?) of the bottom of the drone, the sensor actually causes the drone to
rise up. Hold your hand under it and you'll see. It'll never cause the drone to descend. To force it to land you need to hold full down throttle.