From 27dc02fdec464c703acb5a034d1cdc7424bd8d39 Mon Sep 17 00:00:00 2001 From: Pascal Langer Date: Mon, 10 Sep 2018 08:11:56 +0200 Subject: [PATCH] SLT sub protocol Q100 CH9 FMODE CH10 FLIP CH13 Gyro calib --- Multiprotocol/Multi.txt | 2 +- Multiprotocol/Multiprotocol.h | 12 +++++++----- Multiprotocol/SLT_nrf24l01.ino | 16 ++++++++-------- Multiprotocol/_Config.h | 1 + 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/Multiprotocol/Multi.txt b/Multiprotocol/Multi.txt index 3f10f69..f6ae1fe 100644 --- a/Multiprotocol/Multi.txt +++ b/Multiprotocol/Multi.txt @@ -8,7 +8,7 @@ 8,YD717,YD717,SKYWLKR,SYMAX4,XINXUN,NIHUI 9,KN,WLTOYS,FEILUN 10,SymaX,SYMAX,SYMAX5C -11,SLT,SLT_V1,SLT_V2,Q200,MR100 +11,SLT,SLT_V1,SLT_V2,Q100,Q200,MR100 12,CX10,GREEN,BLUE,DM007,---,J3015_1,J3015_2,MK33041 13,CG023,CG023,YD829 14,Bayang,Bayang,H8S3D,X16_AH,IRDRONE diff --git a/Multiprotocol/Multiprotocol.h b/Multiprotocol/Multiprotocol.h index 015eb0a..f3261ea 100644 --- a/Multiprotocol/Multiprotocol.h +++ b/Multiprotocol/Multiprotocol.h @@ -19,7 +19,7 @@ #define VERSION_MAJOR 1 #define VERSION_MINOR 2 #define VERSION_REVISION 0 -#define VERSION_PATCH_LEVEL 44 +#define VERSION_PATCH_LEVEL 45 //****************** // Protocols @@ -126,8 +126,9 @@ enum SLT { SLT_V1 = 0, SLT_V2 = 1, - Q200 = 2, - MR100 = 3, + Q100 = 2, + Q200 = 3, + MR100 = 4, }; enum CX10 { @@ -703,8 +704,9 @@ Serial: 100000 Baud 8e2 _ xxxx xxxx p -- sub_protocol==SLT SLT_V1 0 SLT_V2 1 - Q200 2 - MR100 3 + Q100 2 + Q200 3 + MR100 4 Power value => 0x80 0=High/1=Low Stream[3] = option_protocol; diff --git a/Multiprotocol/SLT_nrf24l01.ino b/Multiprotocol/SLT_nrf24l01.ino index 396f02b..7cacbc1 100644 --- a/Multiprotocol/SLT_nrf24l01.ino +++ b/Multiprotocol/SLT_nrf24l01.ino @@ -35,7 +35,7 @@ enum{ }; enum{ - // flags going to packet[6] (MR100) + // flags going to packet[6] (MR100 & Q100) FLAG_MR100_FMODE = 0x20, FLAG_MR100_FLIP = 0x04, FLAG_MR100_VIDEO = 0x02, @@ -156,19 +156,19 @@ static void __attribute__((unused)) SLT_build_packet() |GET_FLAG(CH10_SW, FLAG_Q200_FLIP) |GET_FLAG(CH11_SW, FLAG_Q200_VIDON) |GET_FLAG(CH12_SW, FLAG_Q200_VIDOFF); - if(sub_protocol==MR100) + else if(sub_protocol==MR100 || sub_protocol==Q100) packet[6] = GET_FLAG(CH9_SW , FLAG_MR100_FMODE) |GET_FLAG(CH10_SW, FLAG_MR100_FLIP) - |GET_FLAG(CH11_SW, FLAG_MR100_VIDEO) - |GET_FLAG(CH12_SW, FLAG_MR100_PICTURE); + |GET_FLAG(CH11_SW, FLAG_MR100_VIDEO) // Does not exist on the Q100 but... + |GET_FLAG(CH12_SW, FLAG_MR100_PICTURE); // Does not exist on the Q100 but... packet[7]=convert_channel_8b(CH7); packet[8]=convert_channel_8b(CH8); - packet[9]=0xAA; //normal mode for Q200, unknown for V2 - packet[10]=0x00; //normal mode for Q200, unknown for V2 - if(sub_protocol==Q200 && CH13_SW) + packet[9]=0xAA; //normal mode for Q100/Q200, unknown for V2/MR100 + packet[10]=0x00; //normal mode for Q100/Q200, unknown for V2/MR100 + if((sub_protocol==Q100 || sub_protocol==Q200) && CH13_SW) {//Calibrate packet[9]=0x77; //enter calibration - if(calib_counter>=20 && calib_counter<=23) // 3 packets + if(calib_counter>=20 && calib_counter<=25) // 7 packets for Q100 / 3 packets for Q200 packet[10]=0x20; //launch calibration calib_counter++; if(calib_counter>250) calib_counter=250; diff --git a/Multiprotocol/_Config.h b/Multiprotocol/_Config.h index 28d546c..75f6e3c 100644 --- a/Multiprotocol/_Config.h +++ b/Multiprotocol/_Config.h @@ -565,6 +565,7 @@ const PPM_Parameters PPM_prot[14*NBR_BANKS]= { PROTO_SLT SLT_V1 SLT_V2 + Q100 Q200 MR100 */