Skip to content

Commit dcbc557

Browse files
authored
Enable Telemetry on DumbRC receivers (#1111)
Tested with X6FGv1.1, X6FP, X6DC(G)v1.1 I also tested with multiple X6F receivers and some gave RSSI Telem and some gave nothing. 2 of them had the same PCB as the X6FP and neither gave telemetry. I had a third with the same PCB with the X6FP which did give RSSI and of my two with an older PCB one gives RSSI telem and the other does not. Of the receivers I tried only one set packet_in[6] to match the TX packet[1] and it was the oldest receiver of the ones I own.
1 parent e556f5c commit dcbc557

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

Multiprotocol/RadioLink_cc2500.ino

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ static void __attribute__((unused)) RLINK_send_packet()
232232
packet[1] |= 0x21; //air 0x21 on dump but it looks to support telemetry at least RSSI
233233
break;
234234
case RLINK_DUMBORC:
235-
packet[1] = 0x00; //always 0x00 on dump
235+
packet[1] |= 0x01; //always 0x00 on dump but does appear to support telemtry on newer transmitters
236236
break;
237237
}
238238

@@ -384,8 +384,9 @@ uint16_t RLINK_callback()
384384
debug("Telem:");
385385
#endif
386386
CC2500_ReadData(packet_in, len);
387-
if(packet_in[0]==RLINK_RX_PACKET_LEN && (packet_in[len-1] & 0x80) && memcmp(&packet[2],rx_tx_addr,RLINK_TX_ID_LEN)==0 && packet_in[6]==packet[1])
387+
if(packet_in[0]==RLINK_RX_PACKET_LEN && (packet_in[len-1] & 0x80) && memcmp(&packet[2],rx_tx_addr,RLINK_TX_ID_LEN)==0 && (packet_in[6]==packet[1] || sub_protocol == RLINK_DUMBORC))
388388
{//Correct telemetry received: length, CRC, ID and type
389+
//packet_in[6] is 0x00 on almost all DumboRC RX so assume it is always valid
389390
#ifdef RLINK_DEBUG_TELEM
390391
for(uint8_t i=0;i<len;i++)
391392
debug(" %02X",packet_in[i]);

0 commit comments

Comments
 (0)