diff --git a/Multiprotocol/Multiprotocol.h b/Multiprotocol/Multiprotocol.h index 3305fa7..1f3f538 100644 --- a/Multiprotocol/Multiprotocol.h +++ b/Multiprotocol/Multiprotocol.h @@ -19,7 +19,7 @@ #define VERSION_MAJOR 1 #define VERSION_MINOR 2 #define VERSION_REVISION 1 -#define VERSION_PATCH_LEVEL 74 +#define VERSION_PATCH_LEVEL 75 //****************** // Protocols @@ -294,6 +294,9 @@ enum TRAXXAS #define AUTOBIND 1 #define NO_AUTOBIND 0 +#define CO_DEFAULT 0 +#define CO_JR_HELI 1 + struct PPM_Parameters { uint8_t protocol : 6; @@ -302,6 +305,7 @@ struct PPM_Parameters uint8_t power : 1; uint8_t autobind : 1; uint8_t option; + uint8_t channel_order : 2; }; // Telemetry diff --git a/Multiprotocol/Multiprotocol.ino b/Multiprotocol/Multiprotocol.ino index 58ee856..1e3a4db 100644 --- a/Multiprotocol/Multiprotocol.ino +++ b/Multiprotocol/Multiprotocol.ino @@ -129,11 +129,10 @@ uint8_t num_ch; #define BOOT_READY 3 #endif -//Channel mapping for protocols -const uint8_t CH_AETR[]={AILERON, ELEVATOR, THROTTLE, 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}; -const uint8_t CH_RETA[]={RUDDER, ELEVATOR, THROTTLE, AILERON, 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}; +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}; +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}; // Mode_select variables uint8_t mode_select; @@ -157,7 +156,9 @@ uint8_t option; uint8_t cur_protocol[3]; uint8_t prev_option; uint8_t prev_power=0xFD; // unused power value -uint8_t RX_num; +uint8_t RX_num; + +uint8_t channel_order; //Serial RX variables #define BAUD 100000 @@ -165,7 +166,7 @@ uint8_t RX_num; volatile uint8_t rx_buff[RXBUFFER_SIZE]; volatile uint8_t rx_ok_buff[RXBUFFER_SIZE]; volatile uint8_t discard_frame = 0; - + // Telemetry #define MAX_PKT 29 uint8_t pkt[MAX_PKT];//telemetry receiving packets @@ -220,7 +221,7 @@ void_function_t remote_callback = 0; // Init void setup() -{ +{ // Setup diagnostic uart before anything else #ifdef DEBUG_SERIAL Serial.begin(115200,SERIAL_8N1); @@ -395,6 +396,7 @@ void setup() // Set default channels' value InitChannel(); + #ifdef ENABLE_PPM InitPPM(); #endif @@ -430,11 +432,42 @@ void setup() const PPM_Parameters *PPM_prot_line=&My_PPM_prot[bank*14+mode_select-1]; #endif - protocol = PPM_prot_line->protocol; + protocol = PPM_prot_line->protocol; cur_protocol[1] = protocol; - sub_protocol = PPM_prot_line->sub_proto; - RX_num = PPM_prot_line->rx_num; + sub_protocol = PPM_prot_line->sub_proto; + 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 #if defined(FORCE_FRSKYD_TUNING) && defined(FRSKYD_CC2500_INO) if(protocol==PROTO_FRSKYD) diff --git a/Multiprotocol/_Config.h b/Multiprotocol/_Config.h index 9b652f1..dd60a94 100644 --- a/Multiprotocol/_Config.h +++ b/Multiprotocol/_Config.h @@ -366,93 +366,93 @@ const PPM_Parameters PPM_prot[14*NBR_BANKS]= { #if NBR_BANKS > 0 //****************************** BANK 1 ****************************** -// Switch Protocol Sub protocol RX_Num Power Auto Bind Option -/* 1 */ {PROTO_FLYSKY, Flysky , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 2 */ {PROTO_AFHDS2A, PWM_IBUS , 0 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 0 -/* 3 */ {PROTO_AFHDS2A, PWM_IBUS , 1 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 1 -/* 4 */ {PROTO_AFHDS2A, PWM_IBUS , 2 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 2 -/* 5 */ {PROTO_AFHDS2A, PWM_IBUS , 3 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 3 -/* 6 */ {PROTO_AFHDS2A, PWM_IBUS , 2 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 4 -/* 7 */ {PROTO_AFHDS2A, PWM_IBUS , 3 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 5 -/* 8 */ {PROTO_SFHSS, H107 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 9 */ {PROTO_FRSKYV, NONE , 0 , P_HIGH , NO_AUTOBIND , 40 }, // option=fine freq tuning -/* 10 */ {PROTO_FRSKYD, NONE , 0 , P_HIGH , NO_AUTOBIND , 40 }, // option=fine freq tuning -/* 11 */ {PROTO_FRSKYX, CH_16 , 0 , P_HIGH , NO_AUTOBIND , 40 }, // option=fine freq tuning -/* 12 */ {PROTO_FRSKYX, EU_16 , 0 , P_HIGH , NO_AUTOBIND , 40 }, // option=fine freq tuning -/* 13 */ {PROTO_DEVO , NONE , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 14 */ {PROTO_WK2x01, WK2801 , 0 , P_HIGH , NO_AUTOBIND , 0 }, +// Switch Protocol Sub protocol RX_Num Power Auto Bind Option CH Order PPM out +/* 1 */ {PROTO_FLYSKY, Flysky , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 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 , CO_DEFAULT }, // RX number 1 +/* 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 , CO_DEFAULT }, // RX number 3 +/* 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 , CO_DEFAULT }, // RX number 5 +/* 8 */ {PROTO_SFHSS, H107 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 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 , CO_DEFAULT }, // 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 , CO_DEFAULT }, // option=fine freq tuning +/* 13 */ {PROTO_DEVO, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 14 */ {PROTO_WK2x01, WK2801 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, #endif #if NBR_BANKS > 1 //****************************** BANK 2 ****************************** -// Switch Protocol Sub protocol RX_Num Power Auto Bind Option -/* 1 */ {PROTO_DSM , DSM2_11 , 0 , P_HIGH , NO_AUTOBIND , 6 }, // option=number of channels -/* 2 */ {PROTO_DSM , DSM2_22 , 0 , P_HIGH , NO_AUTOBIND , 6 }, // option=number of channels -/* 3 */ {PROTO_DSM , DSMX_11 , 0 , P_HIGH , NO_AUTOBIND , 6 }, // option=number of channels -/* 4 */ {PROTO_DSM , DSMX_22 , 0 , P_HIGH , NO_AUTOBIND , 6 }, // option=number of channels -/* 5 */ {PROTO_DSM , DSM2_11 , 0 , P_HIGH , NO_AUTOBIND , 8 }, // option=number of channels -/* 6 */ {PROTO_DSM , DSM2_22 , 0 , P_HIGH , NO_AUTOBIND , 8 }, // option=number of channels -/* 7 */ {PROTO_DSM , DSMX_11 , 0 , P_HIGH , NO_AUTOBIND , 8 }, // option=number of channels -/* 8 */ {PROTO_DSM , DSMX_22 , 0 , P_HIGH , NO_AUTOBIND , 8 }, // option=number of channels -/* 9 */ {PROTO_SLT , SLT_V1 , 0 , P_HIGH , NO_AUTOBIND , 6 }, -/* 10 */ {PROTO_HUBSAN, H107 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 11 */ {PROTO_HUBSAN, H301 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 12 */ {PROTO_HUBSAN, H501 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 13 */ {PROTO_HISKY, Hisky , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 14 */ {PROTO_V2X2 , NONE , 0 , P_HIGH , NO_AUTOBIND , 0 }, +// 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 , CO_DEFAULT }, // 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 , CO_DEFAULT }, // 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 , CO_DEFAULT }, // 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 , CO_DEFAULT }, // 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 , CO_DEFAULT }, +/* 10 */ {PROTO_HUBSAN, H107 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 11 */ {PROTO_HUBSAN, H301 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 12 */ {PROTO_HUBSAN, H501 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 13 */ {PROTO_HISKY, Hisky , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 14 */ {PROTO_V2X2, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, #endif #if NBR_BANKS > 2 //****************************** BANK 3 ****************************** -// Switch Protocol Sub protocol RX_Num Power Auto Bind Option -/* 1 */ {PROTO_ESKY , NONE , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 2 */ {PROTO_ESKY150, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 3 */ {PROTO_ASSAN, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 4 */ {PROTO_CORONA, COR_V2 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 5 */ {PROTO_SYMAX, SYMAX , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 6 */ {PROTO_KN , WLTOYS , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 7 */ {PROTO_BAYANG, BAYANG , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 8 */ {PROTO_BAYANG, H8S3D , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 9 */ {PROTO_BAYANG, X16_AH , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 10 */ {PROTO_BAYANG, IRDRONE , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 11 */ {PROTO_H8_3D, H8_3D , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 12 */ {PROTO_H8_3D, H20H , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 13 */ {PROTO_H8_3D, H20MINI , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 14 */ {PROTO_H8_3D, H30MINI , 0 , P_HIGH , NO_AUTOBIND , 0 }, +// Switch Protocol Sub protocol RX_Num Power Auto Bind Option CH Order PPM out +/* 1 */ {PROTO_ESKY, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 2 */ {PROTO_ESKY150, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 3 */ {PROTO_ASSAN, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 4 */ {PROTO_CORONA, COR_V2 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 5 */ {PROTO_SYMAX, SYMAX , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 6 */ {PROTO_KN, WLTOYS , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 7 */ {PROTO_BAYANG, BAYANG , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 8 */ {PROTO_BAYANG, H8S3D , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 9 */ {PROTO_BAYANG, X16_AH , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 10 */ {PROTO_BAYANG, IRDRONE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 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 , CO_DEFAULT }, +/* 13 */ {PROTO_H8_3D, H20MINI , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 14 */ {PROTO_H8_3D, H30MINI , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, #endif #if NBR_BANKS > 3 //****************************** BANK 4 ****************************** -// Switch Protocol Sub protocol RX_Num Power Auto Bind Option -/* 1 */ {PROTO_MJXQ , WLH08 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 2 */ {PROTO_MJXQ , X600 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 3 */ {PROTO_MJXQ , X800 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 4 */ {PROTO_MJXQ , H26D , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 5 */ {PROTO_MJXQ , E010 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 6 */ {PROTO_MJXQ , H26WH , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 7 */ {PROTO_HONTAI, HONTAI , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 8 */ {PROTO_HONTAI, JJRCX1 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 9 */ {PROTO_HONTAI, X5C1 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 10 */ {PROTO_HONTAI, FQ777_951 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 11 */ {PROTO_Q303 , Q303 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 12 */ {PROTO_Q303 , CX35 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 13 */ {PROTO_Q303 , CX10D , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 14 */ {PROTO_Q303 , CX10WD , 0 , P_HIGH , NO_AUTOBIND , 0 }, +// Switch Protocol Sub protocol RX_Num Power Auto Bind Option CH Order PPM out +/* 1 */ {PROTO_MJXQ, WLH08 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 2 */ {PROTO_MJXQ, X600 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 3 */ {PROTO_MJXQ, X800 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 4 */ {PROTO_MJXQ, H26D , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 5 */ {PROTO_MJXQ, E010 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 6 */ {PROTO_MJXQ, H26WH , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 7 */ {PROTO_HONTAI, HONTAI , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 8 */ {PROTO_HONTAI, JJRCX1 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 9 */ {PROTO_HONTAI, X5C1 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 10 */ {PROTO_HONTAI, FQ777_951 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 11 */ {PROTO_Q303, Q303 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 12 */ {PROTO_Q303, CX35 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 13 */ {PROTO_Q303, CX10D , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 14 */ {PROTO_Q303, CX10WD , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, #endif #if NBR_BANKS > 4 //****************************** BANK 5 ****************************** -// Switch Protocol Sub protocol RX_Num Power Auto Bind Option -/* 1 */ {PROTO_CX10 , CX10_GREEN , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 2 */ {PROTO_CX10 , CX10_BLUE , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 3 */ {PROTO_CX10 , DM007 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 4 */ {PROTO_CX10 , JC3015_1 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 5 */ {PROTO_CX10 , JC3015_2 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 6 */ {PROTO_CX10 , MK33041 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 7 */ {PROTO_Q2X2 , Q222 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 8 */ {PROTO_Q2X2 , Q242 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 9 */ {PROTO_Q2X2 , Q282 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 10 */ {PROTO_CG023, CG023 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 11 */ {PROTO_CG023, YD829 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 12 */ {PROTO_FQ777, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 13 */ {PROTO_YD717, YD717 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 14 */ {PROTO_MT99XX, MT99 , 0 , P_HIGH , NO_AUTOBIND , 0 }, +// 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 , CO_DEFAULT }, +/* 2 */ {PROTO_CX10, CX10_BLUE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 3 */ {PROTO_CX10, DM007 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 4 */ {PROTO_CX10, JC3015_1 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 5 */ {PROTO_CX10, JC3015_2 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 6 */ {PROTO_CX10, MK33041 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 7 */ {PROTO_Q2X2, Q222 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 8 */ {PROTO_Q2X2, Q242 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 9 */ {PROTO_Q2X2, Q282 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 10 */ {PROTO_CG023, CG023 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 11 */ {PROTO_CG023, YD829 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 12 */ {PROTO_FQ777, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 13 */ {PROTO_YD717, YD717 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 14 */ {PROTO_MT99XX, MT99 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, #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... @@ -469,6 +469,8 @@ const PPM_Parameters PPM_prot[14*NBR_BANKS]= { // 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 +// 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) PROTO_AFHDS2A PWM_IBUS diff --git a/Multiprotocol/_MyConfig.h.example b/Multiprotocol/_MyConfig.h.example index b324ad9..5d81fd0 100644 --- a/Multiprotocol/_MyConfig.h.example +++ b/Multiprotocol/_MyConfig.h.example @@ -60,20 +60,20 @@ #define MY_PPM_PROT // Use the bellow protocol list const PPM_Parameters My_PPM_prot[14*NBR_BANKS]={ //****************************** BANK 1 ****************************** -// Switch Protocol Sub protocol RX_Num Power Auto Bind Option -/* 1 */ {PROTO_KN , WLTOYS , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 2 */ {PROTO_FLYSKY, Flysky , 0 , P_HIGH , AUTOBIND , 0 }, -/* 3 */ {PROTO_AFHDS2A, PWM_IBUS , 1 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 1 -/* 4 */ {PROTO_AFHDS2A, PWM_IBUS , 2 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 2 -/* 5 */ {PROTO_AFHDS2A, PWM_IBUS , 3 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 3 -/* 6 */ {PROTO_AFHDS2A, PWM_IBUS , 2 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 4 -/* 7 */ {PROTO_AFHDS2A, PWM_IBUS , 3 , P_HIGH , NO_AUTOBIND , 0 }, // RX number 5 -/* 8 */ {PROTO_SFHSS, H107 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 9 */ {PROTO_FRSKYV, NONE , 0 , P_HIGH , NO_AUTOBIND , 40 }, // option=fine freq tuning -/* 10 */ {PROTO_FRSKYD, NONE , 0 , P_HIGH , NO_AUTOBIND , 40 }, // option=fine freq tuning -/* 11 */ {PROTO_FRSKYX, CH_16 , 0 , P_HIGH , NO_AUTOBIND , 40 }, // option=fine freq tuning -/* 12 */ {PROTO_FRSKYX, EU_16 , 0 , P_HIGH , NO_AUTOBIND , 40 }, // option=fine freq tuning -/* 13 */ {PROTO_DEVO , NONE , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 14 */ {PROTO_WK2x01, WK2801 , 0 , P_HIGH , NO_AUTOBIND , 0 }, +// Switch Protocol Sub protocol RX_Num Power Auto Bind Option CH Order PPM out +/* 1 */ {PROTO_KN, WLTOYS , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 2 */ {PROTO_FLYSKY, Flysky , 0 , P_HIGH , AUTOBIND , 0 , CO_DEFAULT }, +/* 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 , CO_DEFAULT }, // RX number 2 +/* 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 , CO_DEFAULT }, // RX number 4 +/* 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 , CO_DEFAULT }, +/* 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 , CO_DEFAULT }, // 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 , CO_DEFAULT }, // option=fine freq tuning +/* 13 */ {PROTO_DEVO, NONE , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_DEFAULT }, +/* 14 */ {PROTO_WK2x01, WK2801 , 0 , P_HIGH , NO_AUTOBIND , 0 , CO_JR_HELI }, }; #endif