MissionPlannerLite - a stripped down MissionPlanner fork that aims to run faster for real vehicles and support Linux better

Hi Everyone,

I’ve started a new project; MissionPlannerLite that aims to be a light - lite - version of MissionPlanner that:

  1. Runs as fast as possible and doesn’t get slower when used for long.
  2. Doesn’t collect/store data or do any sluggish background tasks
  3. Supports Linux better - final target is be as native to Linux as possible. Now it already runs faster on wine or mono.
  4. Only includes features for real flights - no simulator, telemtery configurator or other secondary features that makes MissionPlanner very slow and sluggish when doing actual critical work.
  5. Not a replacement, as you’d need MissionPlanner for seconday or rarely used features.

Project page

I’ve already released an initial version that seems to work well.

Main features:

Targeted to x86 CPU
Optimized Release build using Visual Studio 2019
Less memory footprint, faster startup and general performance enhancements
No MissionPlanner logs. Telemetry logs should be working normally.
No Analytics/AltitudeAngel or other information collecting services. Many URLs - specially google-related as changed to fake URLs. Tell me if any still exists.
Removed non working or rarely used maps
Removed - or hided - many non-essential features, to enhance performance for real flight usage.
Works much better under Linux either using wine - v4.1 or newer - or mono

For missing features, if it’s essential for real flight usage, open an issue. Otherwise, use standard MissionPlanner version.

For developers, all modifications are located in MissionPlannerLite git branch.

Waiting for your feedback.

3 Likes

I’ve just released MissionPlannerLite 0.12
Can be found on releases on github.

Finally, a MissionPlanner that is fully compiled on Linux, Is it the 1st ever?
Should be running much better using either wine or mono
It also runs very fast on Windows.

Changes can as usual be checked on MissionPlannerLite branch.
Main changes:

Solved many errors and warning on Linux build, using msbuild from mono stable.
Stripped down some more features; MAVftp, extra languages, Speech, Updater
Some general clean-ups and fixes

Can be built on Ubuntu - or any upstream stable mono supported Linux - using
msbuild -r MissionPlanner.sln /t:MissionPlanner /p:Configuration=Release,Optimize=true,DebugSymbols=false /p:BuildProjectReferences=true

Also can be built using Visual Studio as normal.

Waiting your feedback.

1 Like

Hi Jaaaky,

It is a good idea, but without a detailed list of changes it is not usable (imho).
Also I would rater modify the original MP code to add the possibility to switch off/on features on compile time instead of cutting out code. It would be a code maintenance nightmare, and if you don’t keep up with the master then the Lite is doomed.

Thanks for feedback,

Once I finish initial strip down, I’ll document a full list of changes, hoping this is very soon. But code is public any way for the current moment.

Actually, due to the huge code base of MissionPlanner, and the fact that I’m not C# developer, I cannot currently do the enable/disable feature. But any help is welcome.

I’m still learning concepts of C# world, so it’d get better over time.

For me, I do the following for testing:
Start mavproxy and send two outputs, one for the original MissionPlanner and one for Lite. So I am not in trouble if I get a sudden crash with Lite version.

MissionPlannerLite version 0.2 has been released - almost fully stripped - ready for broad testing

Please find it in Releases.

MissionPlannerLite Vs MissionPlanner :

Almost complete list of changes.
The following features/libraries has been removed:

  1. AltitudeWings
  2. log4net MissionPlanner application log
  3. Arduino
  4. Joystick
  5. Avifile
  6. External Guided plugin
  7. GDAl maps and gdal lib
  8. Local maps, non working maps and google maps
  9. HIL - old obsolete feature
  10. Installer
  11. stats
  12. google analytics and any google.com stuff
  13. LibVLC
  14. md5sum
  15. Mock
  16. OSD configurator
  17. solo
  18. tlogThumbnailhandler
  19. TrackerHome
  20. UAVCAN, UAVCANflasher
  21. UsbSerialForAndroid
  22. ZeroConf
  23. wasm
  24. WebcamService
  25. WindowsStore
  26. Xamarin
  27. Help tab
  28. Simulation tab
  29. Donate tab
  30. Terminal Tab
  31. LogDownload scp
  32. LogAnalyzer
  33. NoFly
  34. Sikradio configurator
  35. test
  36. Updater
  37. httpserver
  38. Speech
  39. SSHTerminal
  40. wix
  41. Mavftp
  42. BouncyCastle

The following has been modified/fixed for better performance and enhanced Linux system support:

  1. MissionPlannerLite can be built on Linux system using mono stable
  2. Debugging has been disabled and the release version is a Release build
  3. Compiler optimization has been enabled
  4. Non-English languages for most parts

Finally Application executable and name has been renamed to “Mission Planner Lite” to avoid conflict.

The previous work has resulted in an app that:

  1. is smaller in size
  2. starts much faster than original
  3. responds much better to user clicks and actions when doing actual work
  4. use much less RAM - almost have size of RAM initially
  5. much less CPU usage
  6. collects no data
  7. more Linux friendly - this is still some work to be done on Linux compatibility -
  8. doesn’t get slower and sluggish when used for long time for real flights
  9. less background activities
  10. less network traffic
2 Likes

on/off I mean #defines and #ifdef’s.
If you remove a function instead of deleting the code, put in inside #ifdef’s or #ifndef’s and add a neccessary #define. It will make your changes universal and can be merged to the master codebase.

Thanks,

This is the next step. Create a new solution/project and strip code with #ifdef

Hey Jaaky. How are you coming along with this?