Added option for Pulsetrain remapping

This commit is contained in:
Open UAS 2019-09-05 23:24:56 +02:00 committed by none
parent d80c218744
commit 8b75dad5c0
4 changed files with 141 additions and 102 deletions

View File

@ -19,7 +19,7 @@
#define VERSION_MAJOR 1 #define VERSION_MAJOR 1
#define VERSION_MINOR 2 #define VERSION_MINOR 2
#define VERSION_REVISION 1 #define VERSION_REVISION 1
#define VERSION_PATCH_LEVEL 74 #define VERSION_PATCH_LEVEL 75
//****************** //******************
// Protocols // Protocols
@ -294,6 +294,9 @@ enum TRAXXAS
#define AUTOBIND 1 #define AUTOBIND 1
#define NO_AUTOBIND 0 #define NO_AUTOBIND 0
#define CO_DEFAULT 0
#define CO_JR_HELI 1
struct PPM_Parameters struct PPM_Parameters
{ {
uint8_t protocol : 6; uint8_t protocol : 6;
@ -302,6 +305,7 @@ struct PPM_Parameters
uint8_t power : 1; uint8_t power : 1;
uint8_t autobind : 1; uint8_t autobind : 1;
uint8_t option; uint8_t option;
uint8_t channel_order : 2;
}; };
// Telemetry // Telemetry

View File

@ -129,11 +129,10 @@ uint8_t num_ch;
#define BOOT_READY 3 #define BOOT_READY 3
#endif #endif
//Channel mapping for protocols uint8_t CH_AETR[]={AILERON, ELEVATOR, THROTTLE, RUDDER, CH5, CH6, CH7, CH8, CH9, CH10, CH11, CH12, CH13, CH14, CH15, CH16};
const uint8_t CH_AETR[]={AILERON, ELEVATOR, THROTTLE, RUDDER, CH5, CH6, CH7, CH8, CH9, CH10, CH11, CH12, CH13, CH14, CH15, CH16}; uint8_t CH_TAER[]={THROTTLE, AILERON, ELEVATOR, RUDDER, CH5, CH6, CH7, CH8, CH9, CH10, CH11, CH12, CH13, CH14, CH15, CH16};
const uint8_t CH_TAER[]={THROTTLE, AILERON, ELEVATOR, RUDDER, CH5, CH6, CH7, CH8, CH9, CH10, CH11, CH12, CH13, CH14, CH15, CH16}; uint8_t CH_RETA[]={RUDDER, ELEVATOR, THROTTLE, AILERON, CH5, CH6, CH7, CH8, CH9, CH10, CH11, CH12, CH13, CH14, CH15, CH16};
const uint8_t CH_RETA[]={RUDDER, ELEVATOR, THROTTLE, AILERON, CH5, CH6, CH7, CH8, CH9, CH10, CH11, CH12, CH13, CH14, CH15, CH16}; uint8_t CH_EATR[]={ELEVATOR, AILERON, THROTTLE, RUDDER, CH5, CH6, CH7, CH8, CH9, CH10, CH11, CH12, CH13, CH14, CH15, CH16};
const uint8_t CH_EATR[]={ELEVATOR, AILERON, THROTTLE, RUDDER, CH5, CH6, CH7, CH8, CH9, CH10, CH11, CH12, CH13, CH14, CH15, CH16};
// Mode_select variables // Mode_select variables
uint8_t mode_select; uint8_t mode_select;
@ -157,7 +156,9 @@ uint8_t option;
uint8_t cur_protocol[3]; uint8_t cur_protocol[3];
uint8_t prev_option; uint8_t prev_option;
uint8_t prev_power=0xFD; // unused power value uint8_t prev_power=0xFD; // unused power value
uint8_t RX_num; uint8_t RX_num;
uint8_t channel_order;
//Serial RX variables //Serial RX variables
#define BAUD 100000 #define BAUD 100000
@ -165,7 +166,7 @@ uint8_t RX_num;
volatile uint8_t rx_buff[RXBUFFER_SIZE]; volatile uint8_t rx_buff[RXBUFFER_SIZE];
volatile uint8_t rx_ok_buff[RXBUFFER_SIZE]; volatile uint8_t rx_ok_buff[RXBUFFER_SIZE];
volatile uint8_t discard_frame = 0; volatile uint8_t discard_frame = 0;
// Telemetry // Telemetry
#define MAX_PKT 29 #define MAX_PKT 29
uint8_t pkt[MAX_PKT];//telemetry receiving packets uint8_t pkt[MAX_PKT];//telemetry receiving packets
@ -220,7 +221,7 @@ void_function_t remote_callback = 0;
// Init // Init
void setup() void setup()
{ {
// Setup diagnostic uart before anything else // Setup diagnostic uart before anything else
#ifdef DEBUG_SERIAL #ifdef DEBUG_SERIAL
Serial.begin(115200,SERIAL_8N1); Serial.begin(115200,SERIAL_8N1);
@ -395,6 +396,7 @@ void setup()
// Set default channels' value // Set default channels' value
InitChannel(); InitChannel();
#ifdef ENABLE_PPM #ifdef ENABLE_PPM
InitPPM(); InitPPM();
#endif #endif
@ -430,11 +432,42 @@ void setup()
const PPM_Parameters *PPM_prot_line=&My_PPM_prot[bank*14+mode_select-1]; const PPM_Parameters *PPM_prot_line=&My_PPM_prot[bank*14+mode_select-1];
#endif #endif
protocol = PPM_prot_line->protocol; protocol = PPM_prot_line->protocol;
cur_protocol[1] = protocol; cur_protocol[1] = protocol;
sub_protocol = PPM_prot_line->sub_proto; sub_protocol = PPM_prot_line->sub_proto;
RX_num = PPM_prot_line->rx_num; RX_num = PPM_prot_line->rx_num;
channel_order = PPM_prot_line->channel_order;
/* PPM and the channel re-mapping for protocols, can be extended with more, hence already the switch */
switch(channel_order) {
case CO_JR_HELI :
{
/*
JR Graupner **order** of PPM pulses in pulsetrain if model in transmitter is set as heli type
CollectivePitch is at the first pulse and throttle the sixth
But since the indexes start at 0 the pulse order is defined at the "Zero" pulse and so on for the rest
CollectivePitch 0
Aileron 1
Elevator 2
Rudder 3
x 4
Throttle 5
GyroGain (optional) 6
...
*/
CH_AETR[0]=1;CH_AETR[1]=2;CH_AETR[2]=5;CH_AETR[3]=3;CH_AETR[4]=4;CH_AETR[5]=0;
CH_TAER[0]=5;CH_TAER[1]=1;CH_TAER[2]=2;CH_TAER[3]=3;CH_TAER[4]=4;CH_TAER[5]=0;
CH_RETA[0]=3;CH_RETA[1]=2;CH_RETA[2]=5;CH_RETA[3]=1;CH_RETA[4]=4;CH_RETA[5]=0;
CH_EATR[0]=2;CH_EATR[1]=1;CH_EATR[2]=5;CH_EATR[3]=3;CH_EATR[4]=4;CH_EATR[5]=0;
break;
}
default :
break;
}
//#endif
//#ifdef ENABLE_PPM
//Forced frequency tuning values for CC2500 protocols //Forced frequency tuning values for CC2500 protocols
#if defined(FORCE_FRSKYD_TUNING) && defined(FRSKYD_CC2500_INO) #if defined(FORCE_FRSKYD_TUNING) && defined(FRSKYD_CC2500_INO)
if(protocol==PROTO_FRSKYD) if(protocol==PROTO_FRSKYD)

View File

@ -366,93 +366,93 @@
const PPM_Parameters PPM_prot[14*NBR_BANKS]= { const PPM_Parameters PPM_prot[14*NBR_BANKS]= {
#if NBR_BANKS > 0 #if NBR_BANKS > 0
//****************************** BANK 1 ****************************** //****************************** BANK 1 ******************************
// Switch Protocol Sub protocol RX_Num Power Auto Bind Option // Switch Protocol Sub protocol RX_Num Power Auto Bind Option CH Order PPM out
/* 1 */ {PROTO_FLYSKY, Flysky , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 1 */ {PROTO_FLYSKY, Flysky , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 2 */ {PROTO_AFHDS2A, PWM_IBUS , 0 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 0 /* 2 */ {PROTO_AFHDS2A, PWM_IBUS , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, // RX number 0
/* 3 */ {PROTO_AFHDS2A, PWM_IBUS , 1 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 1 /* 3 */ {PROTO_AFHDS2A, PWM_IBUS , 1 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, // RX number 1
/* 4 */ {PROTO_AFHDS2A, PWM_IBUS , 2 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 2 /* 4 */ {PROTO_AFHDS2A, PWM_IBUS , 2 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, // RX number 2
/* 5 */ {PROTO_AFHDS2A, PWM_IBUS , 3 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 3 /* 5 */ {PROTO_AFHDS2A, PWM_IBUS , 3 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, // RX number 3
/* 6 */ {PROTO_AFHDS2A, PWM_IBUS , 2 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 4 /* 6 */ {PROTO_AFHDS2A, PWM_IBUS , 2 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, // RX number 4
/* 7 */ {PROTO_AFHDS2A, PWM_IBUS , 3 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 5 /* 7 */ {PROTO_AFHDS2A, PWM_IBUS , 3 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, // RX number 5
/* 8 */ {PROTO_SFHSS, H107 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 8 */ {PROTO_SFHSS, H107 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 9 */ {PROTO_FRSKYV, NONE , 0 , P_HIGH , NO_AUTOBIND , 40 }, // option=fine freq tuning /* 9 */ {PROTO_FRSKYV, NONE , 0 , P_HIGH , NO_AUTOBIND , 40 , CO_DEFAULT }, // option=fine freq tuning
/* 10 */ {PROTO_FRSKYD, NONE , 0 , P_HIGH , NO_AUTOBIND , 40 }, // option=fine freq tuning /* 10 */ {PROTO_FRSKYD, NONE , 0 , P_HIGH , NO_AUTOBIND , 40 , CO_DEFAULT }, // option=fine freq tuning
/* 11 */ {PROTO_FRSKYX, CH_16 , 0 , P_HIGH , NO_AUTOBIND , 40 }, // option=fine freq tuning /* 11 */ {PROTO_FRSKYX, CH_16 , 0 , P_HIGH , NO_AUTOBIND , 40 , CO_DEFAULT }, // option=fine freq tuning
/* 12 */ {PROTO_FRSKYX, EU_16 , 0 , P_HIGH , NO_AUTOBIND , 40 }, // option=fine freq tuning /* 12 */ {PROTO_FRSKYX, EU_16 , 0 , P_HIGH , NO_AUTOBIND , 40 , CO_DEFAULT }, // option=fine freq tuning
/* 13 */ {PROTO_DEVO , NONE , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 13 */ {PROTO_DEVO, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 14 */ {PROTO_WK2x01, WK2801 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 14 */ {PROTO_WK2x01, WK2801 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
#endif #endif
#if NBR_BANKS > 1 #if NBR_BANKS > 1
//****************************** BANK 2 ****************************** //****************************** BANK 2 ******************************
// Switch Protocol Sub protocol RX_Num Power Auto Bind Option // Switch Protocol Sub protocol RX_Num Power Auto Bind Option CH Order PPM out
/* 1 */ {PROTO_DSM , DSM2_11 , 0 , P_HIGH , NO_AUTOBIND , 6 }, // option=number of channels /* 1 */ {PROTO_DSM, DSM2_11 , 0 , P_HIGH , NO_AUTOBIND , 6 , CO_DEFAULT }, // option=number of channels
/* 2 */ {PROTO_DSM , DSM2_22 , 0 , P_HIGH , NO_AUTOBIND , 6 }, // option=number of channels /* 2 */ {PROTO_DSM, DSM2_22 , 0 , P_HIGH , NO_AUTOBIND , 6 , CO_DEFAULT }, // option=number of channels
/* 3 */ {PROTO_DSM , DSMX_11 , 0 , P_HIGH , NO_AUTOBIND , 6 }, // option=number of channels /* 3 */ {PROTO_DSM, DSMX_11 , 0 , P_HIGH , NO_AUTOBIND , 6 , CO_DEFAULT }, // option=number of channels
/* 4 */ {PROTO_DSM , DSMX_22 , 0 , P_HIGH , NO_AUTOBIND , 6 }, // option=number of channels /* 4 */ {PROTO_DSM, DSMX_22 , 0 , P_HIGH , NO_AUTOBIND , 6 , CO_DEFAULT }, // option=number of channels
/* 5 */ {PROTO_DSM , DSM2_11 , 0 , P_HIGH , NO_AUTOBIND , 8 }, // option=number of channels /* 5 */ {PROTO_DSM, DSM2_11 , 0 , P_HIGH , NO_AUTOBIND , 8 , CO_DEFAULT }, // option=number of channels
/* 6 */ {PROTO_DSM , DSM2_22 , 0 , P_HIGH , NO_AUTOBIND , 8 }, // option=number of channels /* 6 */ {PROTO_DSM, DSM2_22 , 0 , P_HIGH , NO_AUTOBIND , 8 , CO_DEFAULT }, // option=number of channels
/* 7 */ {PROTO_DSM , DSMX_11 , 0 , P_HIGH , NO_AUTOBIND , 8 }, // option=number of channels /* 7 */ {PROTO_DSM, DSMX_11 , 0 , P_HIGH , NO_AUTOBIND , 8 , CO_DEFAULT }, // option=number of channels
/* 8 */ {PROTO_DSM , DSMX_22 , 0 , P_HIGH , NO_AUTOBIND , 8 }, // option=number of channels /* 8 */ {PROTO_DSM, DSMX_22 , 0 , P_HIGH , NO_AUTOBIND , 8 , CO_DEFAULT }, // option=number of channels
/* 9 */ {PROTO_SLT , SLT_V1 , 0 , P_HIGH , NO_AUTOBIND , 6 }, /* 9 */ {PROTO_SLT, SLT_V1 , 0 , P_HIGH , NO_AUTOBIND , 6 , CO_DEFAULT },
/* 10 */ {PROTO_HUBSAN, H107 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 10 */ {PROTO_HUBSAN, H107 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 11 */ {PROTO_HUBSAN, H301 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 11 */ {PROTO_HUBSAN, H301 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 12 */ {PROTO_HUBSAN, H501 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 12 */ {PROTO_HUBSAN, H501 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 13 */ {PROTO_HISKY, Hisky , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 13 */ {PROTO_HISKY, Hisky , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 14 */ {PROTO_V2X2 , NONE , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 14 */ {PROTO_V2X2, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
#endif #endif
#if NBR_BANKS > 2 #if NBR_BANKS > 2
//****************************** BANK 3 ****************************** //****************************** BANK 3 ******************************
// Switch Protocol Sub protocol RX_Num Power Auto Bind Option // Switch Protocol Sub protocol RX_Num Power Auto Bind Option CH Order PPM out
/* 1 */ {PROTO_ESKY , NONE , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 1 */ {PROTO_ESKY, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 2 */ {PROTO_ESKY150, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 2 */ {PROTO_ESKY150, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 3 */ {PROTO_ASSAN, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 3 */ {PROTO_ASSAN, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 4 */ {PROTO_CORONA, COR_V2 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 4 */ {PROTO_CORONA, COR_V2 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 5 */ {PROTO_SYMAX, SYMAX , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 5 */ {PROTO_SYMAX, SYMAX , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 6 */ {PROTO_KN , WLTOYS , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 6 */ {PROTO_KN, WLTOYS , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 7 */ {PROTO_BAYANG, BAYANG , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 7 */ {PROTO_BAYANG, BAYANG , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 8 */ {PROTO_BAYANG, H8S3D , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 8 */ {PROTO_BAYANG, H8S3D , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 9 */ {PROTO_BAYANG, X16_AH , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 9 */ {PROTO_BAYANG, X16_AH , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 10 */ {PROTO_BAYANG, IRDRONE , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 10 */ {PROTO_BAYANG, IRDRONE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 11 */ {PROTO_H8_3D, H8_3D , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 11 */ {PROTO_H8_3D, H8_3D , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 12 */ {PROTO_H8_3D, H20H , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 12 */ {PROTO_H8_3D, H20H , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 13 */ {PROTO_H8_3D, H20MINI , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 13 */ {PROTO_H8_3D, H20MINI , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 14 */ {PROTO_H8_3D, H30MINI , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 14 */ {PROTO_H8_3D, H30MINI , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
#endif #endif
#if NBR_BANKS > 3 #if NBR_BANKS > 3
//****************************** BANK 4 ****************************** //****************************** BANK 4 ******************************
// Switch Protocol Sub protocol RX_Num Power Auto Bind Option // Switch Protocol Sub protocol RX_Num Power Auto Bind Option CH Order PPM out
/* 1 */ {PROTO_MJXQ , WLH08 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 1 */ {PROTO_MJXQ, WLH08 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 2 */ {PROTO_MJXQ , X600 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 2 */ {PROTO_MJXQ, X600 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 3 */ {PROTO_MJXQ , X800 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 3 */ {PROTO_MJXQ, X800 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 4 */ {PROTO_MJXQ , H26D , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 4 */ {PROTO_MJXQ, H26D , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 5 */ {PROTO_MJXQ , E010 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 5 */ {PROTO_MJXQ, E010 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 6 */ {PROTO_MJXQ , H26WH , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 6 */ {PROTO_MJXQ, H26WH , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 7 */ {PROTO_HONTAI, HONTAI , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 7 */ {PROTO_HONTAI, HONTAI , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 8 */ {PROTO_HONTAI, JJRCX1 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 8 */ {PROTO_HONTAI, JJRCX1 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 9 */ {PROTO_HONTAI, X5C1 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 9 */ {PROTO_HONTAI, X5C1 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 10 */ {PROTO_HONTAI, FQ777_951 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 10 */ {PROTO_HONTAI, FQ777_951 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 11 */ {PROTO_Q303 , Q303 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 11 */ {PROTO_Q303, Q303 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 12 */ {PROTO_Q303 , CX35 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 12 */ {PROTO_Q303, CX35 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 13 */ {PROTO_Q303 , CX10D , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 13 */ {PROTO_Q303, CX10D , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 14 */ {PROTO_Q303 , CX10WD , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 14 */ {PROTO_Q303, CX10WD , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
#endif #endif
#if NBR_BANKS > 4 #if NBR_BANKS > 4
//****************************** BANK 5 ****************************** //****************************** BANK 5 ******************************
// Switch Protocol Sub protocol RX_Num Power Auto Bind Option // Switch Protocol Sub protocol RX_Num Power Auto Bind Option CH Order PPM out
/* 1 */ {PROTO_CX10 , CX10_GREEN , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 1 */ {PROTO_CX10, CX10_GREEN , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 2 */ {PROTO_CX10 , CX10_BLUE , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 2 */ {PROTO_CX10, CX10_BLUE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 3 */ {PROTO_CX10 , DM007 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 3 */ {PROTO_CX10, DM007 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 4 */ {PROTO_CX10 , JC3015_1 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 4 */ {PROTO_CX10, JC3015_1 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 5 */ {PROTO_CX10 , JC3015_2 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 5 */ {PROTO_CX10, JC3015_2 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 6 */ {PROTO_CX10 , MK33041 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 6 */ {PROTO_CX10, MK33041 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 7 */ {PROTO_Q2X2 , Q222 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 7 */ {PROTO_Q2X2, Q222 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 8 */ {PROTO_Q2X2 , Q242 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 8 */ {PROTO_Q2X2, Q242 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 9 */ {PROTO_Q2X2 , Q282 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 9 */ {PROTO_Q2X2, Q282 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 10 */ {PROTO_CG023, CG023 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 10 */ {PROTO_CG023, CG023 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 11 */ {PROTO_CG023, YD829 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 11 */ {PROTO_CG023, YD829 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 12 */ {PROTO_FQ777, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 12 */ {PROTO_FQ777, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 13 */ {PROTO_YD717, YD717 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 13 */ {PROTO_YD717, YD717 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 14 */ {PROTO_MT99XX, MT99 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 14 */ {PROTO_MT99XX, MT99 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
#endif #endif
}; };
// RX_Num is used for TX & RX match. Using different RX_Num values for each receiver will prevent starting a model with the false config loaded... // RX_Num is used for TX & RX match. Using different RX_Num values for each receiver will prevent starting a model with the false config loaded...
@ -469,6 +469,8 @@ const PPM_Parameters PPM_prot[14*NBR_BANKS]= {
// Option: the value is between -128 and +127. // Option: the value is between -128 and +127.
// The option value is only valid for some protocols, read this page for more information: https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/Protocols_Details.md // The option value is only valid for some protocols, read this page for more information: https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/Protocols_Details.md
// CH Order PPM out CO_DEFAULT or CO_JR_HELI where the latter one has Collective CHannel swapped with Throttle on Heli model modes for TX's that have non variable output pulsetrain
/* Available protocols and associated sub protocols to pick and choose from (Listed in alphabetical order) /* Available protocols and associated sub protocols to pick and choose from (Listed in alphabetical order)
PROTO_AFHDS2A PROTO_AFHDS2A
PWM_IBUS PWM_IBUS

View File

@ -60,20 +60,20 @@
#define MY_PPM_PROT // Use the bellow protocol list #define MY_PPM_PROT // Use the bellow protocol list
const PPM_Parameters My_PPM_prot[14*NBR_BANKS]={ const PPM_Parameters My_PPM_prot[14*NBR_BANKS]={
//****************************** BANK 1 ****************************** //****************************** BANK 1 ******************************
// Switch Protocol Sub protocol RX_Num Power Auto Bind Option // Switch Protocol Sub protocol RX_Num Power Auto Bind Option CH Order PPM out
/* 1 */ {PROTO_KN , WLTOYS , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 1 */ {PROTO_KN, WLTOYS , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 2 */ {PROTO_FLYSKY, Flysky , 0 , P_HIGH , AUTOBIND , 0 }, /* 2 */ {PROTO_FLYSKY, Flysky , 0 , P_HIGH , AUTOBIND , 0 , CO_DEFAULT },
/* 3 */ {PROTO_AFHDS2A, PWM_IBUS , 1 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 1 /* 3 */ {PROTO_AFHDS2A, PWM_IBUS , 1 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, // RX number 1
/* 4 */ {PROTO_AFHDS2A, PWM_IBUS , 2 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 2 /* 4 */ {PROTO_AFHDS2A, PWM_IBUS , 2 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, // RX number 2
/* 5 */ {PROTO_AFHDS2A, PWM_IBUS , 3 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 3 /* 5 */ {PROTO_AFHDS2A, PWM_IBUS , 3 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, // RX number 3
/* 6 */ {PROTO_AFHDS2A, PWM_IBUS , 2 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 4 /* 6 */ {PROTO_AFHDS2A, PWM_IBUS , 2 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, // RX number 4
/* 7 */ {PROTO_AFHDS2A, PWM_IBUS , 3 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 5 /* 7 */ {PROTO_AFHDS2A, PWM_IBUS , 3 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, // RX number 5
/* 8 */ {PROTO_SFHSS, H107 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 8 */ {PROTO_SFHSS, H107 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 9 */ {PROTO_FRSKYV, NONE , 0 , P_HIGH , NO_AUTOBIND , 40 }, // option=fine freq tuning /* 9 */ {PROTO_FRSKYV, NONE , 0 , P_HIGH , NO_AUTOBIND , 40 , CO_DEFAULT }, // option=fine freq tuning
/* 10 */ {PROTO_FRSKYD, NONE , 0 , P_HIGH , NO_AUTOBIND , 40 }, // option=fine freq tuning /* 10 */ {PROTO_FRSKYD, NONE , 0 , P_HIGH , NO_AUTOBIND , 40 , CO_DEFAULT }, // option=fine freq tuning
/* 11 */ {PROTO_FRSKYX, CH_16 , 0 , P_HIGH , NO_AUTOBIND , 40 }, // option=fine freq tuning /* 11 */ {PROTO_FRSKYX, CH_16 , 0 , P_HIGH , NO_AUTOBIND , 40 , CO_DEFAULT }, // option=fine freq tuning
/* 12 */ {PROTO_FRSKYX, EU_16 , 0 , P_HIGH , NO_AUTOBIND , 40 }, // option=fine freq tuning /* 12 */ {PROTO_FRSKYX, EU_16 , 0 , P_HIGH , NO_AUTOBIND , 40 , CO_DEFAULT }, // option=fine freq tuning
/* 13 */ {PROTO_DEVO , NONE , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 13 */ {PROTO_DEVO, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT },
/* 14 */ {PROTO_WK2x01, WK2801 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 14 */ {PROTO_WK2x01, WK2801 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_JR_HELI },
}; };
#endif #endif