diff --git a/Multiprotocol/Multiprotocol.h b/Multiprotocol/Multiprotocol.h
new file mode 100644
index 0000000..37a8e36
--- /dev/null
+++ b/Multiprotocol/Multiprotocol.h
@@ -0,0 +1,487 @@
+/*
+ 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 .
+ */
+
+// Check selected board type
+#if not defined(ARDUINO_AVR_PRO) && not defined(ARDUINO_AVR_MINI)
+ #error You must select the board type "Arduino Pro or Pro Mini" or "Arduino Mini"
+#endif
+#if F_CPU != 16000000L || not defined(__AVR_ATmega328P__)
+ #error You must select the processor type "ATmega328(5V, 16MHz)"
+#endif
+
+//******************
+// Protocols
+//******************
+enum PROTOCOLS
+{
+ MODE_SERIAL = 0, // Serial commands
+ MODE_FLYSKY = 1, // =>A7105
+ MODE_HUBSAN = 2, // =>A7105
+ MODE_FRSKY = 3, // =>CC2500
+ MODE_HISKY = 4, // =>NRF24L01
+ MODE_V2X2 = 5, // =>NRF24L01
+ MODE_DSM2 = 6, // =>CYRF6936
+ MODE_DEVO =7, // =>CYRF6936
+ MODE_YD717 = 8, // =>NRF24L01
+ MODE_KN = 9, // =>NRF24L01
+ MODE_SYMAX = 10, // =>NRF24L01
+ MODE_SLT = 11, // =>NRF24L01
+ MODE_CX10 = 12, // =>NRF24L01
+ MODE_CG023 = 13, // =>NRF24L01
+ MODE_BAYANG = 14, // =>NRF24L01
+ MODE_FRSKYX = 15, // =>CC2500
+ MODE_ESKY = 16, // =>NRF24L01
+ MODE_MT99XX=17, // =>NRF24L01
+ MODE_MJXQ=18, // =>NRF24L01
+ MODE_SHENQI=19 // =>NRF24L01
+};
+
+enum Flysky
+{
+ Flysky=0,
+ V9X9=1,
+ V6X6=2,
+ V912=3
+};
+enum Hisky
+{
+ Hisky=0,
+ HK310=1
+};
+enum DSM2{
+ DSM2=0,
+ DSMX=1
+};
+enum YD717
+{
+ YD717=0,
+ SKYWLKR=1,
+ SYMAX4=2,
+ XINXUN=3,
+ NIHUI=4
+};
+enum KN
+{
+ WLTOYS=0,
+ FEILUN=1
+};
+enum SYMAX
+{
+ SYMAX=0,
+ SYMAX5C=1
+};
+enum CX10
+{
+ CX10_GREEN = 0,
+ CX10_BLUE=1, // also compatible with CX10-A, CX12
+ DM007=2,
+ Q282=3,
+ JC3015_1=4,
+ JC3015_2=5,
+ MK33041=6,
+ Q242=7
+};
+enum CG023
+{
+ CG023 = 0,
+ YD829 = 1,
+ H8_3D = 2
+};
+enum MT99XX
+{
+ MT99 = 0,
+ H7 = 1,
+ YZ = 2
+};
+enum MJXQ
+{
+ WLH08 = 0,
+ X600 = 1,
+ X800 = 2,
+ H26D = 3
+};
+
+#define NONE 0
+#define P_HIGH 1
+#define P_LOW 0
+#define AUTOBIND 1
+#define NO_AUTOBIND 0
+
+struct PPM_Parameters
+{
+ uint8_t protocol : 5;
+ uint8_t sub_proto : 3;
+ uint8_t rx_num : 4;
+ uint8_t power : 1;
+ uint8_t autobind : 1;
+ uint8_t option;
+};
+
+//*******************
+//*** Pinouts ***
+//*******************
+//#define BIND_pin 13
+#define LED_pin 13 //Promini original led on B5
+//
+#define PPM_pin 3 //PPM -D3
+#define SDI_pin 5 //SDIO-D5
+#define SCLK_pin 4 //SCK-D4
+#define CS_pin 2 //CS-D2
+#define SDO_pin 6 //D6
+//
+#define CTRL1 1 //C1 (A1)
+#define CTRL2 2 //C2 (A2)
+//
+#define CTRL1_on PORTC |= _BV(1)
+#define CTRL1_off PORTC &= ~_BV(1)
+//
+#define CTRL2_on PORTC |= _BV(2)
+#define CTRL2_off PORTC &= ~_BV(2)
+//
+#define CS_on PORTD |= _BV(2) //D2
+#define CS_off PORTD &= ~_BV(2) //D2
+//
+#define SCK_on PORTD |= _BV(4) //D4
+#define SCK_off PORTD &= ~_BV(4) //D4
+//
+#define SDI_on PORTD |= _BV(5) //D5
+#define SDI_off PORTD &= ~_BV(5) //D5
+
+#define SDI_1 (PIND & (1< Reserved 0
+ Flysky 1
+ Hubsan 2
+ Frsky 3
+ Hisky 4
+ V2x2 5
+ DSM2 6
+ Devo 7
+ YD717 8
+ KN 9
+ SymaX 10
+ SLT 11
+ CX10 12
+ CG023 13
+ Bayang 14
+ FrskyX 15
+ ESky 16
+ MT99XX 17
+ MJXQ 18
+ SHENQI 19
+ BindBit=> 0x80 1=Bind/0=No
+ AutoBindBit=> 0x40 1=Yes /0=No
+ RangeCheck=> 0x20 1=Yes /0=No
+ Stream[2] = RxNum | Power | Type;
+ RxNum value is 0..15 (bits 0..3)
+ Type is 0..7 <<4 (bit 4..6)
+ sub_protocol==Flysky
+ Flysky 0
+ V9x9 1
+ V6x6 2
+ V912 3
+ sub_protocol==Hisky
+ Hisky 0
+ HK310 1
+ sub_protocol==DSM2
+ DSM2 0
+ DSMX 1
+ sub_protocol==YD717
+ YD717 0
+ SKYWLKR 1
+ SYMAX4 2
+ XINXUN 3
+ NIHUI 4
+ sub_protocol==KN
+ WLTOYS 0
+ FEILUN 1
+ sub_protocol==SYMAX
+ SYMAX 0
+ SYMAX5C 1
+ sub_protocol==CX10
+ CX10_GREEN 0
+ CX10_BLUE 1 // also compatible with CX10-A, CX12
+ DM007 2
+ Q282 3
+ JC3015_1 4
+ JC3015_2 5
+ MK33041 6
+ Q242 7
+ sub_protocol==CG023
+ CG023 0
+ YD829 1
+ H8_3D 2
+ sub_protocol==MT99XX
+ MT99 0
+ H7 1
+ YZ 2
+ sub_protocol==MJXQ
+ WLH08 0
+ X600 1
+ X800 2
+ H26D 3
+ Power value => 0x80 0=High/1=Low
+ Stream[3] = option_protocol;
+ option_protocol value is -127..127
+ Stream[4] to [25] = Channels
+ 16 Channels on 11 bits (0..2047)
+ 0 -125%
+ 204 -100%
+ 1024 0%
+ 1843 +100%
+ 2047 +125%
+ Channels bits are concatenated to fit in 22 bytes like in SBUS protocol
+*/
+
\ No newline at end of file