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

DIY Robocars via Twitter
May 15
DIY Robocars via Twitter
May 14
DIY Robocars via Twitter
May 13
DIY Robocars via Twitter
RT @f1tenth: Say hi to our newest #F1TENTH creation for @ieee_ras_icra next week in Philly. It’s going to be huge! 😎 🔥 @AutowareFdn @PennEn…
May 13
DIY Robocars via Twitter
May 11
DIY Robocars via Twitter
May 8
DIY Robocars via Twitter
RT @SmallpixelCar: Noticed my car zigzagged in last run. It turned out to be the grass stuck in the wheel and made the odometry less accura…
May 8
DIY Robocars via Twitter
RT @SmallpixelCar: Test my car. RTK GPS worked great. Thanks @emlid for their support. https://t.co/EkQ6qmjmWR
May 8
DIY Drones via Twitter
RT @chr1sa: @kane That's @diydrones circa 2009. Still have a box of those Canon cameras that we used to strap into planes, just like this.…
May 3
DIY Robocars via Twitter
RT @chr1sa: Our next @diyrobocars race is going to be outside at a real RC racetrack in Fremont on May 28. Fully autonomous racing, head-to…
Apr 30
DIY Robocars via Twitter
RT @f1tenth: Our Spring 2022 F1TENTH course @PennEngineers is coming to an end with a head-to-head race as a big finale. So proud of our st…
Apr 26
DIY Robocars via Twitter
RT @DanielChiaJH: I wrote a thing! Throughout the development of my @diyrobocars car I've been using @foxglovedev Studio to visualize and d…
Apr 23
DIY Robocars via Twitter
RT @SmallpixelCar: My new car for high speed. Low body, everything ( @NVIDIAEmbedded Jetson Xavier NX, @emlid RTK GPS, IMC) under the deck…
Apr 23
DIY Robocars via Twitter
Apr 21
DIY Robocars via Twitter
RT @f1tenth: F1TENTH Race training setup @PennEngineers for our upcoming ICRA2022 @ieee_ras_icra competition. @OpenRoboticsOrg @IndyAChalle…
Apr 21
DIY Robocars via Twitter
RT @fatcatFABLAB: Proud to be hosting a restarted DIY Robocars NYC Meetup April 26. Come by if you want to talk about and race self-driving…
Apr 17
More…