From 9354abe5fdc6aa73192227f427c49a39ef6bd411 Mon Sep 17 00:00:00 2001 From: pascallanger Date: Sun, 16 Aug 2026 11:30:22 +0200 Subject: [PATCH] SGF22/T28: Add features --- Lua_scripts/MultiChan.txt | 2 +- Multiprotocol/Multiprotocol.h | 2 +- Multiprotocol/SGF22_nrf24l01.ino | 8 +++++--- Protocols_Details.md | 12 +++++++++--- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/Lua_scripts/MultiChan.txt b/Lua_scripts/MultiChan.txt index 48fb47e7..7eeccbfc 100644 --- a/Lua_scripts/MultiChan.txt +++ b/Lua_scripts/MultiChan.txt @@ -232,7 +232,7 @@ 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 +97,4,SGF22,T28,1,Mode,Flip,LED,-,RTH,-,-,-,RTH_SET 61,0,EazyRC 98,0,Kyosho3,ASF,0 100,0,YuXiang,Std,0,Lock,Rate,Land,Manual,Flip,Mode,Pitch diff --git a/Multiprotocol/Multiprotocol.h b/Multiprotocol/Multiprotocol.h index a1f63080..b1101a44 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 65 +#define VERSION_PATCH_LEVEL 66 #define MODE_SERIAL 0 diff --git a/Multiprotocol/SGF22_nrf24l01.ino b/Multiprotocol/SGF22_nrf24l01.ino index d650bf47..29c8fba4 100644 --- a/Multiprotocol/SGF22_nrf24l01.ino +++ b/Multiprotocol/SGF22_nrf24l01.ino @@ -46,6 +46,7 @@ Multiprotocol is distributed in the hope that it will be useful, #define SGF22_FX922_FLAG_BALANCEHIGH 0x01 #define SGF22_FX922_FLAG_BALANCE 0x02 +#define SGF22_T18_RTH_SET 0x20 //packet[9] #define SGF22_FLAG_TRIMRESET 0x04 @@ -90,11 +91,12 @@ static void __attribute__((unused)) SGF22_send_packet() | GET_FLAG(CH7_SW, SGF22_FLAG_LIGHT) // push up throttle trim for light in the stock TX | GET_FLAG(CH9_SW, SGF22_FLAG_VIDEO) // push down throttle trim for video in the stock TX | GET_FLAG(CH11_SW, SGF22_FX922_FLAG_BALANCE) - | GET_FLAG(CH12_SW, SGF22_FX922_FLAG_BALANCEHIGH); + | GET_FLAG(CH12_SW, SGF22_FX922_FLAG_BALANCEHIGH) + | GET_FLAG(CH13_SW, SGF22_T18_RTH_SET); if(Channel_data[CH5] > CHANNEL_MAX_COMMAND) - packet[8] |= SGF22_FLAG_VERTICAL; // CH5 100%, vertical mode (torque) + packet[8] |= ( sub_protocol == SGF22_T28 ? SGF22_T28_FLAG_OPTIMIZED : SGF22_FLAG_VERTICAL); // CH5 100%, vertical mode (torque) else if(Channel_data[CH5] > CHANNEL_MIN_COMMAND ) - packet[8] |= ( sub_protocol == SGF22_J20 ? SGF22_J20_FLAG_HORIZONTAL : SGF22_FLAG_6G ); // CH5 0%, F22 & F22S - 6G mode, J20 - Horizontal mode + packet[8] |= ( sub_protocol == SGF22_J20 ? SGF22_J20_FLAG_HORIZONTAL : SGF22_FLAG_6G ); // CH5 0%, F22 & F22S - 6G mode, J20 - Horizontal mode } else //SGF22_CX10 114548 { diff --git a/Protocols_Details.md b/Protocols_Details.md index f46c4ac1..b303090e 100644 --- a/Protocols_Details.md +++ b/Protocols_Details.md @@ -2365,9 +2365,9 @@ ST TRIM: -100% Left, +100% Right, variable/shouldn't be needed? CH1 trim on stee ## SGF22 - *97* Autobind protocol -CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10|CH11|CH12 ----|---|---|---|---|---|---|---|---|---|---|--- -A|E|T|R|MODE|FLIP|LIGHT|PHOTO|VIDEO|TRIMRESET|BAL|BALHIG +CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10|CH11|CH12|CH13 +---|---|---|---|---|---|---|---|---|---|---|---|--- +A|E|T|R|MODE|FLIP|LIGHT|PHOTO|VIDEO|TRIMRESET|BAL|BALHIG|RTH_SET Telemetry is supported. The plane sends a battery status of good->empty which is visible in A1 (good=13.2V->empty=0V) and RSSI gets a dummy value of 100. @@ -2400,6 +2400,12 @@ Mode -100% = Low, 0% = Medium, 100% = High ### Sub_protocol T28 Model: FMS T28 +CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10|CH11|CH12|CH13 +---|---|---|---|---|---|---|---|---|---|---|---|--- +A|E|T|R|MODE|FLIP|LIGHT|-|RTH|-|-|-|RTH_SET + +Mode -100% = Gyro off, 0% = Stabilized, 100% = Optimized + ## Shenqi - *19* Autobind protocol