mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-02-04 22:58:10 +00:00
New MT99xx subprotocol FY805
Protocol: MT99xx (number 17) Subprotocol: FY805 (number 4) Supports headless and flip. For flip I'm not sure of the flag since it was missing from the dumps. Untested protocol...
This commit is contained in:
parent
c2577df6f7
commit
3904c36a6e
@ -20,6 +20,7 @@
|
|||||||
#include "iface_nrf24l01.h"
|
#include "iface_nrf24l01.h"
|
||||||
|
|
||||||
#define MT99XX_BIND_COUNT 928
|
#define MT99XX_BIND_COUNT 928
|
||||||
|
#define MT99XX_PACKET_PERIOD_FY805 2460
|
||||||
#define MT99XX_PACKET_PERIOD_MT 2625
|
#define MT99XX_PACKET_PERIOD_MT 2625
|
||||||
#define MT99XX_PACKET_PERIOD_YZ 3125
|
#define MT99XX_PACKET_PERIOD_YZ 3125
|
||||||
#define MT99XX_INITIAL_WAIT 500
|
#define MT99XX_INITIAL_WAIT 500
|
||||||
@ -47,6 +48,11 @@ enum{
|
|||||||
FLAG_LS_FLIP = 0x80,
|
FLAG_LS_FLIP = 0x80,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum{
|
||||||
|
// flags going to packet[7] (FY805)
|
||||||
|
FLAG_FY805_HEADLESS= 0x10,
|
||||||
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
MT99XX_INIT = 0,
|
MT99XX_INIT = 0,
|
||||||
MT99XX_BIND,
|
MT99XX_BIND,
|
||||||
@ -89,6 +95,17 @@ static void __attribute__((unused)) MT99XX_send_packet()
|
|||||||
packet[6] |= 0x40 | FLAG_MT_RATE2
|
packet[6] |= 0x40 | FLAG_MT_RATE2
|
||||||
| GET_FLAG( Servo_AUX3, FLAG_MT_SNAPSHOT )
|
| GET_FLAG( Servo_AUX3, FLAG_MT_SNAPSHOT )
|
||||||
| GET_FLAG( Servo_AUX4, FLAG_MT_VIDEO ); // max rate on MT99xx
|
| GET_FLAG( Servo_AUX4, FLAG_MT_VIDEO ); // max rate on MT99xx
|
||||||
|
else
|
||||||
|
if(sub_protocol==FY805)
|
||||||
|
{
|
||||||
|
packet[6]=0x20;
|
||||||
|
//Rate 0x01?
|
||||||
|
//Flip ?
|
||||||
|
packet[7]=0x01
|
||||||
|
|GET_FLAG( Servo_AUX1, FLAG_MT_FLIP )
|
||||||
|
|GET_FLAG( Servo_AUX5, FLAG_FY805_HEADLESS ); //HEADLESS
|
||||||
|
checksum_offset=0;
|
||||||
|
}
|
||||||
else //LS
|
else //LS
|
||||||
{
|
{
|
||||||
packet[6] |= FLAG_LS_RATE // max rate
|
packet[6] |= FLAG_LS_RATE // max rate
|
||||||
@ -134,6 +151,9 @@ static void __attribute__((unused)) MT99XX_send_packet()
|
|||||||
|
|
||||||
if(sub_protocol == LS)
|
if(sub_protocol == LS)
|
||||||
NRF24L01_WriteReg(NRF24L01_05_RF_CH, 0x2D); // LS always transmits on the same channel
|
NRF24L01_WriteReg(NRF24L01_05_RF_CH, 0x2D); // LS always transmits on the same channel
|
||||||
|
else
|
||||||
|
if(sub_protocol==FY805)
|
||||||
|
NRF24L01_WriteReg(NRF24L01_05_RF_CH, 0x4B); // FY805 always transmits on the same channel
|
||||||
else
|
else
|
||||||
NRF24L01_WriteReg(NRF24L01_05_RF_CH, hopping_frequency[hopping_frequency_no] + channel_offset);
|
NRF24L01_WriteReg(NRF24L01_05_RF_CH, hopping_frequency[hopping_frequency_no] + channel_offset);
|
||||||
NRF24L01_WriteReg(NRF24L01_07_STATUS, 0x70);
|
NRF24L01_WriteReg(NRF24L01_07_STATUS, 0x70);
|
||||||
@ -183,6 +203,13 @@ static void __attribute__((unused)) MT99XX_initialize_txid()
|
|||||||
rx_tx_addr[1] = 0x00;
|
rx_tx_addr[1] = 0x00;
|
||||||
rx_tx_addr[2] = 0x00;
|
rx_tx_addr[2] = 0x00;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
if(sub_protocol == FY805)
|
||||||
|
{
|
||||||
|
rx_tx_addr[0] = 0x81; // test (SB id)
|
||||||
|
rx_tx_addr[1] = 0x0F;
|
||||||
|
rx_tx_addr[2] = 0x00;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
if(sub_protocol == LS)
|
if(sub_protocol == LS)
|
||||||
rx_tx_addr[0] = 0xCC;
|
rx_tx_addr[0] = 0xCC;
|
||||||
@ -208,6 +235,9 @@ uint16_t MT99XX_callback()
|
|||||||
{
|
{
|
||||||
if(sub_protocol == LS)
|
if(sub_protocol == LS)
|
||||||
NRF24L01_WriteReg(NRF24L01_05_RF_CH, 0x2D); // LS always transmits on the same channel
|
NRF24L01_WriteReg(NRF24L01_05_RF_CH, 0x2D); // LS always transmits on the same channel
|
||||||
|
else
|
||||||
|
if(sub_protocol==FY805)
|
||||||
|
NRF24L01_WriteReg(NRF24L01_05_RF_CH, 0x4B); // FY805 always transmits on the same channel
|
||||||
else
|
else
|
||||||
NRF24L01_WriteReg(NRF24L01_05_RF_CH, hopping_frequency[hopping_frequency_no]);
|
NRF24L01_WriteReg(NRF24L01_05_RF_CH, hopping_frequency[hopping_frequency_no]);
|
||||||
NRF24L01_WriteReg(NRF24L01_07_STATUS, 0x70);
|
NRF24L01_WriteReg(NRF24L01_07_STATUS, 0x70);
|
||||||
@ -256,6 +286,12 @@ uint16_t initMT99XX(void)
|
|||||||
packet[2] = 0x05;
|
packet[2] = 0x05;
|
||||||
packet[3] = 0x11;
|
packet[3] = 0x11;
|
||||||
break;
|
break;
|
||||||
|
case FY805:
|
||||||
|
packet_period = MT99XX_PACKET_PERIOD_FY805;
|
||||||
|
packet[1] = 0x15;
|
||||||
|
packet[2] = 0x12;
|
||||||
|
packet[3] = 0x17;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
packet[4] = rx_tx_addr[0];
|
packet[4] = rx_tx_addr[0];
|
||||||
packet[5] = rx_tx_addr[1];
|
packet[5] = rx_tx_addr[1];
|
||||||
|
@ -132,7 +132,8 @@ enum MT99XX
|
|||||||
MT99 = 0,
|
MT99 = 0,
|
||||||
H7 = 1,
|
H7 = 1,
|
||||||
YZ = 2,
|
YZ = 2,
|
||||||
LS = 3
|
LS = 3,
|
||||||
|
FY805 = 4
|
||||||
};
|
};
|
||||||
enum MJXQ
|
enum MJXQ
|
||||||
{
|
{
|
||||||
@ -470,6 +471,7 @@ Serial: 100000 Baud 8e2 _ xxxx xxxx p --
|
|||||||
H7 1
|
H7 1
|
||||||
YZ 2
|
YZ 2
|
||||||
LS 3
|
LS 3
|
||||||
|
FY805 4
|
||||||
sub_protocol==MJXQ
|
sub_protocol==MJXQ
|
||||||
WLH08 0
|
WLH08 0
|
||||||
X600 1
|
X600 1
|
||||||
|
@ -251,6 +251,7 @@ const PPM_Parameters PPM_prot[15]= {
|
|||||||
H7
|
H7
|
||||||
YZ
|
YZ
|
||||||
LS
|
LS
|
||||||
|
FY805
|
||||||
MODE_MJXQ
|
MODE_MJXQ
|
||||||
WLH08
|
WLH08
|
||||||
X600
|
X600
|
||||||
|
Loading…
x
Reference in New Issue
Block a user