diff --git a/Lua_scripts/MultiChan.txt b/Lua_scripts/MultiChan.txt index b42a287c..48fb47e7 100644 --- a/Lua_scripts/MultiChan.txt +++ b/Lua_scripts/MultiChan.txt @@ -231,6 +231,8 @@ 97,0,SGF22,F22,1,Mode,Flip,LED,Pict,Video,TrRes,Bal,HiBal 97,1,SGF22,F22S,1,Mode,Flip,LED,Pict,Video,TrRes 97,2,SGF22,J20,1,Mode,Flip,LED,Pict,Video +97,3,SGF22,CX10,1,Mode,Flip,LED,Pict,Video +97,4,SGF22,T28,1,Mode,Flip 61,0,EazyRC 98,0,Kyosho3,ASF,0 100,0,YuXiang,Std,0,Lock,Rate,Land,Manual,Flip,Mode,Pitch diff --git a/Multiprotocol/Multi.txt b/Multiprotocol/Multi.txt index 505dce7f..41b0471f 100644 --- a/Multiprotocol/Multi.txt +++ b/Multiprotocol/Multi.txt @@ -93,7 +93,7 @@ 94,Scorpio 95,BlueFly 96,BumbleB -97,SGF22,F22,F22S,J20 +97,SGF22,F22,F22S,J20,CX10,T28 98,Kyosho3 99,XK2,X4,P10 100,YuXiang diff --git a/Multiprotocol/Multi_Protos.ino b/Multiprotocol/Multi_Protos.ino index e439aa09..b7562552 100644 --- a/Multiprotocol/Multi_Protos.ino +++ b/Multiprotocol/Multi_Protos.ino @@ -192,7 +192,7 @@ const char STR_SUBTYPE_MOULDKG[] = "\x05""A4444""D4444""A664\0"; const char STR_SUBTYPE_KF606[] = "\x06""KF606\0""MIG320""ZCZ50\0"; const char STR_SUBTYPE_E129[] = "\x04""E129""C186"; const char STR_SUBTYPE_FX[] = "\x05""FX816""FX620""9630\0""Q560\0""QF012""BM26\0""A570\0"; -const char STR_SUBTYPE_SGF22[] = "\x04""F22\0""F22S""J20\0""CX10"; +const char STR_SUBTYPE_SGF22[] = "\x04""F22\0""F22S""J20\0""CX10""T28\0"; const char STR_SUBTYPE_JIABAILE[] = "\x04""Std\0""Gyro"; #define NO_SUBTYPE nullptr @@ -480,7 +480,7 @@ const mm_protocol_definition multi_protocols[] = { {PROTO_SCORPIO, STR_SCORPIO, NO_SUBTYPE, 0, OPTION_NONE, 0, 0, SW_CYRF, SCORPIO_init, SCORPIO_callback }, #endif #if defined(SGF22_NRF24L01_INO) - {PROTO_SGF22, STR_SGF22, STR_SUBTYPE_SGF22, 4, OPTION_NONE, 0, 0, SW_NRF, SGF22_init, SGF22_callback }, + {PROTO_SGF22, STR_SGF22, STR_SUBTYPE_SGF22, 5, OPTION_NONE, 0, 0, SW_NRF, SGF22_init, SGF22_callback }, #endif #if defined(SHENQI_NRF24L01_INO) {PROTO_SHENQI, STR_SHENQI, NO_SUBTYPE, 0, OPTION_NONE, 0, 0, SW_NRF, SHENQI_init, SHENQI_callback }, diff --git a/Multiprotocol/Multiprotocol.h b/Multiprotocol/Multiprotocol.h index 3a6c043f..a1f63080 100644 --- a/Multiprotocol/Multiprotocol.h +++ b/Multiprotocol/Multiprotocol.h @@ -19,7 +19,7 @@ #define VERSION_MAJOR 1 #define VERSION_MINOR 3 #define VERSION_REVISION 4 -#define VERSION_PATCH_LEVEL 64 +#define VERSION_PATCH_LEVEL 65 #define MODE_SERIAL 0 @@ -515,6 +515,7 @@ enum SGF22 SGF22_F22S = 1, SGF22_J20 = 2, SGF22_CX10 = 3, + SGF22_T28 = 4, }; enum JIABAILE { diff --git a/Multiprotocol/SGF22_nrf24l01.ino b/Multiprotocol/SGF22_nrf24l01.ino index 35b35603..d650bf47 100644 --- a/Multiprotocol/SGF22_nrf24l01.ino +++ b/Multiprotocol/SGF22_nrf24l01.ino @@ -25,10 +25,12 @@ Multiprotocol is distributed in the hope that it will be useful, #define SGF22_PAYLOAD_SIZE 12 #define SGF22_BIND_COUNT 50 #define SGF22_RF_NUM_CHANNELS 4 + #define SGF22_BIND_RF_CHANNEL 78 #define SGF22_F22S_BIND_RF_CHANNEL 10 #define SGF22_J20_BIND_RF_CHANNEL 28 #define SGF22_CX10_BIND_RF_CHANNEL 48 +#define SGF22_T28_BIND_RF_CHANNEL 28 //packet[8] #define SGF22_FLAG_3D 0x00 @@ -111,7 +113,7 @@ static void __attribute__((unused)) SGF22_send_packet() packet[10] = 0x42; // no fine tune packet[11] = 0x10; // no fine tune } - if(sub_protocol == SGF22_F22S) + if(sub_protocol == SGF22_F22S || sub_protocol == SGF22_T28) packet[0] += 6; else if (sub_protocol == SGF22_J20) packet[0] += 3; @@ -200,7 +202,7 @@ static void __attribute__((unused)) SGF22_RF_init() XN297_SetRXAddr((uint8_t*)"\xC7\x95\x3C\xBB\xA5", SGF22_PAYLOAD_SIZE); #endif - const uint8_t bind_chan[] = {SGF22_BIND_RF_CHANNEL, SGF22_F22S_BIND_RF_CHANNEL, SGF22_J20_BIND_RF_CHANNEL, SGF22_CX10_BIND_RF_CHANNEL}; + const uint8_t bind_chan[] = {SGF22_BIND_RF_CHANNEL, SGF22_F22S_BIND_RF_CHANNEL, SGF22_J20_BIND_RF_CHANNEL, SGF22_CX10_BIND_RF_CHANNEL, SGF22_T28_BIND_RF_CHANNEL}; XN297_RFChannel(bind_chan[sub_protocol]); // Set bind channel } diff --git a/Multiprotocol/_Config.h b/Multiprotocol/_Config.h index 4f8d65b3..cecd3cc4 100644 --- a/Multiprotocol/_Config.h +++ b/Multiprotocol/_Config.h @@ -845,10 +845,11 @@ const PPM_Parameters PPM_prot[14*NBR_BANKS]= { PROTO_SCORPIO NONE PROTO_SGF22 - SGF22 - F22S - J20 - CX10 + SGF22_F22 + SGF22_F22S + SGF22_J20 + SGF22_CX10 + SGF22_T28 PROTO_SHENQI NONE PROTO_SHENQI2 diff --git a/Protocols_Details.md b/Protocols_Details.md index 64cc8dd8..6d228aa9 100644 --- a/Protocols_Details.md +++ b/Protocols_Details.md @@ -143,7 +143,7 @@ CFlie|AIR|38|CFlie||||||||NRF24L01| [Redpine](Protocols_Details.md#Redpine---50)||50|FAST|SLOW|||||||NRF24L01|XN297 [Scanner](Protocols_Details.md#Scanner---54)||54|||||||||CC2500| [Scorpio](Protocols_Details.md#Scorpio---94)||94|||||||||CYRF6936| -[SGF22](Protocols_Details.md#SGF22---97)||97|F22|F22S|J20|CX10|||||NRF24L01|XN297 +[SGF22](Protocols_Details.md#SGF22---97)||97|F22|F22S|J20|CX10|T28||||NRF24L01|XN297 [Shenqi](Protocols_Details.md#Shenqi---19)||19|Shenqi||||||||NRF24L01|LT8900 [Shenqi2](Protocols_Details.md#Shenqi2---105)||105|Shenqi2||||||||NRF24L01|XN297 [Skyartec](Protocols_Details.md#Skyartec---68)||68|||||||||CC2500|CC2500 @@ -2393,6 +2393,9 @@ Mode -100% = Gyro off, 0% = Horizontal, 100% = Vertical. CH8 - Invert, CH10 - Fi ### Sub_protocol CX10 Model: Cheerson CX-10 with red PCB +### Sub_protocol T28 +Model: FMS T28 + **Only 2 IDs available**, use RX num to cycle through them. Mode -100% = Low, 0% = Medium, 100% = High