From 19164521e47a1448063fe680516d885f2001c479 Mon Sep 17 00:00:00 2001 From: Pascal Langer Date: Fri, 31 Jul 2020 10:42:10 +0200 Subject: [PATCH] Flyzone protocol: 8 channels support --- Multiprotocol/A7105_SPI.ino | 4 ++++ Multiprotocol/Flyzone_a7105.ino | 8 +++++++- Multiprotocol/Multi.txt | 2 +- Multiprotocol/Multi_Names.ino | 6 +++--- Multiprotocol/Multiprotocol.h | 11 ++++++++++- 5 files changed, 25 insertions(+), 6 deletions(-) diff --git a/Multiprotocol/A7105_SPI.ino b/Multiprotocol/A7105_SPI.ino index fe76637..3399513 100644 --- a/Multiprotocol/A7105_SPI.ino +++ b/Multiprotocol/A7105_SPI.ino @@ -383,6 +383,10 @@ void A7105_Init(void) if(i==0x20) val=0x1E; } #endif + #ifdef FLYZONE_A7105_INO + if(protocol==PROTO_FLYZONE && sub_protocol==FLYZONE_8CH) + if(i==0x03) val=0x0A; + #endif if( val != 0xFF) A7105_WriteReg(i, val); } diff --git a/Multiprotocol/Flyzone_a7105.ino b/Multiprotocol/Flyzone_a7105.ino index 6accb00..4a9714e 100644 --- a/Multiprotocol/Flyzone_a7105.ino +++ b/Multiprotocol/Flyzone_a7105.ino @@ -33,6 +33,12 @@ static void __attribute__((unused)) flyzone_build_packet() packet[5] = convert_channel_8b(THROTTLE); //00..FF packet[6] = convert_channel_8b(RUDDER); //00..80..FF packet[7] = convert_channel_8b(CH5); //00..80..FF + if(sub_protocol == FLYZONE_8CH) + { + packet[8] = convert_channel_8b(CH6); //00..80..FF + packet[9] = convert_channel_8b(CH7); //00..80..FF + packet[10] = convert_channel_8b(CH8); //00..80..FF + } } uint16_t ReadFlyzone() @@ -59,7 +65,7 @@ uint16_t ReadFlyzone() telemetry_set_input_sync(20*1500); #endif flyzone_build_packet(); - A7105_WriteData(8, hopping_frequency[0]); + A7105_WriteData(sub_protocol?11:8, hopping_frequency[0]); A7105_SetPower(); } else diff --git a/Multiprotocol/Multi.txt b/Multiprotocol/Multi.txt index 803e6e9..ab5ffb9 100644 --- a/Multiprotocol/Multi.txt +++ b/Multiprotocol/Multi.txt @@ -50,7 +50,7 @@ 50,Redpine,Fast,Slow 51,Potensic,A20 52,ZSX,280 -53,Flyzone,FZ-410 +53,Flyzone,5ch,8ch 54,Scanner 55,Frsky_RX,RX,CloneTX 56,AFHDS2A_RX diff --git a/Multiprotocol/Multi_Names.ino b/Multiprotocol/Multi_Names.ino index b5905fe..9cce375 100644 --- a/Multiprotocol/Multi_Names.ino +++ b/Multiprotocol/Multi_Names.ino @@ -125,7 +125,7 @@ const char STR_SUBTYPE_GD00X[] = "\x05""GD_V1""GD_V2"; const char STR_SUBTYPE_REDPINE[] = "\x04""Fast""Slow"; const char STR_SUBTYPE_POTENSIC[] = "\x03""A20"; const char STR_SUBTYPE_ZSX[] = "\x07""280JJRC"; -const char STR_SUBTYPE_FLYZONE[] = "\x05""FZ410"; +const char STR_SUBTYPE_FLYZONE[] = "\x03""5ch""8ch"; const char STR_SUBTYPE_FX816[] = "\x03""P38"; const char STR_SUBTYPE_XN297DUMP[] = "\x07""250Kbps""1Mbps\0 ""2Mbps\0 ""Auto\0 ""NRF\0 "; const char STR_SUBTYPE_ESKY150[] = "\x03""4ch""7ch"; @@ -140,7 +140,7 @@ const char STR_SUBTYPE_FRSKYL[] = "\x08""LR12\0 ""LR12 6ch"; const char STR_SUBTYPE_WFLY[] = "\x06""WFR0xS"; const char STR_SUBTYPE_HOTT[] = "\x07""Sync\0 ""No_Sync"; const char STR_SUBTYPE_PELIKAN[] = "\x04""Pro\0""Lite"; -const char STR_SUBTYPE_V761[] = "\x03""3CH""4CH"; +const char STR_SUBTYPE_V761[] = "\x03""3ch""4ch"; const char STR_SUBTYPE_RLINK[] = "\x07""Surface""Air\0 "; enum @@ -225,7 +225,7 @@ const mm_protocol_definition multi_protocols[] = { {PROTO_AFHDS2A_RX, STR_AFHDS2A_RX,0, NO_SUBTYPE, OPTION_NONE }, #endif #if defined(FLYZONE_A7105_INO) - {PROTO_FLYZONE, STR_FLYZONE, 1, STR_SUBTYPE_FLYZONE, OPTION_NONE }, + {PROTO_FLYZONE, STR_FLYZONE, 2, STR_SUBTYPE_FLYZONE, OPTION_NONE }, #endif #if defined(FQ777_NRF24L01_INO) {PROTO_FQ777, STR_FQ777, 0, NO_SUBTYPE, OPTION_NONE }, diff --git a/Multiprotocol/Multiprotocol.h b/Multiprotocol/Multiprotocol.h index 255a0b2..381e501 100644 --- a/Multiprotocol/Multiprotocol.h +++ b/Multiprotocol/Multiprotocol.h @@ -19,7 +19,7 @@ #define VERSION_MAJOR 1 #define VERSION_MINOR 3 #define VERSION_REVISION 1 -#define VERSION_PATCH_LEVEL 47 +#define VERSION_PATCH_LEVEL 48 //****************** // Protocols @@ -390,6 +390,12 @@ enum V761 V761_4CH = 1, }; +enum FLYZONE +{ + FLYZONE_5CH = 0, + FLYZONE_8CH = 1, +}; + #define NONE 0 #define P_HIGH 1 #define P_LOW 0 @@ -993,6 +999,9 @@ Serial: 100000 Baud 8e2 _ xxxx xxxx p -- sub_protocol==V761 V761_3CH 0 V761_4CH 1 + sub_protocol==FLYZONE + FLYZONE_5CH 0 + FLYZONE_8CH 1 Power value => 0x80 0=High/1=Low Stream[3] = option_protocol;