For Those Who Like Simple

3689641474?profile=original

I bought a 3DR radio from Whitespy to add telemetry to my MultiWii and it works like it should.  Multiwii has a processing program called multiwiiconf that is used to make changes to the PID's and for selecting flight modes and reading and writing to EEPROM.  There is also a slick GUI that adds a few more functions like a moving map.  I've tried both and the "slick" wingui program really uses a lot of memory and processor which my computer can't spare or tolerate without catching on fire.  That was my motivation for seeing what I could do to add a realtime map to the not so resource intense processing multiwiiconf program.  This was easier than I expected.  I searched for mapping programs and libraries already written for processing and found the modestmaps library. https://github.com/modestmaps/modestmaps-processing 

I familiarized myself with the example and armed with the "//" and "/* */", I opened up the source code for multiwiiconf.  My approach was to go through and comment out all the parts that pertained to PID's and graphs.  Generally, I commented out anything that I thought was not related to drawing an attitude indicator, compass or reading the multiwii serial protocol.  I periodically ran the sketch to see what disappeared or if I was too zealous with the comment //'s.  When the only things remaining were the instruments and the com port connection buttons, I added the modestmaps library and minimal code to display a map.  I replaced mouseX and mouseY with GPS_Latitude and GPS_Longitude, and divided those variables by 10000000f to convert to decimal.  That little "f" made a big difference, btw.  Without that I was 30 miles away because of loss of few decimal places.  I also added the little green dot to show current position.  This too came from the modestmaps example. 

I'm telling anyone how to do it instead of posting code, since it's very simple and my code tends to appeal like a dose of clamidia.  One last howto is to make sure to make the same edits in the processing sketch and the java file.  If it's done the way I did it, it should work and look like this.  As the position changes, the map moves with the little green position dot always in the center.    It's not fancy, but it uses about 20% of my CPU instead of 100%. 

  . 

E-mail me when people leave their comments –

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

Join diydrones

Comments

  • I avoided all the Spektrum headaches by converting a JR 6102 to FrSky.  That has been flawless in my experience and I still get all the cool computer radio features.  You could probably convert a Spektrum to FrSky and then just use a PPM Rx and be able to use the 3DR telemetry. 

  • I had just read that the other day about changing the 3DR radio settings for Multiwii. From what I understood, someone had written an entirely different radio firmware to make it work on the multiwii. I will try what you have above. The multiwii board I have is the one here:

    Multiwii 328P with Spektrum satellite port

    It works good but I am still learning how to tune it for use on a tri or quadcopter. Still trying to get it to work with just a satellite and not the whole receiver also. I know there are a few line in the code that have to be uncommented and the jumper has to be moved but then I lose the ability to use my 3DR radio with it. 

  • 3701961745?profile=originalOne more thing that might help once you get connected.  I opened the 3DR radio config tool(link found on 3DR store)and hit load settings to see how my radio was setup.  Initially it was setup to read MavLink and multiwii serial protocol is different so I changed that to RawData.  I checked the lag that I'm trying to fix and it was still there.  I turned off ECC and Op Resend and tried it again and the lag seems to be gone.  I have a feeling that reliability at a distance will be affected, but for now it'll be ok and I can always go back.  I didn't change baud from how it was set because then I would need to reload the multiwii code.  Here's a shot of how it's set.

     

  • I know all about waiting for good weather to fly.  Thinking about your radio pain, I have mine connected to the serial port.  I had to set the serial baud in the MW to 57600 to match the radio.  There are a few different connector styles that your radio might have.  Mine was basically just 4 single position wires on the end that connects to the MW serial port.  If you have a link to a diagram or picture of your board, then I might be able to see what's causing you trouble. 

  • Im still here lol. I had to get some homework done and work has been busy. I will tear into this more tomorrow. I had to get out and fly my beater wing as the weather here has finally gotten nice enough to fly. Winter here was too cold and constantly to windy to fly.
  • We haven't heard from Jack, so maybe he got his 3DR radio connected to multiwii. 

    I've been busy being mesmorized by the modestmaps moving on my screen, but it needs something.  I found Unfolding for processing. http://unfoldingmaps.org/ it's built on modestmaps and adds quite a bit more, if you really know how to use all the gizmos it adds. 

    I also found another http file server and it works.  I used it to serve the tiles I downloaded from open street maps using gmapcatcher.  That works great and using the unfolding library to access them was easy with the examples.  It appears that any system of tiles will work, if you can save them to a directory.   

    Unfolding Maps: Unfolding is a library to create interactive maps and geovisualizations in Processi…
    Mapping Library For Processing And Java
  • Well, you need pwr, gnd, tx, rx.  I followed a picture on whitespy's page to figure out which pins were what on the radio.  The multiwii board was labeled.  Yup, I got tx and rx backwards at least once.  The multiwii forum could have more answers on how to configure it for multiwii if configuration is part of the problem.

     

    As to the multiwiiconf hack, I found a simple python program that will work on Linux or windows for serving up any kind of file on localhost without running a more involved webserver. http://www.linuxjournal.com/content/tech-tip-really-simple-http-ser...  The only thing needed to have offline maps is a directory with all the tiles cached.  GmapCatcher will download and cache tiles for offline use. 

  • I have been trying to just get it connected to the multiwii. I have the hobbyking 328p with the spektrum satellite port. I am trying to figure out which pins to connect the 3dr radio to on the multiwii.
  • Dumb luck maybe??  I bought it from readytoflyquads aka whitespy and he configured it for multiwii.  It runs at 57600.  I saw on the multiwii forum that someone had firmware that configured it to run at 115200, but most of what I could find said they were running it at 57600.  There is a lag in the attitude that I'd like to fix and running at 115200 is probably what it needs, but there must be some reason why 57600 is what so many use.

    If you're having connection problems, it could be as simple as wrong baud or even swapped tx/rx.

  • How did you connect the 3dr radio to the multiwii? Ive been trying to do this for some time and have had no luck.
This reply was deleted.