- Posts: 698
DSM Telemetry support
- Thomas.Heiss
- Offline
Isn't it the same test db for all Spektrum transmitters like DX6, DX9, DX18, DX10T? Not only DX8/DX7s?
It is protocol dependent?
I don't care how Futaba, Hott, MPX senders do it as the protocols are not used.
I agree with you that FrSky Taranis and FrSky protocol might be different again for output power. Same for other 3rd-party protocols.
I really liked the idea of the introduced test page feature.
It could happen that you forget to put back the model setting to 100mW, once you played around with 100uW/300uW/1mW.
A simple drop down box for output power would be OK with me. But that might confuse others (e.g newbies).
Maybe its best to hardwire the range test page output in the code or a general config screen per protocol?
Please Log in or Create an account to join the conversation.
- mwm
- Offline
At 100uw, I still get good reception with a 350QX1 at Spektrum's recommended range test distance of 30 paces. On the OrangeRX 610 in the Orion, I only tested it to 20 feet. Which translates to effective ranges of about 900 yards and 600 feet, far further than I'm likely to need them to work.
There was a bitbucket issue that made exactly the point you mention - that you want to be sure you don't leave it in the low power mode. Which is why I added it.
Do not ask me questions via PM. Ask in the forums, where I'll answer if I can.
My remotely piloted vehicle ("drone") is a yacht.
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
if (state == DSM2_CH2_READ_A && num_channels < 8) {
state = DSM2_CH2_READ_B;
CYRF_WriteRegister(CYRF_05_RX_CTRL, 0x80); //Prepare to receive
return 11000;
}
What happened if first receive is not completed in case error? RX_GO bit can be still active. "This bit must not be set again until after it self clears."
Probably it can be:
if (state == DSM2_CH2_READ_A && num_channels < 8) {
state = DSM2_CH2_READ_B;
if (CYRF_ReadRegister(CYRF_05_RX_CTRL) & 0x80) { // We're still in receive mode
CYRF_WriteRegister(CYRF_0F_XACT_CFG, 0x28); // Force end state
int i = 0;
while (CYRF_ReadRegister(CYRF_0F_XACT_CFG) & 0x20) {
if(++i > NUM_WAIT_LOOPS)
break;
}
}
CYRF_WriteRegister(CYRF_05_RX_CTRL, 0x80); //Prepare to receive
return 11000;
}
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
Please Log in or Create an account to join the conversation.
- Indigo
- Offline
- Posts: 230
vlad_vy wrote: Indigo, about your last changes, do you think that RX_IRQ_STATUS register will be valid after Force End State?
I would expect that when receive is complete that RX_IRQ_STATUS is correct.
If not complete then error bit might not be set but it doesn't matter, The buffer will be forced empty and the number of bytes read is returned only if data is ok, Parse_Telemetry_Packet() will only get called if receive complete, no error bit set and received byte count = 16.
I would expect the DSM protocol timing is such that the receiving should have completed. If the current receive is not complete, then the faster "we discard data and clean up" the better.
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
vlad_vy wrote: if 'Holds'=255 -> Telemetry Range Warning
if 'A' or 'B' or 'L' or 'R' not equal to its previous value and >=512 (usually =65535) -> Telemetry Range Warning
-> A, B, L, R, F, H -> not valid (must be filtered)
Probably will be worth to filter these values.
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
} else if(state == DSM2_CH1_CHECK_A || state == DSM2_CH1_CHECK_B) {
int i = 0;
while (! (CYRF_ReadRegister(0x04) & 0x02)) {
if(++i > NUM_WAIT_LOOPS) {
printf("DelayCh1");
break;
}
}
set_sop_data_crc();
state++;
return CH1_CH2_DELAY - WRITE_DELAY;
} else if(state == DSM2_CH2_CHECK_A || state == DSM2_CH2_CHECK_B) {
int i = 0;
while (! (CYRF_ReadRegister(0x04) & 0x02)) {
if(++i > NUM_WAIT_LOOPS) {
printf("DelayCh2");
break;
}
}
Please Log in or Create an account to join the conversation.
- Thomas.Heiss
- Offline
- Posts: 698
vlad_vy wrote:
vlad_vy wrote: if 'Holds'=255 -> Telemetry Range Warning
if 'A' or 'B' or 'L' or 'R' not equal to its previous value and >=512 (usually =65535) -> Telemetry Range Warning
-> A, B, L, R, F, H -> not valid (must be filtered)
Probably will be worth to filter these values.
Thomas.Heiss wrote:
FlightLog 0xFF / 255 max value
Do the latest pull requests (without protocol changes), which are merged into deviationtx team repository (trunk), have some more code changes / reviews for displaying 0xFF/255 values?
Have you been already working on this Indigo?
As posted before in this thread I had the problem that the Fades A, B, L, R reset to "0" suddenly once "255" had been reached.
The valid max value (fades) for AR6210/AR600 is 255. It went no further on DX8 so it is receiver hardware.
It is fine to display 255 therefore. It is not a bad value (for fades).
AR8000 and probably 9-12CH receivers can go >255 for fades (I tested this on AR8000 on L before).
You must NOT reset or suppress flightlog data 0xFF (at least not for fades).
Is 255 reset to 0 fixed yet?
In my AR8000 + TM1000 video you can see that I successfully tested showing fades value >512 (e.g 2217) on Fades L as well on FrameLosses.
So:
"if 'A' or 'B' or 'L' or 'R' not equal to its previous value and >=512 (usually =65535) -> Telemetry Range Warning"
-> is not correct??!?? I was in range when display showed >512 (so real fades, real FrameLosses).
"F, H > x -> not valid (must be filtered)"
-> i had successfully tested F 859 in my video as a real number (real losses).
So >512 does not apply for FrameLosses too.
Do you guys have an idea why for some received (bogus) telemetry data F and H show (switch to) 0 in the monitor instead of a real number e.g 32767 or 65535?
I think we have to test it a bit more if there is any fixed number applying for F which triggers a real "telemetry range warning".
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
Please Log in or Create an account to join the conversation.
- Indigo
- Offline
- Posts: 230
0 and 255 are displayed as a real values. If 255 overflows and becomes 0 again, it must be fault in receiver.Thomas.Heiss wrote: FlightLog 0xFF / 255 max value
Do the latest pull requests (without protocol changes), which are merged into deviationtx team repository (trunk), have some more code changes / reviews for displaying 0xFF/255 values?
Have you been already working on this Indigo?
The min/max values in deviation are only used to limit range of telemetry alarm.
Deviation only displays the value it receives. If value is not the special "not connected" value 65535 (-32768) then it is treated as a real value (even if greater than max value, or less than min value), if real value then display "as is".Thomas.Heiss wrote: Do you guys have an idea why for some received (bogus) telemetry data F and H show (switch to) 0 in the monitor instead of a real number e.g 32767 or 65535?
Currently as a interim measure 32767 is also treated same as special "not connected" value 65535. (I think this can now be removed)
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
www.deviationtx.com/downloads-new/catego...lad-vy-devo-dsm-test
vlad_vy wrote: New test version with "Rst CYRF" enabled.
www.deviationtx.com/downloads-new/catego...lad-vy-devo-dsm-test
Minor change for DEVO protocol, require testing. Minor changes for DSM protocol.
DSMX protocol testing. I had not many time for testing, but for 10 min test:
AR6210+TM1000 (100uW) 18 meters - I havn't any Holds, but many Fades and Losses.
AR6210+TM1000 (300uW) 30 meters - I havn't any Holds, but many Fades and Losses.
I think it is not bad result for town testing with 2 WiFi access points near me, one around 6 meters to RX and other around 8 meters to Tx.
vlad_vy wrote: One more DSMX protocol testing, last time I forgot about TM1000 antenna position. I had not many time for testing, but for two 10 min test:
AR6210+TM1000, 100uW, 30 meters - I havn't any Holds, but many Fades and Losses.
AR6210+TM1000, 100uW, 30 meters - I havn't any Holds, but many Fades and Losses.
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
Deleted, it doesn't work fine.
Please Log in or Create an account to join the conversation.
- mwm
- Offline
I had to do that for the new toggles code as well.
Do not ask me questions via PM. Ask in the forums, where I'll answer if I can.
My remotely piloted vehicle ("drone") is a yacht.
Please Log in or Create an account to join the conversation.
- ohhorob
- Offline
- Posts: 5
I have the LemonRx DSM2 Satellite on a nano quad, providing Serial input to Cleanflight running on a Naze compatible FC.
The TX is a Devo 12S, running Deviation v4.0.1, model configured as DSM2 / 8 Channels.
name=Lulfro
mixermode=Advanced
[radio]
protocol=DSM2
num_channels=8
fixed_id=2705
tx_power=150mW
There should be an Aux 4 in this section:
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
Changed files
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Topic Author
- Offline
- Posts: 4402
mwm wrote: You could always disable advanced GUI editing on the 7E. Or re-disable it, as it wasn't fitting before we switched to the latest toolchain.
I had to do that for the new toggles code as well.
The issue is actually with the protocol code which has a hard limit of 4096 bytes for all code+rom.
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
www.deviationtx.com/downloads-new/catego...m-rf-scanner-updates
Please Log in or Create an account to join the conversation.
- Home
- Forum
- Development
- Protocol Development
- DSM Telemetry support