From d2886432b7becdb5bfe66692b396f9c6c61d7de6 Mon Sep 17 00:00:00 2001 From: pascallanger Date: Fri, 9 Dec 2016 16:50:56 +0100 Subject: [PATCH] Bayang: change A1 and A2 back to maximum resolution --- Multiprotocol/Bayang_nrf24l01.ino | 4 +-- Multiprotocol/MJXQ_nrf24l01.ino | 46 ++++++++++++++++++++++++++----- 2 files changed, 41 insertions(+), 9 deletions(-) diff --git a/Multiprotocol/Bayang_nrf24l01.ino b/Multiprotocol/Bayang_nrf24l01.ino index 00446ae..e9206a8 100644 --- a/Multiprotocol/Bayang_nrf24l01.ino +++ b/Multiprotocol/Bayang_nrf24l01.ino @@ -146,9 +146,9 @@ static void __attribute__((unused)) check_rx(void) if (packet[0] == 0x85 && packet[14] == check) { // uncompensated battery volts*100/4 - v_lipo1 = (packet[3]<<6) + (packet[4]>>3); + v_lipo1 = (packet[3]<<7) + (packet[4]>>2); // compensated battery volts*100/4 - v_lipo2 = (packet[5]<<6) + (packet[6]>>3); + v_lipo2 = (packet[5]<<7) + (packet[6]>>2); // reception in packets / sec RSSI_dBm = packet[7]; //Flags diff --git a/Multiprotocol/MJXQ_nrf24l01.ino b/Multiprotocol/MJXQ_nrf24l01.ino index 1f02e13..420a949 100644 --- a/Multiprotocol/MJXQ_nrf24l01.ino +++ b/Multiprotocol/MJXQ_nrf24l01.ino @@ -36,6 +36,31 @@ const uint8_t PROGMEM MJXQ_map_rfchan[][4] = { {0x0A, 0x3C, 0x36, 0x3F}, {0x0A, 0x43, 0x36, 0x3F} }; +const uint8_t PROGMEM E010_map_txid[][2] = { + {0x4F, 0x1C}, + {0x90, 0x1C}, + {0x24, 0x36}, + {0x7A, 0x40}, + {0x61, 0x31}, + {0x5D, 0x37}, + {0xFD, 0x4F}, + {0x86, 0x3C}, + {0x41, 0x22}, + {0xEE, 0xB3}, + {0x9A, 0xB2} }; + +const uint8_t PROGMEM E010_map_rfchan[][4] = { + {0x3A, 0x35, 0x4A, 0x45}, + {0x2E, 0x36, 0x3E, 0x46}, + {0x32, 0x3E, 0x42, 0x4E}, + {0x2E, 0x3C, 0x3E, 0x4C}, + {0x2F, 0x3B, 0x3F, 0x4B}, + {0x33, 0x3B, 0x43, 0x4B}, + {0x33, 0x3B, 0x43, 0x4B}, + {0x34, 0x3E, 0x44, 0x4E}, + {0x3F, 0x34, 0x2F, 0x44}, + {0x39, 0x3E, 0x49, 0x4E}, + {0x36, 0x3E, 0x46, 0x2E} }; #define MJXQ_PAN_TILT_COUNT 16 // for H26D - match stock tx timing #define MJXQ_PAN_DOWN 0x08 @@ -165,13 +190,19 @@ static void __attribute__((unused)) MJXQ_init() if (sub_protocol == WLH08) memcpy(hopping_frequency, "\x12\x22\x32\x42", MJXQ_RF_NUM_CHANNELS); else - if (sub_protocol == H26D || sub_protocol == E010) + if (sub_protocol == H26D) memcpy(hopping_frequency, "\x36\x3e\x46\x2e", MJXQ_RF_NUM_CHANNELS); else - { - memcpy(hopping_frequency, "\x0a\x35\x42\x3d", MJXQ_RF_NUM_CHANNELS); - memcpy(addr, "\x6d\x6a\x73\x73\x73", MJXQ_ADDRESS_LENGTH); - } + if(sub_protocol == E010) + { + for(uint8_t i=0;i<4;i++) + hopping_frequency[i]=pgm_read_byte_near( &E010_map_rfchan[rx_tx_addr[3]%11][i] ); + } + else + { + memcpy(hopping_frequency, "\x0a\x35\x42\x3d", MJXQ_RF_NUM_CHANNELS); + memcpy(addr, "\x6d\x6a\x73\x73\x73", MJXQ_ADDRESS_LENGTH); + } NRF24L01_Initialize(); @@ -215,8 +246,9 @@ static void __attribute__((unused)) MJXQ_initialize_txid() rx_tx_addr[2]=rx_tx_addr[3]; // Make use of RX_Num if (sub_protocol == E010) { - rx_tx_addr[1]=(rx_tx_addr[1]&0xF0)|0x0C; - rx_tx_addr[2]<<=4; // Make use of RX_Num + for(uint8_t i=0;i<2;i++) + rx_tx_addr[i]=pgm_read_byte_near( &E010_map_txid[rx_tx_addr[3]%11][i] ); + rx_tx_addr[2]=0; } else for(uint8_t i=0;i<3;i++)