Hello,

I have been building a program to to execute remote commands on the 3dr solo and was thinking it would be simply as easy as understanding mavlink which it turns out I am way off.  There is udp traffic coming from UDP 5005,5501,5580, etc ports and that is just from the controller to the solo and not counting the variety of traffic coming from the solo to the controller.

I have built a python script that can decode mavlink message and have manually decoded telemetry data coming from udp port 5005 on the controller by hand but my problem now is I do not know what this other data is.

for example, port 5501 sends message like this:

02010300312e322e30000000000000000000000000000000000000000000000000000000312e322e30000000000000000000000000000000000000000000000000000000

This is not mavlink nor is it telemetry data that I am aware of?  My main problem is my program is very simple and I want it to maintain communication with the drone but I feel like I have to understand this handshaking or heartbeats but I do not know where to go, maybe someone out there has some advice or comments?

Thanks,

Joe

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • You weren't wrong. To send commands to Solo you have to use MAVLink.

    There's other stuff communicating in the controller, like RC data, Solo <-> app, etc.

    If you didn't understand MAVLink, you should really look at Dronekit.

    • Francisco,

      Thanks for your replies, with your help on a different post I was able to get my python mavlink parser working.

      Regarding this post, lets say I have my solo connected to my controller and I was flying it fine then lets say I wanted to discontinue all rc commands and input to the solo from my controller and I wanted my application on my labtop to fly and land the solo.  To do something like this I don't think mavlink alone will work.  Above I cited a data payload I retrieved from wireshark sent from the controller:

      02010300312e322e30000000000000000000000000000000000000000000000000000000312e322e30000000000000000000000000000000000000000000000000000000

      This is not prefixed with fe and therefore is not mavlink parsable and it's not in an rc command format that I have been looking at.  My point is there is other stuff going on under the hood and to get working what I am trying to do knowing mavlink alone will not due I do not think.  I will keep looking at dronekit though I just feel like there is something important I am not understanding still.

      Thanks again Francisco for the comments I will keep looking at dronekit,

      Joe

      • If you want to control Solo, like flying and landing I recommend that you use the Guided mode and corresponding commands. Stopping the RC stream isn't a very good approach - if you have some problem in your program you won't be able to get control back with the controller.

        Anyway, I don't have the details to do what you want, you will need to poke around in the Linux system. If you only want to decode it there's some stuff here: https://github.com/MAVProxyUser/3DRSoloHacks

        Dronekit is basically some code on top of MAVLink. So, for example, instead of sending MAVLink commands to arm and then fly to a altitude, you just call a function takeoff(altitude) and it does the MAVLink stuff for you.

        MAVProxyUser/3DRSoloHacks
        Want to play a few pranks on a 3dr Solo user? Contribute to MAVProxyUser/3DRSoloHacks development by creating an account on GitHub.
        • Francisco,

          One last question for now.  Would you think the ardupilot/ArduCopter might have in it what I am looking for?  That is where I have recently been looking.  I have been poking around on the controller and drone also...I will likely try to copy over the entire file system at some point.  Again thanks for the comments.

          Joe

          • If you are asking if ArduCopter have the details of what those packets are the answer is no. Those packets are between Solo, controller and the app, they have nothing to do with ArduCopter.

This reply was deleted.

Activity