SGF22/T28 new protocol

This commit is contained in:
pascallanger
2026-08-14 14:19:30 +02:00
parent 0f8aceb79f
commit 1fa5452c89
7 changed files with 20 additions and 11 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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 },

View File

@@ -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
{

View File

@@ -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
}

View File

@@ -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

View File

@@ -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