- Posts: 4402
DSM Telemetry support
- PhracturedBlue
- Topic Author
- Offline
Currently telemetry will only work with <= 7 channels. This is a known issue, though I am not yet sure I can actually fix it.
I had to tweak the DSM timing a little to make this work, and DSM receivers are extremely sensitive to timing, so if you see any binding/reception issues with or without telemetry, let me know.
If you have access to additional sensors for the DSM telemetry module, let me know and I can put together a test build to try to capture additional data.
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
AR6010, AR8000, JR RD921(DSM2 only):
1) 6/7 channel mode, DSM2 or DSMX = OK, all work fine.
AR8000, JR RD921(DSM2 only):
1) 8/9 channel mode, DSM2 or DSMX = None, do not bind, do not work.
I had reboot once, when I changed Telemetry = On/Off.
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
1) Temp1 = 123C ??? (temperature sensor not connected),
Temp1 = 25C (temperature sensor connected),
Temp2, Temp3 and Temp4 = "---".
2) Volt1 = 3.8V (external voltage 3.8V),
Volt2 = 0.0V,
Volt3 = 7.6V (receiver battery voltage).
3) RPM1, RPM2 = 0 (I haven't PRM sensor).
AR8000 + TM1000, DSMX, 6/7 channel mode, telemetry enabled (On).
1) TM1000 doesn't bind.
2) AR8000 works fine.
I had reboots when after binding with telemetry="On" I tried change DSMX to DSM2.
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Topic Author
- Offline
- Posts: 4402
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
AR8000, JR RD921(DSM2 only):
1) 8/9 channel mode, DSM2 or DSMX = None, do not bind, do not work.
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
For example:
DSM2_CH1_WRITE_A,
DSM2_CH1_CHECK_A,
DSM2_CH2_WRITE_A,
DSM2_CH2_CHECK_A,
DSM2_CH1_READ_A,
DSM2_CH1_WRITE_B,
DSM2_CH1_CHECK_B,
DSM2_CH2_WRITE_B,
DSM2_CH2_CHECK_B,
DSM2_CH1_READ_B.
"TM1000 Telemetry Module
Channels packets are A and B. Telemetry packet transmitted after packet B.
Received packet A, 4ms interval, received packet B, 1.8ms interval, transmission of the first telemetry packet, 4ms interval, received packet A, 4ms interval, received packet B, 1.8ms interval, transmission of the second telemetry packet."
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Topic Author
- Offline
- Posts: 4402
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.
- PhracturedBlue
- Topic Author
- Offline
- Posts: 4402
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Topic Author
- Offline
- Posts: 4402
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
if (state == DSM2_CH2_CHECK_A) {
//Keep transmit power in sync
CYRF_WriteRegister(CYRF_03_TX_CFG, 0x28 | Model.tx_power);
if (num_channels < 8 ) {
if (Model.proto_opts[PROTOOPTS_TELEMETRY] == TELEM_ON) {
CYRF_ConfigRxTx(0); //Receive mode
CYRF_WriteRegister(0x07, 0x80); //Prepare to receive
CYRF_WriteRegister(CYRF_05_RX_CTRL, 0x87); //Prepare to receive
state = DSM2_CH1_READ_A;
return 9390;
} else {
set_sop_data_crc();
state = DSM2_CH1_WRITE_A;
return 9390 + 6800;
}
}
set_sop_data_crc();
state = DSM2_CH1_WRITE_B;
return 5190;
}
set_sop_data_crc();
state = DSM2_CH1_WRITE_A;
return 5190;
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Topic Author
- Offline
- Posts: 4402
of course, it needs testing to see what else I broke.
Please Log in or Create an account to join the conversation.
- RugWarrior
- Offline
- Posts: 59
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
or
If we will transmit data at one channel only, what will be to change with every next packet?
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
1) 6/7 channel mode, DSM2 = OK,
2) 8/9 channel mode, DSM2 = OK,
3) 6/7 channel mode, DSMX = OK,
4) 8/9 channel mode, DSMX = OK.
AR8000 and TM1000 with telemetry "On":
1) 6/7 channel mode, DSM2 = OK, telemetry = OK,
2) 8/9 channel mode, DSM2 = OK, TM1000 not always bind (50/50),
3) DSMX protocol, TM1000 do not bind.
Something wrong with DSMX protocol and telemetry.
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
PhracturedBlue wrote: If you have access to additional sensors for the DSM telemetry module, let me know and I can put together a test build to try to capture additional data.
PB, I see that Spektrum SD log file format is very close to telemetry packets structure (if cut first 4 bytes = timestamp). Can you check it?
"the data recorded on the card is a timestamp + the raw data off the air." (Andy Kunz)
www.rcgroups.com/forums/showpost.php?p=23133050&postcount=86
Data type = 7E{TM1000} or FE{TM1100}
0[00] 7E or FE
1[01] 00
2[02] RPM MSB (Hex)
3[03] RPM LSB (Hex) RPM = Value (Decimal) * count of Poles
4[04] Volt MSB (Hex)
5[05] Volt LSB (Hex) V = Value (Decimal) / 100
6[06] Temp MSB (Hex)
7[07] Temp LSB (Hex) Value (Decimal) is in Fahrenheit, for Celsius ((Value (Decimal) - 32)*5) / 9
8[08] Unknown
9[09] Unknown
10[0A] Unknown
11[0B] Unknown
12[0C] Unknown
13[0D] Unknown
14[0E] Unknown
15[0F] Unknown
Data type = 7F{TM1000} or FF{TM1100}
0[00] 7F or FF
1[01] 00 Unknown
2[02] A MSB (Hex)
3[03] A LSB (Hex)
4[04] B MSB (Hex)
5[05] B LSB (Hex)
6[06] L MSB (Hex)
7[07] L LSB (Hex)
8[08] R MSB (Hex)
9[09] R LSB (Hex)
10[0A] Frame loss MSB (Hex)
11[0B] Frame loss LSB (Hex)
12[0C] Holds MSB (Hex)
13[0D] Holds LSB (Hex)
14[0E] Receiver Volts MSB (Hex)
15[0F] Receiver Volts LSB (Hex) V = Value (Decimal) / 100
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Topic Author
- Offline
- Posts: 4402
with 3 sticks centered and one all the way down, I get packets like this:
I don't know how to reconcile that with the format you posted.ff 00 e1 ec f8 0f f0 dc f8 c3 a7 cd 00 be 01 e7
ff 00 c9 e1 ec f8 0f f0 dc f8 66 a7 00 ce 01 e7
ff 00 e1 ec f8 8f f0 dc f8 c3 66 a7 00 ce 01 e7
ff 00 cd e1 ec f8 8f f0 dc f8 62 a7 00 ce 01 e7
ff 00 26 e1 ec f8 0f f0 dc f8 a3 c9 00 be 01 e7
ff 00 e1 ec f8 8f f0 dc f8 c3 a3 c9 00 be 01 e7
ff 00 c9 f8 e1 ec f8 8f f0 dc 66 a7 00 ce 01 e7
I think the frame-loss and hold info would be useful to process, but it makes no sense from the data I captured.
Please Log in or Create an account to join the conversation.
- vlad_vy
- Offline
- Posts: 3333
7F 00 00 E1 FF FF 00 E1 FF FF 00 00 00 05 02 EB
and temp = 24C
7E 00 FF FF 00 00 00 4C 00 00 00 00 00 00 00 00
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.
- PhracturedBlue
- Topic Author
- Offline
- Posts: 4402
Yes, but the captures above were done with an Orange RX. When I tried it with he AR6210, I can see the 'hold' count increase when I toggle the Tx, and the 'frame loss' increase if I wrap the Rx in foil.vlad_vy wrote: Is TM1100 connected to BIND/DATA port of receiver?
Please Log in or Create an account to join the conversation.
- Home
- Forum
- Development
- Protocol Development
- DSM Telemetry support