diff --git a/Multiprotocol/FX816_nrf24l01.ino b/Multiprotocol/FX816_nrf24l01.ino
new file mode 100644
index 0000000..1fc4f4c
--- /dev/null
+++ b/Multiprotocol/FX816_nrf24l01.ino
@@ -0,0 +1,113 @@
+/*
+ This project is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+Multiprotocol is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Multiprotocol. If not, see .
+ */
+// Compatible with FEI XIONG P38 plane.
+
+#if defined(FX816_NRF24L01_INO)
+
+#include "iface_xn297l.h"
+
+#define FX816_INITIAL_WAIT 500
+#define FX816_PACKET_PERIOD 10000
+#define FX816_RF_BIND_CHANNEL 0x28 //40
+#define FX816_RF_NUM_CHANNELS 4
+#define FX816_PAYLOAD_SIZE 6
+#define FX816_BIND_COUNT 300 //3sec
+
+static void __attribute__((unused)) FX816_send_packet()
+{
+ packet[0] = IS_BIND_IN_PROGRESS?0x55:0xAA;
+ packet[1] = rx_tx_addr[0];
+ packet[2] = rx_tx_addr[1];
+ uint8_t val=convert_channel_8b(AILERON);
+ #define FX816_SWITCH 20
+ if(val>127+FX816_SWITCH)
+ packet[3] = 1;
+ else if(val<127-FX816_SWITCH)
+ packet[3] = 2;
+ else
+ packet[3] = 0;
+ packet[4] = convert_channel_16b_limit(THROTTLE,0,100);
+ val=0;
+ for(uint8_t i=0;iCC2500
PROTO_AFHDS2A_RX= 56, // =>A7105
PROTO_HOTT = 57, // =>CC2500
+ PROTO_FX816 = 58, // =>NRF24L01
PROTO_XN297DUMP = 63, // =>NRF24L01
};
@@ -671,6 +672,7 @@ Serial: 100000 Baud 8e2 _ xxxx xxxx p --
FRSKY_RX 55
AFHDS2A_RX 56
HOTT 57
+ FX816 58
BindBit=> 0x80 1=Bind/0=No
AutoBindBit=> 0x40 1=Yes /0=No
RangeCheck=> 0x20 1=Yes /0=No
diff --git a/Multiprotocol/Multiprotocol.ino b/Multiprotocol/Multiprotocol.ino
index 2dce2f9..e9ba01c 100644
--- a/Multiprotocol/Multiprotocol.ino
+++ b/Multiprotocol/Multiprotocol.ino
@@ -1415,6 +1415,12 @@ static void protocol_init()
remote_callback = ZSX_callback;
break;
#endif
+ #if defined(FX816_NRF24L01_INO)
+ case PROTO_FX816:
+ next_callback=initFX816();
+ remote_callback = FX816_callback;
+ break;
+ #endif
#if defined(XN297DUMP_NRF24L01_INO)
case PROTO_XN297DUMP:
next_callback=initXN297Dump();
diff --git a/Multiprotocol/Validate.h b/Multiprotocol/Validate.h
index 4dae8e2..01be5fe 100644
--- a/Multiprotocol/Validate.h
+++ b/Multiprotocol/Validate.h
@@ -218,6 +218,7 @@
#undef MT99XX_NRF24L01_INO
#undef MJXQ_NRF24L01_INO
#undef SHENQI_NRF24L01_INO
+ #undef FX816_NRF24L01_INO
#undef FY326_NRF24L01_INO
#undef FQ777_NRF24L01_INO
#undef ASSAN_NRF24L01_INO
diff --git a/Multiprotocol/_Config.h b/Multiprotocol/_Config.h
index 359cfc1..d8835f1 100644
--- a/Multiprotocol/_Config.h
+++ b/Multiprotocol/_Config.h
@@ -197,6 +197,7 @@
#define ESKY_NRF24L01_INO
#define ESKY150_NRF24L01_INO
#define FQ777_NRF24L01_INO
+#define FX816_NRF24L01_INO
#define FY326_NRF24L01_INO
#define GD00X_NRF24L01_INO
#define GW008_NRF24L01_INO
@@ -564,6 +565,8 @@ const PPM_Parameters PPM_prot[14*NBR_BANKS]= {
EU_8
PROTO_FRSKY_RX
NONE
+ PROTO_FX816
+ NONE
PROTO_FY326
FY326
FY319
diff --git a/Protocols_Details.md b/Protocols_Details.md
index c859a38..5f3e405 100644
--- a/Protocols_Details.md
+++ b/Protocols_Details.md
@@ -91,6 +91,7 @@ CFlie|38|CFlie||||||||NRF24L01|
[FrskyV](Protocols_Details.md#FRSKYV---25)|25|FrskyV||||||||CC2500|
[FrskyX](Protocols_Details.md#FRSKYX---15)|15|CH_16|CH_8|EU_16|EU_8|||||CC2500|
[FrskyX_RX](Protocols_Details.md#FRSKYX_RX---55)|55|FCC|EU_LBT|||||CC2500|
+[FX816](Protocols_Details.md#FX816---58)|28|FX816|P38|||||||NRF24L01|
[FY326](Protocols_Details.md#FY326---20)|20|FY326|FY319|||||||NRF24L01|
[GD00X](Protocols_Details.md#GD00X---47)|47|GD_V1*|GD_V2*|||||||NRF24L01|
[GW008](Protocols_Details.md#GW008---32)|32|GW008||||||||NRF24L01|XN297
@@ -834,6 +835,15 @@ A|E|T|R|FMODE|AUX6|AUX7
FMODE and AUX7 have 4 positions: -100%..-50%=>0, -50%..5%=>1, 5%..50%=>2, 50%..100%=>3
+## FX816 - *58*
+Model: FEI XIONG FX816 P38
+
+Only 8 TX IDs available
+
+CH1|CH2|CH3|CH4
+---|---|---|---
+A|-|T|-
+
## FY326 - *20*
### Sub_protocol FY326 - *0*