mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-02-09 23:28:12 +00:00
FrSkyR9: 16 channels
This commit is contained in:
parent
0d5fcb0849
commit
e4fd1f4399
@ -82,10 +82,10 @@ uint16_t initFrSkyR9()
|
|||||||
{
|
{
|
||||||
set_rx_tx_addr(MProtocol_id_master);
|
set_rx_tx_addr(MProtocol_id_master);
|
||||||
|
|
||||||
if(sub_protocol == R9_915) // 915MHz
|
if(sub_protocol & 0x01)
|
||||||
FrSkyR9_freq_map = FrSkyR9_freq_map_915;
|
|
||||||
else if(sub_protocol == R9_868) // 868MHz
|
|
||||||
FrSkyR9_freq_map = FrSkyR9_freq_map_868;
|
FrSkyR9_freq_map = FrSkyR9_freq_map_868;
|
||||||
|
else
|
||||||
|
FrSkyR9_freq_map = FrSkyR9_freq_map_915;
|
||||||
|
|
||||||
FrSkyR9_step = 1 + (random(0xfefefefe) % 24);
|
FrSkyR9_step = 1 + (random(0xfefefefe) % 24);
|
||||||
FrSkyR9_freq_map[27] = FrSkyR9_freq_map[FrSkyR9_step];
|
FrSkyR9_freq_map[27] = FrSkyR9_freq_map[FrSkyR9_step];
|
||||||
@ -164,10 +164,9 @@ uint16_t FrSkyR9_callback()
|
|||||||
// each channel is 11 bit + 1 bit (msb) that states whether
|
// each channel is 11 bit + 1 bit (msb) that states whether
|
||||||
// it's part of the upper channels (9-16) or lower (1-8) (0 - lower 1 - upper)
|
// it's part of the upper channels (9-16) or lower (1-8) (0 - lower 1 - upper)
|
||||||
|
|
||||||
const uint8_t packet_offset = 8;
|
#define CH_POS 8
|
||||||
const bool is_upper = false;
|
static uint8_t chan_start=0;
|
||||||
|
uint8_t chan_index = chan_start;
|
||||||
uint8_t chan_index = 0;
|
|
||||||
|
|
||||||
for(int i = 0; i < 8; i += 3)
|
for(int i = 0; i < 8; i += 3)
|
||||||
{
|
{
|
||||||
@ -175,13 +174,16 @@ uint16_t FrSkyR9_callback()
|
|||||||
uint16_t ch1 = FrSkyX_scaleForPXX(chan_index);
|
uint16_t ch1 = FrSkyX_scaleForPXX(chan_index);
|
||||||
uint16_t ch2 = FrSkyX_scaleForPXX(chan_index + 1);
|
uint16_t ch2 = FrSkyX_scaleForPXX(chan_index + 1);
|
||||||
|
|
||||||
packet[packet_offset + i] = ch1;
|
packet[CH_POS + i] = ch1;
|
||||||
packet[packet_offset + i + 1] = (ch1 >> 8) | (ch2 << 4);
|
packet[CH_POS + i + 1] = (ch1 >> 8) | (ch2 << 4);
|
||||||
packet[packet_offset + i + 2] = (ch2 >> 4);
|
packet[CH_POS + i + 2] = (ch2 >> 4);
|
||||||
|
|
||||||
chan_index += 2;
|
chan_index += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if((sub_protocol & 0x02) == 0)
|
||||||
|
chan_start ^= 0x08; // Alternate between lower and upper when 16 channels is used
|
||||||
|
|
||||||
packet[20] = 0x08; // ????
|
packet[20] = 0x08; // ????
|
||||||
packet[21] = 0x00; // ????
|
packet[21] = 0x00; // ????
|
||||||
packet[22] = 0x00; // ????
|
packet[22] = 0x00; // ????
|
||||||
|
@ -62,4 +62,4 @@
|
|||||||
62,XK,X450,X420
|
62,XK,X450,X420
|
||||||
63,XN_DUMP,250K,1M,2M,AUTO
|
63,XN_DUMP,250K,1M,2M,AUTO
|
||||||
64,FrskyX2,CH_16,CH_8,EU_16,EU_8
|
64,FrskyX2,CH_16,CH_8,EU_16,EU_8
|
||||||
65,FrSkyR9,915MHz,868MHz
|
65,FrSkyR9,915MHz,868MHz,915_8ch,868_8ch
|
||||||
|
@ -119,7 +119,7 @@ const char STR_SUBTYPE_XN297DUMP[] = "\x07""250Kbps""1Mbps\0 ""2Mbps\0 ""Auto\0
|
|||||||
const char STR_SUBTYPE_ESKY150[] = "\x03""4CH""7CH";
|
const char STR_SUBTYPE_ESKY150[] = "\x03""4CH""7CH";
|
||||||
const char STR_SUBTYPE_V911S[] = "\x04""Std\0""E119";
|
const char STR_SUBTYPE_V911S[] = "\x04""Std\0""E119";
|
||||||
const char STR_SUBTYPE_XK[] = "\x04""X450""X420";
|
const char STR_SUBTYPE_XK[] = "\x04""X450""X420";
|
||||||
const char STR_SUBTYPE_FRSKYR9[] = "\x07""915MHz\0""868MHz";
|
const char STR_SUBTYPE_FRSKYR9[] = "\x07""915MHz\0""868MHz\0""915 8ch""868 8ch";
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
@ -328,7 +328,7 @@ const mm_protocol_definition multi_protocols[] = {
|
|||||||
{PROTO_XN297DUMP, STR_XN297DUMP, 4, STR_SUBTYPE_XN297DUMP, OPTION_RFCHAN },
|
{PROTO_XN297DUMP, STR_XN297DUMP, 4, STR_SUBTYPE_XN297DUMP, OPTION_RFCHAN },
|
||||||
#endif
|
#endif
|
||||||
#if defined(FRSKYR9_SX1276_INO)
|
#if defined(FRSKYR9_SX1276_INO)
|
||||||
{PROTO_FRSKY_R9, STR_FRSKYR9, 2, STR_SUBTYPE_FRSKYR9, OPTION_NONE },
|
{PROTO_FRSKY_R9, STR_FRSKYR9, 4, STR_SUBTYPE_FRSKYR9, OPTION_NONE },
|
||||||
#endif
|
#endif
|
||||||
{0x00, nullptr, 0, nullptr, 0 }
|
{0x00, nullptr, 0, nullptr, 0 }
|
||||||
};
|
};
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#define VERSION_MAJOR 1
|
#define VERSION_MAJOR 1
|
||||||
#define VERSION_MINOR 3
|
#define VERSION_MINOR 3
|
||||||
#define VERSION_REVISION 0
|
#define VERSION_REVISION 0
|
||||||
#define VERSION_PATCH_LEVEL 66
|
#define VERSION_PATCH_LEVEL 67
|
||||||
|
|
||||||
//******************
|
//******************
|
||||||
// Protocols
|
// Protocols
|
||||||
@ -331,6 +331,8 @@ enum FRSKY_R9
|
|||||||
{
|
{
|
||||||
R9_915 = 0,
|
R9_915 = 0,
|
||||||
R9_868 = 1,
|
R9_868 = 1,
|
||||||
|
R9_915_8CH = 2,
|
||||||
|
R9_868_8CH = 3,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NONE 0
|
#define NONE 0
|
||||||
@ -883,6 +885,8 @@ Serial: 100000 Baud 8e2 _ xxxx xxxx p --
|
|||||||
sub_protocol==FRSKY_R9
|
sub_protocol==FRSKY_R9
|
||||||
R9_915 0
|
R9_915 0
|
||||||
R9_868 1
|
R9_868 1
|
||||||
|
R9_915_8CH 2
|
||||||
|
R9_868_8CH 3
|
||||||
|
|
||||||
Power value => 0x80 0=High/1=Low
|
Power value => 0x80 0=High/1=Low
|
||||||
Stream[3] = option_protocol;
|
Stream[3] = option_protocol;
|
||||||
|
@ -566,6 +566,8 @@ const PPM_Parameters PPM_prot[14*NBR_BANKS]= {
|
|||||||
PROTO_FRSKYR9
|
PROTO_FRSKYR9
|
||||||
R9_915
|
R9_915
|
||||||
R9_868
|
R9_868
|
||||||
|
R9_915_8CH
|
||||||
|
R9_868_8CH
|
||||||
PROTO_FRSKYV
|
PROTO_FRSKYV
|
||||||
NONE
|
NONE
|
||||||
PROTO_FRSKYX
|
PROTO_FRSKYX
|
||||||
|
@ -1344,15 +1344,33 @@ CH1|CH2|CH3|CH4|CH5
|
|||||||
## FRSKYR9 - *65*
|
## FRSKYR9 - *65*
|
||||||
Extended limits supported
|
Extended limits supported
|
||||||
|
|
||||||
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
|
|
||||||
---|---|---|---|---|---|---|---
|
|
||||||
A|E|T|R|CH5|CH6|CH7|CH8
|
|
||||||
|
|
||||||
### Sub_protocol R9_915 - *0*
|
### Sub_protocol R9_915 - *0*
|
||||||
915MHz
|
915MHz, 16 channels
|
||||||
|
|
||||||
|
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10|CH11|CH12|CH13|CH14|CH15|CH16
|
||||||
|
---|---|---|---|---|---|---|---|---|----|----|----|----|----|----|----
|
||||||
|
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10|CH11|CH12|CH13|CH14|CH15|CH16
|
||||||
|
|
||||||
### Sub_protocol R9_868 - *1*
|
### Sub_protocol R9_868 - *1*
|
||||||
868MHz
|
868MHz, 16 channels
|
||||||
|
|
||||||
|
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10|CH11|CH12|CH13|CH14|CH15|CH16
|
||||||
|
---|---|---|---|---|---|---|---|---|----|----|----|----|----|----|----
|
||||||
|
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10|CH11|CH12|CH13|CH14|CH15|CH16
|
||||||
|
|
||||||
|
### Sub_protocol R9_915_8CH - *2*
|
||||||
|
915MHz, 8 channels
|
||||||
|
|
||||||
|
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
|
||||||
|
---|---|---|---|---|---|---|---
|
||||||
|
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
|
||||||
|
|
||||||
|
### Sub_protocol R9_868_8CH - *3*
|
||||||
|
868MHz, 8 channels
|
||||||
|
|
||||||
|
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
|
||||||
|
---|---|---|---|---|---|---|---
|
||||||
|
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
|
||||||
|
|
||||||
# OpenLRS module
|
# OpenLRS module
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user