MikeBland/mbtx

DSMx telemetry

Closed this issue · 6 comments

Hi Mike,

In relation with the Lemon telemetry receiver, I have been trying to make sense of the noises that I hear from the Vario, but I hear chirps that do not correspond to what is happening, even with the receiver on the table.

In order to test stability, I enclosed a 4s Nicad battery and the receiver in a rigid sealed glass container, and recorded a raw telemetry file.
In every 0x40 record, Lemon is sending down six different data for Vspd, that according to Spektrum documentation correspond to data filtered (averaged ?, differentiated ?) using a time constant of 250ms, 500ms, 1s, 1.5s, 2s and 3s, trading accuracy for delay.
The data with a 250ms filter shows a poor stability. Peaks can be as high as +/- 1m/s, with a standard deviation of 0.38.
If I understand the code right, this is what ersky9x is using in the processDsmPacket function in frsky.cpp

On the other hand, data filtered with 1s, shows a much better behaviour, (max peak at 0.4m/s, and stdev of 0.15) at the expense of the corresponding delay, that I suppose, (haven't tried that yet) less annoying than chirps showing very fast changes that are in fact not happening.
Your point of view on this matter will be much appreciated.

Miguel

screenshot from 2019-02-21 20 01 21

I recently received a Lemon DSM Rx with built in vario. I now need to find time to try this out and investigate the telemetry data.
If you have details of the 0x40 record to help me that would be helpful.

Mike

Sure, whenever you can and feel like it, of course.
In relation with 0x40 ( and all other records), taken out of the Spektrum telemetry paper;

Spektrum paper

//////////////////////////////////////////////////////////////////
// VARIO-S
//////////////////////////////////////////////////////////////////
//
typedef struct
{
UINT8 identifier; // Source device = 0x40
UINT8 sID; // Secondary ID
INT16 altitude; // .1m increments
INT16 delta_0250ms, // delta last 250ms, 0.1m/s increments
delta_0500ms, // delta last 500ms, 0.1m/s increments
delta_1000ms, // delta last 1.0 seconds
delta_1500ms, // delta last 1.5 seconds
delta_2000ms, // delta last 2.0 seconds
delta_3000ms; // delta last 3.0 seconds
}
STRUCT_TELE_VARIO_S;


I think that ersky9x uses delta_0250ms.
From frsky.cpp around line 1210.

			if ( *packet == DSM_VARIO )
			{
				ivalue = (int16_t) ( (packet[4] << 8 ) | packet[5] ) ;
				storeTelemetryData( FR_VSPD, ivalue*10 ) ;
			}

If you could update a branch in github, I can build from there and test longer filters for the Vario.
Thank you.
Miguel

I'll be posting a test version soon that will include an option in the telemetry menu to choose which of the six, dsm vario values you wish to use.

Mike

Thank you.
Just yesterday I saw a video of a Lemon receiver with Taranis. The behaviour of the vario when rising the model by hand at the end of the video (2.16sec), even with 1/sec chosen, is completely different than the unit I have at home, and I have tried with two Lemon units.
I am not talking about the tones, that are clearly different, but about the clear perception of rising.

If I raise the unit at home, I can only vaguely correlate the movement with the noise made. ¿Is this the case also with your receiver ?

Video

Miguel
Incidentally, do you prefer to discuss those matters on Openrcforums ?

Usually worth having this on Openrcforums as then others see the question and answers better.
I have put a quote from your first comment here on the forum, and added that I just posted an updated test version with an option to choose which filtered value to use for vspd.

My unit does seem to give a reasonable response when I raise it.

The video looks to be using a Spektrum Tx, not a Taranis.

Mike

Thank you, and, true. it is a Spektrum Tx.
Follow up on Openrcforums.