From 64ea7111ac43996daf699a5a5661b689a32afb7e Mon Sep 17 00:00:00 2001 From: pascallanger Date: Mon, 2 Sep 2024 18:14:25 +0200 Subject: [PATCH] SGF22: new F22S sub protocol --- Lua_scripts/MultiChan.txt | 5 +++-- Multiprotocol/Multi.txt | 2 +- Multiprotocol/Multi_Protos.ino | 13 +++++++++++-- Multiprotocol/Multiprotocol.h | 7 ++++++- Multiprotocol/SGF22_nrf24l01.ino | 17 ++++++++++------- Multiprotocol/_Config.h | 3 ++- Protocols_Details.md | 10 +++++++--- 7 files changed, 40 insertions(+), 17 deletions(-) diff --git a/Lua_scripts/MultiChan.txt b/Lua_scripts/MultiChan.txt index 79e82dbe2..ae8898113 100644 --- a/Lua_scripts/MultiChan.txt +++ b/Lua_scripts/MultiChan.txt @@ -217,6 +217,7 @@ 94,0,Scorpio 95,0,Bluefly,HP100,0,CH5,CH6,CH7,CH8 96,0,BumbleB -97,0,SGF22,Std,1,Mode,Flip,LED,Pict,Video,TrRes -61,1,EazyRC +97,0,SGF22,F22,1,Mode,Flip,LED,Pict,Video,TrRes +97,1,SGF22,F22S,1,Mode,Flip,LED,Pict,Video,TrRes +61,0,EazyRC 98,0,Kyosho3,ASF,0 diff --git a/Multiprotocol/Multi.txt b/Multiprotocol/Multi.txt index e28ef6541..fe010aaad 100644 --- a/Multiprotocol/Multi.txt +++ b/Multiprotocol/Multi.txt @@ -93,6 +93,6 @@ 94,Scorpio 95,BlueFly 96,BumbleB -97,SGF22 +97,SGF22,F22,F22S 98,Kyosho3 99,XK2 \ No newline at end of file diff --git a/Multiprotocol/Multi_Protos.ino b/Multiprotocol/Multi_Protos.ino index fecf26f93..c02fadf69 100644 --- a/Multiprotocol/Multi_Protos.ino +++ b/Multiprotocol/Multi_Protos.ino @@ -180,6 +180,7 @@ const char STR_SUBTYPE_MOULDKG[] = "\x06""Analog""Digit\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[] = "\x04""816\0""620\0""9630""Q560"; +const char STR_SUBTYPE_SGF22[] = "\x04""F22\0""F22S"; #define NO_SUBTYPE nullptr #ifdef SEND_CPPM @@ -454,7 +455,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, NO_SUBTYPE, 0, OPTION_NONE, 0, 0, SW_NRF, SGF22_init, SGF22_callback }, + {PROTO_SGF22, STR_SGF22, STR_SUBTYPE_SGF22, 2, 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 }, @@ -559,7 +560,10 @@ uint16_t PROTOLIST_callback() Serial_write(multi_protocols[option].protocol); //Protocol name for(uint8_t i=0;i. */ -// Compatible with SGF22 R11 +// Compatible with SGF22, ParkTen F22S #if defined(SGF22_NRF24L01_INO) @@ -20,11 +20,12 @@ Multiprotocol is distributed in the hope that it will be useful, //#define FORCE_SGF22_ORIGINAL_ID -#define SGF22_PACKET_PERIOD 11950 //10240 -#define SGF22_BIND_RF_CHANNEL 78 -#define SGF22_PAYLOAD_SIZE 12 -#define SGF22_BIND_COUNT 50 -#define SGF22_RF_NUM_CHANNELS 4 +#define SGF22_PACKET_PERIOD 11950 //10240 +#define SGF22_BIND_RF_CHANNEL 78 +#define SGF22_PAYLOAD_SIZE 12 +#define SGF22_BIND_COUNT 50 +#define SGF22_RF_NUM_CHANNELS 4 +#define SGF22_F22S_BIND_RF_CHANNEL 10 //packet[8] #define SGF22_FLAG_3D 0x00 @@ -72,6 +73,8 @@ static void __attribute__((unused)) SGF22_send_packet() packet[10] = 0x42; // no fine tune packet[11] = 0x10; // no fine tune } + if(sub_protocol == SGF22_F22S) + packet[0] += 6; packet[1] = packet_count; // sequence packet[2] = rx_tx_addr[2]; packet[3] = rx_tx_addr[3]; @@ -131,7 +134,7 @@ static void __attribute__((unused)) SGF22_RF_init() { XN297_Configure(XN297_CRCEN, XN297_SCRAMBLED, XN297_1M); XN297_SetTXAddr((uint8_t*)"\xC7\x95\x3C\xBB\xA5", 5); - XN297_RFChannel(SGF22_BIND_RF_CHANNEL); // Set bind channel + XN297_RFChannel(sub_protocol == SGF22_F22S ? SGF22_F22S_BIND_RF_CHANNEL : SGF22_BIND_RF_CHANNEL); // Set bind channel } uint16_t SGF22_callback() diff --git a/Multiprotocol/_Config.h b/Multiprotocol/_Config.h index 22d21868f..939a02370 100644 --- a/Multiprotocol/_Config.h +++ b/Multiprotocol/_Config.h @@ -815,7 +815,8 @@ const PPM_Parameters PPM_prot[14*NBR_BANKS]= { PROTO_SCORPIO NONE PROTO_SGF22 - NONE + SGF22 + F22S PROTO_SHENQI NONE PROTO_SKYARTEC diff --git a/Protocols_Details.md b/Protocols_Details.md index add43fb05..d843bba58 100644 --- a/Protocols_Details.md +++ b/Protocols_Details.md @@ -138,7 +138,7 @@ CFlie|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|SGF22||||||||NRF24L01|XN297 +[SGF22](Protocols_Details.md#SGF22---97)|97|F22|F22S|||||||NRF24L01|XN297 [Shenqi](Protocols_Details.md#Shenqi---19)|19|Shenqi||||||||NRF24L01|LT8900 [Skyartec](Protocols_Details.md#Skyartec---68)|68|||||||||CC2500|CC2500 [SLT](Protocols_Details.md#SLT---11)|11|SLT_V1|SLT_V2|Q100|Q200|MR100|V1_4CH|||NRF24L01|CC2500 @@ -2029,12 +2029,16 @@ A|E|T|R|FLIP|LIGHT|CALIB|HLESS|RTH|THR_CUT|ROTATE ## SGF22 - *97* Autobind protocol -Model: SGF22 - CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10 ---|---|---|---|---|---|---|---|---|--- A|E|T|R|MODE|FLIP|LIGHT|PHOTO|VIDEO|TRIMRESET +### Sub_protocol F22 +Model: SG F22 + +### Sub_protocol F22S +Model: ParkTen F22S + ## Shenqi - *19* Autobind protocol