From f515ba79af57033fdec11092df8d4112938fee64 Mon Sep 17 00:00:00 2001 From: Pascal Langer Date: Wed, 29 Aug 2018 17:29:50 +0200 Subject: [PATCH] Hubsan sub_protocol 501 features sub_protocol H501 Model H122D: add flip on ch13 and OSD on ch14 Model H123D: add flight modes on ch16 -> -100% Sport mode 1,0% Sport mode 2, +100% Acro --- Multiprotocol/Hubsan_a7105.ino | 22 +++++++++++++++++++++- Multiprotocol/Multiprotocol.h | 2 +- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Multiprotocol/Hubsan_a7105.ino b/Multiprotocol/Hubsan_a7105.ino index 5f94855..f017c3e 100644 --- a/Multiprotocol/Hubsan_a7105.ino +++ b/Multiprotocol/Hubsan_a7105.ino @@ -49,12 +49,19 @@ enum{ // flags going to packet[9] (H501S) FLAG_H501_VIDEO = 0x01, FLAG_H501_LED = 0x04, + FLAG_H122D_FLIP = 0x08, //H122D FLAG_H501_RTH = 0x20, FLAG_H501_HEADLESS1 = 0x40, FLAG_H501_GPS_HOLD = 0x80, }; - enum{ +enum{ + // flags going to packet[11] (H122D & H123D) + FLAG_H123D_FMODES = 0x03, //H123D 3 FMODES: Sport mode 1, Sport mode 2, Acro + FLAG_H122D_OSD = 0x20, //H122D OSD +}; + +enum{ // flags going to packet[13] (H501S) FLAG_H501_SNAPSHOT = 0x01, FLAG_H501_HEADLESS2 = 0x02, @@ -203,10 +210,23 @@ static void __attribute__((unused)) hubsan_build_packet() packet[9] = 0x02 | GET_FLAG(CH6_SW, FLAG_H501_LED) | GET_FLAG(CH8_SW, FLAG_H501_VIDEO) + | GET_FLAG(CH13_SW, FLAG_H122D_FLIP) | GET_FLAG(CH5_SW, FLAG_H501_RTH) | GET_FLAG(CH11_SW, FLAG_H501_GPS_HOLD) | GET_FLAG(CH9_SW, FLAG_H501_HEADLESS1); //packet[10]= 0x1A; + + //packet[11] content 0x00 is default + //H123D specific -> Flight modes => Does this needs to be a sub_protocol to work? + packet[11] = 0x41; // Sport mode 1 + if(Channel_data[CH16]>CHANNEL_MIN_COMMAND) + packet[11]++; // 0x42 Sport mode 2 + if(Channel_data[CH16]>CHANNEL_MAX_COMMAND) + packet[11]++; // 0x43 Acro + //H122D specific -> OSD => Does this needs to be a sub_protocol to work? + packet[11]|= 0x80 + | GET_FLAG(CH14_SW,FLAG_H122D_OSD); + packet[13] = GET_FLAG(CH10_SW, FLAG_H501_HEADLESS2) | GET_FLAG(CH12_SW, FLAG_H501_ALT_HOLD) | GET_FLAG(CH7_SW, FLAG_H501_SNAPSHOT); diff --git a/Multiprotocol/Multiprotocol.h b/Multiprotocol/Multiprotocol.h index 6255442..a06f69e 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 34 +#define VERSION_PATCH_LEVEL 35 //****************** // Protocols