3
$\begingroup$

I'm using the telemetry kit from 3DR robotics (433MHz) to interface with Ardupilot Mega 2.6, controlling a quadcopter. The Mission Planner (v1.2.84) by Michael Oborne works well with the telemetry kit, transmitting flight data (IMU, compass, GPS etc.) from the quadcopter to the GCS and displaying them in their GUI.

However, I would like to see the same data in the hyperterminal (windows system). The radio receiver on the GCS connects to my PC through a USB drive. I have tried calling the remote radio station using all possible Baud rates, starting from 110 to 921600 (including 57600). I've set the data bits to 8 and stop bits to 1. 'None' for parity and flow control.

However, all that I ever get on my terminal is either gibberish or no data at all. I also tried burning this software to the radio receiver and tried using AT commands on the radio.

It connects OK with '+++', but keeps returning error for AT1, ATT etc.

Please give me an idea about how to get flight data at the hyperterminal.

Thanks.

$\endgroup$
  • $\begingroup$ Have you had a look at the following? Also, APM uses MAVLINK as far as I can tell (which is a binary format, so you won't really get anything of value from looking at hyperterminal output), perhaps you can also have a look at that (also discussed in the above link). $\endgroup$ – EDDY74 Nov 5 '13 at 9:30
  • $\begingroup$ @EDDY74: Yes, I went through that link before. I thought the CRC bits, Golay ECC etc. are stripped by the controller itself before sending it to the terminal! If not, then what is the format of the data coming in through the serial port? Is there a documentation of the data format? Let us say I write "XYZ" to Serial1 of the telemetry port in my APM2.6, so what am I going to see in the terminal? $\endgroup$ – metsburg Nov 5 '13 at 10:23
  • $\begingroup$ If you're interested in finding out more about mavlink, their website seems quite thoroughly documented. It seems the serial channel is capable of switching between MAVLINK and AT command set. Have you checked the difference between AT and RT (ie, RTI instead of ATI)? $\endgroup$ – EDDY74 Nov 5 '13 at 11:38
  • $\begingroup$ Also, if you're interested in viewing the received data in binary form, have a look at tera term (as far as I remember it supports binary representation). $\endgroup$ – EDDY74 Nov 5 '13 at 11:41
  • $\begingroup$ Yes, I tried RTI instead of ATI. Didn't work. I will try Tera Term tomorrow and post an update here. The documentation of Mavlink looks good. I'm going through it in details. $\endgroup$ – metsburg Nov 5 '13 at 16:28
2
$\begingroup$

MAVLink is an encoded message. In order for you to get specific data out of it you will need to decode it in some way. There are a number of ways of doing this including writing your own code and attaching MAVlink to it. This is described here: http://qgroundcontrol.org/dev/mavlink_onboard_integration_tutorial. In order to use this you will have to have downloaded the mavlink libraries from the repository here: https://github.com/mavlink/mavlink.

If you are wanting a platform independent java based implementation, a friend of mine Owen McAree developed MAVNode a Node.js based decoder for MAVLink which will decode the messages you require. It is a nvm repository https://npmjs.org/package/mavlink.

$\endgroup$
  • $\begingroup$ The Node.js based decoder is interesting... working on it now. $\endgroup$ – metsburg Nov 12 '13 at 5:39
1
$\begingroup$

From what I understand, this telemetry kit uses Mavlink as a protocol for data transfer and unless I follow the specific header, footer, data etc format for Mavlink, I will invariably end up with gibberish on my hyperterminal. This means in order to read and modify the telemetry data, I'd have to develop a Mavlink engine from scratch, right?

Mavlink Data Format

I would like to know if this problem can be cut short by using XBee radio Tx-Rx pair instead of the one 3DR is providing?

$\endgroup$
  • $\begingroup$ What's your ultimate goal? If you're trying to build your own PC based listener/logger, I'm sure it won't be that difficult to build a basic MAVLINK interpreter (depending on your PC side development environment). Have you decided on which dev environment you're going to use (ie, python in linux, or c# and .net, etc)? $\endgroup$ – EDDY74 Nov 11 '13 at 9:53
  • $\begingroup$ I'd actually prefer a platform independent environment, so that it works on all of Linux, Mac and Windows... Java perhaps??? $\endgroup$ – metsburg Nov 11 '13 at 13:10
  • 1
    $\begingroup$ I'm sure you'll find load of examples of how to read data from a serial port in Java. I'd recommend just getting a small Java app going that connects to the Ardupilots serial port, and having a look at the data you receive and see if you can interpret the frame structure. From there you could perhaps reference the official Ardupilot MAVLINK parameters (link may be out of date), to get an idea of how everything fits together. $\endgroup$ – EDDY74 Nov 11 '13 at 13:48
  • 1
    $\begingroup$ I'm not sure to be honest, I'm guessing it won't matter whether you use an XBee or that 3DR radio set, It'll still be the same underlying data (MAVLINK). I'm looking through the XStreamBee docs, and I'll let you know if I find anything. $\endgroup$ – EDDY74 Nov 12 '13 at 7:45
  • 1
    $\begingroup$ Ok, it does seem like any data transmitted across the APM telemetry port is indeed formatted as MAVLINK frames (regardless of which radio link you use - see the following link discussing XBee interfaces). It also seems MAVProxy is an easy way of getting familiar with the APM telemetry interface, perhaps you should start there. $\endgroup$ – EDDY74 Nov 12 '13 at 8:59
1
$\begingroup$

have a look to my Java Mavlink Library : https://code.google.com/p/mavlinkjava/ It can be used on Android, Windows, Linux and Java RT JVM from IS2T. Guillaume

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.