DSM2/X protocol errors

More
15 Oct 2016 10:44 - 03 Nov 2016 15:33 #54960 by vlad_vy
Replied by vlad_vy on topic DSM2/X protocol errors
After some additional testing I revert back to first version DSM2/X protocol telemetry "Flight Log" filtering, with minor corrections.

P.S. I can't fit "Flight Log" filtering to devo7e build, so it cut out from code for Devo7e. Sorry...


File deleted
Last edit: 03 Nov 2016 15:33 by vlad_vy.

Please Log in or Create an account to join the conversation.

More
16 Oct 2016 20:56 #55018 by Thomas.Heiss
Replied by Thomas.Heiss on topic DSM2/X protocol errors
FlightLog filtering:
Where do we know that Fades A is only 8bit and ends at 0xFF=255?
That is in the receiver, isn't it, not the TM1000?

How about the new All-In-One Spektrum telemetry receivers? What if they support >255 for Fades now or at any future?
How about future Orange / Lemon telemetry receivers? Why are they limited to 8-bit?

German thread on 8 vs 16 bit with links to RCGroups: www.rc-network.de/forum/showthread.php/5...es-A-gt-255-anzeigen

Personally I would probably try to implement showing Fades A-R + filtering Fades as generic as possible without any future necessary code modifications on Deviation side.

So the 2nd filtering if FadesA>255 looks "special" to me; I somehow like 1st filtering implemention a bit more :)
What do you think?


I believe the AR6210 SAT is Fades B = max 255 too, correct? I guess i saw that once last days on 100uw ground tests when showing 1500 FrameLosses (faking: too far away, turning 180 degree, etc.).
Will have to ground re-test at 100uw and recheck Fades B.

Please Log in or Create an account to join the conversation.

More
17 Oct 2016 03:55 - 17 Oct 2016 04:02 #55024 by vlad_vy
Replied by vlad_vy on topic DSM2/X protocol errors
It's limited by receiver message structure. Receiver "A" is always internal receiver, receiver "B" can be internal or external.

Rx internal receivers:
8.3 Message Structure Internal Remote
typedef stuct
{
UINT8 fades;
UINT8 system;
UINT16 servo[7];
} INT_REMOTE_STR;
The “system” field will only contain certain values. Any value other than these should be ignored and the unit should behave in a mode appropriate for not having bound.

Rx external receivers:
8.4 Message Structure External Remote
typedef struct
{
UINT16 fades;
UINT16 servo[7];
} EXT_REMOTE_STR;

www.spektrumrc.com/ProdInfo/Files/Remote...facing%20Rev%20A.pdf

But we can use generic filtering for A-R by any way.
Last edit: 17 Oct 2016 04:02 by vlad_vy.

Please Log in or Create an account to join the conversation.

More
17 Oct 2016 06:14 #55026 by Thomas.Heiss
Replied by Thomas.Heiss on topic DSM2/X protocol errors
CYRF reset logging:
I would be interested to see on display when and how often this happens without using serial dev compile, USB or whatever.
Just like FlightLog FrameLosses / holds or a permanent flight time timer....

- did it happen during flight (including longer flights up to 40 minutes)
- counter how often (like holds)
- what are min/sec inverval when that happens in 4-8min or 15-40min (glider) flight (like FrameLoss n delta change request but just logging time inverval)
- maybe permanently store the value in model.ini to have an overview for total (like permanent timer)
- be able to compare the CYRF reset for all modell.ini`s, like additionally counting up all CYRF reset numbers to a permanent TX global variable (tx.ini?)

As written before so far I am successful with mutiple V4-0.1-nightly builds, release 5.0.0 and Vlad`s new DSMx test builds with turned on telemetry.
I never seemed top run into any possible CYRF reset issue before.

So maybe there are HF modules which behave different? Would be surely interesting to remove dead HF modules where it happens too often?!?

It is still not clear what exactly happend to Roland`s linked 5.0.0 thread using non-genuine Spektrum receivers and any “possible deadlock“ (whatever it was) scenario.

Or do you think Vlad that the register error checking and handling the CYRF reset is enough for not having to care about “any possible RX<->TX deadlocks“ by the pilot and any possble bad HF modules?

How can one user tell himself about a bad HF module?

Your opinions?


Thomas

Please Log in or Create an account to join the conversation.

More
17 Oct 2016 06:38 - 17 Oct 2016 06:42 #55028 by vlad_vy
Replied by vlad_vy on topic DSM2/X protocol errors
It's very and very rare case, so I don't see any sense to register CYRF reset. Moreover, it can be frequent with very single CYRF chips. They are not bad, but for some reason they freezed frequently with telemetry enabled.

In my case I got one "CYRF reset" with Devo protocol with telemetry enabled after uninterrupted 72 hours testing.
Last edit: 17 Oct 2016 06:42 by vlad_vy.

Please Log in or Create an account to join the conversation.

More
17 Oct 2016 17:51 #55064 by Thomas.Heiss
Replied by Thomas.Heiss on topic DSM2/X protocol errors
Do you know Vlad what happend to Indigo's test-build protocol code development A1 bind option? Default should be B2 for working TM1000 telemetry.

No, personally I seem not to need it now.
Would have to research for what receivers and what channel options B2 might not be working so A1 would be required....

Please Log in or Create an account to join the conversation.

More
17 Oct 2016 18:10 #55066 by vlad_vy
Replied by vlad_vy on topic DSM2/X protocol errors
A2 - for <=7ch DSMX, but TM1000 will not bind. B2 - for >7ch DSMX, TM1000 will bind.

So,
    if(Model.protocol == PROTOCOL_DSMX) {
        packet[12] = num_channels < 8 && Model.proto_opts[PROTOOPTS_TELEMETRY] == TELEM_OFF ? 0xa2 : 0xb2;
    } else {
        packet[12] = num_channels < 8 ? 0x01 : 0x02;
    }

Please Log in or Create an account to join the conversation.

More
17 Oct 2016 18:23 #55067 by Thomas.Heiss
Replied by Thomas.Heiss on topic DSM2/X protocol errors
Thanks Vlad.
Ah, so old GUI popup "A1" is gone, I noticed that in my tests.

It was called "A1" by Indigo and switched back and forth A1<->B2 in the test builds:
bitbucket.org/Indigo1/deviationtx/commit...d0c7ee4ef2909b889dbd
www.deviationtx.com/forum/protocol-devel...mx-and-dsm2-receiver

Nevermind...Indigos repository latest code seems to be updated in all three branches default, dsm-telemetry and devo-telemetry with your above code.

Hard to keep track of back and forth changes (for me) if you are not DSM protocol developer yourself ;) ;)

At least you guys keep the big picture...nice! :-)

Please Log in or Create an account to join the conversation.

More
19 Oct 2016 17:10 #55160 by Bisky
Replied by Bisky on topic DSM2/X protocol errors
Is it possible to get telemetry data from orange dsm2 receiver to Devo 7e? I would just need rx voltage...

Ultimate 7E + range mod + 3x2 switch mod + 3in1 module
Devo F7 XMS + 4in1 module

Please Log in or Create an account to join the conversation.

More
19 Oct 2016 17:24 #55162 by vlad_vy
Replied by vlad_vy on topic DSM2/X protocol errors

Please Log in or Create an account to join the conversation.

More
19 Oct 2016 17:50 #55163 by Bisky
Replied by Bisky on topic DSM2/X protocol errors
Thanks but RX410 doesn't heave telemetry so it's not going to work . I'm using it for a small DLG, I will need to find another solution to avoid receiver failure due low voltage. Do any other protocols on Devo support telemetry if anyone knows?

Thanks!

Ultimate 7E + range mod + 3x2 switch mod + 3in1 module
Devo F7 XMS + 4in1 module

Please Log in or Create an account to join the conversation.

More
27 Oct 2016 16:12 - 27 Oct 2016 16:12 #55447 by goebish
Replied by goebish on topic DSM2/X protocol errors
This is slightly OOT, but someone just pointed me to this nice writeup, thought you might be interested:
prezi.com/vh4in2krlaoh/attacking-dsmx-wi...acsec-2016-english/#
Last edit: 27 Oct 2016 16:12 by goebish.

Please Log in or Create an account to join the conversation.

More
27 Oct 2016 16:20 - 27 Oct 2016 21:06 #55448 by Thomas.Heiss
Replied by Thomas.Heiss on topic DSM2/X protocol errors
Vlad do you know how Spektrum Airware does it with their antenna symbol on the top left (e.g DX8G1), which has vertical lines as good the (telemetry) signal is?
5(-6?) lines = good/best telemetry signal
1-2 lines=bad signal

Spektrum even is able to manage the "antenna flickering" or fading out the antenna symbol.
I am not sure how they handle temporarily "telemetry out of range values" within Airware. Is that flickering?

Thomas
Last edit: 27 Oct 2016 21:06 by Thomas.Heiss.

Please Log in or Create an account to join the conversation.

More
27 Oct 2016 18:46 #55455 by Fernandez
Replied by Fernandez on topic DSM2/X protocol errors
Nice should point out that guy to deviation community, we can use him :)

But still:
he connected a logic analyser
he knew that he was going to hack / expect DSMX and he knew the chipset.

Now switch on 5 different transmitter, with different chip and modulator, like we are flying 5 drones.
Put an antenna in the air, in addition you pick up some wifi some Bluetooth and the drones.

For me it is still very very unlikely, that there will be a routine, to detect/determine al those different signals in the air. Then select the right one and spoofe jam it take over control.....

Please Log in or Create an account to join the conversation.

More
28 Oct 2016 04:06 - 28 Oct 2016 04:09 #55466 by vlad_vy
Replied by vlad_vy on topic DSM2/X protocol errors

Thomas.Heiss wrote: Vlad do you know how Spektrum Airware does it with their antenna symbol on the top left (e.g DX8G1), which has vertical lines as good the (telemetry) signal is?
5(-6?) lines = good/best telemetry signal
1-2 lines=bad signal

Spektrum even is able to manage the "antenna flickering" or fading out the antenna symbol.
I am not sure how they handle temporarily "telemetry out of range values" within Airware. Is that flickering?

Thomas


It is transmitter side RSSI of received telemetry signal. We can also do it, but I don't see great sense in that. Telemetry range is less than control range. I even have commented line for it.
        if((rx_state & 0x07) == 0x02) { // good data (complete with no errors)
            CYRF_WriteRegister(CYRF_07_RX_IRQ_STATUS, 0x80); // need to set RXOW before data read
            CYRF_ReadDataPacketLen(packet, CYRF_ReadRegister(CYRF_09_RX_COUNT));
            //rssi = CYRF_ReadRegister(CYRF_13_RSSI) & 0x1F; // RSSI of the received telemetry signal
            parse_telemetry_packet();
        }
Last edit: 28 Oct 2016 04:09 by vlad_vy.

Please Log in or Create an account to join the conversation.

More
28 Oct 2016 08:55 #55470 by Fernandez
Replied by Fernandez on topic DSM2/X protocol errors
My old Nomadio Transmitter also displayed 2 RSSI
RSSI, received RC signals at the RX
RSSI, received telemetry signals at the TX
Not sure if it is usefull, more a fancy or nice to have, if it is easy possible why not?

Please Log in or Create an account to join the conversation.

More
15 Feb 2017 19:34 #59163 by Ralf_Brandt
Replied by Ralf_Brandt on topic DSM2/X protocol errors
vlad_vy

Thank you for finding that bug.
A while ago,
Based on the deviationtx DSMX code,
i created a firmware for older mlp4dsm transmitter RF modules to be upgraded from DSM2 to DSMX.

github.com/RalfBrandt/DSMX_Transmitter_Modul

This was working fine for 3 RF modules but with one module I had unstable connections.

I already figured that it is related to the CY mfg_ID (0x76,0x65,0x3B,0x0F,0x5D,0xFC)
When using a FIXED ID from one of the other modules, this module was running fine.

After applying your change to my project, this module is now running fine as well.
Regards

Ralf

Please Log in or Create an account to join the conversation.

More
15 Nov 2017 04:22 #65839 by monster2040
Replied by monster2040 on topic DSM2/X protocol errors

vlad_vy wrote: I think we need correct DSM.txt file and dsm2_cyrf6936.c

Note: Values are LSB 1st
0 1 2 3 4
0 03BC6E8AEFBDFEF8 83F7A82D7A4464D3 405632D90FD95D97 C0908FBB7C8E2B8E E1D631265FBD4093
1 8817133B2DBF06D6 3F2C4EAA71487AC9 8E4AD0A9A7FF20CA 8069268008F849E7 DC68089997AEAF8C
2 F1943021A11C88A9 17FF9E213690C782 4C979DBFB83DB5BE 7D2D4954D08040C1 C30E01160E3206BA
3 D0D28EBC822FE3B4 BC5D9A5BEE7F42EB 0C5D24309FCA6DBD B6F2E61B805A36B4 E08301FAAB3E8FAC
4 8CFA479B83A566D0 24F5DDF87A7774E7 501433DEF17895AD 42AE9C1CDA6705F6 5CD59CB8469C7D84
5 07BD9F26C8310FB8 3D707C94DC84AD95 0C3CFAF9F0F210C9 9B75F7E0148DB580 F1C6FE5C9DA54FB7
6 EF039589B471619D 1E6AF037527B11D4 F4DA06DBBF4E6FB3 BF5498B9B7305A88 58B5B3DD0E28F1B0
7 40BA97D5864FCCD1 62F52BAAFC33BFAF 9E08D1AE595EE8F0 35D1FC9723D4C988 5F303B569645F4A1
8 D7A154B15E89AE86 405632D90FD95D97 C0908FBB7C8E2B8E 88E1D631265FBD40 03BC6E8AEFBDFEF8

Bold value is incorrect, it has to be E1D631265FBD4093

I found next:

DX7
Channel [channel=1, sop=83f7a82d7a4464d3, pn=62f52baafc33bfaf405632d90fd95d97, crc_lsb=11, crx_msb=b4]
Channel [channel=1, sop=83f7a82d7a4464d3, pn=62f52baafc33bfaf405632d90fd95d97, crc_lsb=ee, crx_msb=4b]
Channel [channel=2, sop=405632d90fd95d97, pn=9e08d1ae595ee8f0c0908fbb7c8e2b8e, crc_lsb=11, crx_msb=b4]
Channel [channel=2, sop=405632d90fd95d97, pn=9e08d1ae595ee8f0c0908fbb7c8e2b8e, crc_lsb=ee, crx_msb=4b]
Channel [channel=3, sop=c0908fbb7c8e2b8e, pn=35d1fc9723d4c988e1d631265fbd4093, crc_lsb=11, crx_msb=b4]
Channel [channel=3, sop=c0908fbb7c8e2b8e, pn=35d1fc9723d4c988e1d631265fbd4093, crc_lsb=ee, crx_msb=4b]
Channel [channel=4, sop=e1d631265fbd4093, pn=5f303b569645f4a103bc6e8aefbdfef8, crc_lsb=ee, crx_msb=4b]
Channel [channel=4, sop=e1d631265fbd4093, pn=5f303b569645f4a103bc6e8aefbdfef8, crc_lsb=11, crx_msb=b4]
Channel [channel=5, sop=03bc6e8aefbdfef8, pn=40ba97d5864fccd1d7a154b15e89ae86, crc_lsb=ee, crx_msb=4b]
Channel [channel=5, sop=03bc6e8aefbdfef8, pn=40ba97d5864fccd1d7a154b15e89ae86, crc_lsb=11, crx_msb=b4]

Row 3 Col 8 in pncodes[5][9][8] table exactly has to be e1d631265fbd4093. Most likely it is very old copy paste error.

By the way, Orange receivers have the same error.

Please Log in or Create an account to join the conversation.

More
20 Feb 2018 08:31 #67615 by MacGyverek
Replied by MacGyverek on topic DSM2/X protocol errors
Its some bugs with DSMX protocol with LemonRX Sattelite. Usually I am using OrangeRX sattelite, Spektrum sattelite, Redcon sattelite without any issue.
I bought 2 LemonRX sattelite with diveristy and have random signal lost. Max range is 15m in 100mW!!!! Yesterday I have small crash with my heli 380.
I have 2 lemonRx sattelite with the same problem. Sometimes status led have one flash for 500ms.

I am using DEVO8s with 5.0 vlad_vy Version. I found few topic on forum with the same problem :( :(

Please Log in or Create an account to join the conversation.

More
20 Feb 2018 08:42 #67616 by vlad_vy
Replied by vlad_vy on topic DSM2/X protocol errors
Do you use the latest build? Do you try "OrangeRx" option?

Please Log in or Create an account to join the conversation.

Time to create page: 0.068 seconds
Powered by Kunena Forum