From 068b21cbb1144f28b0d7c677e4538bedd9b5b690 Mon Sep 17 00:00:00 2001 From: tipouic Date: Fri, 30 Sep 2016 13:36:12 +0200 Subject: [PATCH] =?UTF-8?q?Cr=C3=A9ation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Multiprotocol/A7105_SPI.ino | 21 +- Multiprotocol/A7105_joysway.ino | 4 +- Multiprotocol/CX10_nrf24l01.ino | 27 - Multiprotocol/CYRF6936_SPI.ino | 7 - Multiprotocol/CYRF6936_j6pro.ino | 277 -- Multiprotocol/Cc2500_skyartec.ino | 114 +- Multiprotocol/DSM2_cyrf6936.ino | 538 -- Multiprotocol/Devo_cyrf6936.ino | 81 - Multiprotocol/FY326_nrf24l01.ino | 146 +- Multiprotocol/FlySky_a7105.ino | 183 +- Multiprotocol/Flysky_afhds2a_a7105.ino | 317 ++ Multiprotocol/FrSkyX_cc2500.ino | 291 +- Multiprotocol/FrSky_cc2500.ino | 219 - Multiprotocol/Hisky_nrf24l01.ino | 2 +- Multiprotocol/Hontai_nrf24l01.ino | 57 +- Multiprotocol/Hubsan_a7105.ino | 125 +- Multiprotocol/KN_nrf24l01.ino | 8 - Multiprotocol/Lua Generateur.htm | 5468 +++++++++++++++++++++ Multiprotocol/MJXQ_nrf24l01.ino | 77 - Multiprotocol/MT99xx_nrf24l01.ino | 97 - Multiprotocol/Multiprotocol 2.zip | Bin 0 -> 304859 bytes Multiprotocol/Multiprotocol.ino | 990 +--- Multiprotocol/NRF24l01_SPI.ino | 164 +- Multiprotocol/Nrf24l01_bluefly.ino | 5 +- Multiprotocol/Nrf24l01_cflie.ino | 119 +- Multiprotocol/Nrf24l01_esky150.ino | 59 +- Multiprotocol/Nrf24l01_fbl100.ino | 9 +- Multiprotocol/Nrf24l01_h377.ino | 9 +- Multiprotocol/Nrf24l01_hm830.ino | 16 +- Multiprotocol/Nrf24l01_hontai.ino | 272 - Multiprotocol/Nrf24l01_inav.ino | 733 +++ Multiprotocol/Nrf24l01_ne260.ino | 10 +- Multiprotocol/Nrf24l01_udi.ino | 60 +- Multiprotocol/README.md | 230 + Multiprotocol/SHENQI_nrf24l01.ino | 50 - Multiprotocol/TX_Def.h | 11 +- Multiprotocol/Telemetry.ino | 540 +- Multiprotocol/YD717_nrf24l01.ino | 25 - Multiprotocol/_Config.h | 307 +- Multiprotocol/_EEPROM.txt | 4 + Multiprotocol/calcul chanel.ods | Bin 0 -> 19588 bytes Multiprotocol/iface_a7105.h | 1 + Multiprotocol/iface_nrf24l01.h | 5 - Multiprotocol/multi.lua | 94 - Multiprotocol/multiprotocol.h | 174 +- Multiprotocol/opentx-multi-2015-24-12.bin | Bin 362852 -> 0 bytes Multiprotocol/opentx.bin | Bin 228420 -> 0 bytes Multiprotocol/sync.ffs_db | Bin 0 -> 942 bytes 48 files changed, 7675 insertions(+), 4271 deletions(-) delete mode 100644 Multiprotocol/CYRF6936_j6pro.ino delete mode 100644 Multiprotocol/DSM2_cyrf6936.ino create mode 100644 Multiprotocol/Flysky_afhds2a_a7105.ino delete mode 100644 Multiprotocol/FrSky_cc2500.ino create mode 100644 Multiprotocol/Lua Generateur.htm create mode 100644 Multiprotocol/Multiprotocol 2.zip delete mode 100644 Multiprotocol/Nrf24l01_hontai.ino create mode 100644 Multiprotocol/Nrf24l01_inav.ino create mode 100644 Multiprotocol/README.md create mode 100644 Multiprotocol/_EEPROM.txt create mode 100644 Multiprotocol/calcul chanel.ods delete mode 100644 Multiprotocol/multi.lua delete mode 100644 Multiprotocol/opentx-multi-2015-24-12.bin delete mode 100644 Multiprotocol/opentx.bin create mode 100644 Multiprotocol/sync.ffs_db diff --git a/Multiprotocol/A7105_SPI.ino b/Multiprotocol/A7105_SPI.ino index 251d31e..349de65 100644 --- a/Multiprotocol/A7105_SPI.ino +++ b/Multiprotocol/A7105_SPI.ino @@ -30,12 +30,12 @@ void A7105_WriteData(uint8_t len, uint8_t channel) A7105_Strobe(A7105_TX); } -void A7105_ReadData() { +void A7105_ReadData(uint8_t len=16) { uint8_t i; A7105_Strobe(0xF0); //A7105_RST_RDPTR A7105_CSN_off; SPI_Write(0x45); - for (i=0;i<16;i++) + for (i=0;i= Model.num_channels) { packet[chmap[i]] = 0x64; continue; } - uint32_t value = (uint32_t)Servo_data[i] * 0x66 / PPM_MAX + 0x66; - if (value < 0) { value = 0; } - if (value > 0xff) { value = 0xff; } + uint32_t value = map(limit_channel_100(i),servo_min_100,servo_max_100,0,204); packet[chmap[i]] = value; } packet[8] = 0x64; diff --git a/Multiprotocol/CX10_nrf24l01.ino b/Multiprotocol/CX10_nrf24l01.ino index adc7279..f836e02 100644 --- a/Multiprotocol/CX10_nrf24l01.ino +++ b/Multiprotocol/CX10_nrf24l01.ino @@ -25,10 +25,6 @@ #define Q282_PACKET_SIZE 21 #define CX10_PACKET_PERIOD 1316 // Timeout for callback in uSec #define CX10A_PACKET_PERIOD 6000 -<<<<<<< HEAD -#define CX10A_BIND_COUNT 400 // 2 seconds -======= ->>>>>>> refs/remotes/pascallanger/master #define CX10_INITIAL_WAIT 500 @@ -201,30 +197,15 @@ uint16_t CX10_callback() } break; case CX10_BIND2: -<<<<<<< HEAD - bind_counter--; - if(bind_counter==0) - { // Needed for some CX-10A to properly finish the bind - CX10_init(); - bind_counter=CX10A_BIND_COUNT; - } - if( NRF24L01_ReadReg(NRF24L01_07_STATUS) & BV(NRF24L01_07_RX_DR)) -======= if( NRF24L01_ReadReg(NRF24L01_07_STATUS) & _BV(NRF24L01_07_RX_DR)) ->>>>>>> refs/remotes/pascallanger/master { // RX fifo data ready XN297_ReadPayload(packet, packet_length); NRF24L01_SetTxRxMode(TXRX_OFF); NRF24L01_SetTxRxMode(TX_EN); if(packet[9] == 1) { -<<<<<<< HEAD - phase = CX10_BIND1; - bind_counter=0; -======= BIND_DONE; phase = CX10_DATA; ->>>>>>> refs/remotes/pascallanger/master } } else @@ -234,11 +215,7 @@ uint16_t CX10_callback() NRF24L01_FlushTx(); NRF24L01_SetTxRxMode(TX_EN); CX10_Write_Packet(1); -<<<<<<< HEAD - delayMicroseconds(400); // 300µs in deviation but not working so using 400µs instead -======= delayMicroseconds(400); ->>>>>>> refs/remotes/pascallanger/master // switch to RX mode NRF24L01_SetTxRxMode(TXRX_OFF); NRF24L01_FlushRx(); @@ -288,10 +265,6 @@ uint16_t initCX10(void) packet_period = CX10A_PACKET_PERIOD; phase = CX10_BIND2; -<<<<<<< HEAD - bind_counter=CX10A_BIND_COUNT; -======= ->>>>>>> refs/remotes/pascallanger/master for(uint8_t i=0; i<4; i++) packet[5+i] = 0xff; // clear aircraft id diff --git a/Multiprotocol/CYRF6936_SPI.ino b/Multiprotocol/CYRF6936_SPI.ino index 6a3bae6..2b2d52a 100644 --- a/Multiprotocol/CYRF6936_SPI.ino +++ b/Multiprotocol/CYRF6936_SPI.ino @@ -192,18 +192,11 @@ static void CYRF_StartReceive() CYRF_ReadRegisterMulti(CYRF_21_RX_BUFFER, dpbuffer, 0x10); } */ -<<<<<<< HEAD -static void CYRF_ReadDataPacketLen(uint8_t dpbuffer[], uint8_t length) -======= void CYRF_ReadDataPacketLen(uint8_t dpbuffer[], uint8_t length) ->>>>>>> refs/remotes/pascallanger/master { CYRF_ReadRegisterMulti(CYRF_21_RX_BUFFER, dpbuffer, length); } -<<<<<<< HEAD -======= ->>>>>>> refs/remotes/pascallanger/master static void CYRF_WriteDataPacketLen(const uint8_t dpbuffer[], uint8_t len) { CYRF_WriteRegister(CYRF_01_TX_LENGTH, len); diff --git a/Multiprotocol/CYRF6936_j6pro.ino b/Multiprotocol/CYRF6936_j6pro.ino deleted file mode 100644 index 623ae5f..0000000 --- a/Multiprotocol/CYRF6936_j6pro.ino +++ /dev/null @@ -1,277 +0,0 @@ -/* - This project is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Deviation is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Deviation. If not, see . - */ - -#if defined(J6PRO_CYRF6936_INO) -#include "iface_cyrf6936.h" - -#define NUM_WAIT_LOOPS (100 / 5) //each loop is ~5us. Do not wait more than 100us - -//For Debug -//#define NO_SCRAMBLE - -enum J6ProState { - J6PRO_BIND, - J6PRO_BIND_01, - J6PRO_BIND_03_START, - J6PRO_BIND_03_CHECK, - J6PRO_BIND_05_1, - J6PRO_BIND_05_2, - J6PRO_BIND_05_3, - J6PRO_BIND_05_4, - J6PRO_BIND_05_5, - J6PRO_BIND_05_6, - J6PRO_CHANSEL, - J6PRO_CHAN_1, - J6PRO_CHAN_2, - J6PRO_CHAN_3, - J6PRO_CHAN_4, -}; - -static const uint8_t J6Pro_sopcodes[][8] = { - /* Note these are in order transmitted (LSB 1st) */ - {0x3C, 0x37, 0xCC, 0x91, 0xE2, 0xF8, 0xCC, 0x91}, - {0x9B, 0xC5, 0xA1, 0x0F, 0xAD, 0x39, 0xA2, 0x0F}, - {0xEF, 0x64, 0xB0, 0x2A, 0xD2, 0x8F, 0xB1, 0x2A}, - {0x66, 0xCD, 0x7C, 0x50, 0xDD, 0x26, 0x7C, 0x50}, - {0x5C, 0xE1, 0xF6, 0x44, 0xAD, 0x16, 0xF6, 0x44}, - {0x5A, 0xCC, 0xAE, 0x46, 0xB6, 0x31, 0xAE, 0x46}, - {0xA1, 0x78, 0xDC, 0x3C, 0x9E, 0x82, 0xDC, 0x3C}, - {0xB9, 0x8E, 0x19, 0x74, 0x6F, 0x65, 0x18, 0x74}, - {0xDF, 0xB1, 0xC0, 0x49, 0x62, 0xDF, 0xC1, 0x49}, - {0x97, 0xE5, 0x14, 0x72, 0x7F, 0x1A, 0x14, 0x72}, - {0x82, 0xC7, 0x90, 0x36, 0x21, 0x03, 0xFF, 0x17}, - {0xE2, 0xF8, 0xCC, 0x91, 0x3C, 0x37, 0xCC, 0x91}, //Note: the '03' was '9E' in the Cypress recommended table - {0xAD, 0x39, 0xA2, 0x0F, 0x9B, 0xC5, 0xA1, 0x0F}, //The following are the same as the 1st 8 above, - {0xD2, 0x8F, 0xB1, 0x2A, 0xEF, 0x64, 0xB0, 0x2A}, //but with the upper and lower word swapped - {0xDD, 0x26, 0x7C, 0x50, 0x66, 0xCD, 0x7C, 0x50}, - {0xAD, 0x16, 0xF6, 0x44, 0x5C, 0xE1, 0xF6, 0x44}, - {0xB6, 0x31, 0xAE, 0x46, 0x5A, 0xCC, 0xAE, 0x46}, - {0x9E, 0x82, 0xDC, 0x3C, 0xA1, 0x78, 0xDC, 0x3C}, - {0x6F, 0x65, 0x18, 0x74, 0xB9, 0x8E, 0x19, 0x74}, -}; -const uint8_t bind_sop_code[] = {0x62, 0xdf, 0xc1, 0x49, 0xdf, 0xb1, 0xc0, 0x49}; -const uint8_t data_code[] = {0x02, 0xf9, 0x93, 0x97, 0x02, 0xfa, 0x5c, 0xe3, 0x01, 0x2b, 0xf1, 0xdb, 0x01, 0x32, 0xbe, 0x6f}; - -static uint8_t stateJ6P; -static uint8_t radio_ch[4]; -static uint8_t num_channels; - -void J6Pro_build_bind_packet() -{ - packet[0] = 0x01; //Packet type - packet[1] = 0x01; //FIXME: What is this? Model number maybe? - packet[2] = 0x56; //FIXME: What is this? - packet[3] = cyrfmfg_id[0]; - packet[4] = cyrfmfg_id[1]; - packet[5] = cyrfmfg_id[2]; - packet[6] = cyrfmfg_id[3]; - packet[7] = cyrfmfg_id[4]; - packet[8] = cyrfmfg_id[5]; -} -void J6Pro_build_data_packet() -{ - uint8_t i; - uint32_t upperbits = 0; - packet[0] = 0xaa; //FIXME what is this? - for (i = 0; i < 12; i++) { - if (i >= num_channels) { - packet[i+1] = 0xff; - continue; - } - uint32_t value = (uint32_t)Servo_data[i] * 0x200 / PPM_MAX + 0x200; - if (value < 0) - value = 0; - if (value > 0x3ff) - value = 0x3ff; - packet[i+1] = value & 0xff; - upperbits |= (value >> 8) << (i * 2); - } - packet[13] = upperbits & 0xff; - packet[14] = (upperbits >> 8) & 0xff; - packet[15] = (upperbits >> 16) & 0xff; -} - -static void J6Pro_cyrf_init() -{ - /* Initialise CYRF chip */ - CYRF_WriteRegister(CYRF_28_CLK_EN, 0x02); - CYRF_WriteRegister(CYRF_32_AUTO_CAL_TIME, 0x3c); - CYRF_WriteRegister(CYRF_35_AUTOCAL_OFFSET, 0x14); - CYRF_WriteRegister(CYRF_1C_TX_OFFSET_MSB, 0x05); - CYRF_WriteRegister(CYRF_1B_TX_OFFSET_LSB, 0x55); - CYRF_WriteRegister(CYRF_0F_XACT_CFG, 0x25); - CYRF_WriteRegister(CYRF_03_TX_CFG, 0x05 | CYRF_BIND_POWER); - CYRF_WriteRegister(CYRF_06_RX_CFG, 0x8a); - CYRF_WriteRegister(CYRF_03_TX_CFG, 0x28 | CYRF_BIND_POWER); - CYRF_WriteRegister(CYRF_12_DATA64_THOLD, 0x0e); - CYRF_WriteRegister(CYRF_10_FRAMING_CFG, 0xee); - CYRF_WriteRegister(CYRF_1F_TX_OVERRIDE, 0x00); - CYRF_WriteRegister(CYRF_1E_RX_OVERRIDE, 0x00); - CYRF_ConfigDataCode(data_code, 16); - CYRF_WritePreamble(0x023333); -} -static void J6Pro_cyrf_bindinit() -{ -/* Use when binding */ - //0.060470# 03 2f - CYRF_WriteRegister(CYRF_03_TX_CFG, 0x28 | 0x07); //Use max power for binding in case there is no telem module - - CYRF_ConfigRFChannel(0x52); - CYRF_ConfigSOPCode(bind_sop_code); - CYRF_ConfigCRCSeed(0x0000); - CYRF_WriteRegister(CYRF_06_RX_CFG, 0x4a); - CYRF_WriteRegister(CYRF_05_RX_CTRL, 0x83); - //0.061511# 13 20 - - CYRF_ConfigRFChannel(0x52); - //0.062684# 0f 05 - CYRF_WriteRegister(CYRF_0F_XACT_CFG, 0x25); - //0.062792# 0f 05 - CYRF_WriteRegister(CYRF_02_TX_CTRL, 0x40); - J6Pro_build_bind_packet(); //01 01 e9 49 ec a9 c4 c1 ff - //CYRF_WriteDataPacketLen(packet, 0x09); -} -static void J6Pro_cyrf_datainit() -{ -/* Use when already bound */ - //0.094007# 0f 05 - uint8_t sop_idx = (0xff & (cyrfmfg_id[0] + cyrfmfg_id[1] + cyrfmfg_id[2] + cyrfmfg_id[3] - cyrfmfg_id[5])) % 19; - uint16_t crc = (0xff & (cyrfmfg_id[1] - cyrfmfg_id[4] + cyrfmfg_id[5])) | - ((0xff & (cyrfmfg_id[2] + cyrfmfg_id[3] - cyrfmfg_id[4] + cyrfmfg_id[5])) << 8); - CYRF_WriteRegister(CYRF_0F_XACT_CFG, 0x25); - CYRF_ConfigSOPCode(J6Pro_sopcodes[sop_idx]); - CYRF_ConfigCRCSeed(crc); -} - -static void J6Pro_set_radio_channels() -{ - //FIXME: Query free channels - //lowest channel is 0x08, upper channel is 0x4d? - CYRF_FindBestChannels(radio_ch, 3, 5, 8, 77); - radio_ch[3] = radio_ch[0]; -} - -static uint16_t j6pro_cb() -{ - switch(stateJ6P) { - case J6PRO_BIND: - J6Pro_cyrf_bindinit(); - stateJ6P = J6PRO_BIND_01; - //no break because we want to send the 1st bind packet now - case J6PRO_BIND_01: - CYRF_ConfigRFChannel(0x52); - CYRF_SetTxRxMode(TX_EN); - //0.062684# 0f 05 - CYRF_WriteRegister(CYRF_0F_XACT_CFG, 0x25); - //0.062684# 0f 05 - CYRF_WriteDataPacketLen(packet, 0x09); - stateJ6P = J6PRO_BIND_03_START; - return 3000; //3msec - case J6PRO_BIND_03_START: - { - int i = 0; - while (! (CYRF_ReadRegister(0x04) & 0x06)) - if(++i > NUM_WAIT_LOOPS) - break; - } - CYRF_ConfigRFChannel(0x53); - CYRF_SetTxRxMode(RX_EN); - CYRF_WriteRegister(CYRF_06_RX_CFG, 0x4a); - CYRF_WriteRegister(CYRF_05_RX_CTRL, 0x83); - stateJ6P = J6PRO_BIND_03_CHECK; - return 30000; //30msec - case J6PRO_BIND_03_CHECK: - { - uint8_t rx = CYRF_ReadRegister(CYRF_07_RX_IRQ_STATUS); - if((rx & 0x1a) == 0x1a) { - rx = CYRF_ReadRegister(CYRF_0A_RX_LENGTH); - if(rx == 0x0f) { - rx = CYRF_ReadRegister(CYRF_09_RX_COUNT); - if(rx == 0x0f) { - //Expected and actual length are both 15 - CYRF_ReadDataPacketLen(packet, rx); - if (packet[0] == 0x03 && - packet[3] == cyrfmfg_id[0] && - packet[4] == cyrfmfg_id[1] && - packet[5] == cyrfmfg_id[2] && - packet[6] == cyrfmfg_id[3] && - packet[7] == cyrfmfg_id[4] && - packet[8] == cyrfmfg_id[5]) - { - //Send back Ack - packet[0] = 0x05; - CYRF_ConfigRFChannel(0x54); - CYRF_SetTxRxMode(TX_EN); - stateJ6P = J6PRO_BIND_05_1; - return 2000; //2msec - } - } - } - } - stateJ6P = J6PRO_BIND_01; - return 500; - } - case J6PRO_BIND_05_1: - case J6PRO_BIND_05_2: - case J6PRO_BIND_05_3: - case J6PRO_BIND_05_4: - case J6PRO_BIND_05_5: - case J6PRO_BIND_05_6: - CYRF_WriteRegister(CYRF_0F_XACT_CFG, 0x25); - CYRF_WriteDataPacketLen(packet, 0x0f); - stateJ6P = stateJ6P + 1; - return 4600; //4.6msec - case J6PRO_CHANSEL: - BIND_DONE; - J6Pro_set_radio_channels(); - J6Pro_cyrf_datainit(); - stateJ6P = J6PRO_CHAN_1; - case J6PRO_CHAN_1: - //Keep transmit power updated - CYRF_SetPower(CYRF_HIGH_POWER); - J6Pro_build_data_packet(); - //return 3400; - case J6PRO_CHAN_2: - //return 3500; - case J6PRO_CHAN_3: - //return 3750 - case J6PRO_CHAN_4: - CYRF_ConfigRFChannel(radio_ch[stateJ6P - J6PRO_CHAN_1]); - CYRF_SetTxRxMode(TX_EN); - CYRF_WriteDataPacket(packet); - if (stateJ6P == J6PRO_CHAN_4) { - stateJ6P = J6PRO_CHAN_1; - return 13900; - } - stateJ6P = stateJ6P + 1; - return 3550; - } - return 0; -} - -static uint16_t j6pro_setup() -{ - CYRF_Reset(); - J6Pro_cyrf_init(); - num_channels = 8; - if (IS_AUTOBIND_FLAG_on) { - stateJ6P = J6PRO_BIND; - BIND_IN_PROGRESS; - } else { - stateJ6P = J6PRO_CHANSEL; - } - return 2400; -} -#endif diff --git a/Multiprotocol/Cc2500_skyartec.ino b/Multiprotocol/Cc2500_skyartec.ino index 7f3a932..e54abb3 100644 --- a/Multiprotocol/Cc2500_skyartec.ino +++ b/Multiprotocol/Cc2500_skyartec.ino @@ -37,53 +37,53 @@ enum { static void skyartec_init() { CC2500_Reset(); - cc2500_writeReg(CC2500_16_MCSM2, 0x07); - cc2500_writeReg(CC2500_17_MCSM1, 0x30); - cc2500_writeReg(CC2500_1E_WOREVT1, 0x87); - cc2500_writeReg(CC2500_1F_WOREVT0, 0x6b); - cc2500_writeReg(CC2500_20_WORCTRL, 0xf8); - cc2500_writeReg(CC2500_2A_PTEST, 0x7f); - cc2500_writeReg(CC2500_2B_AGCTEST, 0x3f); - cc2500_writeReg(CC2500_0B_FSCTRL1, 0x09); - cc2500_writeReg(CC2500_0C_FSCTRL0, 0x00); - cc2500_writeReg(CC2500_0D_FREQ2, 0x5d); - cc2500_writeReg(CC2500_0E_FREQ1, 0x93); - cc2500_writeReg(CC2500_0F_FREQ0, 0xb1); - cc2500_writeReg(CC2500_10_MDMCFG4, 0x2d); - cc2500_writeReg(CC2500_11_MDMCFG3, 0x20); - cc2500_writeReg(CC2500_12_MDMCFG2, 0x73); - cc2500_writeReg(CC2500_13_MDMCFG1, 0x22); - cc2500_writeReg(CC2500_14_MDMCFG0, 0xf8); - cc2500_writeReg(CC2500_0A_CHANNR, 0xcd); - cc2500_writeReg(CC2500_15_DEVIATN, 0x50); - cc2500_writeReg(CC2500_21_FREND1, 0xb6); - cc2500_writeReg(CC2500_22_FREND0, 0x10); - cc2500_writeReg(CC2500_18_MCSM0, 0x18); - cc2500_writeReg(CC2500_19_FOCCFG, 0x1d); - cc2500_writeReg(CC2500_1A_BSCFG, 0x1c); - cc2500_writeReg(CC2500_1B_AGCCTRL2, 0xc7); - cc2500_writeReg(CC2500_1C_AGCCTRL1, 0x00); - cc2500_writeReg(CC2500_1D_AGCCTRL0, 0xb2); - cc2500_writeReg(CC2500_23_FSCAL3, 0xea); - cc2500_writeReg(CC2500_24_FSCAL2, 0x0a); - cc2500_writeReg(CC2500_25_FSCAL1, 0x00); - cc2500_writeReg(CC2500_26_FSCAL0, 0x11); - cc2500_writeReg(CC2500_29_FSTEST, 0x59); - cc2500_writeReg(CC2500_2C_TEST2, 0x88); - cc2500_writeReg(CC2500_2D_TEST1, 0x31); - cc2500_writeReg(CC2500_2E_TEST0, 0x0b); - cc2500_writeReg(CC2500_07_PKTCTRL1, 0x05); - cc2500_writeReg(CC2500_08_PKTCTRL0, 0x05); - cc2500_writeReg(CC2500_09_ADDR, 0x43); - cc2500_writeReg(CC2500_06_PKTLEN, 0xff); - cc2500_writeReg(CC2500_04_SYNC1, 0x13); - cc2500_writeReg(CC2500_05_SYNC0, 0x18); + CC2500_WriteReg(CC2500_16_MCSM2, 0x07); + CC2500_WriteReg(CC2500_17_MCSM1, 0x30); + CC2500_WriteReg(CC2500_1E_WOREVT1, 0x87); + CC2500_WriteReg(CC2500_1F_WOREVT0, 0x6b); + CC2500_WriteReg(CC2500_20_WORCTRL, 0xf8); + CC2500_WriteReg(CC2500_2A_PTEST, 0x7f); + CC2500_WriteReg(CC2500_2B_AGCTEST, 0x3f); + CC2500_WriteReg(CC2500_0B_FSCTRL1, 0x09); + CC2500_WriteReg(CC2500_0C_FSCTRL0, 0x00); + CC2500_WriteReg(CC2500_0D_FREQ2, 0x5d); + CC2500_WriteReg(CC2500_0E_FREQ1, 0x93); + CC2500_WriteReg(CC2500_0F_FREQ0, 0xb1); + CC2500_WriteReg(CC2500_10_MDMCFG4, 0x2d); + CC2500_WriteReg(CC2500_11_MDMCFG3, 0x20); + CC2500_WriteReg(CC2500_12_MDMCFG2, 0x73); + CC2500_WriteReg(CC2500_13_MDMCFG1, 0x22); + CC2500_WriteReg(CC2500_14_MDMCFG0, 0xf8); + CC2500_WriteReg(CC2500_0A_CHANNR, 0xcd); + CC2500_WriteReg(CC2500_15_DEVIATN, 0x50); + CC2500_WriteReg(CC2500_21_FREND1, 0xb6); + CC2500_WriteReg(CC2500_22_FREND0, 0x10); + CC2500_WriteReg(CC2500_18_MCSM0, 0x18); + CC2500_WriteReg(CC2500_19_FOCCFG, 0x1d); + CC2500_WriteReg(CC2500_1A_BSCFG, 0x1c); + CC2500_WriteReg(CC2500_1B_AGCCTRL2, 0xc7); + CC2500_WriteReg(CC2500_1C_AGCCTRL1, 0x00); + CC2500_WriteReg(CC2500_1D_AGCCTRL0, 0xb2); + CC2500_WriteReg(CC2500_23_FSCAL3, 0xea); + CC2500_WriteReg(CC2500_24_FSCAL2, 0x0a); + CC2500_WriteReg(CC2500_25_FSCAL1, 0x00); + CC2500_WriteReg(CC2500_26_FSCAL0, 0x11); + CC2500_WriteReg(CC2500_29_FSTEST, 0x59); + CC2500_WriteReg(CC2500_2C_TEST2, 0x88); + CC2500_WriteReg(CC2500_2D_TEST1, 0x31); + CC2500_WriteReg(CC2500_2E_TEST0, 0x0b); + CC2500_WriteReg(CC2500_07_PKTCTRL1, 0x05); + CC2500_WriteReg(CC2500_08_PKTCTRL0, 0x05); + CC2500_WriteReg(CC2500_09_ADDR, 0x43); + CC2500_WriteReg(CC2500_06_PKTLEN, 0xff); + CC2500_WriteReg(CC2500_04_SYNC1, 0x13); + CC2500_WriteReg(CC2500_05_SYNC0, 0x18); CC2500_SetTxRxMode(TX_EN); CC2500_SetPower(); - cc2500_strobe(CC2500_SFTX); - cc2500_strobe(CC2500_SFRX); - cc2500_strobe(CC2500_SXOFF); - cc2500_strobe(CC2500_SIDLE); + CC2500_Strobe(CC2500_SFTX); + CC2500_Strobe(CC2500_SFRX); + CC2500_Strobe(CC2500_SXOFF); + CC2500_Strobe(CC2500_SIDLE); } static void add_pkt_suffix() { @@ -104,7 +104,7 @@ static void send_data_packet() { packet[1] = TX_ADDR; //Tx Addr? packet[2] = 0x01; //??? for(int i = 0; i < 7; i++) { - uint32_t value = (uint32_t)Servo_data[i] * 0x280 / PPM_MAX + 0x280; + uint32_t value = map(limit_channel_100(i),servo_min_100,servo_max_100,0,1280); if(value < 0) { value = 0; } if(value > 0x500) { value = 0x500; } packet[3+2*i] = value >> 8; @@ -112,11 +112,11 @@ static void send_data_packet() { } add_pkt_suffix(); //for(int i = 0; i < 20; i++) printf("%02x ", packet[i]); printf("\n"); - cc2500_writeReg(CC2500_04_SYNC1, ((binding_idx >> 0) & 0xff)); - cc2500_writeReg(CC2500_05_SYNC0, ((binding_idx >> 8) & 0xff)); - cc2500_writeReg(CC2500_09_ADDR, TX_ADDR); - cc2500_writeReg(CC2500_0A_CHANNR, TX_CHANNEL); - cc2500_writeFifo(packet, 20); + CC2500_WriteReg(CC2500_04_SYNC1, ((binding_idx >> 0) & 0xff)); + CC2500_WriteReg(CC2500_05_SYNC0, ((binding_idx >> 8) & 0xff)); + CC2500_WriteReg(CC2500_09_ADDR, TX_ADDR); + CC2500_WriteReg(CC2500_0A_CHANNR, TX_CHANNEL); + CC2500_WriteData(packet, 20); } static void send_bind_packet() { @@ -135,16 +135,16 @@ static void send_bind_packet() { uint8_t xore = 0; for(int i = 3; i < 11; i++) { xore ^= packet[i]; } packet[11] = xore; - cc2500_writeReg(CC2500_04_SYNC1, 0x7d); - cc2500_writeReg(CC2500_05_SYNC0, 0x7d); - cc2500_writeReg(CC2500_09_ADDR, 0x7d); - cc2500_writeReg(CC2500_0A_CHANNR, 0x7d); - cc2500_writeFifo(packet, 12); + CC2500_WriteReg(CC2500_04_SYNC1, 0x7d); + CC2500_WriteReg(CC2500_05_SYNC0, 0x7d); + CC2500_WriteReg(CC2500_09_ADDR, 0x7d); + CC2500_WriteReg(CC2500_0A_CHANNR, 0x7d); + CC2500_WriteData(packet, 12); } static uint16_t skyartec_cb() { if (state & 0x01) { - cc2500_strobe(CC2500_SIDLE); + CC2500_Strobe(CC2500_SIDLE); if (state == SKYARTEC_LAST) { CC2500_SetPower(); state = SKYARTEC_PKT1; } else { state++; } return 3000; diff --git a/Multiprotocol/DSM2_cyrf6936.ino b/Multiprotocol/DSM2_cyrf6936.ino deleted file mode 100644 index 19a969e..0000000 --- a/Multiprotocol/DSM2_cyrf6936.ino +++ /dev/null @@ -1,538 +0,0 @@ -/* - This project is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Multiprotocol is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Multiprotocol. If not, see . - */ - -#if defined(DSM2_CYRF6936_INO) - -#include "iface_cyrf6936.h" - -#define RANDOM_CHANNELS 0 // disabled -//#define RANDOM_CHANNELS 1 // enabled -#define BIND_CHANNEL 0x0d //13 This can be any odd channel -#define NUM_WAIT_LOOPS (100 / 5) //each loop is ~5us. Do not wait more than 100us - -//During binding we will send BIND_COUNT/2 packets -//One packet each 10msec -#define BIND_COUNT1 600 - -enum { - DSM2_BIND = 0, - DSM2_CHANSEL = BIND_COUNT1 + 0, - DSM2_CH1_WRITE_A = BIND_COUNT1 + 1, - DSM2_CH1_CHECK_A = BIND_COUNT1 + 2, - DSM2_CH2_WRITE_A = BIND_COUNT1 + 3, - DSM2_CH2_CHECK_A = BIND_COUNT1 + 4, - DSM2_CH2_READ_A = BIND_COUNT1 + 5, - DSM2_CH1_WRITE_B = BIND_COUNT1 + 6, - DSM2_CH1_CHECK_B = BIND_COUNT1 + 7, - DSM2_CH2_WRITE_B = BIND_COUNT1 + 8, - DSM2_CH2_CHECK_B = BIND_COUNT1 + 9, - DSM2_CH2_READ_B = BIND_COUNT1 + 10, -}; - -const uint8_t PROGMEM pncodes[5][9][8] = { - /* Note these are in order transmitted (LSB 1st) */ - { /* Row 0 */ - /* Col 0 */ {0x03, 0xBC, 0x6E, 0x8A, 0xEF, 0xBD, 0xFE, 0xF8}, - /* Col 1 */ {0x88, 0x17, 0x13, 0x3B, 0x2D, 0xBF, 0x06, 0xD6}, - /* Col 2 */ {0xF1, 0x94, 0x30, 0x21, 0xA1, 0x1C, 0x88, 0xA9}, - /* Col 3 */ {0xD0, 0xD2, 0x8E, 0xBC, 0x82, 0x2F, 0xE3, 0xB4}, - /* Col 4 */ {0x8C, 0xFA, 0x47, 0x9B, 0x83, 0xA5, 0x66, 0xD0}, - /* Col 5 */ {0x07, 0xBD, 0x9F, 0x26, 0xC8, 0x31, 0x0F, 0xB8}, - /* Col 6 */ {0xEF, 0x03, 0x95, 0x89, 0xB4, 0x71, 0x61, 0x9D}, - /* Col 7 */ {0x40, 0xBA, 0x97, 0xD5, 0x86, 0x4F, 0xCC, 0xD1}, - /* Col 8 */ {0xD7, 0xA1, 0x54, 0xB1, 0x5E, 0x89, 0xAE, 0x86} - }, - { /* Row 1 */ - /* Col 0 */ {0x83, 0xF7, 0xA8, 0x2D, 0x7A, 0x44, 0x64, 0xD3}, - /* Col 1 */ {0x3F, 0x2C, 0x4E, 0xAA, 0x71, 0x48, 0x7A, 0xC9}, - /* Col 2 */ {0x17, 0xFF, 0x9E, 0x21, 0x36, 0x90, 0xC7, 0x82}, - /* Col 3 */ {0xBC, 0x5D, 0x9A, 0x5B, 0xEE, 0x7F, 0x42, 0xEB}, - /* Col 4 */ {0x24, 0xF5, 0xDD, 0xF8, 0x7A, 0x77, 0x74, 0xE7}, - /* Col 5 */ {0x3D, 0x70, 0x7C, 0x94, 0xDC, 0x84, 0xAD, 0x95}, - /* Col 6 */ {0x1E, 0x6A, 0xF0, 0x37, 0x52, 0x7B, 0x11, 0xD4}, - /* Col 7 */ {0x62, 0xF5, 0x2B, 0xAA, 0xFC, 0x33, 0xBF, 0xAF}, - /* Col 8 */ {0x40, 0x56, 0x32, 0xD9, 0x0F, 0xD9, 0x5D, 0x97} - }, - { /* Row 2 */ - /* Col 0 */ {0x40, 0x56, 0x32, 0xD9, 0x0F, 0xD9, 0x5D, 0x97}, - /* Col 1 */ {0x8E, 0x4A, 0xD0, 0xA9, 0xA7, 0xFF, 0x20, 0xCA}, - /* Col 2 */ {0x4C, 0x97, 0x9D, 0xBF, 0xB8, 0x3D, 0xB5, 0xBE}, - /* Col 3 */ {0x0C, 0x5D, 0x24, 0x30, 0x9F, 0xCA, 0x6D, 0xBD}, - /* Col 4 */ {0x50, 0x14, 0x33, 0xDE, 0xF1, 0x78, 0x95, 0xAD}, - /* Col 5 */ {0x0C, 0x3C, 0xFA, 0xF9, 0xF0, 0xF2, 0x10, 0xC9}, - /* Col 6 */ {0xF4, 0xDA, 0x06, 0xDB, 0xBF, 0x4E, 0x6F, 0xB3}, - /* Col 7 */ {0x9E, 0x08, 0xD1, 0xAE, 0x59, 0x5E, 0xE8, 0xF0}, - /* Col 8 */ {0xC0, 0x90, 0x8F, 0xBB, 0x7C, 0x8E, 0x2B, 0x8E} - }, - { /* Row 3 */ - /* Col 0 */ {0xC0, 0x90, 0x8F, 0xBB, 0x7C, 0x8E, 0x2B, 0x8E}, - /* Col 1 */ {0x80, 0x69, 0x26, 0x80, 0x08, 0xF8, 0x49, 0xE7}, - /* Col 2 */ {0x7D, 0x2D, 0x49, 0x54, 0xD0, 0x80, 0x40, 0xC1}, - /* Col 3 */ {0xB6, 0xF2, 0xE6, 0x1B, 0x80, 0x5A, 0x36, 0xB4}, - /* Col 4 */ {0x42, 0xAE, 0x9C, 0x1C, 0xDA, 0x67, 0x05, 0xF6}, - /* Col 5 */ {0x9B, 0x75, 0xF7, 0xE0, 0x14, 0x8D, 0xB5, 0x80}, - /* Col 6 */ {0xBF, 0x54, 0x98, 0xB9, 0xB7, 0x30, 0x5A, 0x88}, - /* Col 7 */ {0x35, 0xD1, 0xFC, 0x97, 0x23, 0xD4, 0xC9, 0x88}, - /* Col 8 */ {0x88, 0xE1, 0xD6, 0x31, 0x26, 0x5F, 0xBD, 0x40} - }, - { /* Row 4 */ - /* Col 0 */ {0xE1, 0xD6, 0x31, 0x26, 0x5F, 0xBD, 0x40, 0x93}, - /* Col 1 */ {0xDC, 0x68, 0x08, 0x99, 0x97, 0xAE, 0xAF, 0x8C}, - /* Col 2 */ {0xC3, 0x0E, 0x01, 0x16, 0x0E, 0x32, 0x06, 0xBA}, - /* Col 3 */ {0xE0, 0x83, 0x01, 0xFA, 0xAB, 0x3E, 0x8F, 0xAC}, - /* Col 4 */ {0x5C, 0xD5, 0x9C, 0xB8, 0x46, 0x9C, 0x7D, 0x84}, - /* Col 5 */ {0xF1, 0xC6, 0xFE, 0x5C, 0x9D, 0xA5, 0x4F, 0xB7}, - /* Col 6 */ {0x58, 0xB5, 0xB3, 0xDD, 0x0E, 0x28, 0xF1, 0xB0}, - /* Col 7 */ {0x5F, 0x30, 0x3B, 0x56, 0x96, 0x45, 0xF4, 0xA1}, - /* Col 8 */ {0x03, 0xBC, 0x6E, 0x8A, 0xEF, 0xBD, 0xFE, 0xF8} - }, -}; - -static void __attribute__((unused)) read_code(uint8_t *buf, uint8_t row, uint8_t col, uint8_t len) -{ - for(uint8_t i=0;i> 8; - packet[1] = crc & 0xff; - packet[2] = 0xff ^ cyrfmfg_id[2]; - packet[3] = (0xff ^ cyrfmfg_id[3]) + RX_num; - packet[4] = packet[0]; - packet[5] = packet[1]; - packet[6] = packet[2]; - packet[7] = packet[3]; - for(i = 0; i < 8; i++) - sum += packet[i]; - packet[8] = sum >> 8; - packet[9] = sum & 0xff; - packet[10] = 0x01; //??? - packet[11] = option>3?option:option+4; - if(sub_protocol==DSMX) //DSMX type - packet[12] = 0xb2; // Telemetry off: packet[12] = num_channels < 8 && Model.proto_opts[PROTOOPTS_TELEMETRY] == TELEM_OFF ? 0xa2 : 0xb2; - else - packet[12] = option<8?0x01:0x02; - packet[13] = 0x00; //??? - for(i = 8; i < 14; i++) - sum += packet[i]; - packet[14] = sum >> 8; - packet[15] = sum & 0xff; -} - -static uint8_t __attribute__((unused)) PROTOCOL_SticksMoved(uint8_t init) -{ -#define STICK_MOVEMENT 15*(PPM_MAX-PPM_MIN)/100 // defines when the bind dialog should be interrupted (stick movement STICK_MOVEMENT %) - static uint16_t ele_start, ail_start; - uint16_t ele = Servo_data[ELEVATOR];//CHAN_ReadInput(MIXER_MapChannel(INP_ELEVATOR)); - uint16_t ail = Servo_data[AILERON];//CHAN_ReadInput(MIXER_MapChannel(INP_AILERON)); - if(init) { - ele_start = ele; - ail_start = ail; - return 0; - } - uint16_t ele_diff = ele_start - ele;//abs(ele_start - ele); - uint16_t ail_diff = ail_start - ail;//abs(ail_start - ail); - return ((ele_diff + ail_diff) > STICK_MOVEMENT);// -} - -static void __attribute__((unused)) build_data_packet(uint8_t upper)// -{ - uint8_t i; - uint8_t bits; - - uint8_t ch_map[] = {3, 2, 1, 5, 0, 4, 6, 7, 8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; //9 Channels - DM9 TX - switch(option>3?option:option+4) // Create channel map based on number of channels - { - case 12: - ch_map[11]=11; // 12 channels - case 11: - ch_map[10]=10; // 11 channels - case 10: - ch_map[9]=9; // 10 channels - break; - case 8: - memcpy(ch_map,"\x01\x05\x02\x03\x06\xFF\xFF\x04\x00\x07",10); // 8 channels - DX8 TX - break; - case 7: - memcpy(ch_map,"\x01\x05\x02\x04\x03\x06\x00",7); // 7 channels - DX6i TX - break; - case 6: - memcpy(ch_map,"\x01\x05\x02\x03\x00\x04\xFF",7); // 6 channels - HP6DSM TX - break; - case 4: - case 5: - memcpy(ch_map,"\x00\x01\x02\x03\xFF\xFF\xFF",7); // 4 channels - Guess - if(option&0x01) - ch_map[4]=4; // 5 channels - Guess - break; - } - // - if( binding && PROTOCOL_SticksMoved(0) ) - binding = 0; - if (sub_protocol==DSMX) - { - packet[0] = cyrfmfg_id[2]; - packet[1] = cyrfmfg_id[3] + RX_num; - bits=11; - } - else - { - packet[0] = (0xff ^ cyrfmfg_id[2]); - packet[1] = (0xff ^ cyrfmfg_id[3]) + RX_num; - bits=10; - } - // - uint16_t max = 1 << bits;//max=2048 for DSMX & 1024 for DSM2 less than 8 ch and 2048 otherwise - //uint16_t pct_100 = (uint32_t)max * 100 / 150;//682 1024*100/150 - // - for (i = 0; i < 7; i++) - { - uint8_t idx = ch_map[upper * 7 + i];//1,5,2,3,0,4 - uint16_t value; - if (idx == 0xff) - value = 0xffff; - else - { - if (binding) - { // Failsafe position during binding - value=max/2; //all channels to middle - if(idx==0) - value=1; //except throttle - } - else - { - switch(idx) - { - case 0: - value=Servo_data[THROTTLE];//85.75-938.25=125%//171-853=100% - break; - case 1: - value=Servo_data[AILERON]; - break; - case 2: - value=Servo_data[ELEVATOR]; - break; - case 3: - value=Servo_data[RUDDER]; - break; - case 4: - value=Servo_data[AUX1]; - break; - case 5: - value=Servo_data[AUX2]; - break; - case 6: - value=Servo_data[AUX3]; - break; - case 7: - value=Servo_data[AUX4]; - break; - } - value=map(value,PPM_MIN,PPM_MAX,0,max-1); - } - value |= (upper && i == 0 ? 0x8000 : 0) | (idx << bits); - } - packet[i*2+2] = (value >> 8) & 0xff; - packet[i*2+3] = (value >> 0) & 0xff; - } -} - -static uint8_t __attribute__((unused)) get_pn_row(uint8_t channel) -{ - return (sub_protocol == DSMX ? (channel - 2) % 5 : channel % 5); -} - -const uint8_t init_vals[][2] = { - {CYRF_02_TX_CTRL, 0x00}, - {CYRF_05_RX_CTRL, 0x00}, - {CYRF_28_CLK_EN, 0x02}, - {CYRF_32_AUTO_CAL_TIME, 0x3c}, - {CYRF_35_AUTOCAL_OFFSET, 0x14}, - {CYRF_06_RX_CFG, 0x4A}, - {CYRF_1B_TX_OFFSET_LSB, 0x55}, - {CYRF_1C_TX_OFFSET_MSB, 0x05}, - {CYRF_0F_XACT_CFG, 0x24}, // Force Idle - {CYRF_03_TX_CFG, 0x38 | CYRF_BIND_POWER}, //Set 64chip, SDR mode - {CYRF_12_DATA64_THOLD, 0x0a}, - {CYRF_0F_XACT_CFG, 0x04}, // Idle - {CYRF_39_ANALOG_CTRL, 0x01}, - {CYRF_0F_XACT_CFG, 0x24}, //Force IDLE - {CYRF_29_RX_ABORT, 0x00}, //Clear RX abort - {CYRF_12_DATA64_THOLD, 0x0a}, //set pn correlation threshold - {CYRF_10_FRAMING_CFG, 0x4a}, //set sop len and threshold - {CYRF_29_RX_ABORT, 0x0f}, //Clear RX abort? - {CYRF_03_TX_CFG, 0x38 | CYRF_BIND_POWER}, //Set 64chip, SDR mode - {CYRF_10_FRAMING_CFG, 0x4a}, //set sop len and threshold - {CYRF_1F_TX_OVERRIDE, 0x04}, //disable tx CRC - {CYRF_1E_RX_OVERRIDE, 0x14}, //disable rx crc - {CYRF_14_EOP_CTRL, 0x02}, //set EOP sync == 2 - {CYRF_01_TX_LENGTH, 0x10}, //16byte packet -}; - -static void __attribute__((unused)) cyrf_config() -{ - for(uint8_t i = 0; i < sizeof(init_vals) / 2; i++) - CYRF_WriteRegister(init_vals[i][0], init_vals[i][1]); - CYRF_WritePreamble(0x333304); - CYRF_ConfigRFChannel(0x61); -} - -static void __attribute__((unused)) initialize_bind_state() -{ - uint8_t code[32]; - - CYRF_ConfigRFChannel(BIND_CHANNEL); //This seems to be random? - uint8_t pn_row = get_pn_row(BIND_CHANNEL); - //printf("Ch: %d Row: %d SOP: %d Data: %d\n", BIND_CHANNEL, pn_row, sop_col, data_col); - CYRF_ConfigCRCSeed(crc); - - read_code(code,pn_row,sop_col,8); - CYRF_ConfigSOPCode(code); - read_code(code,pn_row,data_col,16); - read_code(code+16,0,8,8); - memcpy(code + 24, "\xc6\x94\x22\xfe\x48\xe6\x57\x4e", 8); - CYRF_ConfigDataCode(code, 32); - - build_bind_packet(); -} - -const uint8_t data_vals[][2] = { - {CYRF_05_RX_CTRL, 0x83}, //Initialize for reading RSSI - {CYRF_29_RX_ABORT, 0x20}, - {CYRF_0F_XACT_CFG, 0x24}, - {CYRF_29_RX_ABORT, 0x00}, - {CYRF_03_TX_CFG, 0x08 | CYRF_HIGH_POWER}, - {CYRF_10_FRAMING_CFG, 0xea}, - {CYRF_1F_TX_OVERRIDE, 0x00}, - {CYRF_1E_RX_OVERRIDE, 0x00}, - {CYRF_03_TX_CFG, 0x28 | CYRF_HIGH_POWER}, - {CYRF_12_DATA64_THOLD, 0x3f}, - {CYRF_10_FRAMING_CFG, 0xff}, - {CYRF_0F_XACT_CFG, 0x24}, //Switch from reading RSSI to Writing - {CYRF_29_RX_ABORT, 0x00}, - {CYRF_12_DATA64_THOLD, 0x0a}, - {CYRF_10_FRAMING_CFG, 0xea}, -}; - -static void __attribute__((unused)) cyrf_configdata() -{ - for(uint8_t i = 0; i < sizeof(data_vals) / 2; i++) - CYRF_WriteRegister(data_vals[i][0], data_vals[i][1]); -} - -static void __attribute__((unused)) set_sop_data_crc() -{ - uint8_t code[16]; - uint8_t pn_row = get_pn_row(hopping_frequency[chidx]); - //printf("Ch: %d Row: %d SOP: %d Data: %d\n", ch[chidx], pn_row, sop_col, data_col); - CYRF_ConfigRFChannel(hopping_frequency[chidx]); - CYRF_ConfigCRCSeed(crcidx ? ~crc : crc); - - read_code(code,pn_row,sop_col,8); - CYRF_ConfigSOPCode(code); - read_code(code,pn_row,data_col,16); - CYRF_ConfigDataCode(code, 16); - - if(sub_protocol == DSMX) - chidx = (chidx + 1) % 23; - else - chidx = (chidx + 1) % 2; - crcidx = !crcidx; -} - -static void __attribute__((unused)) calc_dsmx_channel() -{ - uint8_t idx = 0; - uint32_t id = ~(((uint32_t)cyrfmfg_id[0] << 24) | ((uint32_t)cyrfmfg_id[1] << 16) | ((uint32_t)cyrfmfg_id[2] << 8) | (cyrfmfg_id[3] << 0)); - uint32_t id_tmp = id; - while(idx < 23) - { - uint8_t i; - uint8_t count_3_27 = 0, count_28_51 = 0, count_52_76 = 0; - id_tmp = id_tmp * 0x0019660D + 0x3C6EF35F; // Randomization - uint8_t next_ch = ((id_tmp >> 8) % 0x49) + 3; // Use least-significant byte and must be larger than 3 - if (((next_ch ^ id) & 0x01 )== 0) - continue; - for (i = 0; i < idx; i++) - { - if(hopping_frequency[i] == next_ch) - break; - if(hopping_frequency[i] <= 27) - count_3_27++; - else - if (hopping_frequency[i] <= 51) - count_28_51++; - else - count_52_76++; - } - if (i != idx) - continue; - if ((next_ch < 28 && count_3_27 < 8) - ||(next_ch >= 28 && next_ch < 52 && count_28_51 < 7) - ||(next_ch >= 52 && count_52_76 < 8)) - hopping_frequency[idx++] = next_ch; - } -} - -uint16_t ReadDsm2() -{ -#define CH1_CH2_DELAY 4010 // Time between write of channel 1 and channel 2 -#define WRITE_DELAY 1650 // 1550 original, Time after write to verify write complete -#define READ_DELAY 400 // Time before write to check read state, and switch channels - uint8_t i = 0; - - switch(cyrf_state) - { - default: - //Binding - cyrf_state++; - if(cyrf_state & 1) - { - //Send packet on even states - //Note state has already incremented, - // so this is actually 'even' state - CYRF_WriteDataPacket(packet); - return 8500; - } - else - { - //Check status on odd states - CYRF_ReadRegister(CYRF_04_TX_IRQ_STATUS); - return 1500; - } - case DSM2_CHANSEL: - BIND_DONE; - //Select channels and configure for writing data - //CYRF_FindBestChannels(ch, 2, 10, 1, 79); - cyrf_configdata(); - CYRF_SetTxRxMode(TX_EN); - chidx = 0; - crcidx = 0; - cyrf_state = DSM2_CH1_WRITE_A; // in fact cyrf_state++ - set_sop_data_crc(); - return 10000; - case DSM2_CH1_WRITE_A: - case DSM2_CH1_WRITE_B: - build_data_packet(cyrf_state == DSM2_CH1_WRITE_B);//compare state and DSM2_CH1_WRITE_B return 0 or 1 - case DSM2_CH2_WRITE_A: - case DSM2_CH2_WRITE_B: - CYRF_WriteDataPacket(packet); - cyrf_state++; // change from WRITE to CHECK mode - return WRITE_DELAY; - case DSM2_CH1_CHECK_A: - case DSM2_CH1_CHECK_B: - while (! (CYRF_ReadRegister(CYRF_04_TX_IRQ_STATUS) & 0x02)) - if(++i > NUM_WAIT_LOOPS) - break; - set_sop_data_crc(); - cyrf_state++; // change from CH1_CHECK to CH2_WRITE - return CH1_CH2_DELAY - WRITE_DELAY; - case DSM2_CH2_CHECK_A: - case DSM2_CH2_CHECK_B: - while (! (CYRF_ReadRegister(CYRF_04_TX_IRQ_STATUS) & 0x02)) - if(++i > NUM_WAIT_LOOPS) - break; - if (cyrf_state == DSM2_CH2_CHECK_A) - CYRF_SetPower(0x28); //Keep transmit power in sync - // No telemetry... - set_sop_data_crc(); - if (cyrf_state == DSM2_CH2_CHECK_A) - { - if(option < 8) - { - cyrf_state = DSM2_CH1_WRITE_A; // change from CH2_CHECK_A to CH1_WRITE_A (ie no upper) - if(option>3) - return 11000 - CH1_CH2_DELAY - WRITE_DELAY ; // force 11ms if option>3 ie 4,5,6,7 channels @11ms - else - return 22000 - CH1_CH2_DELAY - WRITE_DELAY ; // normal 22ms mode if option<=3 ie 4,5,6,7 channels @22ms - } - else - cyrf_state = DSM2_CH1_WRITE_B; // change from CH2_CHECK_A to CH1_WRITE_A (to transmit upper) - } - else - cyrf_state = DSM2_CH1_WRITE_A; // change from CH2_CHECK_B to CH1_WRITE_A (upper already transmitted so transmit lower) - return 11000 - CH1_CH2_DELAY - WRITE_DELAY; - } - return 0; -} - -uint16_t initDsm2() -{ - CYRF_Reset(); - CYRF_GetMfgData(cyrfmfg_id);// - - cyrf_config(); - - if (sub_protocol ==DSMX) - calc_dsmx_channel(); - else - { -#if RANDOM_CHANNELS == 1 - uint8_t tmpch[10]; - CYRF_FindBestChannels(tmpch, 10, 5, 3, 75); - // - randomSeed((uint32_t)analogRead(A6)<<10|analogRead(A7));//seed - uint8_t idx = random(0xfefefefe) % 10; - hopping_frequency[0] = tmpch[idx]; - while(1) - { - idx = random(0xfefefefe) % 10; - if (tmpch[idx] != hopping_frequency[0]) - break; - } - hopping_frequency[1] = tmpch[idx]; -#else - hopping_frequency[0] = (cyrfmfg_id[0] + cyrfmfg_id[2] + cyrfmfg_id[4]) % 39 + 1; - hopping_frequency[1] = (cyrfmfg_id[1] + cyrfmfg_id[3] + cyrfmfg_id[5]) % 40 + 40; -#endif - } - - ///} - crc = ~((cyrfmfg_id[0] << 8) + cyrfmfg_id[1]); //The crc for channel 'a' is NOT(mfgid[1] << 8 + mfgid[0]) - crcidx = 0;//The crc for channel 'b' is (mfgid[1] << 8 + mfgid[0]) - // - sop_col = (cyrfmfg_id[0] + cyrfmfg_id[1] + cyrfmfg_id[2] + 2) & 0x07;//Ok - data_col = 7 - sop_col;//ok - - CYRF_SetTxRxMode(TX_EN); - // - if(IS_AUTOBIND_FLAG_on) - { - cyrf_state = DSM2_BIND; - PROTOCOL_SticksMoved(1); //Initialize Stick position - initialize_bind_state(); - binding = 1; - } - else - { - cyrf_state = DSM2_CHANSEL;// - binding = 0; - } - return 10000; -} - -#endif diff --git a/Multiprotocol/Devo_cyrf6936.ino b/Multiprotocol/Devo_cyrf6936.ino index 91d752e..a677de9 100644 --- a/Multiprotocol/Devo_cyrf6936.ino +++ b/Multiprotocol/Devo_cyrf6936.ino @@ -43,31 +43,7 @@ enum { DEVO_BOUND_10, }; -<<<<<<< HEAD -const uint8_t sopcodes[][8] = { - /* Note these are in order transmitted (LSB 1st) */ - /* 0 */ {0x3C,0x37,0xCC,0x91,0xE2,0xF8,0xCC,0x91}, //0x91CCF8E291CC373C - /* 1 */ {0x9B,0xC5,0xA1,0x0F,0xAD,0x39,0xA2,0x0F}, //0x0FA239AD0FA1C59B - /* 2 */ {0xEF,0x64,0xB0,0x2A,0xD2,0x8F,0xB1,0x2A}, //0x2AB18FD22AB064EF - /* 3 */ {0x66,0xCD,0x7C,0x50,0xDD,0x26,0x7C,0x50}, //0x507C26DD507CCD66 - /* 4 */ {0x5C,0xE1,0xF6,0x44,0xAD,0x16,0xF6,0x44}, //0x44F616AD44F6E15C - /* 5 */ {0x5A,0xCC,0xAE,0x46,0xB6,0x31,0xAE,0x46}, //0x46AE31B646AECC5A - /* 6 */ {0xA1,0x78,0xDC,0x3C,0x9E,0x82,0xDC,0x3C}, //0x3CDC829E3CDC78A1 - /* 7 */ {0xB9,0x8E,0x19,0x74,0x6F,0x65,0x18,0x74}, //0x7418656F74198EB9 - /* 8 */ {0xDF,0xB1,0xC0,0x49,0x62,0xDF,0xC1,0x49}, //0x49C1DF6249C0B1DF - /* 9 */ {0x97,0xE5,0x14,0x72,0x7F,0x1A,0x14,0x72}, //0x72141A7F7214E597 -}; - -uint8_t txState; -uint8_t pkt_num; -uint8_t ch_idx; -uint8_t use_fixed_id; -uint8_t failsafe_pkt; - -static void __attribute__((unused)) scramble_pkt() -======= static void __attribute__((unused)) DEVO_scramble_pkt() ->>>>>>> refs/remotes/pascallanger/master { #ifdef NO_SCRAMBLE return; @@ -77,11 +53,7 @@ static void __attribute__((unused)) DEVO_scramble_pkt() #endif } -<<<<<<< HEAD -static void __attribute__((unused)) add_pkt_suffix() -======= static void __attribute__((unused)) DEVO_add_pkt_suffix() ->>>>>>> refs/remotes/pascallanger/master { uint8_t bind_state; #ifdef ENABLE_PPM @@ -119,11 +91,7 @@ static void __attribute__((unused)) DEVO_add_pkt_suffix() packet[15] = (MProtocol_id >> 16) & 0xff; } -<<<<<<< HEAD -static void __attribute__((unused)) build_beacon_pkt(uint8_t upper) -======= static void __attribute__((unused)) DEVO_build_beacon_pkt(uint8_t upper) ->>>>>>> refs/remotes/pascallanger/master { packet[0] = (DEVO_NUM_CHANNELS << 4) | 0x07; uint8_t max = 8; @@ -138,11 +106,7 @@ static void __attribute__((unused)) DEVO_build_beacon_pkt(uint8_t upper) DEVO_add_pkt_suffix(); } -<<<<<<< HEAD -static void __attribute__((unused)) build_bind_pkt() -======= static void __attribute__((unused)) DEVO_build_bind_pkt() ->>>>>>> refs/remotes/pascallanger/master { packet[0] = (DEVO_NUM_CHANNELS << 4) | 0x0a; packet[1] = bind_counter & 0xff; @@ -162,11 +126,7 @@ static void __attribute__((unused)) DEVO_build_bind_pkt() packet[15] ^= cyrfmfg_id[2]; } -<<<<<<< HEAD -static void __attribute__((unused)) build_data_pkt() -======= static void __attribute__((unused)) DEVO_build_data_pkt() ->>>>>>> refs/remotes/pascallanger/master { static uint8_t ch_idx=0; @@ -190,11 +150,7 @@ static void __attribute__((unused)) DEVO_build_data_pkt() DEVO_add_pkt_suffix(); } -<<<<<<< HEAD -static void __attribute__((unused)) cyrf_set_bound_sop_code() -======= static void __attribute__((unused)) DEVO_cyrf_set_bound_sop_code() ->>>>>>> refs/remotes/pascallanger/master { /* crc == 0 isn't allowed, so use 1 if the math results in 0 */ uint8_t crc = (cyrfmfg_id[0] + (cyrfmfg_id[1] >> 6) + cyrfmfg_id[2]); @@ -207,9 +163,6 @@ static void __attribute__((unused)) DEVO_cyrf_set_bound_sop_code() CYRF_SetPower(0x08); } -<<<<<<< HEAD -static void __attribute__((unused)) cyrf_init() -======= const uint8_t PROGMEM DEVO_init_vals[][2] = { { CYRF_1D_MODE_OVERRIDE, 0x38 }, { CYRF_03_TX_CFG, 0x08 }, @@ -233,18 +186,13 @@ const uint8_t PROGMEM DEVO_init_vals[][2] = { }; static void __attribute__((unused)) DEVO_cyrf_init() ->>>>>>> refs/remotes/pascallanger/master { /* Initialise CYRF chip */ for(uint8_t i = 0; i < sizeof(DEVO_init_vals) / 2; i++) CYRF_WriteRegister(pgm_read_byte( &DEVO_init_vals[i][0]), pgm_read_byte( &DEVO_init_vals[i][1]) ); } -<<<<<<< HEAD -static void __attribute__((unused)) set_radio_channels() -======= static void __attribute__((unused)) DEVO_set_radio_channels() ->>>>>>> refs/remotes/pascallanger/master { CYRF_FindBestChannels(hopping_frequency, 3, 4, 4, 80); hopping_frequency[3] = hopping_frequency[0]; @@ -337,35 +285,6 @@ uint16_t devo_callback() return 1200; } -<<<<<<< HEAD -/*static void __attribute__((unused)) devo_bind() -{ - fixed_id = Model_fixed_id; - bind_counter = DEVO_BIND_COUNT; - use_fixed_id = 1; - //PROTOCOL_SetBindState(0x1388 * 2400 / 1000); //msecs 12000ms -} - - -static void __attribute__((unused)) generate_fixed_id_bind(){ -if(BIND_0){ -//randomSeed((uint32_t)analogRead(A6)<<10|analogRead(A7));//seed -uint8_t txid[4]; -//Model_fixed_id = random(0xfefefefe) + ((uint32_t)random(0xfefefefe) << 16); -Model_fixed_id=0x332211; -txid[0]= (id &0xFF); -txid[1] = ((id >> 8) & 0xFF); -txid[2] = ((id >> 16) & 0xFF); -//txid[3] = ((id >> 24) & 0xFF); -eeprom_write_block((const void*)txid,(void*)40,3); -devo_bind(); -} -} -*/ - - -======= ->>>>>>> refs/remotes/pascallanger/master uint16_t DevoInit() { DEVO_cyrf_init(); diff --git a/Multiprotocol/FY326_nrf24l01.ino b/Multiprotocol/FY326_nrf24l01.ino index 670103f..fdb441d 100644 --- a/Multiprotocol/FY326_nrf24l01.ino +++ b/Multiprotocol/FY326_nrf24l01.ino @@ -15,26 +15,17 @@ // Last sync with hexfet new_protocols/fy326_nrf24l01.c dated 2015-07-29 #if defined(FY326_NRF24L01_INO) -<<<<<<< HEAD -======= - ->>>>>>> refs/remotes/pascallanger/master #include "iface_nrf24l01.h" #define FY326_INITIAL_WAIT 500 #define FY326_PACKET_PERIOD 1500 #define FY326_PACKET_CHKTIME 300 #define FY326_PACKET_SIZE 15 -<<<<<<< HEAD -#define FY326_BIND_COUNT 16 -======= #define FY326_BIND_COUNT 16 ->>>>>>> refs/remotes/pascallanger/master #define FY326_RF_BIND_CHANNEL 0x17 #define FY326_NUM_RF_CHANNELS 5 enum { -<<<<<<< HEAD FY326_INIT1 = 0, FY326_BIND1, FY326_BIND2, @@ -42,11 +33,6 @@ enum { FY319_INIT1, FY319_BIND1, FY319_BIND2, -======= - FY326_BIND1=0, - FY326_BIND2, - FY326_DATA ->>>>>>> refs/remotes/pascallanger/master }; #define rxid channel @@ -56,11 +42,7 @@ static void __attribute__((unused)) FY326_send_packet(uint8_t bind) { packet[0] = rx_tx_addr[3]; if(bind) -<<<<<<< HEAD packet[1] = 0x55; -======= - packet[1] = 0x55; ->>>>>>> refs/remotes/pascallanger/master else packet[1] = GET_FLAG(Servo_AUX3, 0x80) // Headless | GET_FLAG(Servo_AUX2, 0x40) // RTH @@ -71,11 +53,10 @@ static void __attribute__((unused)) FY326_send_packet(uint8_t bind) packet[3] = convert_channel_8b_scale(ELEVATOR, 0, 200); // elevator packet[4] = 200 - convert_channel_8b_scale(RUDDER, 0, 200); // rudder packet[5] = convert_channel_8b_scale(THROTTLE, 0, 200); // throttle -<<<<<<< HEAD if(sub_protocol == FY319) { - packet[6] = 255 - scale_channel(AILERON, 0, 255); - packet[7] = scale_channel(ELEVATOR, 0, 255); - packet[8] = 255 - scale_channel(RUDDER, 0, 255); + packet[6] = 255 - convert_channel_8b_scale(AILERON, 0, 255); + packet[7] = convert_channel_8b_scale(ELEVATOR, 0, 255); + packet[8] = 255 - convert_channel_8b_scale(RUDDER, 0, 255); } else { packet[6] = rx_tx_addr[0]; @@ -87,16 +68,6 @@ static void __attribute__((unused)) FY326_send_packet(uint8_t bind) packet[11] = CHAN_TO_TRIM(packet[4]); // rudder_trim; packet[12] = 0; // throttle_trim; packet[13] = rxid; -======= - packet[6] = rx_tx_addr[0]; - packet[7] = rx_tx_addr[1]; - packet[8] = rx_tx_addr[2]; - packet[9] = CHAN_TO_TRIM(packet[2]); // aileron_trim; - packet[10] = CHAN_TO_TRIM(packet[3]); // elevator_trim; - packet[11] = CHAN_TO_TRIM(packet[4]); // rudder_trim; - packet[12] = 0; // throttle_trim; - packet[13] = rxid; ->>>>>>> refs/remotes/pascallanger/master packet[14] = rx_tx_addr[4]; if (bind) @@ -105,20 +76,12 @@ static void __attribute__((unused)) FY326_send_packet(uint8_t bind) { NRF24L01_WriteReg(NRF24L01_05_RF_CH, hopping_frequency[hopping_frequency_no++]); hopping_frequency_no %= FY326_NUM_RF_CHANNELS; -<<<<<<< HEAD } // clear packet status bits and TX FIFO NRF24L01_WriteReg(NRF24L01_07_STATUS, 0x70); NRF24L01_FlushTx(); -======= - } - - // clear packet status bits and TX FIFO - NRF24L01_WriteReg(NRF24L01_07_STATUS, 0x70); - NRF24L01_FlushTx(); ->>>>>>> refs/remotes/pascallanger/master NRF24L01_WritePayload(packet, FY326_PACKET_SIZE); @@ -127,18 +90,12 @@ static void __attribute__((unused)) FY326_send_packet(uint8_t bind) static void __attribute__((unused)) FY326_init() { -<<<<<<< HEAD NRF24L01_Initialize(); NRF24L01_SetTxRxMode(TX_EN); if(sub_protocol == FY319) NRF24L01_WriteReg(NRF24L01_03_SETUP_AW, 0x03); // Five-byte rx/tx address else NRF24L01_WriteReg(NRF24L01_03_SETUP_AW, 0x01); // Three-byte rx/tx address -======= - NRF24L01_Initialize(); - NRF24L01_SetTxRxMode(TX_EN); - NRF24L01_WriteReg(NRF24L01_03_SETUP_AW, 0x01); // Three-byte rx/tx address ->>>>>>> refs/remotes/pascallanger/master NRF24L01_WriteRegisterMulti(NRF24L01_10_TX_ADDR, (uint8_t *)"\x15\x59\x23\xc6\x29", 5); NRF24L01_WriteRegisterMulti(NRF24L01_0A_RX_ADDR_P0, (uint8_t *)"\x15\x59\x23\xc6\x29", 5); NRF24L01_FlushTx(); @@ -150,20 +107,14 @@ static void __attribute__((unused)) FY326_init() NRF24L01_WriteReg(NRF24L01_05_RF_CH, FY326_RF_BIND_CHANNEL); NRF24L01_SetBitrate(NRF24L01_BR_250K); NRF24L01_SetPower(); -<<<<<<< HEAD NRF24L01_Activate(0x73); -======= - - NRF24L01_Activate(0x73); ->>>>>>> refs/remotes/pascallanger/master NRF24L01_WriteReg(NRF24L01_1C_DYNPD, 0x3f); NRF24L01_WriteReg(NRF24L01_1D_FEATURE, 0x07); NRF24L01_Activate(0x73); } -<<<<<<< HEAD -uint16_t fy326_callback() +uint16_t FY326_callback() { uint8_t i; switch (phase) { @@ -171,19 +122,19 @@ uint16_t fy326_callback() NRF24L01_SetTxRxMode(TXRX_OFF); NRF24L01_FlushRx(); NRF24L01_SetTxRxMode(RX_EN); - NRF24L01_WriteReg(NRF24L01_05_RF_CH, RF_BIND_CHANNEL); + NRF24L01_WriteReg(NRF24L01_05_RF_CH, FY326_RF_BIND_CHANNEL); phase = FY319_BIND1; BIND_IN_PROGRESS; - return FY326_CHKTIME; + return FY326_PACKET_CHKTIME; break; case FY319_BIND1: - if(NRF24L01_ReadReg(NRF24L01_07_STATUS) & BV(NRF24L01_07_RX_DR)) { - NRF24L01_ReadPayload(packet, FY326_SIZE); + if(NRF24L01_ReadReg(NRF24L01_07_STATUS) & _BV(NRF24L01_07_RX_DR)) { + NRF24L01_ReadPayload(packet, FY326_PACKET_SIZE); rxid = packet[13]; - packet[0] = txid[3]; + packet[0] = rx_tx_addr[3]; packet[1] = 0x80; - packet[14]= txid[4]; + packet[14]= rx_tx_addr[4]; bind_counter = FY326_BIND_COUNT; NRF24L01_SetTxRxMode(TXRX_OFF); NRF24L01_SetTxRxMode(TX_EN); @@ -191,16 +142,16 @@ uint16_t fy326_callback() NRF24L01_FlushTx(); bind_counter = 255; for(i=2; i<6; i++) - packet[i] = rf_chans[0]; + packet[i] = hopping_frequency[0]; phase = FY319_BIND2; } - return FY326_CHKTIME; + return FY326_PACKET_CHKTIME; break; case FY319_BIND2: NRF24L01_WriteReg(NRF24L01_07_STATUS, 0x70); NRF24L01_FlushTx(); - NRF24L01_WritePayload(packet, FY326_SIZE); + NRF24L01_WritePayload(packet, FY326_PACKET_SIZE); if(bind_counter == 250) packet[1] = 0x40; if(--bind_counter == 0) { @@ -212,12 +163,12 @@ uint16_t fy326_callback() case FY326_INIT1: bind_counter = FY326_BIND_COUNT; phase = FY326_BIND2; - send_packet(1); - return FY326_CHKTIME; + FY326_send_packet(1); + return FY326_PACKET_CHKTIME; break; case FY326_BIND1: - if( NRF24L01_ReadReg(NRF24L01_07_STATUS) & BV(NRF24L01_07_RX_DR)) + if( NRF24L01_ReadReg(NRF24L01_07_STATUS) & _BV(NRF24L01_07_RX_DR)) { // RX fifo data ready NRF24L01_ReadPayload(packet, FY326_PACKET_SIZE); rxid = packet[13]; @@ -240,7 +191,7 @@ uint16_t fy326_callback() break; case FY326_BIND2: - if( NRF24L01_ReadReg(NRF24L01_07_STATUS) & BV(NRF24L01_07_TX_DS)) + if( NRF24L01_ReadReg(NRF24L01_07_STATUS) & _BV(NRF24L01_07_TX_DS)) { // TX data sent -> switch to RX mode NRF24L01_SetTxRxMode(TXRX_OFF); NRF24L01_FlushRx(); @@ -255,55 +206,11 @@ uint16_t fy326_callback() FY326_send_packet(0); break; } -======= -uint16_t FY326_callback() -{ - switch (phase) - { - case FY326_BIND1: - if( NRF24L01_ReadReg(NRF24L01_07_STATUS) & _BV(NRF24L01_07_RX_DR)) - { // RX fifo data ready - NRF24L01_ReadPayload(packet, FY326_PACKET_SIZE); - rxid = packet[13]; - rx_tx_addr[0] = 0xAA; - NRF24L01_SetTxRxMode(TXRX_OFF); - NRF24L01_SetTxRxMode(TX_EN); - BIND_DONE; - phase = FY326_DATA; - } - else - if (bind_counter-- == 0) - { - bind_counter = FY326_BIND_COUNT; - NRF24L01_SetTxRxMode(TXRX_OFF); - NRF24L01_SetTxRxMode(TX_EN); - FY326_send_packet(1); - phase = FY326_BIND2; - return FY326_PACKET_CHKTIME; - } - break; - case FY326_BIND2: - if( NRF24L01_ReadReg(NRF24L01_07_STATUS) & _BV(NRF24L01_07_TX_DS)) - { // TX data sent -> switch to RX mode - NRF24L01_SetTxRxMode(TXRX_OFF); - NRF24L01_FlushRx(); - NRF24L01_SetTxRxMode(RX_EN); - phase = FY326_BIND1; - } - else - return FY326_PACKET_CHKTIME; - break; - case FY326_DATA: - FY326_send_packet(0); - break; - } ->>>>>>> refs/remotes/pascallanger/master return FY326_PACKET_PERIOD; } static void __attribute__((unused)) FY326_initialize_txid() { -<<<<<<< HEAD if(sub_protocol == FY319) { hopping_frequency[0] = (rx_tx_addr[0]&0x0f) & ~0x80; hopping_frequency[1] = (rx_tx_addr[0] >> 4) & ~0x80; @@ -317,34 +224,19 @@ static void __attribute__((unused)) FY326_initialize_txid() hopping_frequency[3] = 0x30 + (rx_tx_addr[1] >> 4); hopping_frequency[4] = 0x40 + (rx_tx_addr[2] >> 4); } -======= - hopping_frequency[0] = (rx_tx_addr[0]&0x0f); - hopping_frequency[1] = 0x10 + (rx_tx_addr[0] >> 4); - hopping_frequency[2] = 0x20 + (rx_tx_addr[1]&0x0f); - hopping_frequency[3] = 0x30 + (rx_tx_addr[1] >> 4); - hopping_frequency[4] = 0x40 + (rx_tx_addr[2] >> 4); ->>>>>>> refs/remotes/pascallanger/master } uint16_t initFY326(void) { BIND_IN_PROGRESS; // autobind protocol -<<<<<<< HEAD - rxid = 0xaa; + rxid = 0xAA; bind_counter = 0; FY326_initialize_txid(); - fy326_init(); + FY326_init(); if(sub_protocol == FY319) phase = FY319_INIT1; else phase = FY326_INIT1; -======= - rxid = 0xAA; - bind_counter = 0; - FY326_initialize_txid(); - FY326_init(); - phase=FY326_BIND1; ->>>>>>> refs/remotes/pascallanger/master return FY326_INITIAL_WAIT; } diff --git a/Multiprotocol/FlySky_a7105.ino b/Multiprotocol/FlySky_a7105.ino index 1165aea..43ccffd 100644 --- a/Multiprotocol/FlySky_a7105.ino +++ b/Multiprotocol/FlySky_a7105.ino @@ -21,34 +21,6 @@ //FlySky constants & variables #define FLYSKY_BIND_COUNT 2500 -<<<<<<< HEAD -const uint8_t PROGMEM tx_channels[] = { - 0x0a, 0x5a, 0x14, 0x64, 0x1e, 0x6e, 0x28, 0x78, 0x32, 0x82, 0x3c, 0x8c, 0x46, 0x96, 0x50, 0xa0, - 0xa0, 0x50, 0x96, 0x46, 0x8c, 0x3c, 0x82, 0x32, 0x78, 0x28, 0x6e, 0x1e, 0x64, 0x14, 0x5a, 0x0a, - 0x0a, 0x5a, 0x50, 0xa0, 0x14, 0x64, 0x46, 0x96, 0x1e, 0x6e, 0x3c, 0x8c, 0x28, 0x78, 0x32, 0x82, - 0x82, 0x32, 0x78, 0x28, 0x8c, 0x3c, 0x6e, 0x1e, 0x96, 0x46, 0x64, 0x14, 0xa0, 0x50, 0x5a, 0x0a, - 0x28, 0x78, 0x0a, 0x5a, 0x50, 0xa0, 0x14, 0x64, 0x1e, 0x6e, 0x3c, 0x8c, 0x32, 0x82, 0x46, 0x96, - 0x96, 0x46, 0x82, 0x32, 0x8c, 0x3c, 0x6e, 0x1e, 0x64, 0x14, 0xa0, 0x50, 0x5a, 0x0a, 0x78, 0x28, - 0x50, 0xa0, 0x28, 0x78, 0x0a, 0x5a, 0x1e, 0x6e, 0x3c, 0x8c, 0x32, 0x82, 0x46, 0x96, 0x14, 0x64, - 0x64, 0x14, 0x96, 0x46, 0x82, 0x32, 0x8c, 0x3c, 0x6e, 0x1e, 0x5a, 0x0a, 0x78, 0x28, 0xa0, 0x50, - 0x50, 0xa0, 0x46, 0x96, 0x3c, 0x8c, 0x28, 0x78, 0x0a, 0x5a, 0x32, 0x82, 0x1e, 0x6e, 0x14, 0x64, - 0x64, 0x14, 0x6e, 0x1e, 0x82, 0x32, 0x5a, 0x0a, 0x78, 0x28, 0x8c, 0x3c, 0x96, 0x46, 0xa0, 0x50, - 0x46, 0x96, 0x3c, 0x8c, 0x50, 0xa0, 0x28, 0x78, 0x0a, 0x5a, 0x1e, 0x6e, 0x32, 0x82, 0x14, 0x64, - 0x64, 0x14, 0x82, 0x32, 0x6e, 0x1e, 0x5a, 0x0a, 0x78, 0x28, 0xa0, 0x50, 0x8c, 0x3c, 0x96, 0x46, - 0x46, 0x96, 0x0a, 0x5a, 0x3c, 0x8c, 0x14, 0x64, 0x50, 0xa0, 0x28, 0x78, 0x1e, 0x6e, 0x32, 0x82, - 0x82, 0x32, 0x6e, 0x1e, 0x78, 0x28, 0xa0, 0x50, 0x64, 0x14, 0x8c, 0x3c, 0x5a, 0x0a, 0x96, 0x46, - 0x46, 0x96, 0x0a, 0x5a, 0x50, 0xa0, 0x3c, 0x8c, 0x28, 0x78, 0x1e, 0x6e, 0x32, 0x82, 0x14, 0x64, - 0x64, 0x14, 0x82, 0x32, 0x6e, 0x1e, 0x78, 0x28, 0x8c, 0x3c, 0xa0, 0x50, 0x5a, 0x0a, 0x96, 0x46 -}; - -enum { - // flags going to byte 10 - FLAG_V9X9_VIDEO = 0x40, - FLAG_V9X9_CAMERA= 0x80, - // flags going to byte 12 - FLAG_V9X9_FLIP = 0x10, - FLAG_V9X9_LED = 0x20, -======= enum { // flags going to byte 10 FLAG_V9X9_VIDEO = 0x40, @@ -56,27 +28,26 @@ enum { // flags going to byte 12 FLAG_V9X9_FLIP = 0x10, FLAG_V9X9_LED = 0x20, ->>>>>>> refs/remotes/pascallanger/master }; enum { - // flags going to byte 13 - FLAG_V6X6_HLESS1= 0x80, - // flags going to byte 14 - FLAG_V6X6_VIDEO = 0x01, - FLAG_V6X6_YCAL = 0x02, - FLAG_V6X6_XCAL = 0x04, - FLAG_V6X6_RTH = 0x08, - FLAG_V6X6_CAMERA= 0x10, - FLAG_V6X6_HLESS2= 0x20, - FLAG_V6X6_LED = 0x40, - FLAG_V6X6_FLIP = 0x80, + // flags going to byte 13 + FLAG_V6X6_HLESS1= 0x80, + // flags going to byte 14 + FLAG_V6X6_VIDEO = 0x01, + FLAG_V6X6_YCAL = 0x02, + FLAG_V6X6_XCAL = 0x04, + FLAG_V6X6_RTH = 0x08, + FLAG_V6X6_CAMERA= 0x10, + FLAG_V6X6_HLESS2= 0x20, + FLAG_V6X6_LED = 0x40, + FLAG_V6X6_FLIP = 0x80, }; enum { - // flags going to byte 14 - FLAG_V912_TOPBTN= 0x40, - FLAG_V912_BTMBTN= 0x80, + // flags going to byte 14 + FLAG_V912_TOPBTN= 0x40, + FLAG_V912_BTMBTN= 0x80, }; const uint8_t PROGMEM V912_X17_SEQ[10] = { 0x14, 0x31, 0x40, 0x49, 0x49, // sometime first byte is 0x15 ? @@ -84,79 +55,6 @@ const uint8_t PROGMEM V912_X17_SEQ[10] = { 0x14, 0x31, 0x40, 0x49, 0x49, // static void __attribute__((unused)) flysky_apply_extension_flags() { -<<<<<<< HEAD - const uint8_t V912_X17_SEQ[10] = { 0x14, 0x31, 0x40, 0x49, 0x49, // sometime first byte is 0x15 ? - 0x49, 0x49, 0x49, 0x49, 0x49, }; - static uint8_t seq_counter; - switch(sub_protocol) - { - case V9X9: - if(Servo_AUX1) - packet[12] |= FLAG_V9X9_FLIP; - if(Servo_AUX2) - packet[12] |= FLAG_V9X9_LED; - if(Servo_AUX3) - packet[10] |= FLAG_V9X9_CAMERA; - if(Servo_AUX4) - packet[10] |= FLAG_V9X9_VIDEO; - break; - - case V6X6: - packet[13] = 0x03; // 3 = 100% rate (0=40%, 1=60%, 2=80%) - packet[14] = 0x00; - if(Servo_AUX1) - packet[14] |= FLAG_V6X6_FLIP; - if(Servo_AUX2) - packet[14] |= FLAG_V6X6_LED; - if(Servo_AUX3) - packet[14] |= FLAG_V6X6_CAMERA; - if(Servo_AUX4) - packet[14] |= FLAG_V6X6_VIDEO; - if(Servo_AUX5) - { - packet[13] |= FLAG_V6X6_HLESS1; - packet[14] |= FLAG_V6X6_HLESS2; - } - if(Servo_AUX6) //use option to manipulate these bytes - packet[14] |= FLAG_V6X6_RTH; - if(Servo_AUX7) - packet[14] |= FLAG_V6X6_XCAL; - if(Servo_AUX8) - packet[14] |= FLAG_V6X6_YCAL; - packet[15] = 0x10; // unknown - packet[16] = 0x10; // unknown - packet[17] = 0xAA; // unknown - packet[18] = 0xAA; // unknown - packet[19] = 0x60; // unknown, changes at irregular interval in stock TX - packet[20] = 0x02; // unknown - break; - - case V912: - seq_counter++; - if( seq_counter > 9) - seq_counter = 0; - packet[12] |= 0x20; // bit 6 is always set ? - packet[13] = 0x00; // unknown - packet[14] = 0x00; - if(Servo_AUX1) - packet[14] = FLAG_V912_BTMBTN; - if(Servo_AUX2) - packet[14] |= FLAG_V912_TOPBTN; - packet[15] = 0x27; // [15] and [16] apparently hold an analog channel with a value lower than 1000 - packet[16] = 0x03; // maybe it's there for a pitch channel for a CP copter ? - packet[17] = V912_X17_SEQ[seq_counter]; // not sure what [17] & [18] are for - if(seq_counter == 0) // V912 Rx does not even read those bytes... [17-20] - packet[18] = 0x02; - else - packet[18] = 0x00; - packet[19] = 0x00; // unknown - packet[20] = 0x00; // unknown - break; - - default: - break; - } -======= static uint8_t seq_counter; switch(sub_protocol) { @@ -226,78 +124,39 @@ static void __attribute__((unused)) flysky_apply_extension_flags() default: break; } ->>>>>>> refs/remotes/pascallanger/master } static void __attribute__((unused)) flysky_build_packet(uint8_t init) { uint8_t i; - //servodata timing range for flysky. - ////-100% =~ 0x03e8//=1000us(min) - //+100% =~ 0x07ca//=1994us(max) - //Center = 0x5d9//=1497us(center) - //channel order AIL;ELE;THR;RUD;AUX1;AUX2;AUX3;AUX4 + //servodata timing range for flysky. + ////-100% =~ 0x03e8//=1000us(min) + //+100% =~ 0x07ca//=1994us(max) + //Center = 0x5d9//=1497us(center) + //channel order AIL;ELE;THR;RUD;AUX1;AUX2;AUX3;AUX4 packet[0] = init ? 0xaa : 0x55; packet[1] = rx_tx_addr[3]; packet[2] = rx_tx_addr[2]; packet[3] = rx_tx_addr[1]; packet[4] = rx_tx_addr[0]; -<<<<<<< HEAD - const uint8_t ch[]={AILERON, ELEVATOR, THROTTLE, RUDDER, AUX1, AUX2, AUX3, AUX4}; - for(i = 0; i < 8; i++) - { - packet[5+2*i]=lowByte(Servo_data[ch[i]]); //low byte of servo timing(1000-2000us) - packet[6+2*i]=highByte(Servo_data[ch[i]]); //high byte of servo timing(1000-2000us) - } -======= for(i = 0; i < 8; i++) { packet[5 + i*2]=Servo_data[CH_AETR[i]]&0xFF; //low byte of servo timing(1000-2000us) packet[6 + i*2]=(Servo_data[CH_AETR[i]]>>8)&0xFF; //high byte of servo timing(1000-2000us) } ->>>>>>> refs/remotes/pascallanger/master flysky_apply_extension_flags(); } uint16_t ReadFlySky() { if (bind_counter) - { + { flysky_build_packet(1); A7105_WriteData(21, 1); bind_counter--; if (! bind_counter) BIND_DONE; } -<<<<<<< HEAD - else - { - flysky_build_packet(0); - A7105_WriteData(21, pgm_read_byte_near(&tx_channels[chanrow*16+chancol])-chanoffset); - chancol = (chancol + 1) % 16; - if (! chancol) //Keep transmit power updated - A7105_SetPower(); - } - return 1460; -} - -uint16_t initFlySky() { - //A7105_Reset(); - A7105_Init(INIT_FLYSKY); //flysky_init(); - - if (rx_tx_addr[3] > 0x90) // limit offset to 9 as higher values don't work with some RX (ie V912) - rx_tx_addr[3] = rx_tx_addr[3] - 0x70; - chanrow=rx_tx_addr[3] % 16; - chancol=0; - chanoffset=rx_tx_addr[3] / 16; - - - if(IS_AUTOBIND_FLAG_on) - bind_counter = FLYSKY_BIND_COUNT; - else - bind_counter = 0; - return 2400; -======= else { flysky_build_packet(0); @@ -352,7 +211,5 @@ uint16_t initFlySky() else bind_counter = 0; return 2400; ->>>>>>> refs/remotes/pascallanger/master } #endif - diff --git a/Multiprotocol/Flysky_afhds2a_a7105.ino b/Multiprotocol/Flysky_afhds2a_a7105.ino new file mode 100644 index 0000000..c83a582 --- /dev/null +++ b/Multiprotocol/Flysky_afhds2a_a7105.ino @@ -0,0 +1,317 @@ +// adaptation de https://github.com/goebish/deviation/blob/c5dd9fcc1441fc05fe9effa4c378886aeb3938d4/src/protocol/flysky_afhds2a_a7105.c +#ifdef AFHDS2A_A7105_INO + #define EEPROMadress 0 // rx ID 32bit + #define SERVO_HZ 0 //Frequency's servo 0=50 1=400 2=5 + + #define TXPACKET_SIZE 38 + #define RXPACKET_SIZE 37 + #define NUMFREQ 16 + #define TXID_SIZE 4 + #define RXID_SIZE 4 + + static uint8_t rxid[RXID_SIZE]; + static uint8_t packet_type; + static uint8_t bind_reply; + + + enum{ + PACKET_STICKS, + PACKET_SETTINGS, + PACKET_FAILSAFE, + }; + + enum{ + BIND1, + BIND2, + BIND3, + BIND4, + DATA1, + }; + enum { + PWM_IBUS = 0, + PPM_IBUS, + PWM_SBUS, + PPM_SBUS + }; + + + static void build_packet(uint8_t type) { + switch(type) { + case PACKET_STICKS: + packet[0] = 0x58; + memcpy( &packet[1], rx_tx_addr, 4); + memcpy( &packet[5], rxid, 4); + for(uint8_t ch=0; ch<14; ch++) { + packet[9 + ch*2] = Servo_data[CH_AETR[ch]]&0xFF; + packet[10 + ch*2] = (Servo_data[CH_AETR[ch]]>>8)&0xFF; + } + packet[37] = 0x00; + break; + + case PACKET_SETTINGS: + packet[0] = 0xaa; + memcpy( &packet[1], rx_tx_addr, 4); + memcpy( &packet[5], rxid, 4); + packet[9] = 0xfd; + packet[10]= 0xff; + packet[11]= SERVO_HZ & 0xff; + packet[12]= (SERVO_HZ >> 8) & 0xff; + if(option == PPM_IBUS || option == PPM_SBUS) + packet[13] = 0x01; // PPM output enabled + else + packet[13] = 0x00; + packet[14]= 0x00; + for(uint8_t i=15; i<37; i++) + packet[i] = 0xff; + packet[18] = 0x05; // ? + packet[19] = 0xdc; // ? + packet[20] = 0x05; // ? + if(option == PWM_SBUS || option == PPM_SBUS) + packet[21] = 0xdd; // SBUS output enabled + else + packet[21] = 0xde; + packet[37] = 0x00; + break; + + case PACKET_FAILSAFE: + packet[0] = 0x56; + memcpy( &packet[1], rx_tx_addr, 4); + memcpy( &packet[5], rxid, 4); + for(uint8_t ch=0; ch<14; ch++) { + if(ch==0) { + // if(ch < Model.num_channels && (Model.limits[ch].flags & CH_FAILSAFE_EN)) { + uint32_t value = ((uint32_t)Servo_data[AUX11] + 100) * 5 + 1000; + packet[9 + ch*2] = value & 0xff; + packet[10+ ch*2] = (value >> 8) & 0xff; + } + else { + packet[9 + ch*2] = 0xff; + packet[10+ ch*2] = 0xff; + } + } + packet[37] = 0x00; + break; + } + } + + #if defined(TELEMETRY) + // telemetry sensors ID + enum{ + SENSOR_RX_VOLTAGE = 0x00, + SENSOR_RX_ERR_RATE = 0xfe, + SENSOR_RX_RSSI = 0xfc, + SENSOR_RX_NOISE = 0xfb, + SENSOR_RX_SNR = 0xfa, + }; + + static void update_telemetry() { + // AA | TXID | RXID | sensor id | sensor # | value 16 bit big endian | sensor id ...... + // max 7 sensors per packet + + for(uint8_t sensor=0; sensor<7; sensor++) { + uint8_t index = 9+(4*sensor); + switch(packet[index]) { + case SENSOR_RX_VOLTAGE: + v_lipo = packet[index+3]<<8 | packet[index+2]; + telemetry_link=1; + break; + case SENSOR_RX_ERR_RATE: + // packet[index+2]; + break; + case SENSOR_RX_RSSI: + RSSI_dBm = -packet[index+2]; + break; + case 0xff: + return; + default: + // unknown sensor ID + break; + } + } + } + #endif + + static void afhds2a_build_bind_packet() { + uint8_t ch; + memcpy( &packet[1], rx_tx_addr, 4); + memset( &packet[5], 0xff, 4); + packet[10]= 0x00; + for(ch=0; ch<16; ch++) { + packet[11+ch] = hopping_frequency[ch]; + } + memset( &packet[27], 0xff, 10); + packet[37] = 0x00; + switch(phase) { + case BIND1: + packet[0] = 0xbb; + packet[9] = 0x01; + break; + case BIND2: + case BIND3: + case BIND4: + packet[0] = 0xbc; + if(phase == BIND4) { + memcpy( &packet[5], &rxid, 4); + memset( &packet[11], 0xff, 16); + } + packet[9] = phase-1; + if(packet[9] > 0x02) + packet[9] = 0x02; + packet[27]= 0x01; + packet[28]= 0x80; + break; + } + } + + static void calc_afhds_channels(uint32_t seed) { + int idx = 0; + uint32_t rnd = seed; + while (idx < NUMFREQ) { + int i; + int count_1_42 = 0, count_43_85 = 0, count_86_128 = 0, count_129_168=0; + rnd = rnd * 0x0019660D + 0x3C6EF35F; // Randomization + + uint8_t next_ch = ((rnd >> (idx%32)) % 0xa8) + 1; + // Keep the distance 2 between the channels - either odd or even + if (((next_ch ^ seed) & 0x01 )== 0) + continue; + // Check that it's not duplicate and spread uniformly + for (i = 0; i < idx; i++) { + if(hopping_frequency[i] == next_ch) + break; + if(hopping_frequency[i] <= 42) + count_1_42++; + else if (hopping_frequency[i] <= 85) + count_43_85++; + else if (hopping_frequency[i] <= 128) + count_86_128++; + else + count_129_168++; + } + if (i != idx) + continue; + if ((next_ch <= 42 && count_1_42 < 5) + ||(next_ch >= 43 && next_ch <= 85 && count_43_85 < 5) + ||(next_ch >= 86 && next_ch <=128 && count_86_128 < 5) + ||(next_ch >= 129 && count_129_168 < 5)) + { + hopping_frequency[idx++] = next_ch; + } + } + } + + #define WAIT_WRITE 0x80 + static uint16_t afhds2a_cb() { + switch(phase) { + case BIND1: + case BIND2: + case BIND3: + A7105_Strobe(A7105_STANDBY); + afhds2a_build_bind_packet(); + A7105_WriteData(38, packet_count%2 ? 0x0d : 0x8c); + if(A7105_ReadReg(0) == 0x1b) { // todo: replace with check crc+fec + A7105_Strobe(A7105_RST_RDPTR); + A7105_ReadData(RXPACKET_SIZE); + if(packet[0] == 0xbc) { + for(uint8_t i=0; i<4; i++) { + rxid[i] = packet[5+i]; + } + eeprom_write_block((const void*)rxid,(void*)EEPROMadress,4); + if(packet[9] == 0x01) + phase = BIND4; + } + } + packet_count++; + phase |= WAIT_WRITE; + return 1700; + case BIND1|WAIT_WRITE: + case BIND2|WAIT_WRITE: + case BIND3|WAIT_WRITE: + A7105_Strobe(A7105_RX); + phase &= ~WAIT_WRITE; + phase++; + if(phase > BIND3) + phase = BIND1; + return 2150; + case BIND4: + A7105_Strobe(A7105_STANDBY); + afhds2a_build_bind_packet(); + A7105_WriteData(38, packet_count%2 ? 0x0d : 0x8c); + packet_count++; + bind_reply++; + if(bind_reply>=4) { + packet_count=0; + channel=1; + phase = DATA1; + BIND_DONE; + } + phase |= WAIT_WRITE; + return 1700; + case BIND4|WAIT_WRITE: + A7105_Strobe(A7105_RX); + phase &= ~WAIT_WRITE; + return 2150; + case DATA1: + A7105_Strobe(A7105_STANDBY); + build_packet(packet_type); + A7105_WriteData(38, hopping_frequency[channel++]); + if(channel >= 16) + channel = 0; + if(!(packet_count % 1313)) + packet_type = PACKET_SETTINGS; + else if(!(packet_count % 1569)) + packet_type = PACKET_FAILSAFE; + else + packet_type = PACKET_STICKS; // todo : check for settings changes + // got some data from RX ? + // we've no way to know if RX fifo has been filled + // as we can't poll GIO1 or GIO2 to check WTR + // we can't check A7105_MASK_TREN either as we know + // it's currently in transmit mode. + if(!(A7105_ReadReg(0) & (1<<5 | 1<<6))) { // FECF+CRCF Ok + A7105_Strobe(A7105_RST_RDPTR); + A7105_ReadData(1); + if(packet[0] == 0xaa) { + A7105_Strobe(A7105_RST_RDPTR); + A7105_ReadData(RXPACKET_SIZE); + if(packet[9] == 0xfc) { // rx is asking for settings + packet_type=PACKET_SETTINGS; + } + else { + #if defined(TELEMETRY) + update_telemetry(); + #endif + } + } + } + packet_count++; + phase |= WAIT_WRITE; + return 1700; + case DATA1|WAIT_WRITE: + phase &= ~WAIT_WRITE; + A7105_Strobe(A7105_RX); + return 2150; + } + return 3850; // never reached, please the compiler + } + + static uint16_t AFHDS2A_setup() + { + A7105_Init(INIT_FLYSKY_AFHDS2A); //flysky_init(); + + calc_afhds_channels(MProtocol_id); + packet_type = PACKET_STICKS; + packet_count = 0; + bind_reply = 0; + if(IS_AUTOBIND_FLAG_on) { + phase = BIND1; + BIND_IN_PROGRESS; + } + else { + phase = DATA1; + eeprom_read_block((void*)rxid,(const void*)EEPROMadress,4); + } + channel = 0; + return 50000; + } +#endif diff --git a/Multiprotocol/FrSkyX_cc2500.ino b/Multiprotocol/FrSkyX_cc2500.ino index 5f5f6ba..be159b3 100644 --- a/Multiprotocol/FrSkyX_cc2500.ino +++ b/Multiprotocol/FrSkyX_cc2500.ino @@ -17,297 +17,9 @@ */ #if defined(FRSKYX_CC2500_INO) - - #include "iface_cc2500.h" - - uint8_t chanskip; - uint8_t calData[48][3]; - uint8_t channr; - uint8_t pass_ = 1 ; - uint8_t counter_rst; - uint8_t ctr; - uint8_t FS_flag=0; - // uint8_t ptr[4]={0x01,0x12,0x23,0x30}; - //uint8_t ptr[4]={0x00,0x11,0x22,0x33}; - - const PROGMEM uint8_t hop_data[]={ - 0x02, 0xD4, 0xBB, 0xA2, 0x89, - 0x70, 0x57, 0x3E, 0x25, 0x0C, - 0xDE, 0xC5, 0xAC, 0x93, 0x7A, - 0x61, 0x48, 0x2F, 0x16, 0xE8, - 0xCF, 0xB6, 0x9D, 0x84, 0x6B, - 0x52, 0x39, 0x20, 0x07, 0xD9, - 0xC0, 0xA7, 0x8E, 0x75, 0x5C, - 0x43, 0x2A, 0x11, 0xE3, 0xCA, - 0xB1, 0x98, 0x7F, 0x66, 0x4D, - 0x34, 0x1B, 0x00, 0x1D, 0x03 - }; - static uint8_t __attribute__((unused)) hop(uint8_t byte) - { - return pgm_read_byte_near(&hop_data[byte]); - } +#include "iface_cc2500.h" - static void __attribute__((unused)) set_start(uint8_t ch ) - { - cc2500_strobe(CC2500_SIDLE); - cc2500_writeReg(CC2500_23_FSCAL3, calData[ch][0]); - cc2500_writeReg(CC2500_24_FSCAL2, calData[ch][1]); - cc2500_writeReg(CC2500_25_FSCAL1, calData[ch][2]); - cc2500_writeReg(CC2500_0A_CHANNR, ch==47?0:pgm_read_word(&hop_data[ch])); - } - - static void __attribute__((unused)) frskyX_init() - { - CC2500_Reset(); - - for(uint8_t i=0;i<36;i++) - { - uint8_t reg=pgm_read_byte_near(&cc2500_conf[i][0]); - uint8_t val=pgm_read_byte_near(&cc2500_conf[i][1]); - - if(reg==CC2500_06_PKTLEN) - val=0x1E; - else - if(reg==CC2500_08_PKTCTRL0) - val=0x01; - else - if(reg==CC2500_0B_FSCTRL1) - val=0x0A; - else - if(reg==CC2500_10_MDMCFG4) - val=0x7B; - else - if(reg==CC2500_11_MDMCFG3) - val=0x61; - else - if(reg==CC2500_12_MDMCFG2) - val=0x13; - else - if(reg==CC2500_15_DEVIATN) - val=0x51; - - cc2500_writeReg(reg,val); - } - - cc2500_writeReg(CC2500_07_PKTCTRL1, 0x04); - cc2500_writeReg(CC2500_0C_FSCTRL0, option); - cc2500_strobe(CC2500_SIDLE); - // - for(uint8_t c=0;c < 47;c++){//calibrate hop channels - cc2500_strobe(CC2500_SIDLE); - cc2500_writeReg(CC2500_0A_CHANNR,pgm_read_word(&hop_data[c])); - cc2500_strobe(CC2500_SCAL); - delayMicroseconds(900);// - calData[c][0] = cc2500_readReg(CC2500_23_FSCAL3); - calData[c][1] = cc2500_readReg(CC2500_24_FSCAL2); - calData[c][2] = cc2500_readReg(CC2500_25_FSCAL1); - } - cc2500_strobe(CC2500_SIDLE); - cc2500_writeReg(CC2500_0A_CHANNR,0x00); - cc2500_strobe(CC2500_SCAL); - delayMicroseconds(900); - calData[47][0] = cc2500_readReg(CC2500_23_FSCAL3); - calData[47][1] = cc2500_readReg(CC2500_24_FSCAL2); - calData[47][2] = cc2500_readReg(CC2500_25_FSCAL1); - //#######END INIT######## - } - - static void __attribute__((unused)) initialize_data(uint8_t adr) - { - cc2500_writeReg(CC2500_0C_FSCTRL0,option); // Frequency offset hack - cc2500_writeReg(CC2500_18_MCSM0, 0x8); - cc2500_writeReg(CC2500_09_ADDR, adr ? 0x03 : rx_tx_addr[3]); - cc2500_writeReg(CC2500_07_PKTCTRL1,0x05); - } - - static uint8_t __attribute__((unused)) crc_Byte( uint8_t byte ) - { - crc = (crc<<8) ^ pgm_read_word(&CRCTable[((uint8_t)(crc>>8) ^ byte) & 0xFF]); - return byte; - } - - static uint16_t __attribute__((unused)) scaleForPXX( uint8_t i ) - { //mapped 860,2140(125%) range to 64,1984(PXX values); - return (uint16_t)(((Servo_data[i]-PPM_MIN)*3)>>1)+64; - } - - static void __attribute__((unused)) frskyX_build_bind_packet() - { - crc=0; - packet[0] = 0x1D; - packet[1] = 0x03; - packet[2] = 0x01; - // - packet[3] = crc_Byte(rx_tx_addr[3]); - packet[4] = crc_Byte(rx_tx_addr[2]); - int idx = ((state -FRSKY_BIND) % 10) * 5; - packet[5] = crc_Byte(idx); - packet[6] = crc_Byte(pgm_read_word(&hop_data[idx++])); - packet[7] = crc_Byte(pgm_read_word(&hop_data[idx++])); - packet[8] = crc_Byte(pgm_read_word(&hop_data[idx++])); - packet[9] = crc_Byte(pgm_read_word(&hop_data[idx++])); - packet[10] = crc_Byte(pgm_read_word(&hop_data[idx++])); - packet[11] = crc_Byte(0x02); - packet[12] = crc_Byte(RX_num); - // - for(uint8_t i=13;i<28;i++) - packet[i]=crc_Byte(0); - // - packet[28]=highByte(crc); - packet[29]=lowByte(crc); - // - } - - static void __attribute__((unused)) frskyX_data_frame() - { - //0x1D 0xB3 0xFD 0x02 0x56 0x07 0x15 0x00 0x00 0x00 0x04 0x40 0x00 0x04 0x40 0x00 0x04 0x40 0x00 0x04 0x40 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x96 0x12 - // - uint8_t lpass = pass_ ; - uint16_t chan_0 ; - uint16_t chan_1 ; - uint8_t flag2 = 0; - uint8_t startChan = 0; - crc = 0; - //static uint8_t p = 0; - // - packet[0] = 0x1D; - packet[1] = rx_tx_addr[3]; - packet[2] = rx_tx_addr[2]; - packet[3] = crc_Byte(0x02); - // - packet[4] = crc_Byte((ctr<<6)+channr); //*64 - packet[5] = crc_Byte(counter_rst); - packet[6] = crc_Byte(RX_num); - // FLAGS 00 - standard packet - //10, 12, 14, 16, 18, 1A, 1C, 1E - failsafe packet - //20 - range check packet - packet[7] = crc_Byte(FS_flag); - packet[8] = crc_Byte(flag2); - // - if ( lpass & 1 ) - startChan += 8 ; - - for(uint8_t i = 0; i <12 ; i+=3) - {//12 bytes - chan_0 = scaleForPXX(startChan); - if(lpass & 1 ) - chan_0+=2048; - - packet[9+i] = crc_Byte(lowByte(chan_0));//3 bytes*4 - startChan++; - chan_1 = scaleForPXX(startChan); - if(lpass & 1 ) - chan_1+= 2048; - - startChan++; - packet[9+i+1]=crc_Byte((((chan_0>>8) & 0x0F)|(chan_1 << 4))); - packet[9+i+2]=crc_Byte(chan_1>>4); - } - //packet[21]=crc_Byte(0x08);//first - packet[21]=crc_Byte(0x80);//??? when received first telemetry frame is changed to 0x80 - //packet[21]=crc_Byte(ptr[p]);//??? - //p=(p+1)%4;//repeating 4 bytes sequence pattern every 4th frame. - - pass_=lpass+1; - - for (uint8_t i=22;i<28;i++) - packet[i]=crc_Byte(0); - - packet[28]=highByte(crc); - packet[29]=lowByte(crc); - } - -<<<<<<< HEAD - uint16_t ReadFrSkyX() - { - switch(state) - { - default: - set_start(47); - CC2500_SetPower(); - cc2500_strobe(CC2500_SFRX); - // - frskyX_build_bind_packet(); - cc2500_strobe(CC2500_SIDLE); - cc2500_writeFifo(packet, packet[0]+1); - state++; - return 9000; - case FRSKY_BIND_DONE: - initialize_data(0); - channr=0; - BIND_DONE; - state++; - break; - case FRSKY_DATA1: - LED_ON; - CC2500_SetTxRxMode(TX_EN); - set_start(channr); - CC2500_SetPower(); - cc2500_strobe(CC2500_SFRX); - channr = (channr+chanskip)%47; - cc2500_strobe(CC2500_SIDLE); - cc2500_writeFifo(packet, packet[0]+1); - // - frskyX_data_frame(); - state++; - return 5500; - case FRSKY_DATA2: - CC2500_SetTxRxMode(RX_EN); - cc2500_strobe(CC2500_SIDLE); - state++; - return 200; - case FRSKY_DATA3: - cc2500_strobe(CC2500_SRX); - state++; - return 3000; - case FRSKY_DATA4: - len = cc2500_readReg(CC2500_3B_RXBYTES | CC2500_READ_BURST) & 0x7F; - if (len &&(len>2; - //for test*************** - //rx_tx_addr[3]=0xB3; - //rx_tx_addr[2]=0xFD; - //************************ - frskyX_init(); - // - if(IS_AUTOBIND_FLAG_on) - { - state = FRSKY_BIND; - initialize_data(1); - } - else - { - state = FRSKY_DATA1; - initialize_data(0); - } - return 10000; - } -======= uint8_t chanskip; uint8_t counter_rst; uint8_t ctr; @@ -617,5 +329,4 @@ uint16_t initFrSkyX() seq_last_rcvd = 8; return 10000; } ->>>>>>> refs/remotes/pascallanger/master #endif \ No newline at end of file diff --git a/Multiprotocol/FrSky_cc2500.ino b/Multiprotocol/FrSky_cc2500.ino deleted file mode 100644 index ec17450..0000000 --- a/Multiprotocol/FrSky_cc2500.ino +++ /dev/null @@ -1,219 +0,0 @@ -/* - This project is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Multiprotocol is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Multiprotocol. If not, see . - */ - -#if defined(FRSKY_CC2500_INO) - -#include "iface_cc2500.h" - -//##########Variables######## -//uint32_t state; -//uint8_t len; - -/* -enum { - FRSKY_BIND = 0, - FRSKY_BIND_DONE = 1000, - FRSKY_DATA1, - FRSKY_DATA2, - FRSKY_DATA3, - FRSKY_DATA4, - FRSKY_DATA5 -}; -*/ - -static void __attribute__((unused)) frsky2way_init(uint8_t bind) -{ - // Configure cc2500 for tx mode - CC2500_Reset(); - // - for(uint8_t i=0;i<36;i++) - { - uint8_t reg=pgm_read_byte_near(&cc2500_conf[i][0]); - uint8_t val=pgm_read_byte_near(&cc2500_conf[i][1]); - - if(reg==CC2500_0C_FSCTRL0) - val=option; - else - if(reg==CC2500_1B_AGCCTRL2) - val=bind ? 0x43 : 0x03; - cc2500_writeReg(reg,val); - } - - CC2500_SetTxRxMode(TX_EN); - CC2500_SetPower(); - - cc2500_strobe(CC2500_SIDLE); - - cc2500_writeReg(CC2500_09_ADDR, bind ? 0x03 : rx_tx_addr[3]); - cc2500_writeReg(CC2500_07_PKTCTRL1, 0x05); - cc2500_strobe(CC2500_SIDLE); // Go to idle... - // - cc2500_writeReg(CC2500_0A_CHANNR, 0x00); - cc2500_writeReg(CC2500_23_FSCAL3, 0x89); - cc2500_strobe(CC2500_SFRX); - //#######END INIT######## -} - -static uint8_t __attribute__((unused)) get_chan_num(uint16_t idx) -{ - uint8_t ret = (idx * 0x1e) % 0xeb; - if(idx == 3 || idx == 23 || idx == 47) - ret++; - if(idx > 47) - return 0; - return ret; -} - -static void __attribute__((unused)) frsky2way_build_bind_packet() -{ - //11 03 01 d7 2d 00 00 1e 3c 5b 78 00 00 00 00 00 00 01 - //11 03 01 19 3e 00 02 8e 2f bb 5c 00 00 00 00 00 00 01 - packet[0] = 0x11; - packet[1] = 0x03; - packet[2] = 0x01; - packet[3] = rx_tx_addr[3]; - packet[4] = rx_tx_addr[2]; - uint16_t idx = ((state -FRSKY_BIND) % 10) * 5; - packet[5] = idx; - packet[6] = get_chan_num(idx++); - packet[7] = get_chan_num(idx++); - packet[8] = get_chan_num(idx++); - packet[9] = get_chan_num(idx++); - packet[10] = get_chan_num(idx++); - packet[11] = 0x00; - packet[12] = 0x00; - packet[13] = 0x00; - packet[14] = 0x00; - packet[15] = 0x00; - packet[16] = 0x00; - packet[17] = 0x01; -} - -static void __attribute__((unused)) frsky2way_data_frame() -{//pachet[4] is telemetry user frame counter(hub) - //11 d7 2d 22 00 01 c9 c9 ca ca 88 88 ca ca c9 ca 88 88 - //11 57 12 00 00 01 f2 f2 f2 f2 06 06 ca ca ca ca 18 18 - packet[0] = 0x11; //Length - packet[1] = rx_tx_addr[3]; - packet[2] = rx_tx_addr[2]; - packet[3] = counter;// - #if defined TELEMETRY - packet[4] = telemetry_counter; - #else - packet[4] = 0x00; - #endif - - packet[5] = 0x01; - // - packet[10] = 0; - packet[11] = 0; - packet[16] = 0; - packet[17] = 0; - for(uint8_t i = 0; i < 8; i++) - { - uint16_t value; - value = convert_channel_frsky(i); - if(i < 4) - { - packet[6+i] = value & 0xff; - packet[10+(i>>1)] |= ((value >> 8) & 0x0f) << (4 *(i & 0x01)); - } - else - { - packet[8+i] = value & 0xff; - packet[16+((i-4)>>1)] |= ((value >> 8) & 0x0f) << (4 * ((i-4) & 0x01)); - } - } -} - -uint16_t initFrSky_2way() -{ - if(IS_AUTOBIND_FLAG_on) - { - frsky2way_init(1); - state = FRSKY_BIND;// - } - else - { - frsky2way_init(0); - state = FRSKY_DATA2; - } - return 10000; -} - -uint16_t ReadFrSky_2way() -{ - if (state < FRSKY_BIND_DONE) - { - frsky2way_build_bind_packet(); - cc2500_strobe(CC2500_SIDLE); - cc2500_writeReg(CC2500_0A_CHANNR, 0x00); - cc2500_writeReg(CC2500_23_FSCAL3, 0x89); - cc2500_strobe(CC2500_SFRX);//0x3A - cc2500_writeFifo(packet, packet[0]+1); - state++; - return 9000; - } - if (state == FRSKY_BIND_DONE) - { - state = FRSKY_DATA2; - frsky2way_init(0); - counter = 0; - BIND_DONE; - } - else - if (state == FRSKY_DATA5) - { - cc2500_strobe(CC2500_SRX);//0x34 RX enable - state = FRSKY_DATA1; - return 9200; - } - counter = (counter + 1) % 188; - if (state == FRSKY_DATA4) - { //telemetry receive - CC2500_SetTxRxMode(RX_EN); - cc2500_strobe(CC2500_SIDLE); - cc2500_writeReg(CC2500_0A_CHANNR, get_chan_num(counter % 47)); - cc2500_writeReg(CC2500_23_FSCAL3, 0x89); - state++; - return 1300; - } - else - { - if (state == FRSKY_DATA1) - { - len = cc2500_readReg(CC2500_3B_RXBYTES | CC2500_READ_BURST) & 0x7F; - if (len<=MAX_PKT)//27 bytes - { - cc2500_readFifo(pkt, len); //received telemetry packets - #if defined(TELEMETRY) - //parse telemetry packet here - frsky_check_telemetry(pkt,len); //check if valid telemetry packets and buffer them. - #endif - } - CC2500_SetTxRxMode(TX_EN); - CC2500_SetPower(); // Set tx_power - } - cc2500_strobe(CC2500_SIDLE); - cc2500_writeReg(CC2500_0A_CHANNR, get_chan_num(counter % 47)); - cc2500_writeReg(CC2500_23_FSCAL3, 0x89); - cc2500_strobe(CC2500_SFRX); - frsky2way_data_frame(); - cc2500_writeFifo(packet, packet[0]+1); - state++; - } - return state == FRSKY_DATA4 ? 7500 : 9000; -} -#endif diff --git a/Multiprotocol/Hisky_nrf24l01.ino b/Multiprotocol/Hisky_nrf24l01.ino index ddf935b..a32cf67 100644 --- a/Multiprotocol/Hisky_nrf24l01.ino +++ b/Multiprotocol/Hisky_nrf24l01.ino @@ -122,7 +122,7 @@ static void __attribute__((unused)) build_ch_data() uint8_t i,j; for (i = 0; i< 8; i++) { j=CH_AETR[i]; - temp=map(limit_channel_100(j),servo_min_100,servo_max_100,0,1000); + temp=map(limit_channel_100(j),servo_min_100,servo_max_100,0,1000); if (j == THROTTLE) // It is clear that hisky's throttle stick is made reversely, so I adjust it here on purpose temp = 1000 -temp; if (j == AUX3) diff --git a/Multiprotocol/Hontai_nrf24l01.ino b/Multiprotocol/Hontai_nrf24l01.ino index 64f61a9..f522ef8 100644 --- a/Multiprotocol/Hontai_nrf24l01.ino +++ b/Multiprotocol/Hontai_nrf24l01.ino @@ -70,6 +70,7 @@ static void __attribute__((unused)) HONTAI_send_packet(uint8_t bind) } else { +/* if(sub_protocol == FORMAT_JJRCX1) packet[0] = GET_FLAG(Servo_AUX2, 0x02); // Arm else @@ -112,7 +113,60 @@ static void __attribute__((unused)) HONTAI_send_packet(uint8_t bind) packet[9] = convert_channel_8b_scale(ELEVATOR, 0, 63)-31; // Elevator trim else packet[9] = convert_channel_8b_scale(ELEVATOR, 0, 32)-16; // Elevator trim +*/ + packet[1] = 0x00; + packet[2] = 0x00; + packet[3] = (convert_channel_8b_scale(THROTTLE, 0, 127) << 1); // Throttle + packet[4] = convert_channel_8b_scale(AILERON, 63, 0); // Aileron + packet[5] = convert_channel_8b_scale(ELEVATOR, 0, 63); // Elevator + packet[6] = convert_channel_8b_scale(RUDDER, 0, 63); // Rudder + if(sub_protocol == FORMAT_X5C1) + packet[7] = convert_channel_8b_scale(AILERON, 0, 63)-31; // Aileron trim + else + packet[7] = convert_channel_8b_scale(AILERON, 0, 32)-16; // Aileron trim + if (sub_protocol == FORMAT_X5C1) + packet[9] = convert_channel_8b_scale(ELEVATOR, 0, 63)-31; // Elevator trim + else + packet[9] = convert_channel_8b_scale(ELEVATOR, 0, 32)-16; // Elevator trim + switch(sub_protocol) { + case FORMAT_HONTAI: + packet[0] = 0x0b; + packet[3] |= GET_FLAG(Servo_AUX3, 0x01); // Picture + packet[4] |= GET_FLAG(Servo_AUX6, 0x80) // RTH + | GET_FLAG(Servo_AUX5, 0x40); // Headless + packet[5] |= GET_FLAG(Servo_AUX7, 0x80) // Calibrate + | GET_FLAG(Servo_AUX1, 0x40); // Flip + packet[6] |= GET_FLAG(Servo_AUX4, 0x80); // Video + packet[8] = convert_channel_8b_scale(RUDDER, 0, 32)-16; // Rudder trim + break; + case FORMAT_X5C1: + case FORMAT_JJRCX1: + packet[0] = GET_FLAG(Servo_AUX2, 0x02); //Arm + packet[3] |= GET_FLAG(Servo_AUX3, 0x01); // Picture + packet[4] |= 0x80; // unknown + if (sub_protocol == FORMAT_X5C1) + packet[4] |= GET_FLAG(Servo_AUX2, 0x40); // Lights (X5C1) + packet[5] |= GET_FLAG(Servo_AUX7, 0x80) // Calibrate + | GET_FLAG(Servo_AUX1, 0x40); // Flip + packet[6] |= GET_FLAG(Servo_AUX4, 0x80); // Video + packet[8] = 0xc0 // high rate, no rudder trim + | GET_FLAG(Servo_AUX6, 0x02) // RTH + | GET_FLAG(Servo_AUX5, 0x01); // Headless + break; + case FORMAT_FQ777: + // todo: add missing calibration flag + packet[0] = GET_FLAG(Servo_AUX3, 0x01) // Picture + | GET_FLAG(Servo_AUX4, 0x02); // Video + packet[3] |= GET_FLAG(Servo_AUX1, 0x01); // Flip + packet[4] |= 0xc0; // high rate (mid=0xa0, low=0x60) + packet[6] |= GET_FLAG(Servo_AUX5, 0x40); // Headless + if((packet[4] & 0x3f) > 0x3d && (packet[5] & 0x3f) < 3) + packet[5] |= 0x80; // accelerometer recalibration + break; + packet[8] = convert_channel_8b_scale(RUDDER, 0, 32)-16; // Rudder trim + } + packet_size=HONTAI_PACKET_SIZE; } crc16(packet, packet_size); @@ -172,7 +226,8 @@ static void __attribute__((unused)) HONTAI_init() const uint8_t PROGMEM hopping_frequency_nonels[][3] = { {0x05, 0x19, 0x28}, // Hontai - {0x0a, 0x1e, 0x2d}}; // JJRC X1 + {0x0a, 0x1e, 0x2d}, // JJRC X1 + {0x05, 0x19, 0x28}}; // FQ777-951 const uint8_t PROGMEM addr_vals[4][16] = { {0x24, 0x26, 0x2a, 0x2c, 0x32, 0x34, 0x36, 0x4a, 0x4c, 0x4e, 0x54, 0x56, 0x5a, 0x64, 0x66, 0x6a}, diff --git a/Multiprotocol/Hubsan_a7105.ino b/Multiprotocol/Hubsan_a7105.ino index de0c2bf..227134c 100644 --- a/Multiprotocol/Hubsan_a7105.ino +++ b/Multiprotocol/Hubsan_a7105.ino @@ -18,24 +18,51 @@ #if defined(HUBSAN_A7105_INO) #include "iface_a7105.h" +enum { + FORMAT_H107 = 0, + FORMAT_H301, + FORMAT_H501, +}; enum{ - // flags going to packet[9] (Normal) + // flags going to packet[9] (H107 Normal) HUBSAN_FLAG_VIDEO= 0x01, // record video HUBSAN_FLAG_FLIP = 0x08, // enable flips HUBSAN_FLAG_LED = 0x04 // enable LEDs }; enum{ - // flags going to packet[9] (Plus series) + // flags going to packet[9] (H107 Plus series) HUBSAN_FLAG_HEADLESS = 0x08, // headless mode }; - enum{ - // flags going to packet[13] (Plus series) + // flags going to packet[9] (H301) + FLAG_H301_VIDEO = 0x01, + FLAG_H301_STAB = 0x02, + FLAG_H301_LED = 0x10, + FLAG_H301_RTH = 0x40, +}; +enum{ + // flags going to packet[13] (H107 Plus series) HUBSAN_FLAG_SNAPSHOT = 0x01, HUBSAN_FLAG_FLIP_PLUS = 0x80, }; +enum{ + // flags going to packet[9] (H501S) + FLAG_H501_VIDEO = 0x01, + FLAG_H501_LED = 0x04, + FLAG_H501_RTH = 0x20, + FLAG_H501_HEADLESS1 = 0x40, + FLAG_H501_GPS_HOLD = 0x80, +}; + +enum{ + // flags going to packet[13] (H501S) + FLAG_H501_SNAPSHOT = 0x01, + FLAG_H501_HEADLESS2 = 0x02, + FLAG_H501_ALT_HOLD = 0x08, +}; + uint32_t sessionid,id_data; @@ -76,7 +103,7 @@ static void __attribute__((unused)) hubsan_build_bind_packet(uint8_t bind_state) packet[3] = (sessionid >> 16) & 0xFF; packet[4] = (sessionid >> 8) & 0xFF; packet[5] = (sessionid >> 0) & 0xFF; - if(id_data == ID_NORMAL) + if(id_data == ID_NORMAL && sub_protocol != FORMAT_H501) { packet[6] = 0x08; packet[7] = 0xe4; @@ -89,7 +116,7 @@ static void __attribute__((unused)) hubsan_build_bind_packet(uint8_t bind_state) packet[13] = 0x26; packet[14] = 0x79; } - else + else if(id_data == ID_PLUS || sub_protocol == FORMAT_H501) { //ID_PLUS if(phase >= BIND_3) { @@ -109,6 +136,7 @@ static void __attribute__((unused)) hubsan_build_bind_packet(uint8_t bind_state) static void __attribute__((unused)) hubsan_build_packet() { static uint8_t vtx_freq = 0; + static uint32_t h501_packet = 0; memset(packet, 0, 16); if(vtx_freq != option || packet_count==100) // set vTX frequency (H107D) { @@ -127,7 +155,7 @@ static void __attribute__((unused)) hubsan_build_packet() packet[4] = 0xFF - convert_channel_8b(RUDDER); //Rudder is reversed packet[6] = 0xFF - convert_channel_8b(ELEVATOR); //Elevator is reversed packet[8] = convert_channel_8b(AILERON); //Aileron - if(id_data == ID_NORMAL) + if(id_data == ID_NORMAL && sub_protocol == FORMAT_H107) // H107/L/C/D, H102D { if( packet_count < 100) { @@ -151,21 +179,50 @@ static void __attribute__((unused)) hubsan_build_packet() packet[13] = 0x26; packet[14] = 0x79; } - else - { //ID_PLUS - packet[3] = 0x64; - packet[5] = 0x64; - packet[7] = 0x64; - packet[9] = 0x06; - //FLIP|LIGHT|PICTURE|VIDEO|HEADLESS - if(Servo_AUX4) packet[9] |= HUBSAN_FLAG_VIDEO; - if(Servo_AUX5) packet[9] |= HUBSAN_FLAG_HEADLESS; - packet[10]= 0x19; - packet[12]= 0x5C; // ghost channel ? - packet[13] = 0; - if(Servo_AUX3) packet[13] = HUBSAN_FLAG_SNAPSHOT; - if(Servo_AUX1) packet[13] |= HUBSAN_FLAG_FLIP_PLUS; - packet[14]= 0x49; // ghost channel ? + else if( sub_protocol == FORMAT_H301) { + if(packet_count < 100) { + packet[9] = FLAG_H301_STAB; + packet_count++; + } else { + packet[9] = 0; + if(Servo_AUX1) packet[9] |= FLAG_H301_LED; + if(Servo_AUX2) packet[9] |= FLAG_H301_STAB; + if(Servo_AUX3) packet[9] |= FLAG_H301_RTH; + if(Servo_AUX4) packet[9] |= FLAG_H301_VIDEO; // H102D + } + packet[10] = 0x18; // ? + packet[12] = 0x5c; // ? + packet[14] = 0xf6; // ? + } else + { //ID_PLUS +FORMAT_H501 + packet[3] = sub_protocol == FORMAT_H501 ? 0x00 : 0x64; + packet[5] = sub_protocol == FORMAT_H501 ? 0x00 : 0x64; + packet[7] = sub_protocol == FORMAT_H501 ? 0x00 : 0x64; + if( sub_protocol == FORMAT_H501) { // H501S + packet[9] = 0x02; + if(Servo_AUX1) packet[9] |= HUBSAN_FLAG_FLIP; + if(Servo_AUX2) packet[9] |= FLAG_H501_LED; + if(Servo_AUX3) packet[9] |= FLAG_H501_RTH; + if(Servo_AUX4) packet[9] |= FLAG_H501_VIDEO; + if(Servo_AUX5) packet[9] |= FLAG_H501_HEADLESS1; + if(Servo_AUX6) packet[9] |= FLAG_H501_GPS_HOLD; + packet[13] = 0; + if(Servo_AUX5) packet[9] |= FLAG_H501_HEADLESS2; + if(Servo_AUX7) packet[9] |= FLAG_H501_ALT_HOLD; + if(Servo_AUX8) packet[9] |= FLAG_H501_SNAPSHOT; + } + else { // H107P/C+/D+ + packet[9] = 0x06; + //FLIP|LIGHT|PICTURE|VIDEO|HEADLESS + if(Servo_AUX4) packet[9] |= HUBSAN_FLAG_VIDEO; + if(Servo_AUX5) packet[9] |= HUBSAN_FLAG_HEADLESS; + packet[10]= sub_protocol == FORMAT_H501 ? 0x1a : 0x19; + packet[12]= 0x5C; // ghost channel ? + packet[13] = 0; + if(Servo_AUX3) packet[13] = HUBSAN_FLAG_SNAPSHOT; + if(Servo_AUX1) packet[13] |= HUBSAN_FLAG_FLIP_PLUS; + packet[14]= 0x49; // ghost channel ? + } if(packet_count < 100) { // set channels to neutral for first 100 packets packet[2] = 0x80; // throttle neutral is at mid stick on plus series @@ -176,6 +233,18 @@ static void __attribute__((unused)) hubsan_build_packet() packet[13]= 0x00; packet_count++; } + if(sub_protocol == FORMAT_H501) { + h501_packet++; + if(h501_packet == 10) { + memset(packet, 0, 16); + packet[0] = 0xe8; + } + else if(h501_packet == 20) { + memset(packet, 0, 16); + packet[0] = 0xe9; + } + if(h501_packet >= 20) h501_packet = 0; + } } hubsan_update_crc(); } @@ -205,7 +274,7 @@ uint16_t ReadHubsan() switch(phase) { case BIND_1: bind_count++; - if(bind_count >= 20) + if(bind_count >= 20 && sub_protocol != FORMAT_H501) { if(id_data == ID_NORMAL) id_data = ID_PLUS; @@ -287,7 +356,15 @@ uint16_t ReadHubsan() A7105_SetPower(); //Keep transmit power in sync hubsan_build_packet(); A7105_Strobe(A7105_STANDBY); - A7105_WriteData(16, phase == DATA_5 && id_data == ID_NORMAL ? channel + 0x23 : channel); + u8 ch; + if((phase == DATA_5 && id_data == ID_NORMAL) && sub_protocol == FORMAT_H107) { + ch = channel + 0x23; + } + else { + ch = channel; + } + A7105_WriteData( 16, ch); +// A7105_WriteData(16, phase == DATA_5 && id_data == ID_NORMAL ? channel + 0x23 : channel); if (phase == DATA_5) phase = DATA_1; else diff --git a/Multiprotocol/KN_nrf24l01.ino b/Multiprotocol/KN_nrf24l01.ino index 5675181..14e9566 100644 --- a/Multiprotocol/KN_nrf24l01.ino +++ b/Multiprotocol/KN_nrf24l01.ino @@ -246,11 +246,7 @@ static void __attribute__((unused)) kn_init() NRF24L01_Initialize(); -<<<<<<< HEAD - NRF24L01_WriteReg(NRF24L01_00_CONFIG, BV(NRF24L01_00_EN_CRC) | BV(NRF24L01_00_CRCO)); -======= NRF24L01_WriteReg(NRF24L01_00_CONFIG, _BV(NRF24L01_00_EN_CRC) | _BV(NRF24L01_00_CRCO)); ->>>>>>> refs/remotes/pascallanger/master NRF24L01_WriteReg(NRF24L01_01_EN_AA, 0x00); // No Auto Acknoledgement NRF24L01_WriteReg(NRF24L01_02_EN_RXADDR, 0x01); // Enable data pipe 0 NRF24L01_WriteReg(NRF24L01_03_SETUP_AW, 0x03); // 5-byte RX/TX address @@ -263,11 +259,7 @@ static void __attribute__((unused)) kn_init() NRF24L01_Activate(0x73); NRF24L01_WriteReg(NRF24L01_1C_DYNPD, 1); // Dynamic payload for data pipe 0 // Enable: Dynamic Payload Length to enable PCF -<<<<<<< HEAD - NRF24L01_WriteReg(NRF24L01_1D_FEATURE, BV(NRF2401_1D_EN_DPL)); -======= NRF24L01_WriteReg(NRF24L01_1D_FEATURE, _BV(NRF2401_1D_EN_DPL)); ->>>>>>> refs/remotes/pascallanger/master NRF24L01_SetPower(); diff --git a/Multiprotocol/Lua Generateur.htm b/Multiprotocol/Lua Generateur.htm new file mode 100644 index 0000000..a70b4e4 --- /dev/null +++ b/Multiprotocol/Lua Generateur.htm @@ -0,0 +1,5468 @@ + +Lua Generateur + + +

Script LUA

+
+
Programmation :
+ +T :
+A :
+E :
+R :
+FLIP :
+HEADLESS :
+LIGHT :
+VIDEO :
+PICTURE :
+DEFAULT :
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
0 SERIAL 0.0. . . . .   42 ESKY 16.0. . . . .   NRF24L01 7ESKY
1 FLYSKY 1.0FLYSKY   A7105 9FLYSKY43 MT99XX 17.0MT99   NRF24L01 10MT99XXAuto
2 FLYSKY 1.1V9X9   A7105 9FLYSKY => V9X944 MT99XX 17.1H7   NRF24L01 10MT99XX => H7Auto
3 FLYSKY 1.2V6X6   A7105 13FLYSKY => V6X645 MT99XX 17.2YZ   NRF24L01 10MT99XX => YZAuto
4 FLYSKY 1.3V912   A7105 7FLYSKY => V91246 MT99XX 17.3LS   NRF24L01 10MT99XX => LSAuto
5 HUBSAN 2.0H107   A7105 10HUBSAN47 MJXQ 18.0WLH08   NRF24L01 14MJXQAuto
6 HUBSAN 2.1H301   A7105 9HUBSAN => H30148 MJXQ 18.1X600   NRF24L01 14MJXQ => X600Auto
7 HUBSAN 2.2H501   A7105 14HUBSAN => H50149 MJXQ 18.2X800   NRF24L01 14MJXQ => X800Auto
8 FRSKYD 3.0. . . . .   CC2500 8FRSKYD50 MJXQ 18.3H26D   NRF24L01 14MJXQ => H26DAuto
9 HISKY 4.0HISKY   NRF24L01 9HISKY51 MJXQ 18.4E010   NRF24L01 14MJXQ => E010Auto
10 HISKY 4.1HK310   NRF24L01 10HISKY => HK31052 SHENQI 19.0. . . . .   NRF24L01 5ShenqiAuto
11 V2X2 5.0. . . . .   NRF24L01 12V2X253 FY326 20.0FY326   NRF24L01 10Fy326
12 DSM 6.0DSM2_22   CYRF6936 12DSM54 FY326 20.1FY319   NRF24L01 10Fy326 => FY319
13 DSM 6.1DSM2_11   CYRF6936 12DSM => DSM2_1155 SFHSS 21.0. . . . .   CC2500 9SFHSS
14 DSM 6.2DSMX_22   CYRF6936 12DSM => DSMX_2256 J6PRO 22.0. . . . .   CYRF6936 13J6PRO
15 DSM 6.3DSMX_11   CYRF6936 12DSM => DSMX_1157 FQ777 23.0. . . . .   NRF24L01 9FQ777
16 DSM 6.4AUTO   CYRF6936 12DSM => AUTO58 ASSAN 24.0. . . . .   NRF24L01 11ASSAN
17 DEVO 7.0. . . . .   CYRF6936 9DEVO59 FRSKYV 25.0. . . . .   CC2500 4FRSKYV = FrSky 1 way
18 YD717 8.0YD717   NRF24L01 10YD717Auto60 HONTAI 26.0HONTAI   NRF24L01 12HONTAI
19 YD717 8.1SKYWLKR   NRF24L01 10YD717 => SKYWLKRAuto61 HONTAI 26.1JJRCX1   NRF24L01 7HONTAI => JJRCX1
20 YD717 8.2SYMAX4   NRF24L01 10YD717 => SYMAX4Auto62 HONTAI 26.2X5C1   NRF24L01 12HONTAI => X5C1
21 YD717 8.3XINXUN   NRF24L01 10YD717 => XINXUNAuto63 HONTAI 26.3FQ777   NRF24L01 9HONTAI => FQ777
22 YD717 8.4NIHUI   NRF24L01 10YD717 => NIHUIAuto64 OPENLRS 27.0. . . . .   Other OPENLRS
23 KN 9.0WLTOYS   NRF24L01 12KN65 JOYSWAY 40.0. . . . .   A7105 5Joysway
24 KN 9.1FEILUN   NRF24L01 12KN => FEILUN66 WK2X01 41.0WK2801   CYRF6936 9WK2x01
25 SYMAX 10.0SYMAX   NRF24L01 10SymaxAuto67 WK2X01 41.1WK2601   CYRF6936 8WK2x01 => WK2601
26 SYMAX 10.1SYMAX5C   NRF24L01 10Symax => SYMAX5CAuto68 WK2X01 41.2WK2401   CYRF6936 5WK2x01 => WK2401
27 SLT 11.0. . . . .   NRF24L01 7SLTAuto69 SKYARTEC 42.0. . . . .   CC2500 8SKYARTEC
28 CX10 12.0GREEN   NRF24L01 7CX10Auto70 UDI 44.0U816_V1   NRF24L01 11UDI
29 CX10 12.1BLUE   NRF24L01 9CX10 => BLUEAuto71 UDI 44.1U816_V2   NRF24L01 11UDI => U816_V2
30 CX10 12.2DM007   NRF24L01 10CX10 => DM007Auto72 UDI 44.2U839_2014   NRF24L01 11UDI => U839_2014
31 CX10 12.3Q282   NRF24L01 13CX10 => Q282 and Q242Auto73 FBL100 45.0FBL100   NRF24L01 9FBL100
32 CX10 12.4JC3015_1   NRF24L01 9CX10 => JC3015_1Auto74 FBL100 45.1HP100   NRF24L01 9FBL100 => HP100
33 CX10 12.5JC3015_2   NRF24L01 9CX10 => JC3015_2Auto75 HM830 50.0. . . . .   NRF24L01 6HM830
34 CX10 12.6MK33041   NRF24L01 11CX10 => MK33041Auto76 CFLIE 51.0. . . . .   NRF24L01 5CFLIE
35 CX10 12.7Q242   NRF24L01 13CX10 => Q282 and Q242Auto77 H377 52.0. . . . .   NRF24L01 9H377
36 CG023 13.0CG023   NRF24L01 10CG023Auto78 ESKY150 53.0. . . . .   NRF24L01 5ESKY150
37 CG023 13.1YD829   NRF24L01 10CG023 => YD829Auto79 BLUEFLY 54.0. . . . .   NRF24L01 7BLUEFLY
38 CG023 13.2H8_3D   NRF24L01 10CG023 => H8_3DAuto80 NE260 55.0. . . . .   NRF24L01 5NE260
39 BAYANG 14.0. . . . .   NRF24L01 11BAYANGAuto81 AFHDS2A 56.0. . . . .   A7105 15Flysky AFHDS2A
40 FRSKYX 15.0CH_16   CC2500 16FRSKYX82 INAV 57.0. . . . .   NRF24L01 1INAV
41 FRSKYX 15.1CH_8   CC2500 8FRSKYX => CH_8

+ +
+

SERIAL

+

. . . . .

+

+
+ + + +
+

Close

+ +
+

FLYSKY

+

FLYSKY

+

+
+ + Extended limits supported
Note that the RX ouput will be AETR.

+ + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH14
AETRCH5CH6CH7CH8Reset/Bind
+

Close

+ +
+

FLYSKY

+

V9X9

+

+
+ + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH14
AETRFLIPLIGHTPICTUREVIDEOReset/Bind
+

Close

+ +
+

FLYSKY

+

V6X6

+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12CH14
AETRFLIPLIGHTPICTUREVIDEOHEADLESSRTHXCALYCALReset/Bind
+

Close

+ +
+

FLYSKY

+

V912

+

+
+ + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH14
AETRBTMBTNTOPBTNReset/Bind
+

Close

+ +
+

HUBSAN

+

H107

+

+
+ + Models: Hubsan H102D, H107/L/C/D and Hubsan H107P/C+/D+
Autobind protocol
Telemetry enabled for battery voltage and TX RSSI
Option=vTX frequency (H107D) 5645 - 5900 MHz

+ + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPLIGHTPICTUREVIDEOHEADLESSReset/Bind
+

Close

+ +
+

HUBSAN

+

H301

+

+
+ + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH14
AETRLEDSTABRTHVIDEOReset/Bind
+

Close

+ +
+

HUBSAN

+

H501

+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12CH0CH14
AETRFLIPLIGHTRTHVIDEOHEADLESSGPS_HOLDALT_HOLDSNAPSHOT---Reset/Bind
+

Close

+ +
+

FRSKYD

+

. . . . .

+

+ Modèle : FrSky receivers D4R and D8R. DIY RX-F801 and RX-F802 receivers.
+ Option : fine frequency tuning. This value is different +for each board. To determine the option value, find the two limits where + the RX loses connection then set the option value to half way between +them. If you have a 4in1 V2 board the value is around 40.
+ Extended limits supported
Telemetry enabled for A0, A1, RSSI, TSSI and Hub

+ + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8
------------------------
+

Close

+ +
+

HISKY

+

HISKY

+

+
+ + GYRO: -100%=6G, +100%=3G

+ + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH14
AETRGEARPITCHGYROCH8Reset/Bind
+

Close

+ +
+

HISKY

+

HK310

+

+ Modèle : RX HK-3000, HK3100 and XY3000 (TX are HK-300, HK-310 and TL-3C)
+ + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH0CH14
TRAUXT_FSAFER_FSAFEAUX_FSAFEReset/Bind
+

Close

+ +
+

V2X2

+

. . . . .

+

+ Modèle : WLToys V202/252/272, JXD 385/388, JJRC H6C, Yizhan Tarantula X6 ...
+ + PICTURE: also automatic Missile Launcher and Hoist in one direction
VIDEO: also Sprayer, Bubbler, Missile Launcher(1), and Hoist in the other dir

+ + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH14
AETRFLIPLIGHTPICTUREVIDEOHEADLESSMAG_CAL_XMAG_CAL_YReset/Bind
+

Close

+ +
+

DSM

+

DSM2_22

+

+
+ + Extended limits supported
Telemetry enabled for TSSI and plugins
option=number of channels from 4 to 12. An invalid option value will end up with 6 channels.
Notes:
- + model/type/number of channels indicated on the RX can be different from + what the RX is in fact wanting to see. So don't hesitate to test +different combinations until you have something working. Using Auto is +the best way to find these settings.
- RX ouput will always be TAER independently of the input AETR, RETA...
DSM2, Resolution 1024, refresh rate 22ms

+ + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12
AETRCH5CH6CH7CH8CH9CH10CH11CH12
+

Close

+ +
+

DSM

+

DSM2_11

+

+
+ + DSM2, Resolution 2048, refresh rate 11ms

+ + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12
AETRCH5CH6CH7CH8CH9CH10CH11CH12
+

Close

+ +
+

DSM

+

DSMX_22

+

+
+ + DSMX, Resolution 2048, refresh rate 22ms

+ + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12
AETRCH5CH6CH7CH8CH9CH10CH11CH12
+

Close

+ +
+

DSM

+

DSMX_11

+

+
+ + DSMX, Resolution 2048, refresh rate 11ms

+ + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12
AETRCH5CH6CH7CH8CH9CH10CH11CH12
+

Close

+ +
+

DSM

+

AUTO

+

+
+ + The "AUTO" feature enables the TX to automatically choose what are the + best settings for your DSM RX and update your model protocol settings +accordingly.
The current radio firmware which are able to use the +"AUTO" feature are ersky9x (9XR Pro, 9Xtreme, Taranis, ...) and er9x for + M128 (9XR) and M2561.
For these firmwares, you must have a telemetry enabled TX and you have to make sure you set the Telemetry "Usr proto" to "DSMx".
Also + on er9x you will need to be sure to match the polarity of the telemetry + serial (normal or inverted by bitbashing), while on ersky9x you can set + "Invert COM1" accordinlgy.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12
AETRCH5CH6CH7CH8CH9CH10CH11CH12
+

Close

+ +
+

DEVO

+

. . . . .

+

+
+ + Extended limits supported
Note that the RX ouput will be EATR.
Bind procedure using serial:
- + With the TX off, put the binding plug in and power on the RX (RX LED +slow blink), then power it down and remove the binding plug. Receiver +should now be in autobind mode.
- Turn on the TX, set protocol = Devo with option=0, turn off the TX (TX is now in autobind mode).
- Turn on RX (RX LED fast blink).
- Turn on TX (RX LED solid, TX LED fast blink).
- Wait for bind on the TX to complete (TX LED solid).
- Make sure to set the RX_Num value for model match.
- Change option to 1 to use the global ID.
- Do not touch option/RX_Num anymore.
Bind procedure using PPM:
- + With the TX off, put the binding plug in and power on the RX (RX LED +slow blink), then power it down and remove the binding plug. Receiver +should now be in autobind mode.
- Turn on RX (RX LED fast blink).
- Turn the dial to the model number running protocol DEVO on the module.
- Press the bind button and turn on the TX. TX is now in autobind mode.
- Release bind button after 1 second: RX LED solid, TX LED fast blink.
- Wait for bind on the TX to complete (TX LED solid).
- Press the bind button for 1 second. TX/RX is now in fixed ID mode.
- To verify that the TX is in fixed mode: power cycle the TX, the module LED should be solid ON (no blink).
- + Note: Autobind/fixed ID mode is linked to the dial number. Which means +that you can have multiple dial numbers set to the same protocol DEVO +with different RX_Num and have different bind modes at the same time. It + enables PPM users to get model match under DEVO.

+ + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH14
AETRCH5CH6CH7CH8Reset/Bind
+

Close

+ +
+

YD717

+

YD717

+ Autobind

+
+ + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPLIGHTPICTUREVIDEOHEADLESSReset/Bind
+

Close

+ +
+

YD717

+

SKYWLKR

+ Autobind

+
+ + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPLIGHTPICTUREVIDEOHEADLESSReset/Bind
+

Close

+ +
+

YD717

+

SYMAX4

+ Autobind

+
+ + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPLIGHTPICTUREVIDEOHEADLESSReset/Bind
+

Close

+ +
+

YD717

+

XINXUN

+ Autobind

+
+ + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPLIGHTPICTUREVIDEOHEADLESSReset/Bind
+

Close

+ +
+

YD717

+

NIHUI

+ Autobind

+
+ + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPLIGHTPICTUREVIDEOHEADLESSReset/Bind
+

Close

+ +
+

KN

+

WLTOYS

+

+
+ + Dual Rate: +100%=full range, Throttle Hold: +100%=hold, Idle Up: +100%=3D, GYRO: -100%=6G, +100%=3G

+ + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH14
AETRDRTHOLDIDLEUPGYROTtrimAtrimEtrimReset/Bind
+

Close

+ +
+

KN

+

FEILUN

+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH14
AETRDRTHOLDIDLEUPGYROTtrimAtrimEtrimReset/Bind
+

Close

+ +
+

SYMAX

+

SYMAX

+ Autobind

+ Modèle : Syma X5C-1/X11/X11C/X12
+ + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPPICTUREVIDEOHEADLESSReset/Bind
+

Close

+ +
+

SYMAX

+

SYMAX5C

+ Autobind

+
+ + Model: Syma X5C (original) and X2

+ + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPPICTUREVIDEOHEADLESSReset/Bind
+

Close

+ +
+

SLT

+

. . . . .

+ Autobind

+
+ + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH14
AETRGEARPITCHReset/Bind
+

Close

+ +
+

CX10

+

GREEN

+ Autobind

+ Modèle : Cheerson CX-10 green pcb
+ + Extended limits supported
Rate: -100%=rate 1, 0%=rate 2, +100%=rate 3

+ + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH14
AETRFLIPRATEReset/Bind
+

Close

+ +
+

CX10

+

BLUE

+ Autobind

+ Modèle : Cheerson CX-10 blue pcb & some newer red pcb, CX-10A, CX-10C, CX11, CX12, Floureon FX10, JJRC DHD D1
+ + Rate: -100%=rate 1, 0%=rate 2, +100%=rate 3 or headless for CX-10A

+ + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH14
AETRFLIPRATEPICTUREVIDEOReset/Bind
+

Close

+ +
+

CX10

+

DM007

+ Autobind

+
+ + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPMODEPICTUREVIDEOHEADLESSReset/Bind
+

Close

+ +
+

CX10

+

Q282

+ Autobind

+
+ + Model: JXD 509 is using Q282 with CH12=Start/Stop motors

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12CH14
AETRFLIPLEDPICTUREVIDEOHEADLESSRTHXCALYCALReset/Bind
+

Close

+ +
+

CX10

+

JC3015_1

+ Autobind

+
+ + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH14
AETRFLIPMODEPICTUREVIDEOReset/Bind
+

Close

+ +
+

CX10

+

JC3015_2

+ Autobind

+
+ + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH14
AETRFLIPMODELEDDFLIPReset/Bind
+

Close

+ +
+

CX10

+

MK33041

+ Autobind

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH14
AETRFLIPMODEPICTUREVIDEOHEADLESSRTHReset/Bind
+

Close

+ +
+

CX10

+

Q242

+ Autobind

+
+ + Model: JXD 509 is using Q282 with CH12=Start/Stop motors

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12CH14
AETRFLIPLEDPICTUREVIDEOHEADLESSRTHXCALYCALReset/Bind
+

Close

+ +
+

CG023

+

CG023

+ Autobind

+ Modèle : EAchine CG023/CG031/3D X4
+ + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPLIGHTPICTUREVIDEOHEADLESSReset/Bind
+

Close

+ +
+

CG023

+

YD829

+ Autobind

+ Modèle : Attop YD-822/YD-829/YD-829C ...
+ + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPPICTUREVIDEOHEADLESSReset/Bind
+

Close

+ +
+

CG023

+

H8_3D

+ Autobind

+ Modèle : EAchine H8 mini 3D, JJRC H20/H22
+ + JJRC H20: OPT1=Headless, OPT2=RTH
JJRC H22: OPT1=RTH, OPT2=180/360° flip mode
H8 3D: OPT1=RTH then press a direction to enter headless mode (like stock TX), OPT2=switch 180/360° flip mode
CAL: calibrate accelerometers

+ + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPLIGTHOPT1OPT2CALReset/Bind
+

Close

+ +
+

BAYANG

+

. . . . .

+ Autobind

+ Modèle : EAchine H8(C) mini, BayangToys X6/X7/X9, JJRC JJ850, Floureon H101 ...
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH14
AETRFLIPRTHPICTUREVIDEOHEADLESSINVERTEDReset/Bind
+

Close

+ +
+

FRSKYX

+

CH_16

+

+ Modèle : FrSky receivers X4R, X6R and X8R.
+ Option : fine frequency tuning. This value is different +for each board. To determine the option value, find the two limits where + the RX loses connection then set the option value to half way between +them. If you have a 4in1 V2 board the value is around 40.
+ Extended limits supported
Telemetry enabled for A1 (RxBatt), A2, RSSI, TSSI and Hub

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12CH13CH14CH15CH16
-------------------------------------------------------
+

Close

+ +
+

FRSKYX

+

CH_8

+

+
+ + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8
------------------------
+

Close

+ +
+

ESKY

+

. . . . .

+

+
+ + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH14
AETRGYROPITCHReset/Bind
+

Close

+ +
+

MT99XX

+

MT99

+ Autobind

+
+ + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPLEDPICTUREVIDEOHEADLESSReset/Bind
+

Close

+ +
+

MT99XX

+

H7

+ Autobind

+ Modèle : Eachine H7, Cheerson CX023
+ + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPLEDPICTUREVIDEOHEADLESSReset/Bind
+

Close

+ +
+

MT99XX

+

YZ

+ Autobind

+
+ + Model: Yi Zhan i6S
Only one model can be flown at the same time since the ID is hardcoded.

+ + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPLEDPICTUREVIDEOHEADLESSReset/Bind
+

Close

+ +
+

MT99XX

+

LS

+ Autobind

+ Modèle : LS114, 124, 215
+ + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPINVERTPICTUREVIDEOHEADLESSReset/Bind
+

Close

+ +
+

MJXQ

+

WLH08

+ Autobind

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12CH13CH14
AETRFLIPLEDPICTUREVIDEOHEADLESSRTHAUTOFLIPPANTILTReset/Bind
+

Close

+ +
+

MJXQ

+

X600

+ Autobind

+
+ + Only 3 TX IDs available, change RX_Num value 0..2 to cycle through them

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12CH13CH14
AETRFLIPLEDPICTUREVIDEOHEADLESSRTHAUTOFLIPPANTILTReset/Bind
+

Close

+ +
+

MJXQ

+

X800

+ Autobind

+
+ + Only 3 TX IDs available, change RX_Num value 0..2 to cycle through them

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12CH13CH14
AETRFLIPLEDPICTUREVIDEOHEADLESSRTHAUTOFLIPPANTILTReset/Bind
+

Close

+ +
+

MJXQ

+

H26D

+ Autobind

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12CH13CH14
AETRFLIPLEDPICTUREVIDEOHEADLESSRTHAUTOFLIPPANTILTReset/Bind
+

Close

+ +
+

MJXQ

+

E010

+ Autobind

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12CH13CH14
AETRFLIPLEDPICTUREVIDEOHEADLESSRTHAUTOFLIPPANTILTReset/Bind
+

Close

+ +
+

SHENQI

+

. . . . .

+ Autobind

+
+ + Model: Shenqiwei 1/20 Mini Motorcycle
Throttle +100%=full forward,0%=stop,-100%=full backward.

+ + + + + + + + + + + +
CH1CH2CH3CH4CH14
TRReset/Bind
+

Close

+ +
+

FY326

+

FY326

+

+
+ + Autobind

+ + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPHEADLESSRTHCalibrateExpertReset/Bind
+

Close

+ +
+

FY326

+

FY319

+

+
+ + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH14
AETRFLIPHEADLESSRTHCalibrateExpertReset/Bind
+

Close

+ +
+

SFHSS

+

. . . . .

+

+ Modèle : Futaba RXs and XK models.
+ Option : fine frequency tuning. This value is different +for each board. To determine the option value, find the two limits where + the RX loses connection then set the option value to half way between +them. If you have a 4in1 V2 board the value is around 40.
+ ***

+ + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH14
AETRCH5CH6CH7CH8Reset/Bind
+

Close

+ +
+

J6PRO

+

. . . . .

+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12CH14
------------------------------------Reset/Bind
+

Close

+ +
+

FQ777

+

. . . . .

+

+
+ + Model: FQ777-124

+ + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH14
AETRFLIPRTHHEADLESSEXPERTReset/Bind
+

Close

+ +
+

ASSAN

+

. . . . .

+

+
+ + Extended limits supported
The transmitter must be close to the receiver while binding.

+ + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH14
------------------------------Reset/Bind
+

Close

+ +
+

FRSKYV

+

. . . . .

+

+ Modèle : FrSky receivers V8R4, V8R7 and V8FR.
+ Option : fine frequency tuning. This value is different +for each board. To determine the option value, find the two limits where + the RX loses connection then set the option value to half way between +them. If you have a 4in1 V2 board the value is around 40.
+ Extended limits supported

+ + + + + + + + + +
CH1CH2CH3CH4
------------
+

Close

+ +
+

HONTAI

+

HONTAI

+

+
+ + Autobind protocol

+ + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH14
AETRFLIPLEDPICTUREVIDEOHEADLESSRTHCALReset/Bind
+

Close

+ +
+

HONTAI

+

JJRCX1

+

+
+ + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH6CH0CH14
AETRARMReset/Bind
+

Close

+ +
+

HONTAI

+

X5C1

+

+
+ + X5C1 clone

+ + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH14
AETRFLIPLEDPICTUREVIDEOHEADLESSRTHCALReset/Bind
+

Close

+ +
+

HONTAI

+

FQ777

+

+
+ + Format FQ777-951C

+ + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH6CH7CH8CH9CH14
AETRFLIPSNAPSHOTVIDEOHEADLESSReset/Bind
+

Close

+ +
+

OPENLRS

+

. . . . .

+

+
+ + Empty protocol

+ +
+

Close

+ +
+

JOYSWAY

+

. . . . .

+

+
+ + + + + + + + + + + + + +
CH1CH2CH3CH4CH14
AETRReset/Bind
+

Close

+ +
+

WK2X01

+

WK2801

+

+
+ + Autobind

+ + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH14
------------------------Reset/Bind
+

Close

+ +
+

WK2X01

+

WK2601

+

+
+ + Option:
0 = 5+1
2 = 6+1
..1 = Hélicoptère (. = autres options pour ce mode)
.01 = Hélicoptère normal
.11 = Hélicoptère avec pit inversé
0.1 = Pitch curve -100
1.1 = Pitch curve 100
CONF: Option 1 = Rate Throtle
Option 2 = Pitch

+ + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH14
---------------------Reset/Bind
+

Close

+ +
+

WK2X01

+

WK2401

+

+
+ + + + + + + + + + + + + +
CH1CH2CH3CH4CH14
------------Reset/Bind
+

Close

+ +
+

SKYARTEC

+

. . . . .

+

+
+ + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH14
? ? ? ? ? ? ?Reset/Bind
+

Close

+ +
+

UDI

+

U816_V1

+

+
+ + Modele: Known UDI 2.4GHz protocol variants, all using BK2421
* UDI U819 coaxial 3ch helicoper
* UDI U816/817/818 quadcopters
- "V1" with orange LED on TX, U816 RX labeled '' , U817/U818 RX labeled 'UD-U817B'
- "V2" with red LEDs on TX, U816 RX labeled '', U817/U818 RX labeled 'UD-U817OG'
- "V3" with green LEDs on TX. Did not get my hands on yet.
* U830 mini quadcopter with tilt steering ("Protocol 2014")
* U839 nano quadcopter ("Protocol 2014")
Autobind

+ + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH14
AETRFLIP 360FLIPVIDEOLEDMODE 2---Reset/Bind
+

Close

+ +
+

UDI

+

U816_V2

+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH14
AETRFLIP 360FLIPVIDEOLEDMODE 2---Reset/Bind
+

Close

+ +
+

UDI

+

U839_2014

+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH14
AETRFLIP 360FLIPVIDEOLEDMODE 2---Reset/Bind
+

Close

+ +
+

FBL100

+

FBL100

+

+
+ + Autobind

+ + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH14
? ? ? ? ? ? ? ?Reset/Bind
+

Close

+ +
+

FBL100

+

HP100

+

+
+ + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH14
? ? ? ? ? ? ? ?Reset/Bind
+

Close

+ +
+

HM830

+

. . . . .

+

+
+ + Modele: HM Hobby HM830 RC Paper Airplane
Autobind

+ + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH14
ATurboTTrimBoutonReset/Bind
+

Close

+ +
+

CFLIE

+

. . . . .

+

+
+ + Modele: CrazyFlie Nano quad
Autobind

+ + + + + + + + + + + +
CH1CH2CH3CH4CH14
AETRReset/Bind
+

Close

+ +
+

H377

+

. . . . .

+

+
+ + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH14
AETRCH5CH6CH7CH8Reset/Bind
+

Close

+ +
+

ESKY150

+

. . . . .

+

+
+ + Autobind

+ + + + + + + + + + + +
CH1CH2CH3CH4CH14
AETRReset/Bind
+

Close

+ +
+

BLUEFLY

+

. . . . .

+

+
+ + Autobind

+ + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH14
AETRGEARPITCHReset/Bind
+

Close

+ +
+

NE260

+

. . . . .

+

+
+ + Modele: Nine Eagles SoloPro
Autobind

+ + + + + + + + + + + +
CH1CH2CH3CH4CH14
AETRReset/Bind
+

Close

+ +
+

AFHDS2A

+

. . . . .

+

+
+ + Telemetry enabled for battery voltage and TX RSSI
Option= 0-PWM_IBUS 1-PPM_IBUS 2-PWM_SBUS 3-PPM_SBUS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12CH13CH14CH15
TCH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12CH13CH14Failsave T
+

Close

+ +
+

INAV

+

. . . . .

+

+
+ + En cours de passage

+ + + +
CH14
Reset/Bind
+

Close

+ +
+
+

LUA Script       Close

+ +

Liste Protocoles       Close

+ +
+ \ No newline at end of file diff --git a/Multiprotocol/MJXQ_nrf24l01.ino b/Multiprotocol/MJXQ_nrf24l01.ino index a1cb14a..ae95060 100644 --- a/Multiprotocol/MJXQ_nrf24l01.ino +++ b/Multiprotocol/MJXQ_nrf24l01.ino @@ -12,11 +12,7 @@ You should have received a copy of the GNU General Public License along with Multiprotocol. If not, see . */ -<<<<<<< HEAD -// compatible with MJX WLH08, X600, X800, H26D -======= // compatible with MJX WLH08, X600, X800, H26D, Eachine E010 ->>>>>>> refs/remotes/pascallanger/master // Last sync with hexfet new_protocols/mjxq_nrf24l01.c dated 2016-01-17 #if defined(MJXQ_NRF24L01_INO) @@ -30,8 +26,6 @@ #define MJXQ_RF_NUM_CHANNELS 4 #define MJXQ_ADDRESS_LENGTH 5 -<<<<<<< HEAD -======= // haven't figured out txid<-->rf channel mapping for MJX models const uint8_t PROGMEM MJXQ_map_rfchan[][4] = { {0x0A, 0x46, 0x3A, 0x42}, @@ -43,7 +37,6 @@ const uint8_t PROGMEM MJXQ_map_txid[][3] = { {0x48, 0x6A, 0x40} }; ->>>>>>> refs/remotes/pascallanger/master #define MJXQ_PAN_TILT_COUNT 16 // for H26D - match stock tx timing #define MJXQ_PAN_DOWN 0x08 #define MJXQ_PAN_UP 0x04 @@ -57,16 +50,6 @@ static uint8_t __attribute__((unused)) MJXQ_pan_tilt_value() packet_count++; if(packet_count & MJXQ_PAN_TILT_COUNT) { -<<<<<<< HEAD - if(Servo_AUX8) - pan=MJXQ_PAN_UP; - if(Servo_data[AUX8]PPM_MIN_COMMAND) - pan=MJXQ_TILT_UP; - if(Servo_data[AUX9]PPM_MAX_COMMAND) pan=MJXQ_PAN_UP; if(Servo_data[AUX8]>>>>>> refs/remotes/pascallanger/master } return pan; } @@ -86,17 +68,10 @@ static void __attribute__((unused)) MJXQ_send_packet(uint8_t bind) packet[0] = convert_channel_8b(THROTTLE); packet[1] = convert_channel_s8b(RUDDER); packet[4] = 0x40; // rudder does not work well with dyntrim -<<<<<<< HEAD - packet[2] = convert_channel_s8b(ELEVATOR); - packet[5] = MJXQ_CHAN2TRIM(packet[2]); // trim elevator - packet[3] = convert_channel_s8b(AILERON); - packet[6] = MJXQ_CHAN2TRIM(packet[3]); // trim aileron -======= packet[2] = 0x80 ^ convert_channel_s8b(ELEVATOR); packet[5] = GET_FLAG(Servo_AUX5, 1) ? 0x40 : MJXQ_CHAN2TRIM(packet[2]); // trim elevator packet[3] = convert_channel_s8b(AILERON); packet[6] = GET_FLAG(Servo_AUX5, 1) ? 0x40 : MJXQ_CHAN2TRIM(packet[3]); // trim aileron ->>>>>>> refs/remotes/pascallanger/master packet[7] = rx_tx_addr[0]; packet[8] = rx_tx_addr[1]; packet[9] = rx_tx_addr[2]; @@ -121,10 +96,7 @@ static void __attribute__((unused)) MJXQ_send_packet(uint8_t bind) packet[10]=MJXQ_pan_tilt_value(); // fall through on purpose - no break case WLH08: -<<<<<<< HEAD -======= case E010: ->>>>>>> refs/remotes/pascallanger/master packet[10] += GET_FLAG(Servo_AUX6, 0x02) //RTH | GET_FLAG(Servo_AUX5, 0x01); //HEADLESS if (!bind) @@ -137,14 +109,6 @@ static void __attribute__((unused)) MJXQ_send_packet(uint8_t bind) } break; case X600: -<<<<<<< HEAD - if(Servo_AUX5) //HEADLESS - { // driven trims cause issues when headless is enabled - packet[5] = 0x40; - packet[6] = 0x40; - } -======= ->>>>>>> refs/remotes/pascallanger/master packet[10] = GET_FLAG(!Servo_AUX2, 0x02); //LED packet[11] = GET_FLAG(Servo_AUX6, 0x01); //RTH if (!bind) @@ -178,11 +142,7 @@ static void __attribute__((unused)) MJXQ_send_packet(uint8_t bind) if (sub_protocol == H26D) NRF24L01_SetTxRxMode(TX_EN); else -<<<<<<< HEAD - XN297_Configure(BV(NRF24L01_00_EN_CRC) | BV(NRF24L01_00_CRCO) | BV(NRF24L01_00_PWR_UP)); -======= XN297_Configure(_BV(NRF24L01_00_EN_CRC) | _BV(NRF24L01_00_CRCO) | _BV(NRF24L01_00_PWR_UP)); ->>>>>>> refs/remotes/pascallanger/master NRF24L01_WriteReg(NRF24L01_05_RF_CH, hopping_frequency[hopping_frequency_no++ / 2]); hopping_frequency_no %= 2 * MJXQ_RF_NUM_CHANNELS; // channels repeated @@ -205,20 +165,12 @@ static void __attribute__((unused)) MJXQ_init() if (sub_protocol == WLH08) memcpy(hopping_frequency, "\x12\x22\x32\x42", MJXQ_RF_NUM_CHANNELS); else -<<<<<<< HEAD - if (sub_protocol == H26D) -======= if (sub_protocol == H26D || sub_protocol == E010) ->>>>>>> refs/remotes/pascallanger/master memcpy(hopping_frequency, "\x36\x3e\x46\x2e", MJXQ_RF_NUM_CHANNELS); else { memcpy(hopping_frequency, "\x0a\x35\x42\x3d", MJXQ_RF_NUM_CHANNELS); -<<<<<<< HEAD - memcpy(addr, "\x6d\x6a\x73\x73\x73", MJXQ_RF_NUM_CHANNELS); -======= memcpy(addr, "\x6d\x6a\x73\x73\x73", MJXQ_ADDRESS_LENGTH); ->>>>>>> refs/remotes/pascallanger/master } @@ -237,53 +189,25 @@ static void __attribute__((unused)) MJXQ_init() NRF24L01_WriteReg(NRF24L01_02_EN_RXADDR, 0x01); // Enable data pipe 0 only NRF24L01_WriteReg(NRF24L01_04_SETUP_RETR, 0x00); // no retransmits NRF24L01_WriteReg(NRF24L01_11_RX_PW_P0, MJXQ_PACKET_SIZE); // rx pipe 0 (used only for blue board) -<<<<<<< HEAD - NRF24L01_SetBitrate(NRF24L01_BR_1M); // 1Mbps -======= if (sub_protocol == E010) NRF24L01_SetBitrate(NRF24L01_BR_250K); // 250K else NRF24L01_SetBitrate(NRF24L01_BR_1M); // 1Mbps ->>>>>>> refs/remotes/pascallanger/master NRF24L01_SetPower(); } static void __attribute__((unused)) MJXQ_init2() { -<<<<<<< HEAD - // haven't figured out txid<-->rf channel mapping for MJX models - static const uint8_t rf_map[][4] = { - {0x0A, 0x46, 0x3A, 0x42}, - {0x0A, 0x3C, 0x36, 0x3F}, - {0x0A, 0x43, 0x36, 0x3F} }; - if (sub_protocol == H26D) - memcpy(hopping_frequency, "\x32\x3e\x42\x4e", MJXQ_RF_NUM_CHANNELS); - else - if (sub_protocol == WLH08) - memcpy(hopping_frequency, rf_map[rx_tx_addr[0]%3], MJXQ_RF_NUM_CHANNELS); -======= if (sub_protocol == H26D) memcpy(hopping_frequency, "\x32\x3e\x42\x4e", MJXQ_RF_NUM_CHANNELS); else if (sub_protocol != WLH08 && sub_protocol != E010) for(uint8_t i=0;i>>>>>> refs/remotes/pascallanger/master } static void __attribute__((unused)) MJXQ_initialize_txid() { -<<<<<<< HEAD - // haven't figured out txid<-->rf channel mapping for MJX models - static const uint8_t tx_map[][3]={ - {0xF8, 0x4F, 0x1C}, - {0xC8, 0x6E, 0x02}, - {0x48, 0x6A, 0x40} }; - if (sub_protocol == WLH08) - rx_tx_addr[0]&=0xF8; // txid must be multiple of 8 - else - memcpy(rx_tx_addr,tx_map[rx_tx_addr[0]%3],3); -======= rx_tx_addr[0]&=0xF8; if (sub_protocol == E010) { @@ -293,7 +217,6 @@ static void __attribute__((unused)) MJXQ_initialize_txid() else for(uint8_t i=0;i<3;i++) rx_tx_addr[i]=pgm_read_byte_near( &MJXQ_map_txid[rx_tx_addr[4]%3][i] ); ->>>>>>> refs/remotes/pascallanger/master } uint16_t MJXQ_callback() diff --git a/Multiprotocol/MT99xx_nrf24l01.ino b/Multiprotocol/MT99xx_nrf24l01.ino index dff51d7..4fb2d65 100644 --- a/Multiprotocol/MT99xx_nrf24l01.ino +++ b/Multiprotocol/MT99xx_nrf24l01.ino @@ -12,11 +12,7 @@ You should have received a copy of the GNU General Public License along with Multiprotocol. If not, see . */ -<<<<<<< HEAD -// compatible with MT99xx, Eachine H7, Yi Zhan i6S -======= // compatible with MT99xx, Eachine H7, Yi Zhan i6S and LS114/124 ->>>>>>> refs/remotes/pascallanger/master // Last sync with Goebish mt99xx_nrf24l01.c dated 2016-01-29 #if defined(MT99XX_NRF24L01_INO) @@ -41,8 +37,6 @@ enum{ FLAG_MT_FLIP = 0x80, }; -<<<<<<< HEAD -======= enum{ // flags going to packet[6] (LS) FLAG_LS_INVERT = 0x01, @@ -53,43 +47,12 @@ enum{ FLAG_LS_FLIP = 0x80, }; ->>>>>>> refs/remotes/pascallanger/master enum { MT99XX_INIT = 0, MT99XX_BIND, MT99XX_DATA }; -<<<<<<< HEAD -static void __attribute__((unused)) MT99XX_send_packet() -{ - const uint8_t yz_p4_seq[] = {0xa0, 0x20, 0x60}; - const uint8_t mys_byte[] = { - 0x01, 0x11, 0x02, 0x12, 0x03, 0x13, 0x04, 0x14, - 0x05, 0x15, 0x06, 0x16, 0x07, 0x17, 0x00, 0x10 - }; - static uint8_t yz_seq_num=0; - - if(sub_protocol != YZ) - { // MT99XX & H7 - packet[0] = convert_channel_8b_scale(THROTTLE,0x00,0xE1); // throttle - packet[1] = convert_channel_8b_scale(RUDDER ,0x00,0xE1); // rudder - packet[2] = convert_channel_8b_scale(AILERON ,0x00,0xE1); // aileron - packet[3] = convert_channel_8b_scale(ELEVATOR,0x00,0xE1); // elevator - packet[4] = 0x20; // pitch trim (0x3f-0x20-0x00) - packet[5] = 0x20; // roll trim (0x00-0x20-0x3f) - packet[6] = GET_FLAG( Servo_AUX1, FLAG_MT_FLIP ) - | GET_FLAG( Servo_AUX3, FLAG_MT_SNAPSHOT ) - | GET_FLAG( Servo_AUX4, FLAG_MT_VIDEO ); - if(sub_protocol==MT99) - packet[6] |= 0x40 | FLAG_MT_RATE2; - else - packet[6] |= FLAG_MT_RATE1; // max rate on H7 - // todo: mys_byte = next channel index ? - // low nibble: index in chan list ? - // high nibble: 0->start from start of list, 1->start from end of list ? - packet[7] = mys_byte[hopping_frequency_no]; -======= const uint8_t h7_mys_byte[] = { 0x01, 0x11, 0x02, 0x12, 0x03, 0x13, 0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17, 0x00, 0x10 @@ -138,7 +101,6 @@ static void __attribute__((unused)) MT99XX_send_packet() ls_counter=0; } ->>>>>>> refs/remotes/pascallanger/master uint8_t result=checksum_offset; for(uint8_t i=0; i<8; i++) result += packet[i]; @@ -147,15 +109,9 @@ static void __attribute__((unused)) MT99XX_send_packet() else { // YZ packet[0] = convert_channel_8b_scale(THROTTLE,0x00,0x64); // throttle -<<<<<<< HEAD - packet[1] = convert_channel_8b_scale(RUDDER ,0x00,0x64); // rudder - packet[2] = convert_channel_8b_scale(ELEVATOR,0x00,0x64); // elevator - packet[3] = convert_channel_8b_scale(AILERON ,0x00,0x64); // aileron -======= packet[1] = convert_channel_8b_scale(RUDDER ,0x64,0x00); // rudder packet[2] = convert_channel_8b_scale(ELEVATOR,0x00,0x64); // elevator packet[3] = convert_channel_8b_scale(AILERON ,0x64,0x00); // aileron ->>>>>>> refs/remotes/pascallanger/master if(packet_count++ >= 23) { yz_seq_num ++; @@ -176,14 +132,10 @@ static void __attribute__((unused)) MT99XX_send_packet() packet[8] = 0xff; } -<<<<<<< HEAD - NRF24L01_WriteReg(NRF24L01_05_RF_CH, hopping_frequency[hopping_frequency_no] + channel_offset); -======= if(sub_protocol == LS) NRF24L01_WriteReg(NRF24L01_05_RF_CH, 0x2D); // LS always transmits on the same channel else NRF24L01_WriteReg(NRF24L01_05_RF_CH, hopping_frequency[hopping_frequency_no] + channel_offset); ->>>>>>> refs/remotes/pascallanger/master NRF24L01_WriteReg(NRF24L01_07_STATUS, 0x70); NRF24L01_FlushTx(); XN297_WritePayload(packet, MT99XX_PACKET_SIZE); @@ -201,16 +153,11 @@ static void __attribute__((unused)) MT99XX_send_packet() static void __attribute__((unused)) MT99XX_init() { NRF24L01_Initialize(); -<<<<<<< HEAD - NRF24L01_SetTxRxMode(TX_EN); - NRF24L01_FlushTx(); -======= if(sub_protocol == YZ) XN297_SetScrambledMode(XN297_UNSCRAMBLED); NRF24L01_SetTxRxMode(TX_EN); NRF24L01_FlushTx(); XN297_SetTXAddr((uint8_t *)"\xCC\xCC\xCC\xCC\xCC", 5); ->>>>>>> refs/remotes/pascallanger/master NRF24L01_WriteReg(NRF24L01_07_STATUS, 0x70); // Clear data ready, data sent, and retransmit NRF24L01_WriteReg(NRF24L01_01_EN_AA, 0x00); // No Auto Acknowldgement on all data pipes NRF24L01_WriteReg(NRF24L01_02_EN_RXADDR, 0x01); // Enable data pipe 0 only @@ -222,31 +169,18 @@ static void __attribute__((unused)) MT99XX_init() NRF24L01_SetBitrate(NRF24L01_BR_1M); // 1Mbps NRF24L01_SetPower(); -<<<<<<< HEAD - XN297_Configure(BV(NRF24L01_00_EN_CRC) | BV(NRF24L01_00_CRCO) | BV(NRF24L01_00_PWR_UP) | (sub_protocol == YZ ? BV(XN297_UNSCRAMBLED):0) ); - - XN297_SetTXAddr((uint8_t *)"\xCC\xCC\xCC\xCC\xCC", 5); -======= XN297_Configure(_BV(NRF24L01_00_EN_CRC) | _BV(NRF24L01_00_CRCO) | _BV(NRF24L01_00_PWR_UP) ); ->>>>>>> refs/remotes/pascallanger/master } static void __attribute__((unused)) MT99XX_initialize_txid() { -<<<<<<< HEAD -======= rx_tx_addr[3] = 0xCC; rx_tx_addr[4] = 0xCC; ->>>>>>> refs/remotes/pascallanger/master if(sub_protocol == YZ) { rx_tx_addr[0] = 0x53; // test (SB id) rx_tx_addr[1] = 0x00; -<<<<<<< HEAD - } - checksum_offset = (rx_tx_addr[0] + rx_tx_addr[1]) & 0xff; -======= rx_tx_addr[2] = 0x00; } else @@ -255,7 +189,6 @@ static void __attribute__((unused)) MT99XX_initialize_txid() else //MT99 & H7 rx_tx_addr[2] = 0x00; checksum_offset = rx_tx_addr[0] + rx_tx_addr[1] + rx_tx_addr[2]; ->>>>>>> refs/remotes/pascallanger/master channel_offset = (((checksum_offset & 0xf0)>>4) + (checksum_offset & 0x0f)) % 8; } @@ -267,26 +200,16 @@ uint16_t MT99XX_callback() { if (bind_counter == 0) { -<<<<<<< HEAD - rx_tx_addr[2] = 0x00; - rx_tx_addr[3] = 0xCC; - rx_tx_addr[4] = 0xCC; -======= ->>>>>>> refs/remotes/pascallanger/master // set tx address for data packets XN297_SetTXAddr(rx_tx_addr, 5); BIND_DONE; } else { -<<<<<<< HEAD - NRF24L01_WriteReg(NRF24L01_05_RF_CH, hopping_frequency[hopping_frequency_no]); -======= if(sub_protocol == LS) NRF24L01_WriteReg(NRF24L01_05_RF_CH, 0x2D); // LS always transmits on the same channel else NRF24L01_WriteReg(NRF24L01_05_RF_CH, hopping_frequency[hopping_frequency_no]); ->>>>>>> refs/remotes/pascallanger/master NRF24L01_WriteReg(NRF24L01_07_STATUS, 0x70); NRF24L01_FlushTx(); XN297_WritePayload(packet, MT99XX_PACKET_SIZE); // bind packet @@ -313,25 +236,6 @@ uint16_t initMT99XX(void) MT99XX_init(); packet[0] = 0x20; -<<<<<<< HEAD - if(sub_protocol!=YZ) - { // MT99 & H7 - packet_period = MT99XX_PACKET_PERIOD_MT; - packet[1] = 0x14; - packet[2] = 0x03; - packet[3] = 0x25; - } - else - { // YZ - packet_period = MT99XX_PACKET_PERIOD_YZ; - packet[1] = 0x15; - packet[2] = 0x05; - packet[3] = 0x06; - } - packet[4] = rx_tx_addr[0]; // 1st byte for data state tx address - packet[5] = rx_tx_addr[1]; // 2nd byte for data state tx address (always 0x00 on Yi Zhan ?) - packet[6] = 0x00; // 3rd byte for data state tx address (always 0x00 ?) -======= packet_period = MT99XX_PACKET_PERIOD_MT; switch(sub_protocol) { // MT99 & H7 @@ -356,7 +260,6 @@ uint16_t initMT99XX(void) packet[4] = rx_tx_addr[0]; packet[5] = rx_tx_addr[1]; packet[6] = rx_tx_addr[2]; ->>>>>>> refs/remotes/pascallanger/master packet[7] = checksum_offset; // checksum offset packet[8] = 0xAA; // fixed packet_count=0; diff --git a/Multiprotocol/Multiprotocol 2.zip b/Multiprotocol/Multiprotocol 2.zip new file mode 100644 index 0000000000000000000000000000000000000000..1f14be86ea6fe62f850a813fba99807d2f539385 GIT binary patch literal 304859 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

2S5e~AF_L5;EfQ= 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�H^+eaBO67`X|`yTLw}ysAVjkZf+8M5k-R*Sp$d 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

O1BA)WI4;9L7grw#JkeAAUj^&gIJ@sx|Cuc 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 E1H#9JA^-pY literal 0 HcmV?d00001 diff --git a/Multiprotocol/Multiprotocol.ino b/Multiprotocol/Multiprotocol.ino index fe73f45..7659c50 100644 --- a/Multiprotocol/Multiprotocol.ino +++ b/Multiprotocol/Multiprotocol.ino @@ -5,13 +5,8 @@ http://www.rcgroups.com/forums/showthread.php?t=2165676 https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/edit/master/README.md -<<<<<<< HEAD - Thanks to PhracturedBlue, Hexfet, Goebish and all protocol developers - Ported from deviation firmware -======= Thanks to PhracturedBlue, Hexfet, Goebish, Victzh and all protocol developers - Ported from deviation firmware ->>>>>>> refs/remotes/pascallanger/master + Ported from deviation firmware This project is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,21 +21,14 @@ You should have received a copy of the GNU General Public License along with Multiprotocol. If not, see . */ -#include + #include #include -<<<<<<< HEAD -#include -======= //#define DEBUG_TX #include "Pins.h" ->>>>>>> refs/remotes/pascallanger/master #include "Multiprotocol.h" //Multiprotocol module configuration file #include "_Config.h" -<<<<<<< HEAD - -======= #include "TX_Def.h" #ifdef XMEGA @@ -53,39 +41,29 @@ #define DSM_TELEMETRY // Enable DSM telemetry #endif ->>>>>>> refs/remotes/pascallanger/master //Global constants/variables uint32_t MProtocol_id;//tx id, uint32_t MProtocol_id_master; -uint32_t blink=0; +uint32_t blink=0; // uint16_t counter; -uint8_t channel; -uint8_t packet[40]; +uint8_t channel; +uint8_t packet[40]; #define NUM_CHN 16 // Servo data uint16_t Servo_data[NUM_CHN]; uint8_t Servo_AUX; -<<<<<<< HEAD -const uint8_t ch[]={AILERON, ELEVATOR, THROTTLE, RUDDER, AUX1, AUX2, AUX3, AUX4}; - -// Protocol variables -uint8_t rx_tx_addr[5]; -uint8_t phase; -======= uint16_t servo_max_100,servo_min_100,servo_max_125,servo_min_125; // Protocol variables uint8_t cyrfmfg_id[6];//for dsm2 and devo -uint8_t rx_tx_addr[5]; -uint8_t phase; ->>>>>>> refs/remotes/pascallanger/master +uint8_t rx_tx_addr[5]; +uint8_t phase; uint16_t bind_counter; -uint8_t bind_phase; -uint8_t binding_idx; +uint8_t bind_phase; +uint8_t binding_idx; uint16_t packet_period; -<<<<<<< HEAD uint8_t packet_count; uint8_t packet_sent; uint8_t packet_length; @@ -96,38 +74,22 @@ uint8_t rf_ch_num; uint8_t throttle, rudder, elevator, aileron; uint8_t flags; uint16_t crc; -// -uint32_t state; -uint8_t len; -uint8_t RX_num; -======= -uint8_t packet_count; -uint8_t packet_sent; -uint8_t packet_length; -uint8_t hopping_frequency[23]; -uint8_t *hopping_frequency_ptr; -uint8_t hopping_frequency_no=0; -uint8_t rf_ch_num; -uint8_t throttle, rudder, elevator, aileron; -uint8_t flags; -uint16_t crc; uint8_t crc8; uint16_t seed; // uint16_t state; -uint8_t len; -uint8_t RX_num; +uint8_t len; +uint8_t RX_num; #if defined(FRSKYX_CC2500_INO) || defined(SFHSS_CC2500_INO) uint8_t calData[48]; #endif //Channel mapping for protocols -const uint8_t CH_AETR[]={AILERON, ELEVATOR, THROTTLE, RUDDER, AUX1, AUX2, AUX3, AUX4, AUX5, AUX6, AUX7, AUX8}; -const uint8_t CH_TAER[]={THROTTLE, AILERON, ELEVATOR, RUDDER, AUX1, AUX2, AUX3, AUX4, AUX5, AUX6, AUX7, AUX8}; -const uint8_t CH_RETA[]={RUDDER, ELEVATOR, THROTTLE, AILERON, AUX1, AUX2, AUX3, AUX4, AUX5, AUX6, AUX7, AUX8}; -const uint8_t CH_EATR[]={ELEVATOR, AILERON, THROTTLE, RUDDER, AUX1, AUX2, AUX3, AUX4, AUX5, AUX6, AUX7, AUX8}; ->>>>>>> refs/remotes/pascallanger/master + const uint8_t CH_AETR[]={AILERON, ELEVATOR, THROTTLE, RUDDER, AUX1, AUX2, AUX3, AUX4, AUX5, AUX6, AUX7, AUX8, AUX9, AUX10}; + const uint8_t CH_TAER[]={THROTTLE, AILERON, ELEVATOR, RUDDER, AUX1, AUX2, AUX3, AUX4, AUX5, AUX6, AUX7, AUX8, AUX9, AUX10}; + const uint8_t CH_RETA[]={RUDDER, ELEVATOR, THROTTLE, AILERON, AUX1, AUX2, AUX3, AUX4, AUX5, AUX6, AUX7, AUX8, AUX9, AUX10}; + const uint8_t CH_EATR[]={ELEVATOR, AILERON, THROTTLE, RUDDER, AUX1, AUX2, AUX3, AUX4, AUX5, AUX6, AUX7, AUX8, AUX9, AUX10}; // Mode_select variables uint8_t mode_select; @@ -136,20 +98,10 @@ uint8_t protocol_flags=0,protocol_flags2=0; // PPM variable volatile uint16_t PPM_data[NUM_CHN]; -<<<<<<< HEAD -// Serial variables -#define RXBUFFER_SIZE 25 -#define TXBUFFER_SIZE 12 -volatile uint8_t rx_buff[RXBUFFER_SIZE]; -volatile uint8_t rx_ok_buff[RXBUFFER_SIZE]; -volatile uint8_t tx_buff[TXBUFFER_SIZE]; -volatile uint8_t idx = 0; -======= #ifndef XMEGA -//Random variable -volatile uint32_t gWDT_entropy=0; + //Random variable + volatile uint32_t gWDT_entropy=0; #endif ->>>>>>> refs/remotes/pascallanger/master //Serial protocol uint8_t sub_protocol; @@ -192,11 +144,6 @@ volatile uint8_t discard_frame = 0; #define MAX_PKT 27 uint8_t pkt[MAX_PKT];//telemetry receiving packets #if defined(TELEMETRY) -<<<<<<< HEAD -uint8_t pktt[MAX_PKT];//telemetry receiving packets - volatile uint8_t tx_head; - volatile uint8_t tx_tail; -======= #ifdef INVERT_TELEMETRY // enable bit bash for serial #ifndef XMEGA @@ -212,7 +159,6 @@ uint8_t pktt[MAX_PKT];//telemetry receiving packets volatile uint8_t tx_head=0; volatile uint8_t tx_tail=0; #endif // BASH_SERIAL ->>>>>>> refs/remotes/pascallanger/master uint8_t v_lipo; int16_t RSSI_dBm; //const uint8_t RSSI_offset=72;//69 71.72 values db @@ -244,11 +190,11 @@ void setup() TCC1.PER = 0xFFFF ; TCNT1 = 0 ; TCC1.CTRLA = 0x0B ; // Event3 (prescale of 16) - #else + #else // General pinout // all inputs DDRB=0x00;DDRC=0x00;DDRD=0x00; - // outputs + // outputs SDI_output; SCLK_output; #ifdef A7105_INSTALLED @@ -268,12 +214,12 @@ void setup() PE2_output; SERIAL_TX_output; - // pullups + //pullup on dial (D10=PB2,D11=PB3,D12=PB4) and bind button MODE_DIAL1_port |= _BV(MODE_DIAL1_pin); MODE_DIAL2_port |= _BV(MODE_DIAL2_pin); MODE_DIAL3_port |= _BV(MODE_DIAL3_pin); MODE_DIAL4_port |= _BV(MODE_DIAL4_pin); - BIND_port |= _BV(BIND_pin); + BIND_port |= _BV(BIND_pin); // Timer1 config TCCR1A = 0; @@ -284,19 +230,6 @@ void setup() #endif // Set Chip selects -<<<<<<< HEAD - CS_on; - CC25_CSN_on; - NRF_CSN_on; - CYRF_CSN_on; - // Set SPI lines - SDI_on; - SCK_off; - - // Timer1 config - TCCR1A = 0; - TCCR1B = (1 << CS11); //prescaler8, set timer1 to increment every 0.5us(16Mhz) and start timer -======= #ifdef A7105_INSTALLED A7105_CSN_on; #endif @@ -309,63 +242,32 @@ void setup() #ifdef NRF24L01_INSTALLED NRF_CSN_on; #endif - // Set SPI lines + // Set SPI lines SDI_on; SCLK_off; ->>>>>>> refs/remotes/pascallanger/master // Set servos positions for(uint8_t i=0;i>2)&0x07 ) | ( (PINC<<3)&0x08) );//encoder dip switches 1,2,4,8=>B2,B3,B4,C0 - //********************************** -//mode_select=1; // here to test PPM - //********************************** - - // Update LED - LED_OFF; - LED_SET_OUTPUT; - - // Read or create protocol id - MProtocol_id_master=random_id(10,false); - - //Init RF modules - #ifdef CC2500_INSTALLED - CC2500_Reset(); - #endif - -======= Servo_data[THROTTLE]=servo_min_100; #ifdef ENABLE_PPM memcpy((void *)PPM_data,Servo_data, sizeof(Servo_data)); #endif - + //Wait for every component to start delayMilliseconds(100); // Read status of bind button if( IS_BIND_BUTTON_on ) - BIND_BUTTON_FLAG_on; // If bind button pressed save the status for protocol id reset under hubsan + BIND_BUTTON_FLAG_on; // If bind button pressed save the status for protocol id reset under hubsan // Read status of mode select binary switch // after this mode_select will be one of {0000, 0001, ..., 1111} #ifndef ENABLE_PPM mode_select = MODE_SERIAL ; // force serial mode #else - mode_select = +// mode_select=0x0F - ( ( (PINB>>2)&0x07 ) | ( (PINC<<3)&0x08) );//encoder dip switches 1,2,4,8=>B2,B3,B4,C0 + mode_select = ((MODE_DIAL1_ipr & _BV(MODE_DIAL1_pin)) ? 0 : 1) + ((MODE_DIAL2_ipr & _BV(MODE_DIAL2_pin)) ? 0 : 2) + ((MODE_DIAL3_ipr & _BV(MODE_DIAL3_pin)) ? 0 : 4) + @@ -379,66 +281,50 @@ void setup() //Init RF modules modules_reset(); -#ifndef XMEGA - //Init the seed with a random value created from watchdog timer for all protocols requiring random values - randomSeed(random_value()); -#endif + #ifndef XMEGA + //Init the seed with a random value created from watchdog timer for all protocols requiring random values + randomSeed(random_value()); + #endif // Read or create protocol id MProtocol_id_master=random_id(10,false); + + #ifdef ENABLE_PPM + //Protocol and interrupts initialization + if(mode_select != MODE_SERIAL) + { // PPM + mode_select--; + protocol = PPM_prot[mode_select].protocol; + cur_protocol[1] = protocol; + sub_protocol = PPM_prot[mode_select].sub_proto; + RX_num = PPM_prot[mode_select].rx_num; + MProtocol_id = RX_num + MProtocol_id_master; + option = PPM_prot[mode_select].option; + if(PPM_prot[mode_select].power) POWER_FLAG_on; + if(PPM_prot[mode_select].autobind) AUTOBIND_FLAG_on; + mode_select++; + servo_max_100=PPM_MAX_100; servo_min_100=PPM_MIN_100; + servo_max_125=PPM_MAX_125; servo_min_125=PPM_MIN_125; -#ifdef ENABLE_PPM ->>>>>>> refs/remotes/pascallanger/master - //Protocol and interrupts initialization - if(mode_select != MODE_SERIAL) - { // PPM - mode_select--; -<<<<<<< HEAD - cur_protocol[0] = PPM_prot[mode_select].protocol; -======= - protocol = PPM_prot[mode_select].protocol; - cur_protocol[1] = protocol; ->>>>>>> refs/remotes/pascallanger/master - sub_protocol = PPM_prot[mode_select].sub_proto; - RX_num = PPM_prot[mode_select].rx_num; - MProtocol_id = RX_num + MProtocol_id_master; - option = PPM_prot[mode_select].option; - if(PPM_prot[mode_select].power) POWER_FLAG_on; - if(PPM_prot[mode_select].autobind) AUTOBIND_FLAG_on; - mode_select++; -<<<<<<< HEAD - - protocol_init(); - - //Configure PPM interrupt - EICRA |=(1<>>>>>> refs/remotes/pascallanger/master - #endif - } - else -#endif //ENABLE_PPM + #if defined(TELEMETRY) + PPM_Telemetry_serial_init(); // Configure serial for telemetry + #endif + } + else + #endif //ENABLE_PPM { // Serial #ifdef ENABLE_SERIAL for(uint8_t i=0;i<3;i++) @@ -454,40 +340,7 @@ void setup() // Main // Protocol scheduler void loop() -<<<<<<< HEAD { - if(mode_select==MODE_SERIAL && IS_RX_FLAG_on) // Serial mode and something has been received - { - update_serial_data(); // Update protocol and data - update_aux_flags(); - if(IS_CHANGE_PROTOCOL_FLAG_on) - { // Protocol needs to be changed - LED_OFF; //led off during protocol init - module_reset(); //reset previous module - protocol_init(); //init new protocol - CHANGE_PROTOCOL_FLAG_off; //done - } - } - if(mode_select!=MODE_SERIAL && IS_PPM_FLAG_on) // PPM mode and a full frame has been received - { - for(uint8_t i=0;iPPM_SWITCH && !( (cur_protocol[0]&0x1F)==MODE_FRSKYD || (cur_protocol[0]&0x1F)==MODE_DSM || (cur_protocol[0]&0x1F)==MODE_AFHDS2A ) ) { CHANGE_PROTOCOL_FLAG_on; } // Rebind voie if(IS_CHANGE_PROTOCOL_FLAG_on) { // Protocol needs to be changed LED_off; //led off during protocol init @@ -574,10 +428,9 @@ void Update_All() #endif //ENABLE_PPM update_led_status(); #if defined(TELEMETRY) - if((protocol==MODE_FRSKYD) || (protocol==MODE_HUBSAN) || (protocol==MODE_FRSKYX) || (protocol==MODE_DSM) ) + if((protocol==MODE_FRSKYD) || (protocol==MODE_HUBSAN) || (protocol==MODE_FRSKYX) || (protocol==MODE_DSM) || (protocol==MODE_AFHDS2A) ) TelemetryUpdate(); - #endif ->>>>>>> refs/remotes/pascallanger/master + #endif } // Update Servo_AUX flags based on servo AUX positions @@ -594,13 +447,8 @@ static void update_led_status(void) { if(blink>>>>>> refs/remotes/pascallanger/master + blink+=BLINK_SERIAL_TIME; //blink slowly while waiting a valid serial input else if(remote_callback == 0) { // Invalid protocol @@ -611,58 +459,17 @@ static void update_led_status(void) } else if(IS_BIND_DONE_on) -<<<<<<< HEAD - LED_OFF; //bind completed -> led on + LED_off; //bind completed -> led on else blink+=BLINK_BIND_TIME; //blink fastly during binding - LED_TOGGLE; - } -} - -// Protocol scheduler -static void CheckTimer(uint16_t (*cb)(void)) -{ - uint16_t next_callback; - uint32_t prev; - if( (TIFR1 & (1< micros()) - { // Callback did not took more than requested time for next callback - if(next_callback>32000) - { // next_callback should not be more than 32767 so we will wait here... - delayMicroseconds(next_callback-2000); - cli(); // disable global int - OCR1A=TCNT1+4000; - sei(); // enable global int - } - else - { - cli(); // disable global int - OCR1A+=next_callback*2; // set compare A for callback - sei(); // enable global int - } - TIFR1=(1< led on - else - blink+=BLINK_BIND_TIME; //blink fastly during binding LED_toggle; } } inline void tx_pause() -{ +{ #ifdef TELEMETRY - #ifdef XMEGA + #ifdef XMEGA USARTC0.CTRLA &= ~0x03 ; // Pause telemetry by disabling transmitter interrupt #else #ifndef BASH_SERIAL @@ -677,7 +484,7 @@ inline void tx_resume() #ifdef TELEMETRY if(!IS_TX_PAUSE_on) { - #ifdef XMEGA + #ifdef XMEGA cli() ; USARTC0.CTRLA = (USARTC0.CTRLA & 0xFC) | 0x01 ; // Resume telemetry by enabling transmitter interrupt sei() ; @@ -686,11 +493,10 @@ inline void tx_resume() UCSR0B |= _BV(UDRIE0); // Resume telemetry by enabling transmitter interrupt #else resumeBashSerial() ; - #endif + #endif #endif } #endif ->>>>>>> refs/remotes/pascallanger/master } // Protocol start @@ -718,229 +524,26 @@ static void protocol_init() else BIND_DONE; -<<<<<<< HEAD - CTRL1_on; //NRF24L01 antenna RF3 by default - CTRL2_off; //NRF24L01 antenna RF3 by default - - switch(cur_protocol[0]&0x1F) // Init the requested protocol - { -#if defined(HM830_NRF24L01_INO) - case MODE_HM830: - next_callback=HM830_setup(); - remote_callback = HM830_callback; - break; -#endif -#if defined(CFlie_NRF24L01_INO) - case MODE_CFLIE: - next_callback=Cflie_setup(); - remote_callback = cflie_callback; - break; -#endif -#if defined(JOYSWAY_A7105_INO) - case MODE_JOYSWAY: - next_callback=JOYSWAY_Setup(); - remote_callback = joysway_cb; - break; -#endif -#if defined(H377_NRF24L01_INO) - case MODE_H377: - next_callback=h377_setup(); - remote_callback = h377_cb; - break; -#endif -#if defined(J6PRO_CYRF6936_INO) - case MODE_J6PRO: - next_callback=j6pro_setup(); - remote_callback = j6pro_cb; - break; -#endif -#if defined(WK2x01_CYRF6936_INO) - case MODE_WK2x01: - next_callback=wk_setup(); - remote_callback = wk_cb; - break; -#endif -#if defined(ESKY150_NRF24L01_INO) - case MODE_ESKY150: - next_callback=esky150_setup(); - remote_callback = esky150_callback; - break; -#endif -#if defined(BlueFly_NRF24L01_INO) - case MODE_BlueFly: - next_callback=BlueFly_setup(); - remote_callback = bluefly_cb; - break; -#endif -#if defined(HonTai_NRF24L01_INO) - case MODE_HonTai: - next_callback=ht_setup(); - remote_callback = ht_callback; - break; -#endif -#if defined(UDI_NRF24L01_INO) - case MODE_UDI: - next_callback=UDI_setup(); - remote_callback = UDI_callback; - break; -#endif -#if defined(NE260_NRF24L01_INO) - case MODE_NE260: - next_callback=NE260_setup(); - remote_callback = ne260_cb; - break; -#endif -#if defined(SKYARTEC_CC2500_INO) - case MODE_SKYARTEC: - next_callback=skyartec_setup(); - remote_callback = skyartec_cb; - break; -#endif -#if defined(FBL100_NRF24L01_INO) - case MODE_FBL100: - next_callback=fbl_setup(); - remote_callback = ne260_cb; - break; -#endif - -#if defined(FLYSKY_A7105_INO) - case MODE_FLYSKY: - CTRL1_off; //antenna RF1 - next_callback = initFlySky(); - remote_callback = ReadFlySky; - break; -#endif -#if defined(HUBSAN_A7105_INO) - case MODE_HUBSAN: - CTRL1_off; //antenna RF1 - if(IS_BIND_BUTTON_FLAG_on) random_id(10,true); // Generate new ID if bind button is pressed. - next_callback = initHubsan(); - remote_callback = ReadHubsan; - break; -#endif -#if defined(FRSKY_CC2500_INO) - case MODE_FRSKY: - CTRL1_off; //antenna RF2 - CTRL2_on; - next_callback = initFrSky_2way(); - remote_callback = ReadFrSky_2way; - break; -#endif -#if defined(FRSKYX_CC2500_INO) - case MODE_FRSKYX: - CTRL1_off; //antenna RF2 - CTRL2_on; - next_callback = initFrSkyX(); - remote_callback = ReadFrSkyX; - break; -#endif -#if defined(DSM2_CYRF6936_INO) - case MODE_DSM2: - CTRL2_on; //antenna RF4 - next_callback = initDsm2(); - //Servo_data[2]=1500;//before binding - remote_callback = ReadDsm2; - break; -#endif -#if defined(DEVO_CYRF6936_INO) - case MODE_DEVO: - CTRL2_on; //antenna RF4 - next_callback = DevoInit(); - remote_callback = devo_callback; - break; -#endif -#if defined(HISKY_NRF24L01_INO) - case MODE_HISKY: - next_callback=initHiSky(); - remote_callback = hisky_cb; - break; -#endif -#if defined(V2X2_NRF24L01_INO) - case MODE_V2X2: - next_callback = initV2x2(); - remote_callback = ReadV2x2; - break; -#endif -#if defined(YD717_NRF24L01_INO) - case MODE_YD717: - next_callback=initYD717(); - remote_callback = yd717_callback; - break; -#endif -#if defined(KN_NRF24L01_INO) - case MODE_KN: - next_callback = initKN(); - remote_callback = kn_callback; - break; -#endif -#if defined(SYMAX_NRF24L01_INO) - case MODE_SYMAX: - next_callback = initSymax(); - remote_callback = symax_callback; - break; -#endif -#if defined(SLT_NRF24L01_INO) - case MODE_SLT: - next_callback=initSLT(); - remote_callback = SLT_callback; - break; -#endif -#if defined(CX10_NRF24L01_INO) - case MODE_CX10: - next_callback=initCX10(); - remote_callback = CX10_callback; - break; -#endif -#if defined(CG023_NRF24L01_INO) - case MODE_CG023: - next_callback=initCG023(); - remote_callback = CG023_callback; - break; -#endif -#if defined(BAYANG_NRF24L01_INO) - case MODE_BAYANG: - next_callback=initBAYANG(); - remote_callback = BAYANG_callback; - break; -#endif -#if defined(ESKY_NRF24L01_INO) - case MODE_ESKY: - next_callback=initESKY(); - remote_callback = ESKY_callback; - break; -#endif -#if defined(MT99XX_NRF24L01_INO) - case MODE_MT99XX: - next_callback=initMT99XX(); - remote_callback = MT99XX_callback; - break; -#endif -#if defined(MJXQ_NRF24L01_INO) - case MODE_MJXQ: - next_callback=initMJXQ(); - remote_callback = MJXQ_callback; - break; -#endif -#if defined(SHENQI_NRF24L01_INO) - case MODE_SHENQI: - next_callback=initSHENQI(); - remote_callback = SHENQI_callback; - break; -#endif -#if defined(FY326_NRF24L01_INO) - case MODE_FY326: - next_callback=initFY326(); - remote_callback = FY326_callback; - break; -#endif - } -======= PE1_on; //NRF24L01 antenna RF3 by default - PE2_off; //NRF24L01 antenna RF3 by default - + PE2_off; //NRF24L01 antenna RF3 by default + switch(protocol) // Init the requested protocol { + #ifdef A7105_INSTALLED + #if defined(JOYSWAY_A7105_INO) + case MODE_JOYSWAY: + next_callback=JOYSWAY_Setup(); + remote_callback = joysway_cb; + break; + #endif + #if defined(AFHDS2A_A7105_INO) + case MODE_AFHDS2A: + next_callback=AFHDS2A_setup(); + remote_callback = afhds2a_cb; + break; + #endif + #if defined(FLYSKY_A7105_INO) case MODE_FLYSKY: PE1_off; //antenna RF1 @@ -958,6 +561,13 @@ static void protocol_init() #endif #endif #ifdef CC2500_INSTALLED + #if defined(SKYARTEC_CC2500_INO) + case MODE_SKYARTEC: + next_callback=skyartec_setup(); + remote_callback = skyartec_cb; + break; + #endif + #if defined(FRSKYD_CC2500_INO) case MODE_FRSKYD: PE1_off; //antenna RF2 @@ -992,6 +602,13 @@ static void protocol_init() #endif #endif #ifdef CYRF6936_INSTALLED + #if defined(WK2x01_CYRF6936_INO) + case MODE_WK2x01: + next_callback=wk_setup(); + remote_callback = wk_cb; + break; + #endif + #if defined(DSM_CYRF6936_INO) case MODE_DSM: PE2_on; //antenna RF4 @@ -1031,6 +648,61 @@ static void protocol_init() #endif #endif #ifdef NRF24L01_INSTALLED + #if defined(HM830_NRF24L01_INO) + case MODE_HM830: + next_callback=HM830_setup(); + remote_callback = HM830_callback; + break; + #endif + #if defined(CFlie_NRF24L01_INO) + case MODE_CFLIE: + next_callback=Cflie_setup(); + remote_callback = cflie_callback; + break; + #endif + #if defined(H377_NRF24L01_INO) + case MODE_H377: + next_callback=h377_setup(); + remote_callback = h377_cb; + break; + #endif + #if defined(ESKY150_NRF24L01_INO) + case MODE_ESKY150: + next_callback=esky150_setup(); + remote_callback = esky150_callback; + break; + #endif + #if defined(BlueFly_NRF24L01_INO) + case MODE_BlueFly: + next_callback=BlueFly_setup(); + remote_callback = bluefly_cb; + break; + #endif + #if defined(NE260_NRF24L01_INO) + case MODE_NE260: + next_callback=NE260_setup(); + remote_callback = ne260_cb; + break; + #endif + #if defined(UDI_NRF24L01_INO) + case MODE_UDI: + next_callback=UDI_setup(); + remote_callback = UDI_callback; + break; + #endif + #if defined(FBL100_NRF24L01_INO) + case MODE_FBL100: + next_callback=fbl_setup(); + remote_callback = ne260_cb; + break; + #endif + #if defined(INAV_NRF24L01_INO) + case MODE_INAV: + next_callback=INAV_setup(); + remote_callback = inav_cb; + break; + #endif + #if defined(HISKY_NRF24L01_INO) case MODE_HISKY: next_callback=initHiSky(); @@ -1135,85 +807,42 @@ static void protocol_init() #endif #endif } ->>>>>>> refs/remotes/pascallanger/master if(next_callback>32000) { // next_callback should not be more than 32767 so we will wait here... uint16_t temp=(next_callback>>10)-2; delayMilliseconds(temp); - next_callback-=temp<<10; // between 2-3ms left at this stage + next_callback-=temp<<10; // between 2-3ms left at this stage } -<<<<<<< HEAD cli(); // disable global int OCR1A=TCNT1+next_callback*2; // set compare A for callback sei(); // enable global int - TIFR1=(1<>>>>>> refs/remotes/pascallanger/master } void update_serial_data() { -<<<<<<< HEAD - if(rx_ok_buff[0]&0x20) //check range - RANGE_FLAG_on; - else - RANGE_FLAG_off; - if(rx_ok_buff[0]&0xC0) //check autobind(0x40) & bind(0x80) together - AUTOBIND_FLAG_on; - else - AUTOBIND_FLAG_off; - if(rx_ok_buff[1]&0x80) //if rx_ok_buff[1] ==1,power is low ,0-power high - POWER_FLAG_off; //power low - else - POWER_FLAG_on; //power high - - option=rx_ok_buff[2]; -======= RX_DONOTUPDTAE_on; - RX_FLAG_off; //data is being processed + RX_FLAG_off; //data is being processed if(rx_ok_buff[1]&0x20) //check range RANGE_FLAG_on; else - RANGE_FLAG_off; + RANGE_FLAG_off; if(rx_ok_buff[1]&0xC0) //check autobind(0x40) & bind(0x80) together AUTOBIND_FLAG_on; else AUTOBIND_FLAG_off; if(rx_ok_buff[2]&0x80) //if rx_ok_buff[2] ==1,power is low ,0-power high - POWER_FLAG_off; //power low + POWER_FLAG_off; //power low else - POWER_FLAG_on; //power high ->>>>>>> refs/remotes/pascallanger/master - + POWER_FLAG_on; //power high + option=rx_ok_buff[3]; - + if( (rx_ok_buff[0] != cur_protocol[0]) || ((rx_ok_buff[1]&0x5F) != (cur_protocol[1]&0x5F)) || ( (rx_ok_buff[2]&0x7F) != (cur_protocol[2]&0x7F) ) ) { // New model has been selected -<<<<<<< HEAD - prev_protocol=cur_protocol[0]&0x1F; //store previous protocol so we can reset the module - cur_protocol[1] = rx_ok_buff[1]&0x7F; //store current protocol - CHANGE_PROTOCOL_FLAG_on; //change protocol - sub_protocol=(rx_ok_buff[1]>>4)& 0x07; //subprotocol no (0-7) bits 4-6 - RX_num=rx_ok_buff[1]& 0x0F; - MProtocol_id=MProtocol_id_master+RX_num; //personalized RX bind + rx num // rx_num bits 0---3 - } - else - if( ((rx_ok_buff[0]&0x80)!=0) && ((cur_protocol[0]&0x80)==0) ) // Bind flag has been set - CHANGE_PROTOCOL_FLAG_on; //restart protocol with bind - cur_protocol[0] = rx_ok_buff[0]; //store current protocol - -// decode channel values - volatile uint8_t *p=rx_ok_buff+2; - uint8_t dec=-3; -======= - CHANGE_PROTOCOL_FLAG_on; //change protocol + CHANGE_PROTOCOL_FLAG_on; //change protocol protocol=(rx_ok_buff[0]==0x55?0:32) + (rx_ok_buff[1]&0x1F); //protocol no (0-63) bits 4-6 of buff[1] and bit 0 of buf[0] sub_protocol=(rx_ok_buff[2]>>4)& 0x07; //subprotocol no (0-7) bits 4-6 RX_num=rx_ok_buff[2]& 0x0F; // rx_num bits 0---3 @@ -1222,7 +851,7 @@ void update_serial_data() } else if( ((rx_ok_buff[1]&0x80)!=0) && ((cur_protocol[1]&0x80)==0) ) // Bind flag has been set - CHANGE_PROTOCOL_FLAG_on; //restart protocol with bind + CHANGE_PROTOCOL_FLAG_on; //restart protocol with bind else CHANGE_PROTOCOL_FLAG_off; //no need to restart //store current protocol values @@ -1232,68 +861,32 @@ void update_serial_data() // decode channel values volatile uint8_t *p=rx_ok_buff+3; uint8_t dec=-3; ->>>>>>> refs/remotes/pascallanger/master for(uint8_t i=0;i=8) { -<<<<<<< HEAD - dec-=8; - p++; - } - p++; - Servo_data[i]=((((*((uint32_t *)p))>>dec)&0x7FF)*5)/8+860; //value range 860<->2140 -125%<->+125% - } - RX_FLAG_off; //data has been processed -} - -static void module_reset() -{ - if(remote_callback) - { // previous protocol loaded - remote_callback = 0; - switch(prev_protocol) - { - case MODE_FLYSKY: - case MODE_HUBSAN: - A7105_Reset(); - break; - case MODE_FRSKY: - case MODE_FRSKYX: - CC2500_Reset(); - break; - case MODE_DSM2: - case MODE_DEVO: - CYRF_Reset(); - break; - default: // MODE_HISKY, MODE_V2X2, MODE_YD717, MODE_KN, MODE_SYMAX, MODE_SLT, MODE_CX10, MODE_CG023, MODE_BAYANG, MODE_ESKY, MODE_MT99XX, MODE_MJXQ, MODE_SHENQI, MODE_FY326 - NRF24L01_Reset(); - break; - } -======= dec-=8; p++; } p++; - Servo_data[i]=((((*((uint32_t *)p))>>dec)&0x7FF)*5)/8+860; //value range 860<->2140 -125%<->+125% + Servo_data[i]=((((*((uint32_t *)p))>>dec)&0x7FF)*5)/8+860; //value range 860<->2140 -125%<->+125% } RX_DONOTUPDTAE_off; #ifdef XMEGA cli(); #else - UCSR0B &= ~_BV(RXCIE0); // RX interrupt disable + UCSR0B &= ~_BV(RXCIE0); // RX interrupt disable #endif - if(IS_RX_MISSED_BUFF_on) // If the buffer is still valid + if(IS_RX_MISSED_BUFF_on) // If the buffer is still valid { memcpy((void*)rx_ok_buff,(const void*)rx_buff,RXBUFFER_SIZE);// Duplicate the buffer - RX_FLAG_on; // data to be processed next time... + RX_FLAG_on; // data to be processed next time... RX_MISSED_BUFF_off; ->>>>>>> refs/remotes/pascallanger/master } #ifdef XMEGA sei(); #else - UCSR0B |= _BV(RXCIE0) ; // RX interrupt enable + UCSR0B |= _BV(RXCIE0) ; // RX interrupt enable #endif } @@ -1303,18 +896,18 @@ void modules_reset() CC2500_Reset(); #endif #ifdef A7105_INSTALLED - A7105_Reset(); + A7105_Reset(); #endif #ifdef CYRF6936_INSTALLED - CYRF_Reset(); + CYRF_Reset(); #endif #ifdef NRF24L01_INSTALLED - NRF24L01_Reset(); + NRF24L01_Reset(); #endif //Wait for every component to reset delayMilliseconds(100); - prev_power=0xFD; // unused power value + prev_power=0xFD; // unused power value } void Mprotocol_serial_init() @@ -1322,7 +915,7 @@ void Mprotocol_serial_init() #ifdef XMEGA PORTC.OUTSET = 0x08 ; PORTC.DIRSET = 0x08 ; - + USARTC0.BAUDCTRLA = 19 ; USARTC0.BAUDCTRLB = 0 ; @@ -1333,17 +926,17 @@ void Mprotocol_serial_init() #ifdef INVERT_TELEMETRY PORTC.PIN3CTRL |= 0x40 ; #endif - #else - #include + #else + #include UBRR0H = UBRRH_VALUE; UBRR0L = UBRRL_VALUE; UCSR0A = 0 ; // Clear X2 bit //Set frame format to 8 data bits, even parity, 2 stop bits - UCSR0C = _BV(UPM01)|_BV(USBS0)|_BV(UCSZ01)|_BV(UCSZ00); + UCSR0C = _BV(UPM01)|_BV(USBS0)|_BV(UCSZ01)|_BV(UCSZ00); while ( UCSR0A & (1 << RXC0) )//flush receive buffer UDR0; //enable reception and RC complete interrupt - UCSR0B = _BV(RXEN0)|_BV(RXCIE0);//rx enable and interrupt + UCSR0B = _BV(RXEN0)|_BV(RXCIE0);//rx enable and interrupt #ifndef DEBUG_TX #if defined(TELEMETRY) initTXSerial( SPEED_100K ) ; @@ -1353,37 +946,17 @@ void Mprotocol_serial_init() } #if defined(TELEMETRY) -void PPM_Telemetry_serial_init() -{ -<<<<<<< HEAD - if(Servo_data[ch]>PPM_MAX_100) - return PPM_MAX_100; - else - if (Servo_data[ch]>>>>>> refs/remotes/pascallanger/master -} + } #endif -<<<<<<< HEAD -#if defined(TELEMETRY) -void Serial_write(uint8_t data) -{ - cli(); // disable global int - if(++tx_head>=TXBUFFER_SIZE) - tx_head=0; - tx_buff[tx_head]=data; - sei(); // enable global int - UCSR0B |= (1<>>>>>> refs/remotes/pascallanger/master } static uint32_t random_value(void) { -<<<<<<< HEAD - #include - UBRR0H = UBRRH_VALUE; - UBRR0L = UBRRL_VALUE; - UCSR0A = 0 ; // Clear X2 bit - //Set frame format to 8 data bits, even parity, 2 stop bits - UCSR0C = (1<>>>>>> refs/remotes/pascallanger/master } #endif -#if defined(TELEMETRY) -static void PPM_Telemetry_serial_init() -{ - //9600 bauds - UBRR0H = 0x00; - UBRR0L = 0x67; - UCSR0A = 0 ; // Clear X2 bit - //Set frame format to 8 data bits, none, 1 stop bit - UCSR0C = (1<> 24) & 0xFF; - rx_tx_addr[1] = (id >> 16) & 0xFF; - rx_tx_addr[2] = (id >> 8) & 0xFF; - rx_tx_addr[3] = (id >> 0) & 0xFF; - rx_tx_addr[4] = 0xC1; // for YD717: always uses first data port -} - static uint32_t random_id(uint16_t adress, uint8_t create_new) { + #define nb_txid 5 uint32_t id; - uint8_t txid[4]; + uint8_t txid[nb_txid]; - if(eeprom_read_byte((uint8_t*)(adress+10))==0xf0 && !create_new) + if (eeprom_read_byte((uint8_t*)(adress+10))==0xf0 && !create_new) { // TXID exists in EEPROM - eeprom_read_block((void*)txid,(const void*)adress,4); + eeprom_read_block((void*)txid,(const void*)adress,nb_txid); id=(txid[0] | ((uint32_t)txid[1]<<8) | ((uint32_t)txid[2]<<16) | ((uint32_t)txid[3]<<24)); if(id!=0x2AD141A7) //ID with seed=0 return id; @@ -1467,7 +1003,7 @@ static uint32_t random_id(uint16_t adress, uint8_t create_new) txid[1] = ((id >> 8) & 0xFF); txid[2] = ((id >> 16) & 0xFF); txid[3] = ((id >> 24) & 0xFF); - eeprom_write_block((const void*)txid,(void*)adress,4); + eeprom_write_block((const void*)txid,(void*)adress,nb_txid); eeprom_write_byte((uint8_t*)(adress+10),0xf0);//write bind flag in eeprom. return id; } @@ -1479,13 +1015,6 @@ static uint32_t random_id(uint16_t adress, uint8_t create_new) /**************************/ //PPM -<<<<<<< HEAD -ISR(INT1_vect) -{ // Interrupt on PPM pin - static int8_t chan=-1; - static uint16_t Prev_TCNT1=0; - uint16_t Cur_TCNT1; -======= #ifdef ENABLE_PPM #ifdef XMEGA #if PPM_pin == 2 @@ -1504,36 +1033,22 @@ ISR(INT1_vect) static int8_t chan=-1; static uint16_t Prev_TCNT1=0; uint16_t Cur_TCNT1; ->>>>>>> refs/remotes/pascallanger/master - - Cur_TCNT1 = TCNT1 - Prev_TCNT1 ; // Capture current Timer1 value + + Cur_TCNT1=TCNT1-Prev_TCNT1; // Capture current Timer1 value if(Cur_TCNT1<1000) - chan=-1; // bad frame + chan=-1; // bad frame else if(Cur_TCNT1>4840) { - chan=0; // start of frame - PPM_FLAG_on; // full frame present (even at startup since PPM_data has been initialized) + chan=0; // start of frame + PPM_FLAG_on; // full frame present (even at startup since PPM_data has been initialized) } -<<<<<<< HEAD - Prev_TCNT1+=Cur_TCNT1; -} - -//Serial RX -ISR(USART_RX_vect) -{ // RX interrupt - if((UCSR0A&0x1C)==0) // Check frame error, data overrun and parity error - { // received byte is ok to process - if(idx==0) - { // Let's try to sync at this point - if(UDR0==0x55) // If 1st byte is 0x55 it looks ok -======= else - if(chan!=-1) // need to wait for start of frame + if(chan!=-1) // need to wait for start of frame { //servo values between 500us and 2420us will end up here PPM_data[chan]= Cur_TCNT1>>1;; if(chan++>=NUM_CHN) - chan=-1; // don't accept any new channels + chan=-1; // don't accept any new channels } Prev_TCNT1+=Cur_TCNT1; } @@ -1547,21 +1062,21 @@ ISR(USART_RX_vect) ISR(USART_RX_vect) #endif { // RX interrupt - static uint8_t idx=0; + static uint8_t idx=0; #ifdef XMEGA - if((USARTC0.STATUS & 0x1C)==0) // Check frame error, data overrun and parity error + if((USARTC0.STATUS & 0x1C)==0) // Check frame error, data overrun and parity error #else - UCSR0B &= ~_BV(RXCIE0) ; // RX interrupt disable + UCSR0B &= ~_BV(RXCIE0) ; // RX interrupt disable sei() ; - if((UCSR0A&0x1C)==0) // Check frame error, data overrun and parity error + if((UCSR0A&0x1C)==0) // Check frame error, data overrun and parity error #endif { // received byte is ok to process if(idx==0||discard_frame==1) { // Let's try to sync at this point idx=0;discard_frame=0; - RX_MISSED_BUFF_off; // If rx_buff was good it's not anymore... - rx_buff[0]=UDR0; - if((rx_buff[0]&0xFE)==0x54) // If 1st byte is 0x54 or 0x55 it looks ok + RX_MISSED_BUFF_off; // If rx_buff was good it's not anymore... + rx_buff[0]=UDR0; + if((rx_buff[0]&0xFE)==0x54) // If 1st byte is 0x54 or 0x55 it looks ok { TX_RX_PAUSE_on; tx_pause(); @@ -1572,36 +1087,35 @@ ISR(USART_RX_vect) } } else ->>>>>>> refs/remotes/pascallanger/master { - rx_buff[idx++]=UDR0; // Store received byte - if(idx>=RXBUFFER_SIZE) + rx_buff[idx++]=UDR0; // Store received byte + if(idx>=RXBUFFER_SIZE) { // A full frame has been received if(!IS_RX_DONOTUPDTAE_on) { //Good frame received and main is not working on the buffer memcpy((void*)rx_ok_buff,(const void*)rx_buff,RXBUFFER_SIZE);// Duplicate the buffer - RX_FLAG_on; // flag for main to process servo data + RX_FLAG_on; // flag for main to process servo data } else - RX_MISSED_BUFF_on; // notify that rx_buff is good - discard_frame=1; // start again + RX_MISSED_BUFF_on; // notify that rx_buff is good + discard_frame=1; // start again } } } else { - idx=UDR0; // Dummy read - discard_frame=1; // Error encountered discard full frame... + idx=UDR0; // Dummy read + discard_frame=1; // Error encountered discard full frame... } if(discard_frame==1) { - CLR_TIMSK1_OCIE1B; // Disable interrupt on compare B match + CLR_TIMSK1_OCIE1B; // Disable interrupt on compare B match TX_RX_PAUSE_off; tx_resume(); } #ifndef XMEGA cli() ; - UCSR0B |= _BV(RXCIE0) ; // RX interrupt enable + UCSR0B |= _BV(RXCIE0) ; // RX interrupt enable #endif } @@ -1613,60 +1127,34 @@ ISR(USART_RX_vect) #endif { // Timer1 compare B interrupt discard_frame=1; - CLR_TIMSK1_OCIE1B; // Disable interrupt on compare B match + CLR_TIMSK1_OCIE1B; // Disable interrupt on compare B match tx_resume(); } #endif //ENABLE_SERIAL #ifndef XMEGA - // Random interrupt service routine called every time the WDT interrupt is triggered. - // It is only enabled at startup to generate a seed. - ISR(WDT_vect) +// Random interrupt service routine called every time the WDT interrupt is triggered. +// It is only enabled at startup to generate a seed. +ISR(WDT_vect) +{ + static uint8_t gWDT_buffer_position=0; + #define gWDT_buffer_SIZE 32 + static uint8_t gWDT_buffer[gWDT_buffer_SIZE]; + gWDT_buffer[gWDT_buffer_position] = TCNT1L; // Record the Timer 1 low byte (only one needed) + gWDT_buffer_position++; // every time the WDT interrupt is triggered + if (gWDT_buffer_position >= gWDT_buffer_SIZE) { - static uint8_t gWDT_buffer_position=0; - #define gWDT_buffer_SIZE 32 - static uint8_t gWDT_buffer[gWDT_buffer_SIZE]; - gWDT_buffer[gWDT_buffer_position] = TCNT1L; // Record the Timer 1 low byte (only one needed) - gWDT_buffer_position++; // every time the WDT interrupt is triggered - if (gWDT_buffer_position >= gWDT_buffer_SIZE) + // The following code is an implementation of Jenkin's one at a time hash + for(uint8_t gWDT_loop_counter = 0; gWDT_loop_counter < gWDT_buffer_SIZE; ++gWDT_loop_counter) { - // The following code is an implementation of Jenkin's one at a time hash - for(uint8_t gWDT_loop_counter = 0; gWDT_loop_counter < gWDT_buffer_SIZE; ++gWDT_loop_counter) - { - gWDT_entropy += gWDT_buffer[gWDT_loop_counter]; - gWDT_entropy += (gWDT_entropy << 10); - gWDT_entropy ^= (gWDT_entropy >> 6); - } - gWDT_entropy += (gWDT_entropy << 3); - gWDT_entropy ^= (gWDT_entropy >> 11); - gWDT_entropy += (gWDT_entropy << 15); - WDTCSR = 0; // Disable Watchdog interrupt + gWDT_entropy += gWDT_buffer[gWDT_loop_counter]; + gWDT_entropy += (gWDT_entropy << 10); + gWDT_entropy ^= (gWDT_entropy >> 6); } + gWDT_entropy += (gWDT_entropy << 3); + gWDT_entropy ^= (gWDT_entropy >> 11); + gWDT_entropy += (gWDT_entropy << 15); + WDTCSR = 0; // Disable Watchdog interrupt } -<<<<<<< HEAD } - -//Serial timer -ISR(TIMER1_COMPB_vect) -{ // Timer1 compare B interrupt - idx=0; -} - -#if defined(TELEMETRY) -//Serial TX -ISR(USART_UDRE_vect) -{ // Transmit interrupt - uint8_t t = tx_tail; - if(tx_head!=t) - { - if(++t>=TXBUFFER_SIZE)//head - t=0; - UDR0=tx_buff[t]; - tx_tail=t; - } - if (t == tx_head) - UCSR0B &= ~(1<>>>>>> refs/remotes/pascallanger/master -#endif +#endif \ No newline at end of file diff --git a/Multiprotocol/NRF24l01_SPI.ino b/Multiprotocol/NRF24l01_SPI.ino index dc740c5..c9073e5 100644 --- a/Multiprotocol/NRF24l01_SPI.ino +++ b/Multiprotocol/NRF24l01_SPI.ino @@ -94,6 +94,14 @@ static void NRF24L01_ReadPayload(uint8_t * data, uint8_t length) data[i] = SPI_Read(); NRF_CSN_on; } +static uint8_t NRF24L01_GetDynamicPayloadSize(void) +{ + NRF_CSN_off; + SPI_Write(R_RX_PL_WID); + uint8_t res = SPI_Read(); + NRF_CSN_on; + return res; +} static void NRF24L01_Strobe(uint8_t state) { @@ -234,11 +242,7 @@ uint8_t NRF24L01_packet_ack() /////////////// // XN297 emulation layer -<<<<<<< HEAD -uint8_t xn297_scramble_enabled; -======= uint8_t xn297_scramble_enabled=XN297_SCRAMBLED; //enabled by default ->>>>>>> refs/remotes/pascallanger/master uint8_t xn297_addr_len; uint8_t xn297_tx_addr[5]; uint8_t xn297_rx_addr[5]; @@ -251,16 +255,6 @@ static const uint8_t xn297_scramble[] = { 0x1b, 0x5d, 0x19, 0x10, 0x24, 0xd3, 0xdc, 0x3f, 0x8e, 0xc5, 0x2f}; -<<<<<<< HEAD -const uint16_t PROGMEM xn297_crc_xorout[] = { - 0x0000, 0x3d5f, 0xa6f1, 0x3a23, 0xaa16, 0x1caf, - 0x62b2, 0xe0eb, 0x0821, 0xbe07, 0x5f1a, 0xaf15, - 0x4f0a, 0xad24, 0x5e48, 0xed34, 0x068c, 0xf2c9, - 0x1852, 0xdf36, 0x129d, 0xb17c, 0xd5f5, 0x70d7, - 0xb798, 0x5133, 0x67db, 0xd94e}; - -======= ->>>>>>> refs/remotes/pascallanger/master const uint16_t PROGMEM xn297_crc_xorout_scrambled[] = { 0x0000, 0x3448, 0x9BA7, 0x8BBB, 0x85E1, 0x3E8C, 0x451E, 0x18E6, 0x6B24, 0xE7AB, 0x3828, 0x814B, @@ -334,14 +328,8 @@ void XN297_SetRXAddr(const uint8_t* addr, uint8_t len) NRF24L01_WriteRegisterMulti(NRF24L01_0A_RX_ADDR_P0, buf, 5); } -void XN297_Configure(uint16_t flags) +void XN297_Configure(uint8_t flags) { -<<<<<<< HEAD - xn297_scramble_enabled = !(flags & BV(XN297_UNSCRAMBLED)); - xn297_crc = !!(flags & BV(NRF24L01_00_EN_CRC)); - flags &= ~(BV(NRF24L01_00_EN_CRC) | BV(NRF24L01_00_CRCO)); - NRF24L01_WriteReg(NRF24L01_00_CONFIG, flags & 0xFF); -======= xn297_crc = !!(flags & _BV(NRF24L01_00_EN_CRC)); flags &= ~(_BV(NRF24L01_00_EN_CRC) | _BV(NRF24L01_00_CRCO)); NRF24L01_WriteReg(NRF24L01_00_CONFIG, flags & 0xFF); @@ -350,7 +338,6 @@ void XN297_Configure(uint16_t flags) void XN297_SetScrambledMode(const u8 mode) { xn297_scramble_enabled = mode; ->>>>>>> refs/remotes/pascallanger/master } void XN297_WritePayload(uint8_t* msg, uint8_t len) @@ -412,32 +399,6 @@ void XN297_ReadPayload(uint8_t* msg, uint8_t len) // End of XN297 emulation /////////////// -<<<<<<< HEAD -// LT8910 emulation layer -uint8_t LT8910_buffer[64]; -uint8_t LT8910_buffer_start; -uint16_t LT8910_buffer_overhead_bits; -uint8_t LT8910_addr[8]; -uint8_t LT8910_addr_size; -uint8_t LT8910_Preamble_Len; -uint8_t LT8910_Tailer_Len; -uint8_t LT8910_CRC_Initial_Data; -uint8_t LT8910_Flags; -#define LT8910_CRC_ON 6 -#define LT8910_SCRAMBLE_ON 5 -#define LT8910_PACKET_LENGTH_EN 4 -#define LT8910_DATA_PACKET_TYPE_1 3 -#define LT8910_DATA_PACKET_TYPE_0 2 -#define LT8910_FEC_TYPE_1 1 -#define LT8910_FEC_TYPE_0 0 - -void LT8910_Config(uint8_t preamble_len, uint8_t trailer_len, uint8_t flags, uint8_t crc_init) -{ - //Preamble 1 to 8 bytes - LT8910_Preamble_Len=preamble_len; - //Trailer 4 to 18 bits - LT8910_Tailer_Len=trailer_len; -======= // LT8900 emulation layer uint8_t LT8900_buffer[64]; uint8_t LT8900_buffer_start; @@ -462,37 +423,23 @@ void LT8900_Config(uint8_t preamble_len, uint8_t trailer_len, uint8_t flags, uin LT8900_Preamble_Len=preamble_len; //Trailer 4 to 18 bits LT8900_Tailer_Len=trailer_len; ->>>>>>> refs/remotes/pascallanger/master //Flags // CRC_ON: 1 on, 0 off // SCRAMBLE_ON: 1 on, 0 off // PACKET_LENGTH_EN: 1 1st byte of payload is payload size // DATA_PACKET_TYPE: 00 NRZ, 01 Manchester, 10 8bit/10bit line code, 11 interleave data type // FEC_TYPE: 00 No FEC, 01 FEC13, 10 FEC23, 11 reserved -<<<<<<< HEAD - LT8910_Flags=flags; - //CRC init constant - LT8910_CRC_Initial_Data=crc_init; -} - -void LT8910_SetChannel(uint8_t channel) -======= LT8900_Flags=flags; //CRC init constant LT8900_CRC_Initial_Data=crc_init; } void LT8900_SetChannel(uint8_t channel) ->>>>>>> refs/remotes/pascallanger/master { NRF24L01_WriteReg(NRF24L01_05_RF_CH, channel +2); //NRF24L01 is 2400+channel but LT8900 is 2402+channel } -<<<<<<< HEAD -void LT8910_SetTxRxMode(enum TXRX_State mode) -======= void LT8900_SetTxRxMode(enum TXRX_State mode) ->>>>>>> refs/remotes/pascallanger/master { if(mode == TX_EN) { @@ -518,35 +465,12 @@ void LT8900_SetTxRxMode(enum TXRX_State mode) NRF24L01_SetTxRxMode(TXRX_OFF); } -<<<<<<< HEAD -void LT8910_BuildOverhead() -======= void LT8900_BuildOverhead() ->>>>>>> refs/remotes/pascallanger/master { uint8_t pos; //Build overhead //preamble -<<<<<<< HEAD - memset(LT8910_buffer,LT8910_addr[0]&0x01?0xAA:0x55,LT8910_Preamble_Len-1); - pos=LT8910_Preamble_Len-1; - //address - for(uint8_t i=0;i5?5:pos; -} - -void LT8910_SetAddress(uint8_t *address,uint8_t addr_size) -======= memset(LT8900_buffer,LT8900_addr[0]&0x01?0xAA:0x55,LT8900_Preamble_Len-1); pos=LT8900_Preamble_Len-1; //address @@ -564,33 +488,10 @@ void LT8910_SetAddress(uint8_t *address,uint8_t addr_size) } void LT8900_SetAddress(uint8_t *address,uint8_t addr_size) ->>>>>>> refs/remotes/pascallanger/master { uint8_t addr[5]; //Address size (SyncWord) 2 to 8 bytes, 16/32/48/64 bits -<<<<<<< HEAD - LT8910_addr_size=addr_size; - memcpy(LT8910_addr,address,LT8910_addr_size); - - //Build overhead - LT8910_BuildOverhead(); - - //Set NRF RX&TX address based on overhead content - NRF24L01_WriteReg(NRF24L01_03_SETUP_AW, LT8910_buffer_start-2); - for(uint8_t i=0;i>>>>>> refs/remotes/pascallanger/master //Read payload NRF24L01_ReadPayload(buffer,end+1); //Check address + trail for(i=0;i>>>>>> refs/remotes/pascallanger/master for(i=pos;i>8)&0xFF; } //Check len -<<<<<<< HEAD - if(LT8910_Flags&_BV(LT8910_PACKET_LENGTH_EN)) -======= if(LT8900_Flags&_BV(LT8900_PACKET_LENGTH_EN)) ->>>>>>> refs/remotes/pascallanger/master { crc=crc16_update(crc,buffer[pos]); if(bit_reverse(len)!=buffer[pos++]) @@ -652,11 +541,7 @@ uint8_t LT8900_ReadPayload(uint8_t* msg, uint8_t len) msg[i]=bit_reverse(buffer[pos++]); } //Check CRC -<<<<<<< HEAD - if(LT8910_Flags&_BV(LT8910_CRC_ON)) -======= if(LT8900_Flags&_BV(LT8900_CRC_ON)) ->>>>>>> refs/remotes/pascallanger/master { if(buffer[pos++]!=((crc>>8)&0xFF)) return 0; // wrong CRC... if(buffer[pos]!=(crc&0xFF)) return 0; // wrong CRC... @@ -665,21 +550,12 @@ uint8_t LT8900_ReadPayload(uint8_t* msg, uint8_t len) return 1; } -<<<<<<< HEAD -void LT8910_WritePayload(uint8_t* msg, uint8_t len) -{ - unsigned int crc=LT8910_CRC_Initial_Data,a,mask; - uint8_t i, pos=0,tmp, buffer[64], pos_final,shift; - //Add packet len - if(LT8910_Flags&_BV(LT8910_PACKET_LENGTH_EN)) -======= void LT8900_WritePayload(uint8_t* msg, uint8_t len) { unsigned int crc=LT8900_CRC_Initial_Data,a,mask; uint8_t i, pos=0,tmp, buffer[64], pos_final,shift; //Add packet len if(LT8900_Flags&_BV(LT8900_PACKET_LENGTH_EN)) ->>>>>>> refs/remotes/pascallanger/master { tmp=bit_reverse(len); buffer[pos++]=tmp; @@ -693,27 +569,12 @@ void LT8900_WritePayload(uint8_t* msg, uint8_t len) crc=crc16_update(crc,tmp); } //Add CRC -<<<<<<< HEAD - if(LT8910_Flags&_BV(LT8910_CRC_ON)) -======= if(LT8900_Flags&_BV(LT8900_CRC_ON)) ->>>>>>> refs/remotes/pascallanger/master { buffer[pos++]=crc>>8; buffer[pos++]=crc; } //Shift everything to fit behind the trailer (4 to 18 bits) -<<<<<<< HEAD - shift=LT8910_buffer_overhead_bits&0x7; - pos_final=LT8910_buffer_overhead_bits/8; - mask=~(0xFF<<(8-shift)); - LT8910_buffer[pos_final+pos]=0xFF; - for(i=pos-1;i!=0xFF;i--) - { - a=buffer[i]<<(8-shift); - LT8910_buffer[pos_final+i]=(LT8910_buffer[pos_final+i]&mask>>8)|a>>8; - LT8910_buffer[pos_final+i+1]=(LT8910_buffer[pos_final+i+1]&mask)|a; -======= shift=LT8900_buffer_overhead_bits&0x7; pos_final=LT8900_buffer_overhead_bits/8; mask=~(0xFF<<(8-shift)); @@ -723,17 +584,10 @@ void LT8900_WritePayload(uint8_t* msg, uint8_t len) a=buffer[i]<<(8-shift); LT8900_buffer[pos_final+i]=(LT8900_buffer[pos_final+i]&mask>>8)|a>>8; LT8900_buffer[pos_final+i+1]=(LT8900_buffer[pos_final+i+1]&mask)|a; ->>>>>>> refs/remotes/pascallanger/master } if(shift) pos++; //Send everything -<<<<<<< HEAD - NRF24L01_WritePayload(LT8910_buffer+LT8910_buffer_start,pos_final+pos-LT8910_buffer_start); -} -// End of LT8910 emulation -======= NRF24L01_WritePayload(LT8900_buffer+LT8900_buffer_start,pos_final+pos-LT8900_buffer_start); } // End of LT8900 emulation ->>>>>>> refs/remotes/pascallanger/master diff --git a/Multiprotocol/Nrf24l01_bluefly.ino b/Multiprotocol/Nrf24l01_bluefly.ino index 3a7f918..ae3db7a 100644 --- a/Multiprotocol/Nrf24l01_bluefly.ino +++ b/Multiprotocol/Nrf24l01_bluefly.ino @@ -51,7 +51,7 @@ static void bluefly_init() { NRF24L01_WriteReg(NRF24L01_05_RF_CH, 81); // binding packet must be set in channel 81 // 2-bytes CRC, radio on - NRF24L01_WriteReg(NRF24L01_00_CONFIG, BV(NRF24L01_00_EN_CRC) | BV(NRF24L01_00_CRCO) | BV(NRF24L01_00_PWR_UP)); + NRF24L01_WriteReg(NRF24L01_00_CONFIG, _BV(NRF24L01_00_EN_CRC) | _BV(NRF24L01_00_CRCO) | _BV(NRF24L01_00_PWR_UP)); NRF24L01_WriteReg(NRF24L01_03_SETUP_AW, 0x03); // 5-byte RX/TX address (byte -2) NRF24L01_SetBitrate(NRF24L01_BR_250K); // BlueFly - 250kbps NRF24L01_SetPower(); @@ -63,7 +63,7 @@ static void bluefly_ch_data() { uint32_t temp; int i; for (i = 0; i< 8; ++i) { - temp = (uint32_t)Servo_data[ch[i]] * 300/PPM_MAX + 500; // 200-800 range + temp = map(limit_channel_100(i),servo_min_100,servo_max_100,200,800); // 200-800 range if (temp < 0) ch_data_bluefly[i] = 0; else if (temp > 1000) @@ -140,6 +140,7 @@ static uint16_t bluefly_cb() { } static uint16_t BlueFly_setup() { + MProtocol_id = (MProtocol_id | ((uint32_t)txid[3]<<32)); hopping_frequency_start = ((MProtocol_id >> 8) % 47) + 2; bluefly_binding_packet(); bluefly_init(); diff --git a/Multiprotocol/Nrf24l01_cflie.ino b/Multiprotocol/Nrf24l01_cflie.ino index d4b0208..455b97c 100644 --- a/Multiprotocol/Nrf24l01_cflie.ino +++ b/Multiprotocol/Nrf24l01_cflie.ino @@ -13,12 +13,6 @@ along with Deviation. If not, see . */ -/* NB: Not implemented - Uncomment define below to enable telemetry. Also add CFlie protocol to TELEMETRY_SetTypeByProtocol to set type to DSM. -#define CFLIE_TELEMETRY - */ - - #if defined(CFlie_NRF24L01_INO) #include "iface_nrf24l01.h" @@ -59,30 +53,15 @@ enum { CFLIE_DATA }; -#ifdef CFLIE_TELEMETRY -static const char * const cflie_opts[] = { - _tr_noop("Telemetry"), _tr_noop("Off"), _tr_noop("On"), NULL, - NULL -}; -enum { - PROTOOPTS_TELEMETRY = 0, - LAST_PROTO_OPT, -}; -ctassert(LAST_PROTO_OPT <= NUM_PROTO_OPTS, too_many_protocol_opts); - -#define TELEM_OFF 0 -#define TELEM_ON 1 -#endif - -#define PACKET_CHKTIME 500 // time to wait if packet not yet acknowledged or timed out +#define PACKET_CFLIE_CHKTIME 500 // time to wait if packet not yet acknowledged or timed out static uint16_t dbg_cnt = 0; static uint8_t packet_ack() { if (++dbg_cnt > 50) { dbg_cnt = 0; } - switch (NRF24L01_ReadReg(NRF24L01_07_STATUS) & (BV(NRF24L01_07_TX_DS) | BV(NRF24L01_07_MAX_RT))) { - case BV(NRF24L01_07_TX_DS): + switch (NRF24L01_ReadReg(NRF24L01_07_STATUS) & (_BV(NRF24L01_07_TX_DS) | _BV(NRF24L01_07_MAX_RT))) { + case _BV(NRF24L01_07_TX_DS): return PKT_ACKED; - case BV(NRF24L01_07_MAX_RT): + case _BV(NRF24L01_07_MAX_RT): return PKT_TIMEOUT; } return PKT_PENDING; @@ -97,7 +76,7 @@ static void send_search_packet() { uint8_t buf[1]; buf[0] = 0xff; // clear packet status bits and TX FIFO - NRF24L01_WriteReg(NRF24L01_07_STATUS, (BV(NRF24L01_07_TX_DS) | BV(NRF24L01_07_MAX_RT))); + NRF24L01_WriteReg(NRF24L01_07_STATUS, (_BV(NRF24L01_07_TX_DS) | _BV(NRF24L01_07_MAX_RT))); NRF24L01_FlushTx(); if (rf_channel++ > 125) { @@ -119,7 +98,7 @@ static void send_search_packet() { NRF24L01_WritePayload(buf, sizeof(buf)); - ++packet_counter; + ++packet_count; } // Frac 16.16 @@ -151,33 +130,39 @@ static void send_cmd_packet() { // Channels in AETR order // Roll, aka aileron, float +- 50.0 in degrees - // float roll = -(float) Servo_data[AILERON]*50.0/10000; - uint32_t f_roll = -Servo_data[AILERON] * FRAC_SCALE / (10000 / 50); + uint32_t f_roll = -map(limit_channel_100(AILERON),servo_min_100,servo_max_100,-50,50); // Pitch, aka elevator, float +- 50.0 degrees - //float pitch = -(float) Servo_data[ELEVATOR]*50.0/10000; - uint32_t f_pitch = -Servo_data[ELEVATOR] * FRAC_SCALE / (10000 / 50); + uint32_t f_pitch = -map(limit_channel_100(ELEVATOR),servo_min_100,servo_max_100,-50,50); // Thrust, aka throttle 0..65535, working range 5535..65535 // No space for overshoot here, hard limit Channel3 by -10000..10000 uint32_t ch = Servo_data[THROTTLE]; - if (ch < PPM_MIN) { - ch = PPM_MIN; - } else if (ch > PPM_MAX) { - ch = PPM_MAX; + if (ch < servo_min_125) { + ch = servo_min_125; + } else if (ch > servo_max_125) { + ch = servo_max_125; } uint16_t thrust = ch*3L + 35535L; // Yaw, aka rudder, float +- 400.0 deg/s - // float yaw = -(float) Servo_data[RUDDER]*400.0/10000; - uint32_t f_yaw = - Servo_data[RUDDER] * FRAC_SCALE / (10000 / 400); + uint32_t f_yaw = - map(limit_channel_100(RUDDER),servo_min_100,servo_max_100,-40,40); frac2float(f_yaw, &yaw); - // Convert + to X. 181 / 256 = 0.70703125 ~= sqrt(2) / 2 - uint32_t f_x_roll = (f_roll + f_pitch) * 181 / 256; - frac2float(f_x_roll, &x_roll); - uint32_t f_x_pitch = (f_pitch - f_roll) * 181 / 256; - frac2float(f_x_pitch, &x_pitch); + // Switch on/off? + if(Servo_AUX1) + { + frac2float(f_roll, &x_roll); + frac2float(f_pitch, &x_pitch); + } + else + { + // Convert + to X. 181 / 256 = 0.70703125 ~= sqrt(2) / 2 + uint32_t f_x_roll = (f_roll + f_pitch) * 181 / 256; + frac2float(f_x_roll, &x_roll); + uint32_t f_x_pitch = (f_pitch - f_roll) * 181 / 256; + frac2float(f_x_pitch, &x_pitch); + } int bufptr = 0; buf[bufptr++] = 0x30; // Commander packet to channel 0 @@ -188,12 +173,12 @@ static void send_cmd_packet() { // clear packet status bits and TX FIFO - NRF24L01_WriteReg(NRF24L01_07_STATUS, (BV(NRF24L01_07_TX_DS) | BV(NRF24L01_07_MAX_RT))); + NRF24L01_WriteReg(NRF24L01_07_STATUS, (_BV(NRF24L01_07_TX_DS) | _BV(NRF24L01_07_MAX_RT))); NRF24L01_FlushTx(); NRF24L01_WritePayload(buf, sizeof(buf)); - ++packet_counter; + ++packet_count; NRF24L01_SetPower(); } @@ -203,7 +188,7 @@ static int cflie_init() { // CRC, radio on NRF24L01_SetTxRxMode(TX_EN); - NRF24L01_WriteReg(NRF24L01_00_CONFIG, BV(NRF24L01_00_EN_CRC) | BV(NRF24L01_00_CRCO) | BV(NRF24L01_00_PWR_UP)); + NRF24L01_WriteReg(NRF24L01_00_CONFIG, _BV(NRF24L01_00_EN_CRC) | _BV(NRF24L01_00_CRCO) | _BV(NRF24L01_00_PWR_UP)); // NRF24L01_WriteReg(NRF24L01_01_EN_AA, 0x00); // No Auto Acknowledgement NRF24L01_WriteReg(NRF24L01_01_EN_AA, 0x01); // Auto Acknowledgement for data pipe 0 NRF24L01_WriteReg(NRF24L01_02_EN_RXADDR, 0x01); // Enable data pipe 0 @@ -236,21 +221,6 @@ static int cflie_init() { return 50000; } - -#ifdef CFLIE_TELEMETRY -static void update_telemetry() { - static uint8_t frameloss = 0; - - frameloss += NRF24L01_ReadReg(NRF24L01_08_OBSERVE_TX) >> 4; - NRF24L01_WriteReg(NRF24L01_05_RF_CH, rf_channel); // reset packet loss counter - - Telemetry.p.dsm.flog.frameloss = frameloss; -// Telemetry.p.dsm.flog.volt[0] = read battery voltage from ack payload - TELEMETRY_SetUpdated(TELEM_DSM_FLOG_FRAMELOSS); -} -#endif - - static uint16_t cflie_callback() { switch (phase) { case CFLIE_INIT_SEARCH: @@ -264,7 +234,7 @@ static uint16_t cflie_callback() { case CFLIE_SEARCH: switch (packet_ack()) { case PKT_PENDING: - return PACKET_CHKTIME; // packet send not yet complete + return PACKET_CFLIE_CHKTIME; // packet send not yet complete case PKT_ACKED: phase = CFLIE_DATA; BIND_DONE; @@ -275,11 +245,8 @@ static uint16_t cflie_callback() { } break; case CFLIE_DATA: - #ifdef CFLIE_TELEMETRY - update_telemetry(); - #endif if (packet_ack() == PKT_PENDING) - return PACKET_CHKTIME; // packet send not yet complete + return PACKET_CFLIE_CHKTIME; // packet send not yet complete send_cmd_packet(); break; } @@ -287,31 +254,21 @@ static uint16_t cflie_callback() { } -// Generate address to use from TX id and manufacturer id (STM32 unique id) -static uint8_t initialize_rx_tx_addr() { +static uint16_t Cflie_setup() { rx_tx_addr[0] = rx_tx_addr[1] = rx_tx_addr[2] = rx_tx_addr[3] = rx_tx_addr[4] = 0xE7; // CFlie uses fixed address - data_rate = NRF24L01_BR_250K; - rf_channel = 0; - return CFLIE_INIT_SEARCH; - // return CFLIE_INIT_DATA; -} - -static uint16_t Cflie_setup() { - phase = initialize_rx_tx_addr(); - packet_counter = 0; + data_rate = NRF24L01_BR_250K; + rf_channel = 0; + packet_count = 0; int delay = cflie_init(); - #ifdef CFLIE_TELEMETRY - memset(&Telemetry, 0, sizeof(Telemetry)); - TELEMETRY_SetType(TELEM_DSM); - #endif - if (phase == CFLIE_INIT_SEARCH) { BIND_IN_PROGRESS; } + phase = CFLIE_INIT_SEARCH; + BIND_IN_PROGRESS; return delay; } diff --git a/Multiprotocol/Nrf24l01_esky150.ino b/Multiprotocol/Nrf24l01_esky150.ino index b3d9c43..5460561 100644 --- a/Multiprotocol/Nrf24l01_esky150.ino +++ b/Multiprotocol/Nrf24l01_esky150.ino @@ -32,15 +32,15 @@ enum { static uint8_t esky150_packet_ack() { - switch (NRF24L01_ReadReg(NRF24L01_07_STATUS) & (BV(NRF24L01_07_TX_DS) | BV(NRF24L01_07_MAX_RT))) { - case BV(NRF24L01_07_TX_DS): return PKT_ACKED; - case BV(NRF24L01_07_MAX_RT): return PKT_TIMEOUT; + switch (NRF24L01_ReadReg(NRF24L01_07_STATUS) & (_BV(NRF24L01_07_TX_DS) | _BV(NRF24L01_07_MAX_RT))) { + case _BV(NRF24L01_07_TX_DS): return PKT_ACKED; + case _BV(NRF24L01_07_MAX_RT): return PKT_TIMEOUT; } return PKT_PENDING; } // 2-bytes CRC -#define CRC_CONFIG (BV(NRF24L01_00_EN_CRC) | BV(NRF24L01_00_CRCO)) +#define CRC_CONFIG (_BV(NRF24L01_00_EN_CRC) | _BV(NRF24L01_00_CRCO)) static uint16_t esky150_init() { uint8_t rx_addr[ADDR_esky150_SIZE] = { 0x73, 0x73, 0x74, 0x63 }; uint8_t tx_addr[ADDR_esky150_SIZE] = { 0x71, 0x0A, 0x31, 0xF4 }; @@ -64,7 +64,7 @@ static uint16_t esky150_init() { NRF24L01_Activate(0x73); NRF24L01_WriteReg(NRF24L01_1C_DYNPD, 1); // Dynamic payload for data pipe 0 // Enable: Dynamic Payload Length, Payload with ACK , W_TX_PAYLOAD_NOACK - NRF24L01_WriteReg(NRF24L01_1D_FEATURE, BV(NRF2401_1D_EN_DPL) | BV(NRF2401_1D_EN_ACK_PAY) | BV(NRF2401_1D_EN_DYN_ACK)); + NRF24L01_WriteReg(NRF24L01_1D_FEATURE, _BV(NRF2401_1D_EN_DPL) | _BV(NRF2401_1D_EN_ACK_PAY) | _BV(NRF2401_1D_EN_DYN_ACK)); // Delay 50 ms return 50000; @@ -80,51 +80,26 @@ static uint16_t esky150_init2() { // Turn radio power on NRF24L01_SetTxRxMode(TX_EN); - NRF24L01_WriteReg(NRF24L01_00_CONFIG, CRC_CONFIG | BV(NRF24L01_00_PWR_UP)); + NRF24L01_WriteReg(NRF24L01_00_CONFIG, CRC_CONFIG | _BV(NRF24L01_00_PWR_UP)); // delayMicroseconds(150); return 150; } -static void calc_fh_channels(uint32_t seed) { - // Use channels 2..79 - uint8_t first = seed % 37 + 2; - uint8_t second = first + 40; - hopping_frequency[0] = first; // 0x22; - hopping_frequency[1] = second; // 0x4a; -} - - -static uint8_t convert_channel(uint8_t num) { - uint32_t ch = Servo_data[num]; - if (ch < PPM_MIN) { ch = PPM_MIN; } - else if (ch > PPM_MAX) { ch = PPM_MAX; } - return (uint8_t) ((ch * 500 / PPM_MAX) + 1500); -} -static void read_controls(uint8_t* throttle, uint8_t* aileron, uint8_t* elevator, uint8_t* rudder) { - *throttle = convert_channel(THROTTLE); - *aileron = convert_channel(AILERON); - *elevator = convert_channel(ELEVATOR); - *rudder = convert_channel(RUDDER); -} - - static void esky150_send_packet() { uint8_t rf_ch = hopping_frequency[rf_ch_num]; rf_ch_num = 1 - rf_ch_num; - read_controls(&throttle, &aileron, &elevator, &rudder); - packet[0] = hopping_frequency[0]; packet[1] = hopping_frequency[1]; - packet[2] = (throttle >> 8) & 0xFF; - packet[3] = throttle & 0xFF; - packet[4] = (aileron >> 8) & 0xFF; - packet[5] = aileron & 0xFF; - packet[6] = (elevator >> 8) & 0xFF; - packet[7] = elevator & 0xFF; - packet[8] = (rudder >> 8) & 0xFF; - packet[9] = rudder & 0xFF; + packet[2] = highByte(Servo_data[THROTTLE]); + packet[3] = lowByte(Servo_data[THROTTLE]); + packet[4] = highByte(Servo_data[AILERON]); + packet[5] = lowByte(Servo_data[AILERON]); + packet[6] = highByte(Servo_data[ELEVATOR]); + packet[7] = lowByte(Servo_data[ELEVATOR]); + packet[8] = highByte(Servo_data[RUDDER]); + packet[9] = lowByte(Servo_data[RUDDER]); // Constant values 00 d8 18 f8 packet[10] = 0x00; packet[11] = 0xd8; @@ -166,6 +141,12 @@ static uint16_t esky150_callback() { static uint16_t esky150_setup() { total_packets = 0; uint16_t timeout = esky150_init(); + + // Use channels 2..79 + uint8_t first = MProtocol_id % 37 + 2; + uint8_t second = first + 40; + hopping_frequency[0] = first; // 0x22; + hopping_frequency[1] = second; // 0x4a; return timeout; } diff --git a/Multiprotocol/Nrf24l01_fbl100.ino b/Multiprotocol/Nrf24l01_fbl100.ino index f25e368..cdc7f94 100644 --- a/Multiprotocol/Nrf24l01_fbl100.ino +++ b/Multiprotocol/Nrf24l01_fbl100.ino @@ -93,7 +93,7 @@ static void config_nrf24l01() { NRF24L01_WriteReg(NRF24L01_01_EN_AA, 0x00); // 0:No Auto Acknoledgement; 1:Auto Acknoledgement NRF24L01_WriteReg(NRF24L01_11_RX_PW_P0, packet_length); // fbl100/v922's packet size = 10, hp100 = 12 // 2-bytes CRC, radio off - NRF24L01_WriteReg(NRF24L01_00_CONFIG, BV(NRF24L01_00_EN_CRC) | BV(NRF24L01_00_CRCO) | BV(NRF24L01_00_PWR_UP)); + NRF24L01_WriteReg(NRF24L01_00_CONFIG, _BV(NRF24L01_00_EN_CRC) | _BV(NRF24L01_00_CRCO) | _BV(NRF24L01_00_PWR_UP)); NRF24L01_WriteReg(NRF24L01_03_SETUP_AW, 0x03); // 5-byte RX/TX address (byte -2) NRF24L01_SetBitrate(sub_protocol == HP100? NRF24L01_BR_250K:NRF24L01_BR_1M); //hp100:250kbps; fbl100: 1Mbps NRF24L01_SetPower(); @@ -108,7 +108,7 @@ static void fbl100_build_ch_data() { uint32_t temp; uint8_t i; for (i = 0; i< 8; i++) { - temp = (uint32_t)Servo_data[i] * 500/PPM_MAX + 500; + temp = (uint32_t)Servo_data[i] -1000; if (i == 2) { temp = 1000 -temp; } // It is clear that fbl100's thro stick is made reversely,so I adjust it here on purposely if (temp < 0) { fbl_data[i] = 0; } else if (temp > 1000) { fbl_data[i] = 1000; } @@ -131,11 +131,12 @@ static void hp100_build_ch_data() { uint32_t temp; uint8_t i; for (i = 0; i< 8; i++) { - temp = (uint32_t)Servo_data[i] * 300/PPM_MAX + 500; + temp=map(limit_channel_100(i),servo_min_100,servo_max_100,200,800); +/* temp = (uint32_t)Servo_data[i] * 300/PPM_MAX + 500; if (temp < 0) { temp = 0; } else if (temp > 1000) { temp = 1000; } if (i == 3 || i == 5) { temp = 1000 -temp; } // hp100's rudd and pit channel are made reversely,so I adjust them on purposely - +*/ fbl_data[i] = (unsigned int)temp; packet[i] = (uint8_t)fbl_data[i]; } diff --git a/Multiprotocol/Nrf24l01_h377.ino b/Multiprotocol/Nrf24l01_h377.ino index 439178d..0771dcf 100644 --- a/Multiprotocol/Nrf24l01_h377.ino +++ b/Multiprotocol/Nrf24l01_h377.ino @@ -90,7 +90,7 @@ static void h377_init() { // 2-bytes CRC, radio off NRF24L01_SetTxRxMode(TX_EN); - NRF24L01_WriteReg(NRF24L01_00_CONFIG, BV(NRF24L01_00_EN_CRC) | BV(NRF24L01_00_CRCO) | BV(NRF24L01_00_PWR_UP)); + NRF24L01_WriteReg(NRF24L01_00_CONFIG, _BV(NRF24L01_00_EN_CRC) | _BV(NRF24L01_00_CRCO) | _BV(NRF24L01_00_PWR_UP)); NRF24L01_WriteReg(NRF24L01_03_SETUP_AW, 0x03); // 5-byte RX/TX address (byte -2) NRF24L01_SetBitrate(0); // 1Mbps NRF24L01_SetPower(); @@ -100,10 +100,11 @@ static void h377_init() { // H377 channel sequence: AILE ELEV THRO RUDD GEAR PITH, channel data value is from 0 to 1000 static void h377_ch_data() { uint32_t temp; - uint8_t i; + uint8_t i,j; for (i = 0; i< 8; i++) { - temp = (uint32_t)Servo_data[i] * 450/PPM_MAX + 500; // max/min servo range is +-125% - if (i == 2) // It is clear that h377's thro stick is made reversely, so I adjust it here on purpose + j=CH_AETR[i]; + temp=map(limit_channel_100(j),servo_min_100,servo_max_100,0,1000); // max/min servo range is +-125% + if (j == THROTTLE) // It is clear that h377's thro stick is made reversely, so I adjust it here on purpose temp = 1000 -temp; //if (i == 0) // It is clear that h377's thro stick is made reversely, so I adjust it here on purpose // temp = 1000 -temp; diff --git a/Multiprotocol/Nrf24l01_hm830.ino b/Multiprotocol/Nrf24l01_hm830.ino index bb30d3a..d81d809 100644 --- a/Multiprotocol/Nrf24l01_hm830.ino +++ b/Multiprotocol/Nrf24l01_hm830.ino @@ -76,7 +76,7 @@ static uint8_t count; static uint8_t rf_ch[] = {0x08, 0x35, 0x12, 0x3f, 0x1c, 0x49, 0x26}; static uint8_t bind_addr[] = {0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xc2}; -static uint8_t crc8(uint32_t result, uint8_t *data, int len) { +static uint8_t HM830_crc8(uint32_t result, uint8_t *data, int len) { int polynomial = 0x01; for(int i = 0; i < len; i++) { result = result ^ data[i]; @@ -114,26 +114,26 @@ static void HM830_init() { static void build_bind_packet_hm830() { for(int i = 0; i < 6; i++) { packet[i] = rx_tx_addr[i]; } - packet[6] = crc8(0xa5, packet, 6); + packet[6] = HM830_crc8(0xa5, packet, 6); } static void build_data_packet() { uint8_t ail_sign = 0, trim_sign = 0; - throttle = (uint32_t)Servo_data[THROTTLE] * 50 / PPM_MAX + 50; + throttle = (uint32_t)map(limit_channel_100(THROTTLE),servo_min_100,servo_max_100,0,100); if (throttle < 0) { throttle = 0; } - aileron = (uint32_t)Servo_data[AILERON] * 8 / PPM_MAX; + aileron = (uint32_t)map(limit_channel_100(AILERON),servo_min_100,servo_max_100,-8,8); if (aileron < 0) { aileron = -aileron; ail_sign = 1; } if (aileron > 7) { aileron = 7; } - uint8_t turbo = (uint32_t)Servo_data[ELEVATOR] > 0 ? 1 : 0; + uint8_t turbo = Servo_data[ELEVATOR] > PPM_SWITCH ? 1 : 0; - uint8_t trim = ((uint32_t)Servo_data[RUDDER] * 0x1f / PPM_MAX); + uint8_t trim = map(limit_channel_100(RUDDER),servo_min_100,servo_max_100,-31,31); if (trim < 0) { trim = -trim; trim_sign = 1; } if (trim > 0x1f) { trim = 0x1f; } - uint8_t rbutton = (uint32_t)Servo_data[4] > 0 ? 1 : 0; + uint8_t rbutton = Servo_data[4] > PPM_SWITCH ? 1 : 0; packet[0] = throttle; packet[1] = aileron; if (ail_sign) { packet[1] |= 0x20; } @@ -141,7 +141,7 @@ static void build_data_packet() { if (rbutton) { packet[1] |= 0x80; } packet[5] = trim; if (trim_sign) { packet[5] |= 0x20;} - packet[6] = crc8(0xa5, packet, 6); + packet[6] = HM830_crc8(0xa5, packet, 6); } static void send_packet_hm830() { diff --git a/Multiprotocol/Nrf24l01_hontai.ino b/Multiprotocol/Nrf24l01_hontai.ino deleted file mode 100644 index 4408014..0000000 --- a/Multiprotocol/Nrf24l01_hontai.ino +++ /dev/null @@ -1,272 +0,0 @@ -/* - This project is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Deviation is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Deviation. If not, see . - */ - - -#if defined(HonTai_NRF24L01_INO) -#include "iface_nrf24l01.h" - -#define BIND_HT_COUNT 80 -#define PACKET_HT_PERIOD 13500 // Timeout for callback in uSec -//printf inside an interrupt handler is really dangerous -//this shouldn't be enabled even in debug builds without explicitly -//turning it on -#define dbgprintf if(0) printf - -#define INITIAL_HT_WAIT 500 -#define BIND_HT_PACKET_SIZE 10 -#define PACKET_HT_SIZE 12 -#define RF_BIND_HT_CHANNEL 0 - -enum { - FORMAT_HONTAI = 0, - FORMAT_JJRCX1, -}; - - -#define CHANNEL_LED AUX1 -#define CHANNEL_ARM AUX1 // for JJRC X1 -#define CHANNEL_FLIP AUX2 -#define CHANNEL_PICTURE AUX3 -#define CHANNEL_VIDEO AUX4 -#define CHANNEL_HEADLESS AUX5 -#define CHANNEL_RTH AUX6 -#define CHANNEL_CALIBRATE AUX7 - -enum { - HonTai_INIT1 = 0, - HonTai_BIND2, - HonTai_DATA -}; - -static uint8_t ht_txid[5]; - -static uint8_t rf_chan = 0; -static uint8_t rf_channels[][3] = {{0x05, 0x19, 0x28}, // Hontai - {0x0a, 0x1e, 0x2d}}; // JJRC X1 -static uint8_t rx_tx_ht_addr[] = {0xd2, 0xb5, 0x99, 0xb3, 0x4a}; -static uint8_t addr_vals[4][16] = { - {0x24, 0x26, 0x2a, 0x2c, 0x32, 0x34, 0x36, 0x4a, 0x4c, 0x4e, 0x54, 0x56, 0x5a, 0x64, 0x66, 0x6a}, - {0x92, 0x94, 0x96, 0x9a, 0xa4, 0xa6, 0xac, 0xb2, 0xb4, 0xb6, 0xca, 0xcc, 0xd2, 0xd4, 0xd6, 0xda}, - {0x93, 0x95, 0x99, 0x9b, 0xa5, 0xa9, 0xab, 0xad, 0xb3, 0xb5, 0xc9, 0xcb, 0xcd, 0xd3, 0xd5, 0xd9}, - {0x25, 0x29, 0x2b, 0x2d, 0x33, 0x35, 0x49, 0x4b, 0x4d, 0x59, 0x5b, 0x65, 0x69, 0x6b, 0x6d, 0x6e}}; - -// proudly swiped from http://www.drdobbs.com/implementing-the-ccitt-cyclical-redundan/199904926 -#define POLY 0x8408 -static uint16_t crc16(uint8_t *data_p, uint32_t length) -{ - uint8_t i; - uint32_t data; - uint32_t crc; - - crc = 0xffff; - - if (length == 0) return (~crc); - - length -= 2; - do { - for (i = 0, data = (uint8_t)0xff & *data_p++; - i < 8; - i++, data >>= 1) { - if ((crc & 0x0001) ^ (data & 0x0001)) - crc = (crc >> 1) ^ POLY; - else - crc >>= 1; - } - } while (--length); - - crc = ~crc; - data = crc; - crc = (crc << 8) | (data >> 8 & 0xFF); - *data_p++ = crc >> 8; - *data_p = crc & 0xff; - return crc; -} - -#define CHAN_RANGE (PPM_MAX - PPM_MIN) -static uint8_t scale_HT_channel(uint8_t ch, uint8_t start, uint8_t end) -{ - uint32_t range = end - start; - uint32_t chanval = Servo_data[ch]; - - if (chanval < PPM_MIN) chanval = PPM_MIN; - else if (chanval > PPM_MAX) chanval = PPM_MAX; - - uint32_t round = range < 0 ? 0 : CHAN_RANGE / range; // channels round up - if (start < 0) round = CHAN_RANGE / range / 2; // trims zero centered around zero - return (range * (chanval - PPM_MIN + round)) / CHAN_RANGE + start; -} - -#define GET_FLAG(ch, mask) (Servo_data[ch] > 0 ? mask : 0) -static void send_HT_packet(uint8_t bind) -{ - if (bind) { - memcpy(packet, ht_txid, 5); - memset(&packet[5], 0, 3); - } else { - if (sub_protocol == FORMAT_HONTAI) { - packet[0] = 0x0b; - } else { - packet[0] = GET_FLAG(CHANNEL_ARM, 0x02); - } - packet[1] = 0x00; - packet[2] = 0x00; - packet[3] = (scale_HT_channel(THROTTLE, 0, 127) << 1) // throttle - | GET_FLAG(CHANNEL_PICTURE, 0x01); - packet[4] = scale_HT_channel(AILERON, 63, 0); // aileron - if (sub_protocol == FORMAT_HONTAI) { - packet[4] |= GET_FLAG(CHANNEL_RTH, 0x80) - | GET_FLAG(CHANNEL_HEADLESS, 0x40); - } else { - packet[4] |= 0x80; // not sure what this bit does - } - packet[5] = scale_channel(CHANNEL2, 0, 63) // elevator - | GET_FLAG(CHANNEL_CALIBRATE, 0x80) - | GET_FLAG(CHANNEL_FLIP, 0x40); - packet[6] = scale_HT_channel(RUDDER, 0, 63) // rudder - | GET_FLAG(CHANNEL_VIDEO, 0x80); - packet[7] = scale_HT_channel(AILERON, -16, 16); // aileron trim - if (sub_protocol == FORMAT_HONTAI) { - packet[8] = scale_HT_channel(RUDDER, -16, 16); // rudder trim - } else { - packet[8] = 0xc0 // always in expert mode - | GET_FLAG(CHANNEL_RTH, 0x02) - | GET_FLAG(CHANNEL_HEADLESS, 0x01); - } - packet[9] = scale_HT_channel(ELEVATOR, -16, 16); // elevator trim - } - crc16(packet, bind ? BIND_HT_PACKET_SIZE : PACKET_HT_SIZE); - - // Power on, TX mode, 2byte CRC - if (sub_protocol == FORMAT_HONTAI) { - XN297_Configure(BV(NRF24L01_00_EN_CRC) | BV(NRF24L01_00_CRCO) | BV(NRF24L01_00_PWR_UP)); - } else { - NRF24L01_SetTxRxMode(TX_EN); - } - - NRF24L01_WriteReg(NRF24L01_05_RF_CH, bind ? RF_BIND_HT_CHANNEL : rf_channels[sub_protocol][rf_chan++]); - rf_chan %= sizeof(rf_channels); - - NRF24L01_WriteReg(NRF24L01_07_STATUS, 0x70); - NRF24L01_FlushTx(); - - if (sub_protocol == FORMAT_HONTAI) { - XN297_WritePayload(packet, bind ? BIND_HT_PACKET_SIZE : PACKET_HT_SIZE); - } else { - NRF24L01_WritePayload(packet, bind ? BIND_HT_PACKET_SIZE : PACKET_HT_SIZE); - } - - NRF24L01_SetPower(); -} - -static void ht_init() -{ - NRF24L01_Initialize(); - - NRF24L01_SetTxRxMode(TX_EN); - - // SPI trace of stock TX has these writes to registers that don't appear in - // nRF24L01 or Beken 2421 datasheets. Uncomment if you have an XN297 chip? - // NRF24L01_WriteRegisterMulti(0x3f, "\x4c\x84\x67,\x9c,\x20", 5); - // NRF24L01_WriteRegisterMulti(0x3e, "\xc9\x9a\xb0,\x61,\xbb,\xab,\x9c", 7); - // NRF24L01_WriteRegisterMulti(0x39, "\x0b\xdf\xc4,\xa7,\x03,\xab,\x9c", 7); - - if (sub_protocol == FORMAT_HONTAI) { - XN297_SetTXAddr(rx_tx_ht_addr, sizeof(rx_tx_ht_addr)); - } else { - NRF24L01_WriteRegisterMulti(NRF24L01_10_TX_ADDR, rx_tx_ht_addr, sizeof(rx_tx_ht_addr)); - } - - NRF24L01_FlushTx(); - NRF24L01_FlushRx(); - NRF24L01_WriteReg(NRF24L01_07_STATUS, 0x70); // Clear data ready, data sent, and retransmit - NRF24L01_WriteReg(NRF24L01_01_EN_AA, 0x00); // No Auto Acknowldgement on all data pipes - NRF24L01_SetBitrate(NRF24L01_BR_1M); // 1Mbps - NRF24L01_SetPower(); - NRF24L01_Activate(0x73); // Activate feature register - if (sub_protocol == FORMAT_HONTAI) { - NRF24L01_WriteReg(NRF24L01_04_SETUP_RETR, 0x00); // no retransmits - NRF24L01_WriteReg(NRF24L01_1C_DYNPD, 0x00); // Disable dynamic payload length on all pipes - NRF24L01_WriteReg(NRF24L01_1D_FEATURE, 0x00); - NRF24L01_Activate(0x73); // Deactivate feature register - } else { - NRF24L01_WriteReg(NRF24L01_04_SETUP_RETR, 0xff); // JJRC uses dynamic payload length - NRF24L01_WriteReg(NRF24L01_1C_DYNPD, 0x3f); // match other stock settings even though AA disabled... - NRF24L01_WriteReg(NRF24L01_1D_FEATURE, 0x07); - } -} - -static void ht_init2() -{ - uint8_t data_tx_addr[] = {0x2a, 0xda, 0xa5, 0x25, 0x24}; - - data_tx_addr[0] = addr_vals[0][ ht_txid[3] & 0x0f]; - data_tx_addr[1] = addr_vals[1][(ht_txid[3] >> 4) & 0x0f]; - data_tx_addr[2] = addr_vals[2][ ht_txid[4] & 0x0f]; - data_tx_addr[3] = addr_vals[3][(ht_txid[4] >> 4) & 0x0f]; - - if (sub_protocol == FORMAT_HONTAI) { - XN297_SetTXAddr(data_tx_addr, sizeof(data_tx_addr)); - } else { - NRF24L01_WriteRegisterMulti(NRF24L01_10_TX_ADDR, data_tx_addr, sizeof(data_tx_addr)); - } -} - -static uint16_t ht_callback() -{ - switch (phase) { - case HonTai_INIT1: - phase = HonTai_BIND2; - break; - case HonTai_BIND2: - if (counter == 0) { - ht_init2(); - phase = HonTai_DATA; - BIND_DONE; - } else { - send_HT_packet(1); - counter -= 1; - } - break; - - case HonTai_DATA: - send_HT_packet(0); - break; - } - return PACKET_HT_PERIOD; -} - -static uint16_t ht_setup() -{ - counter = BIND_HT_COUNT; - - if (sub_protocol == FORMAT_HONTAI) { - ht_txid[0] = 0x4c; // first three bytes some kind of model id? - set same as stock tx - ht_txid[1] = 0x4b; - ht_txid[2] = 0x3a; - } else { - ht_txid[0] = 0x4b; // JJRC X1 - ht_txid[1] = 0x59; - ht_txid[2] = 0x3a; - } - ht_txid[3] = (MProtocol_id >> 8 ) & 0xff; - ht_txid[4] = MProtocol_id & 0xff; - - ht_init(); - phase = HonTai_INIT1; - - return INITIAL_HT_WAIT; -} -#endif - diff --git a/Multiprotocol/Nrf24l01_inav.ino b/Multiprotocol/Nrf24l01_inav.ino new file mode 100644 index 0000000..2d04acc --- /dev/null +++ b/Multiprotocol/Nrf24l01_inav.ino @@ -0,0 +1,733 @@ +/*** + * iNav Protocol + * + * Data rate is 250Kbps - lower data rate for better reliability and range + * + * Uses auto acknowledgment and dynamic payload size + * ACK payload is used for handshaking in bind phase and telemetry in data phase + * + * Bind payload size is 16 bytes + * Data payload size is 16 bytes dependent on variant of protocol, (small payload is read more quickly (marginal benefit)) + * + * Bind and data payloads are whitened (XORed with a pseudo-random bitstream) to remove strings of 0s or 1s in transmission + * packet. This improves reception by helping keep the TX and RX clocks in sync. + * + * Bind Phase + * uses address {0x4b,0x5c,0x6d,0x7e,0x8f} + * uses channel 0x4c (76) + * + * Data Phase + * 1) Uses the address received in bind packet + * + * 2) Hops between RF channels generated from the address received in bind packet. + * The number of RF hopping channels is set during bind handshaking: + * the transmitter requests a number of hopping channels in payload[7] + * the receiver sets ackPayload[7] with the number of hopping channels actually allocated - the transmitter must + * use this value. + * + * 3) There are 16 channels: eight 10-bit analog channels, two 8-bit analog channels, and six digital channels as follows: + * Channels 0 to 3, are the AETR channels, values 1000 to 2000 with resolution of 1 (10-bit channels) + * Channel AUX1 by deviation convention is used for rate, values 1000, 1500, 2000 + * Channels AUX2 to AUX6 are binary channels, values 1000 or 2000, + * by deviation convention these channels are used for: flip, picture, video, headless, and return to home + * Channels AUX7 to AUX10 are analog channels, values 1000 to 2000 with resolution of 1 (10-bit channels) + * Channels AUX11 and AUX12 are analog channels, values 1000 to 2000 with resolution of 4 (8-bit channels) +***/ + +// debug build flags +//#define NO_RF_CHANNEL_HOPPING + +#define USE_AUTO_ACKKNOWLEDGEMENT +#define USE_WHITENING + +#define INAV_TELEMETRY +//#define INAV_TELEMETRY_DEBUG + +#define UNUSED(x) (void)(x) + +#ifdef INAV_NRF24L01_INO + static uint8_t INAV_setup() { return 1000; } + static uint16_t inav_cb() {} +#endif +#if 0 +/* +*/ + + #include "iface_nrf24l01.h" + + #define BIND_COUNT 345 // 1.5 seconds + #define FIRST_PACKET_DELAY 12000 + + #define PACKET_PERIOD 4000 // Timeout for callback in uSec + #define INITIAL_WAIT 500 + + // For code readability + enum { + CHANNEL1 = 0, + CHANNEL2, + CHANNEL3, + CHANNEL4, + CHANNEL5, + CHANNEL6, + CHANNEL7, + CHANNEL8, + CHANNEL9, + CHANNEL10, + CHANNEL11, + CHANNEL12, + CHANNEL13, + CHANNEL14, + CHANNEL15, + CHANNEL16, + }; + + // Deviation transmitter channels + #define DEVIATION_CHANNEL_COUNT 12 // Max supported by Devo 7e + //#define CHANNEL_LED CHANNEL5 + #define CHANNEL_RATE CHANNEL5 + #define CHANNEL_FLIP CHANNEL6 + #define CHANNEL_PICTURE CHANNEL7 + #define CHANNEL_VIDEO CHANNEL8 + #define CHANNEL_HEADLESS CHANNEL9 + #define CHANNEL_RTH CHANNEL10 + #define CHANNEL_XCAL CHANNEL11 + #define CHANNEL_YCAL CHANNEL12 +// #define GET_FLAG(ch, mask) (Channels[ch] > 0 ? mask : 0) + + + enum { + RATE_LOW = 0, + RATE_MID = 1, + RATE_HIGH = 2, + }; + + enum { + FLAG_FLIP = 0x01, + FLAG_PICTURE = 0x02, + FLAG_VIDEO = 0x04, + FLAG_RTH = 0x08, + FLAG_HEADLESS = 0x10, + }; + + typedef enum { + PHASE_INAV_INIT = 0, + PHASE_INAV_BIND, + PHASE_INAV_DATA + }; + + typedef enum { + DATA_PACKET = 0, + BIND_PACKET = 1, + }; + + static const char * const inav_opts[] = { + #ifdef INAV_TELEMETRY + _tr_noop("Telemetry"), _tr_noop("On"), _tr_noop("Off"), NULL, + #endif + "RxTx Addr1", "-32768", "32767", "1", NULL, // todo: store that elsewhere + "RxTx Addr2", "-32768", "32767", "1", NULL, // ^^^^^^^^^^^^^^^^^^^^^^^^^^ + NULL + }; + + enum { + #ifdef INAV_TELEMETRY + PROTOOPTS_TELEMETRY, + #endif + PROTOOPTS_RX_TX_ADDR1, // todo: store that elsewhere + PROTOOPTS_RX_TX_ADDR2, // ^^^^^^^^^^^^^^^^^^^^^^^^^^ + LAST_PROTO_OPT + }; + + enum { + OPTS_6_CHANNELS = 0, + OPTS_12_CHANNELS + }; + + enum { + TELEM_ON = 0, + TELEM_OFF, + }; + + // Bit vector from bit position + #define BV(bit) (1 << bit) + + // Bit position mnemonics + enum { + + NRF24L01_1D_EN_DYN_ACK = 0, + NRF24L01_1D_EN_ACK_PAY = 1, + NRF24L01_1D_EN_DPL = 2, + }; + + // Pre-shifted and combined bits + enum { + NRF24L01_03_SETUP_AW_5BYTES = 0x03, + }; + + enum { + NRF24L01_MAX_PAYLOAD_SIZE = 32, + }; + + #define INAV_PROTOCOL_PAYLOAD_SIZE_MIN 8 + #define INAV_PROTOCOL_PAYLOAD_SIZE_DEFAULT 16 + #define INAV_PROTOCOL_PAYLOAD_SIZE_MAX 16 + + static uint32_t lost_packet_counter; + + #define RC_CHANNEL_COUNT_MIN 6 + #define RC_CHANNEL_COUNT_DEFAULT 16 + #define RC_CHANNEL_COUNT_MAX 18 + + static uint8_t rc_channel_count; + + static uint8_t tx_power; + + #define RX_TX_ADDR_LEN 5 + static const uint8_t rx_tx_addr_bind[RX_TX_ADDR_LEN] = {0x4b,0x5c,0x6d,0x7e,0x8f}; + static uint8_t rx_tx_addr[RX_TX_ADDR_LEN]; + #define RX_TX_ADDR_4 0xD2 // rxTxAddr[4] always set to this value + + #define BIND_PAYLOAD0 0xad // 10101101 + #define BIND_PAYLOAD1 0xc9 // 11001001 + #define BIND_ACK_PAYLOAD0 0x95 // 10010101 + #define BIND_ACK_PAYLOAD1 0xa9 // 10101001 + #define TELEMETRY_ACK_PAYLOAD0 0x5a // 01011010 + // TELEMETRY_ACK_PAYLOAD1 is sequence count + #define DATA_PAYLOAD0 0x00 + #define DATA_PAYLOAD1 0x00 + + #ifdef USE_AUTO_ACKKNOWLEDGEMENT + static uint8_t ackPayloadSize; + static uint8_t ackPayload[NRF24L01_MAX_PAYLOAD_SIZE]; + #endif + + // frequency channel management + #define RF_CHANNEL_COUNT_DEFAULT 4 + #define RF_CHANNEL_COUNT_MAX 4 + #define RF_CHANNEL_BIND 0x4c + static uint8_t rf_channel_index; + static uint8_t rf_channels[RF_CHANNEL_COUNT_MAX]; + static uint8_t rf_channel_count; + + static protocol_phase_t phase; + + #ifndef TELEM_LTM + // use DSM telemetry until LTM telemetry is implemented + #define TELEM_LTM TELEM_DSM + // repurpose the DSM FADESL, FADESR and HOLDS fields to display roll, pitch and yaw + #define TELEM_LTM_ATTITUDE_PITCH TELEM_DSM_FLOG_FADESL + #define TELEM_LTM_ATTITUDE_ROLL TELEM_DSM_FLOG_FADESR + #define TELEM_LTM_ATTITUDE_YAW TELEM_DSM_FLOG_HOLDS + // use DSM VOLT2, AMPS1 and AIRSPEED fields + #define TELEM_LTM_STATUS_VBAT TELEM_DSM_FLOG_VOLT2 + #define TELEM_LTM_STATUS_CURRENT TELEM_DSM_AMPS1 + #define TELEM_LTM_STATUS_RSSI TELEM_DSM_FLOG_FRAMELOSS + #define TELEM_LTM_STATUS_AIRSPEED TELEM_DSM_AIRSPEED + /* + currently unused LTM telemetry fields + TELEM_LTM_STATUS_ARMED + TELEM_LTM_STATUS_FAILSAFE + TELEM_LTM_STATUS_FLIGHTMODE + TELEM_LTM_NAVIGATION_GPS_MODE + TELEM_LTM_NAVIGATION_NAV_MODE + TELEM_LTM_NAVIGATION_ACTION + TELEM_LTM_NAVIGATION_WAYPOINT_NUMBER + TELEM_LTM_NAVIGATION_ERROR + TELEM_LTM_NAVIGATION_FLAGS + TELEM_LTM_GPSX_HDOP + TELEM_LTM_TUNING_P_ROLL + TELEM_LTM_TUNING_I_ROLL + TELEM_LTM_TUNING_D_ROLL + TELEM_LTM_TUNING_P_PITCH + TELEM_LTM_TUNING_I_PITCH + TELEM_LTM_TUNING_D_PITCH + TELEM_LTM_TUNING_P_YAW + TELEM_LTM_TUNING_I_YAW + TELEM_LTM_TUNING_D_YAW + TELEM_LTM_TUNING_RATES_ROLL + TELEM_LTM_TUNING_RATES_PITCH + TELEM_LTM_TUNING_RATES_YAW + */ + #endif + + /* + uint8_t convert_channel_8b(uint8_t channel) + { + return (uint8_t)(convert_channel(channel) >> 2); + } + */ + + static void whiten_payload(uint8_t *payload, uint8_t len) + { + #ifdef USE_WHITENING + uint8_t whitenCoeff = 0x6b; // 01101011 + while (len--) { + for (uint8_t m = 1; m; m <<= 1) { + if (whitenCoeff & 0x80) { + whitenCoeff ^= 0x11; + (*payload) ^= m; + } + whitenCoeff <<= 1; + } + payload++; + } + #else + UNUSED(payload); + UNUSED(len); + #endif + } + + static void build_bind_packet(void) + { + memset(packet, 0, INAV_PROTOCOL_PAYLOAD_SIZE_MAX); + packet[0] = BIND_PAYLOAD0; + packet[1] = BIND_PAYLOAD1; + packet[2] = rx_tx_addr[0]; + packet[3] = rx_tx_addr[1]; + packet[4] = rx_tx_addr[2]; + packet[5] = rx_tx_addr[3]; + packet[6] = rx_tx_addr[4]; + packet[7] = rf_channel_count; + packet[8] = packet_length; + packet[9] = rc_channel_count; + } + + static void build_data_packet(void) + { + packet[0] = 0; + packet[1] = 0; + // AETR channels have 10 bit resolution + const uint16_t aileron = convert_channel_10b(AILERON); + const uint16_t elevator = convert_channel_10b(ELEVATOR); + const uint16_t throttle = convert_channel_10b(THROTTLE); + const uint16_t rudder = convert_channel_10b(RUDDER); + packet[2] = aileron >> 2; + packet[3] = elevator >> 2; + packet[4] = throttle >> 2; + packet[5] = rudder >> 2; + // pack the AETR low bits + packet[6] = (aileron & 0x03) | ((elevator & 0x03) << 2) | ((throttle & 0x03) << 4) | ((rudder & 0x03) << 6); + + uint8_t rate = RATE_LOW; + if (Channels[CHANNEL_RATE] > 0) { + rate = RATE_HIGH; + } else if (Channels[CHANNEL_RATE] == 0) { + rate = RATE_MID; + } + packet[7] = rate; // rate, deviation channel 5, is mapped to AUX1 + + const uint8_t flags = GET_FLAG(CHANNEL_FLIP, FLAG_FLIP) + | GET_FLAG(CHANNEL_PICTURE, FLAG_PICTURE) + | GET_FLAG(CHANNEL_VIDEO, FLAG_VIDEO) + | GET_FLAG(CHANNEL_RTH, FLAG_RTH) + | GET_FLAG(CHANNEL_HEADLESS, FLAG_HEADLESS); + packet[8] = flags; // flags, deviation channels 6-10 are mapped to AUX2 t0 AUX6 + + // map deviation channels 9-12 to RC channels AUX7-AUX10, use 10 bit resolution + // deviation CHANNEL9 (headless) and CHANNEL10 (RTH) are mapped for a second time + // duplicate mapping makes maximum use of deviation's 12 channels + const uint16_t channel9 = convert_channel_10b(CHANNEL9); + const uint16_t channel10 = convert_channel_10b(CHANNEL10); + const uint16_t channel11 = convert_channel_10b(CHANNEL11); + const uint16_t channel12 = convert_channel_10b(CHANNEL12); + packet[9] = channel9 >> 2; + packet[10] = channel10 >> 2; + packet[11] = channel11 >> 2; + packet[12] = channel12 >> 2; + packet[13] = (channel9 & 0x03) | ((channel10 & 0x03) << 2) | ((channel11 & 0x03) << 4) | ((channel12 & 0x03) << 6); + + // map deviation channels 7 and 8 to RC channels AUX11 and AUX12, use 10 bit resolution + // deviation channels 7 (picture) and 8 (video) are mapped for a second time + packet[14] = convert_channel_8b(CHANNEL7); + packet[15] = convert_channel_8b(CHANNEL8); + } + + + static uint8_t packet_ack(void) + { + #ifdef USE_AUTO_ACKKNOWLEDGEMENT + const uint8_t status = NRF24L01_ReadReg(NRF24L01_07_STATUS); + if (status & BV(NRF24L01_07_TX_DS)) { // NRF24L01_07_TX_DS asserted when ack payload received + // ack payload recieved + ackPayloadSize = NRF24L01_GetDynamicPayloadSize(); + if (ackPayloadSize > NRF24L01_MAX_PAYLOAD_SIZE) { + ackPayloadSize = 0; + NRF24L01_FlushRx(); + return PKT_PENDING; + } + NRF24L01_ReadPayload(ackPayload, ackPayloadSize); + whiten_payload(ackPayload, ackPayloadSize); + NRF24L01_WriteReg(NRF24L01_07_STATUS, BV(NRF24L01_07_TX_DS)); // clear TX_DS interrupt + return PKT_ACKED; + } + if (status & BV(NRF24L01_07_MAX_RT)) { + // max retries exceeded + // clear MAX_RT interrupt to allow further transmission + NRF24L01_WriteReg(NRF24L01_07_STATUS, BV(NRF24L01_07_MAX_RT)); + NRF24L01_FlushTx(); // payload wasn't successfully transmitted, so remove it from TX FIFO + return PKT_TIMEOUT; + } + return PKT_PENDING; + #else + return PKT_TIMEOUT; // if not using AUTO ACK just return a timeout + #endif + } + + void transmit_packet(void) + { + // clear packet MAX_RT status bit so that transmission is not blocked + NRF24L01_WriteReg(NRF24L01_07_STATUS, BV(NRF24L01_07_MAX_RT)); + // set NRF24L01_00_MASK_TX_DS and clear NRF24L01_00_PRIM_RX to initiate transmit + // NRF24L01_WriteReg(NRF24L01_00_CONFIG, BV(NRF24L01_00_PWR_UP) | BV(NRF24L01_00_CRCO) | BV(NRF24L01_00_EN_CRC) | BV(NRF24L01_00_MASK_TX_DS) | BV(NRF24L01_00_MASK_MAX_RT)); + whiten_payload(packet, packet_length); + NRF24L01_WritePayload(packet, packet_length);// asynchronous call + } + + static void hop_to_next_channel(void) + { + #ifndef NO_RF_CHANNEL_HOPPING + if (phase == PHASE_INAV_BIND) { + return; + } + ++rf_channel_index; + if (rf_channel_index >= rf_channel_count) { + rf_channel_index = 0; + } + NRF24L01_WriteReg(NRF24L01_05_RF_CH, rf_channels[rf_channel_index]); + #endif + } + + static void send_packet(uint8_t packet_type) + { + if (packet_type == DATA_PACKET) { + build_data_packet(); + } else { + build_bind_packet(); + } + transmit_packet(); + hop_to_next_channel(); + ++packet_count; + + // Check and adjust transmission power. We do this after + // transmission to not bother with timeout after power + // settings change - we have plenty of time until next + // packet. + if (tx_power != Model.tx_power) { + //Keep transmit power updated + tx_power = Model.tx_power; + NRF24L01_SetPower(tx_power); + } + } + + static void set_data_phase(void) + { + packet_count = 0; + lost_packet_counter = 0; + phase = PHASE_INAV_DATA; + rf_channel_index = 0; + NRF24L01_WriteReg(NRF24L01_05_RF_CH, rf_channels[0]); + // RX_ADDR_P0 must equal TX_ADDR for auto ACK + NRF24L01_WriteRegisterMulti(NRF24L01_0A_RX_ADDR_P0, rx_tx_addr, RX_TX_ADDR_LEN); + NRF24L01_WriteRegisterMulti(NRF24L01_10_TX_ADDR, rx_tx_addr, RX_TX_ADDR_LEN); + } + + static void init_nrf24l01(void) + { + NRF24L01_Initialize(); + // sets PWR_UP, EN_CRC, CRCO - 2 byte CRC + NRF24L01_WriteReg(NRF24L01_00_CONFIG, BV(NRF24L01_00_PWR_UP) | BV(NRF24L01_00_EN_CRC) | BV(NRF24L01_00_CRCO)); + + #ifdef USE_AUTO_ACKKNOWLEDGEMENT + // Note that for some cheap NFR24L01 clones the NO_ACK bit in the packet control field is inverted, + // see https://ncrmnt.org/2015/03/13/how-do-i-cost-optimize-nrf24l01/ + // (see section 7.3.3, p28 of nRF24L01+ Product Specification for descripton of packet control field). + // This means AUTO_ACK will no work between them and genuine NRF24L01 modules, although AUTO_ACK + // between these clones should work. + NRF24L01_WriteReg(NRF24L01_01_EN_AA, BV(NRF24L01_01_ENAA_P0)); // auto acknowledgment on P0 + NRF24L01_WriteReg(NRF24L01_02_EN_RXADDR, BV(NRF24L01_02_ERX_P0)); // Enable RX on P0 for Auto Ack + #else + NRF24L01_WriteReg(NRF24L01_01_EN_AA, 0x00); + #endif + NRF24L01_WriteReg(NRF24L01_03_SETUP_AW, NRF24L01_03_SETUP_AW_5BYTES); // 5-byte RX/TX address + // ARD of 1500us is minimum required for 32 byte ACK payload in 250kbps mode (section 7.4.2, p33 of nRF24L01+ Product Specification) + NRF24L01_WriteReg(NRF24L01_04_SETUP_RETR, NRF24L01_04_ARD_2500us | NRF24L01_04_ARC_1); // 1 retry after 1500us + NRF24L01_WriteReg(NRF24L01_05_RF_CH, RF_CHANNEL_BIND); + // bitrate and power are set using regigister NRF24L01_06_RF_SETUP + NRF24L01_SetBitrate(NRF24L01_BR_250K); + NRF24L01_SetPower(Model.tx_power); + // Writing to the STATUS register clears the specified interrupt bits + NRF24L01_WriteReg(NRF24L01_07_STATUS, BV(NRF24L01_07_RX_DR) | BV(NRF24L01_07_TX_DS) | BV(NRF24L01_07_MAX_RT)); + // NRF24L01_08_OBSERVE_TX is read only register + // NRF24L01_09_RPD is read only register (called RPD for NRF24L01+, CD for NRF24L01) + NRF24L01_WriteRegisterMulti(NRF24L01_0A_RX_ADDR_P0, rx_tx_addr_bind, RX_TX_ADDR_LEN); // RX_ADDR_P0 must equal TX_ADDR for auto ACK + // RX_ADDR for pipes P1-P5 (registers 0B to 0F) aret left at default values + NRF24L01_WriteRegisterMulti(NRF24L01_10_TX_ADDR, rx_tx_addr_bind, RX_TX_ADDR_LEN); + // Payload Widths for P0-P5 (registers 11 to 16) aret left at default values + // NRF24L01_17_FIFO_STATUS is read only register for all non-reserved bits + // No registers with values 18 to 1B + #ifdef USE_AUTO_ACKKNOWLEDGEMENT + NRF24L01_ReadReg(NRF24L01_1D_FEATURE); + NRF24L01_Activate(0x73); // Activate feature register, needed for NRF24L01 (harmless for NRF24L01+) + NRF24L01_ReadReg(NRF24L01_1D_FEATURE); + NRF24L01_WriteReg(NRF24L01_1C_DYNPD, BV(NRF24L01_1C_DYNPD_P0)); // dynamic payload length on pipes P0 + NRF24L01_WriteReg(NRF24L01_1D_FEATURE, BV(NRF24L01_1D_EN_ACK_PAY) | BV(NRF24L01_1D_EN_DPL)); + #endif + + NRF24L01_Activate(0x53); // switch bank back + + NRF24L01_SetTxRxMode(TX_EN); // enter transmit mode, sets up NRF24L01_00_CONFIG register + } + + // Generate address to use from TX id and manufacturer id (STM32 unique id) + static void initialize_rx_tx_addr(void) + { + uint32_t lfsr = 0xb2c54a2ful; + + #ifndef USE_FIXED_MFGID + uint8_t var[12]; + MCU_SerialNumber(var, 12); + for (int i = 0; i < 12; ++i) { + rand32_r(&lfsr, var[i]); + } + #endif + + if (Model.fixed_id) { + for (uint8_t i = 0, j = 0; i < sizeof(Model.fixed_id); ++i, j += 8) + rand32_r(&lfsr, (Model.fixed_id >> j) & 0xff); + } + // Pump zero bytes for LFSR to diverge more + for (uint8_t i = 0; i < sizeof(lfsr); ++i) rand32_r(&lfsr, 0); + + for (uint8_t i = 0; i < sizeof(rx_tx_addr)-1; ++i) { + rx_tx_addr[i] = lfsr & 0xff; + rand32_r(&lfsr, i); + } + rx_tx_addr[1] &= 0x7f; // clear top bit so saved Model.proto_opts value is positive + rx_tx_addr[3] &= 0x7f; // clear top bit so saved Model.proto_opts value is positive + rx_tx_addr[4] = RX_TX_ADDR_4; // set to constant, so variable part of rx_tx_addr can be stored in 32-bit value + } + + // The hopping channels are determined by the value of rx_tx_addr[0] + static void set_hopping_channels(void) + { + rf_channel_index = 0; + const uint8_t addr = rx_tx_addr[0]; + uint8_t ch = 0x10 + (addr & 0x07); + for (int i = 0; i < rf_channel_count; ++i) { + rf_channels[i] = ch; + ch += 0x0c; + } + } + + static void update_telemetry(void) + { + #ifdef INAV_TELEMETRY + const uint8_t observeTx = NRF24L01_ReadReg(NRF24L01_08_OBSERVE_TX); + const uint8_t lostPacketCount = (observeTx & NRF24L01_08_PLOS_CNT_MASK) >> 4; + // const uint8_t autoRetryCount = observeTx & NRF24L01_08_ARC_CNT_MASK; + NRF24L01_WriteReg(NRF24L01_05_RF_CH, rf_channels[rf_channel_index]); // reset packet loss counter + + lost_packet_counter += lostPacketCount; + Telemetry.value[TELEM_LTM_STATUS_RSSI] = 100 - 100 * lost_packet_counter / packet_count; + TELEMETRY_SetUpdated(TELEM_LTM_STATUS_RSSI); + + // ackPayload contains telemetry in LTM format. + // See https://github.com/stronnag/mwptools/blob/master/docs/ltm-definition.txt + // ackPayload[0] is a sequence count, LTM begins at ackPayload[2] + const uint8_t *ltm = &ackPayload[2]; + switch (ltm[0]) { // frame type + case 'G': // GPS frame + { + // LTM lat/long: int32 decimal degrees * 10,000,000 (1E7) + // LTM 1 degree = 1,000,000 + // Deviation longitude: +/-180degrees = +/- 180*60*60*1000; W if value<0, E if value>=0; -180degrees = 180degrees + // Deviation latitude: +/-90degrees = +/- 90*60*60*1000; S if value<0, N if value>=0 + // Deviation 1 degree = 3,600,000 + // Scale factor = 36/10 = 18/5 + uint32_t latitude; + memcpy(&latitude, <m[1], sizeof(uint32_t)); + Telemetry.gps.latitude = latitude * 18 / 5; + TELEMETRY_SetUpdated(TELEM_GPS_LAT); + + uint32_t longitude; + memcpy(&longitude, <m[5], sizeof(uint32_t)); + Telemetry.gps.longitude = longitude * 18 / 5; + TELEMETRY_SetUpdated(TELEM_GPS_LONG); + + Telemetry.gps.velocity = ltm[9] * 1000; // LTM m/s; DEV mm/s + TELEMETRY_SetUpdated(TELEM_GPS_SPEED); + + uint32_t altitude; + memcpy(&altitude, <m[10], sizeof(uint32_t)); + Telemetry.gps.altitude = altitude * 10; // LTM:cm; DEV:mm + TELEMETRY_SetUpdated(TELEM_GPS_ALT); + + Telemetry.gps.satcount = ltm[14] >> 2; + TELEMETRY_SetUpdated(TELEM_GPS_SATCOUNT); + } + break; + case 'A': // Attitude frame + { + const uint16_t heading = ltm[5] | (ltm[6] << 8); + Telemetry.gps.heading = heading; + TELEMETRY_SetUpdated(TELEM_GPS_HEADING); + + const s16 pitch = ltm[1] | (ltm[2] << 8); + Telemetry.value[TELEM_LTM_ATTITUDE_PITCH] = pitch; // LTM:degrees [-180,180] + TELEMETRY_SetUpdated(TELEM_LTM_ATTITUDE_PITCH); + + const s16 roll = ltm[3] | (ltm[4] << 8); + Telemetry.value[TELEM_LTM_ATTITUDE_ROLL] = roll; // LTM:degrees [-180,180] + TELEMETRY_SetUpdated(TELEM_LTM_ATTITUDE_ROLL); + + Telemetry.value[TELEM_LTM_ATTITUDE_YAW] = heading; + TELEMETRY_SetUpdated(TELEM_LTM_ATTITUDE_YAW); + } + break; + case 'S': // Status frame + { + const uint16_t vBat = ltm[1] | (ltm[2] << 8); + Telemetry.value[TELEM_LTM_STATUS_VBAT] = (uint32_t)(vBat); // LTM:mV; DEV:V/10 + TELEMETRY_SetUpdated(TELEM_LTM_STATUS_VBAT); + + const uint16_t amps = ltm[3] | (ltm[4] << 8); + Telemetry.value[TELEM_LTM_STATUS_CURRENT] = (uint32_t)(amps); // LTM:mA; DEV:A/10 + TELEMETRY_SetUpdated(TELEM_LTM_STATUS_CURRENT); + + Telemetry.value[TELEM_LTM_STATUS_AIRSPEED] = ltm[6]; + TELEMETRY_SetUpdated(TELEM_LTM_STATUS_AIRSPEED); + } + break; + default: + break; + } + #endif + } + + void save_rx_tx_addr(void) + { + Model.proto_opts[PROTOOPTS_RX_TX_ADDR1] = rx_tx_addr[0] | ((uint16_t)rx_tx_addr[1] << 8); + Model.proto_opts[PROTOOPTS_RX_TX_ADDR2] = rx_tx_addr[2] | ((uint16_t)rx_tx_addr[3] << 8); + } + + void load_rx_tx_addr(void) + { + rx_tx_addr[0] = (Model.proto_opts[PROTOOPTS_RX_TX_ADDR1]) & 0xff; + rx_tx_addr[1] = (Model.proto_opts[PROTOOPTS_RX_TX_ADDR1] >> 8) & 0xff; + rx_tx_addr[2] = (Model.proto_opts[PROTOOPTS_RX_TX_ADDR2]) & 0xff; + rx_tx_addr[3] = (Model.proto_opts[PROTOOPTS_RX_TX_ADDR2] >> 8) & 0xff; + rx_tx_addr[4] = RX_TX_ADDR_4; // set to constant, so variable part of rx_tx_addr can be stored in 32-bit value + } + + static void inav_init() + { + // check options before proceeding with initialiasation + packet_length = INAV_PROTOCOL_PAYLOAD_SIZE_DEFAULT; + rc_channel_count = RC_CHANNEL_COUNT_DEFAULT; + rf_channel_count = RF_CHANNEL_COUNT_DEFAULT; + if(IS_AUTOBIND_FLAG_on) { + initialize_rx_tx_addr(); + save_rx_tx_addr(); + } else { + load_rx_tx_addr(); + } + + packet_count = 0; + set_hopping_channels(); + } + + static uint16_t inav_cb() + { + static uint16_t bind_counter; + static uint8_t bind_acked; + + switch (phase) { + case PHASE_INAV_INIT: + phase = PHASE_INAV_BIND; + bind_counter = BIND_COUNT; + bind_acked = 0; + return FIRST_PACKET_DELAY; + break; + + case PHASE_INAV_BIND: + if (bind_counter == 0) { + set_data_phase(); + BIND_DONE; + } else { + if (packet_ack() == PKT_ACKED) { + bind_acked = 1; + } + if (bind_acked == 1) { + // bind packet acked, so set bind_counter to zero to enter data phase on next callback + bind_counter = 0; + return PACKET_PERIOD; + } + send_packet(BIND_PACKET); + --bind_counter; + } + break; + + case PHASE_INAV_DATA: + update_telemetry(); + /*#define PACKET_CHKTIME 500 // time to wait if packet not yet acknowledged or timed out + if (packet_ack() == PKT_PENDING) { + return PACKET_CHKTIME; // packet send not yet complete + }*/ + packet_ack(); + send_packet(DATA_PACKET); + break; + } + return PACKET_PERIOD; + } + + static uint8_t INAV_setup() + { + CLOCK_StopTimer(); + tx_power = Model.tx_power; + ackPayloadSize = 0; + memset(ackPayload, 0, NRF24L01_MAX_PAYLOAD_SIZE); + inav_init(bind); + init_nrf24l01(); + + #ifdef INAV_TELEMETRY + memset(&Telemetry, 0, sizeof(Telemetry)); + TELEMETRY_SetType(TELEM_LTM); + #endif + + if(IS_AUTOBIND_FLAG_on) { + phase = PHASE_INAV_INIT; +// PROTOCOL_SetBindState(BIND_COUNT * PACKET_PERIOD / 1000); + } else { + set_data_phase(); +// BIND_DONE; + } + return INITIAL_WAIT; + } +/* + const void *INAV_Cmds(enum ProtoCmds cmd) + { + switch(cmd) { + case PROTOCMD_INIT: initialize(INIT_BIND); return 0; + case PROTOCMD_DEINIT: + case PROTOCMD_RESET: + CLOCK_StopTimer(); + return (void *)(NRF24L01_Reset() ? 1L : -1L); + //case PROTOCMD_CHECK_AUTOBIND: return 0; + case PROTOCMD_CHECK_AUTOBIND: return (void *)1L; // always Autobind + case PROTOCMD_BIND: initialize(INIT_BIND); return 0; + case PROTOCMD_NUMCHAN: return (void *)((long)rc_channel_count); + case PROTOCMD_DEFAULT_NUMCHAN: return (void *)((long)RC_CHANNEL_COUNT_DEFAULT); + case PROTOCMD_CURRENT_ID: return 0; + case PROTOCMD_GETOPTIONS: return inav_opts; + #ifdef INAV_TELEMETRY + case PROTOCMD_TELEMETRYSTATE: return (void *)(long)(Model.proto_opts[PROTOOPTS_TELEMETRY] == TELEM_ON ? PROTO_TELEM_ON : PROTO_TELEM_OFF); + #else + case PROTOCMD_TELEMETRYSTATE: return (void *)(long)PROTO_TELEM_UNSUPPORTED; + #endif + default: break; + } + return 0; + } +*/ +#endif + diff --git a/Multiprotocol/Nrf24l01_ne260.ino b/Multiprotocol/Nrf24l01_ne260.ino index 598c15b..85f6ec3 100644 --- a/Multiprotocol/Nrf24l01_ne260.ino +++ b/Multiprotocol/Nrf24l01_ne260.ino @@ -189,9 +189,9 @@ static void ne260_init() { NRF24L01_WriteReg(NRF24L01_07_STATUS, vRX_DR | vTX_DS | vMAX_RT); // reset the IRQ flags } -static void send_data_packet() { +static void send_ne_data_packet() { for(int i = 0; i < 4; i++) { - uint32_t value = (uint32_t)Servo_data[NE_ch[i]] * 0x40 / PPM_MAX + 0x40; + uint32_t value = (uint32_t)map(limit_channel_100(NE_ch[i]),servo_min_100,servo_max_100,0,80); if (value > 0x7f) value = 0x7f; else if(value < 0) @@ -210,7 +210,7 @@ static void send_data_packet() { NRF24L01_WritePayload((uint8_t*) packet, PACKET_NE_LENGTH); } -static void send_bind_packet() { +static void send_ne_bind_packet() { packet[0] = 0xAA; //throttle packet[1] = 0xAA; //rudder packet[2] = 0xAA; //elevator @@ -243,7 +243,7 @@ static uint16_t ne260_cb() { } } NRF24L01_SetTxRxMode(TX_EN); - send_bind_packet(); + send_ne_bind_packet(); state = NE260_BINDRX; return 500; } else if (state == NE260_BINDRX) { @@ -259,7 +259,7 @@ static uint16_t ne260_cb() { else if (state == NE260_DATA1) { neChannel = 10; state = NE260_DATA2; } else if (state == NE260_DATA2) { neChannel = 30; state = NE260_DATA3; } else if (state == NE260_DATA3) { neChannel = 50; state = NE260_DATA1; } - send_data_packet(); + send_ne_data_packet(); return 2500; } diff --git a/Multiprotocol/Nrf24l01_udi.ino b/Multiprotocol/Nrf24l01_udi.ino index a8eac63..de078eb 100644 --- a/Multiprotocol/Nrf24l01_udi.ino +++ b/Multiprotocol/Nrf24l01_udi.ino @@ -112,9 +112,9 @@ static const uint8_t * rf_udi_channels = NULL; static uint8_t packet_udi_ack() { - switch (NRF24L01_ReadReg(NRF24L01_07_STATUS) & (BV(NRF24L01_07_TX_DS) | BV(NRF24L01_07_MAX_RT))) { - case BV(NRF24L01_07_TX_DS): return PKT_ACKED; - case BV(NRF24L01_07_MAX_RT): return PKT_TIMEOUT; + switch (NRF24L01_ReadReg(NRF24L01_07_STATUS) & (_BV(NRF24L01_07_TX_DS) | _BV(NRF24L01_07_MAX_RT))) { + case _BV(NRF24L01_07_TX_DS): return PKT_ACKED; + case _BV(NRF24L01_07_MAX_RT): return PKT_TIMEOUT; } return PKT_PENDING; } @@ -207,7 +207,7 @@ static void UDI_init2() // Turn radio power on NRF24L01_SetTxRxMode(TX_EN); - uint8_t config = BV(NRF24L01_00_EN_CRC) | BV(NRF24L01_00_CRCO) | BV(NRF24L01_00_PWR_UP); + uint8_t config = _BV(NRF24L01_00_EN_CRC) | _BV(NRF24L01_00_CRCO) | _BV(NRF24L01_00_PWR_UP); NRF24L01_WriteReg(NRF24L01_00_CONFIG, config); // Implicit delay in callback // delayMicroseconds(150); @@ -239,15 +239,11 @@ static void add_pkt_checksum() static uint8_t convert_channel(uint8_t num, uint8_t chn_max, uint8_t sign_ofs) { - uint32_t ch = Servo_data[num]; - if (ch < PPM_MIN) { - ch = PPM_MIN; - } else if (ch > PPM_MAX) { - ch = PPM_MAX; - } + uint32_t ch = map(limit_channel_100(num),servo_min_100,servo_max_100,-1000, 1000); + uint32_t chn_val; - if (sign_ofs) chn_val = (((ch * chn_max / PPM_MAX) + sign_ofs) >> 1); - else chn_val = (ch * chn_max / PPM_MAX); + if (sign_ofs) chn_val = (((ch * chn_max / servo_max_100) + sign_ofs) >> 1); + else chn_val = (ch * chn_max / servo_max_100); if (chn_val < 0) chn_val = 0; else if (chn_val > chn_max) chn_val = chn_max; return (uint8_t) chn_val; @@ -260,8 +256,8 @@ static void read_controls(uint8_t* throttle, uint8_t* rudder, uint8_t* elevator, // Protocol is registered AETRG, that is // Aileron is channel 0, Elevator - 1, Throttle - 2, Rudder - 3 // Sometimes due to imperfect calibration or mixer settings - // throttle can be less than PPM_MIN or larger than - // PPM_MAX. As we have no space here, we hard-limit + // throttle can be less than servo_min_100 or larger than + // servo_max_100. As we have no space here, we hard-limit // channels values by min..max range // Channel 3: throttle is 0-100 @@ -277,28 +273,28 @@ static void read_controls(uint8_t* throttle, uint8_t* rudder, uint8_t* elevator, *aileron = convert_channel(AILERON, 0x3f, 0x20); // Channel 5 - if (Servo_data[AUX1] <= 0) *flags &= ~UDI_FLIP360; - else *flags |= UDI_FLIP360; + if (Servo_AUX1) *flags |= UDI_FLIP360; + else *flags &= ~UDI_FLIP360; // Channel 6 - if (Servo_data[AUX2] <= 0) *flags &= ~UDI_FLIP; - else *flags |= UDI_FLIP; + if (Servo_AUX2) *flags |= UDI_FLIP; + else *flags &= ~UDI_FLIP; // Channel 7 - if (Servo_data[AUX3] <= 0) *flags &= ~UDI_CAMERA; - else *flags |= UDI_CAMERA; + if (Servo_AUX3) *flags |= UDI_CAMERA; + else *flags &= ~UDI_CAMERA; // Channel 8 - if (Servo_data[AUX4] <= 0) *flags &= ~UDI_VIDEO; - else *flags |= UDI_VIDEO; + if (Servo_AUX4) *flags |= UDI_VIDEO; + else *flags &= ~UDI_VIDEO; // Channel 9 - if (Servo_data[AUX5] <= 0) *flags &= ~UDI_LIGHTS; - else *flags |= UDI_LIGHTS; + if (Servo_AUX5) *flags |= UDI_LIGHTS; + else *flags &= ~UDI_LIGHTS; // Channel 10 - if (Servo_data[AUX6] <= 0) *flags &= ~UDI_MODE2; - else *flags |= UDI_MODE2; + if (Servo_AUX6) *flags |= UDI_MODE2; + else *flags &= ~UDI_MODE2; } static void send_udi_packet(uint8_t bind) @@ -325,7 +321,7 @@ static void send_udi_packet(uint8_t bind) packet[5] = randoms[1]; packet[6] = randoms[2]; if (sub_protocol == U839_2014) { - packet[7] = (packet_counter < 4) ? 0x3f : 0x04; // first four packets use 0x3f here, then 0x04 + packet[7] = (packet_count < 4) ? 0x3f : 0x04; // first four packets use 0x3f here, then 0x04 } } else if (bind == 2) { // Bind phase 2 @@ -374,7 +370,7 @@ static void send_udi_packet(uint8_t bind) uint8_t status = NRF24L01_ReadReg(NRF24L01_07_STATUS); NRF24L01_WriteReg(NRF24L01_07_STATUS,status); - if (packet_sent && bind && (status & BV(NRF24L01_07_TX_DS))) { + if (packet_sent && bind && (status & _BV(NRF24L01_07_TX_DS))) { bind_step_success = 1; } @@ -396,7 +392,7 @@ static void send_udi_packet(uint8_t bind) } NRF24L01_FlushTx(); NRF24L01_WritePayload(packet, payload_size); - ++packet_counter; + ++packet_count; packet_sent = 1; } @@ -433,7 +429,7 @@ static uint16_t UDI_callback() { break; case UDI_BIND1_RX: // Check if data has been received - if (NRF24L01_ReadReg(NRF24L01_07_STATUS) & BV(NRF24L01_07_RX_DR) ) { + if (NRF24L01_ReadReg(NRF24L01_07_STATUS) & _BV(NRF24L01_07_RX_DR) ) { uint8_t data[UDI_PAYLOADSIZE]; NRF24L01_ReadPayload(data, payload_size); NRF24L01_WriteReg(NRF24L01_07_STATUS, 0x4E); // On original TX this is done on LAST packet check only ! @@ -514,7 +510,7 @@ static uint16_t UDI_callback() { case UDI_BIND2_RX: // Check if data has been received - if (NRF24L01_ReadReg(NRF24L01_07_STATUS) & BV(NRF24L01_07_RX_DR) ) { + if (NRF24L01_ReadReg(NRF24L01_07_STATUS) & _BV(NRF24L01_07_RX_DR) ) { uint8_t data[UDI_PAYLOADSIZE]; NRF24L01_ReadPayload(data, payload_size); NRF24L01_WriteReg(NRF24L01_07_STATUS, 0x4E); @@ -570,7 +566,7 @@ static uint16_t UDI_callback() { static uint16_t UDI_setup() { - packet_counter = 0; + packet_count = 0; UDI_init(); phase = UDI_INIT2; diff --git a/Multiprotocol/README.md b/Multiprotocol/README.md new file mode 100644 index 0000000..037ea5f --- /dev/null +++ b/Multiprotocol/README.md @@ -0,0 +1,230 @@ +# DIY-Multiprotocol-TX-Module + +![Screenshot](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/t7952733-114-thumb-P4100002.JPG?d=1433910155) ![Screenshot](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/t7952734-189-thumb-P4100003.JPG?d=1433910159) + +Fork du projet https://github.com/pascallanger/DIY-Multiprotocol-TX-Module + +Afin d'ajouter : +- Un rebind hardware en PPM +- La radio TARANIS (TAERB, B = rebind ;-) ) et redéclaration des radios + + + +Programme des évolutions : +- Ajout du futur protocole INAV + + +#Schematic +![Screenshot](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/a8443844-119-multiprotocol_diagram_rotary_serial_2.jpg) + +Notes: +- Attention: All modules are 3.3V only, never power them with 5V. + + +#Protocoles ajoutés mais non testés (Issue de Deviation) +##Other +###OPENLRS +Empty protocol + +##CYRF6936 RF Module +###J6PRO +CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10|CH11|CH12 +---|---|---|---|---|---|---|---|---|---|---|--- +CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10|CH11|CH12 + +###WK2x01 +Autobind + +####Sub_protocol WK2401 +CH1|CH2|CH3|CH4 +---|---|---|--- +CH1|CH2|CH3|CH4 + + +####Sub_protocol WK2601 +Option: + + 0 = 5+1 + 2 = 6+1 + ..1 = Hélicoptère (. = autres options pour ce mode) + .01 = Hélicoptère normal + .11 = Hélicoptère avec pit inversé + 0.1 = Pitch curve -100 + 1.1 = Pitch curve 100 + +CH1|CH2|CH3|CH4|CH5|CH6|CH7 +---|---|---|---|---|---|--- +CH1|CH2|CH3|CH4|???|CONF|Gyro & Rudder mix + +CONF: Option 1 = Rate Throtle + + Option 2 = Pitch + + +####Sub_protocol WK2801 +CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8 +---|---|---|---|---|---|---|--- +CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8 + + +##A7105 RF Module +###Flysky AFHDS2A +Telemetry enabled for battery voltage and TX RSSI +Option= 0-PWM_IBUS 1-PPM_IBUS 2-PWM_SBUS 3-PPM_SBUS + +CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10|CH11|CH12|CH13|CH14|CH15 +---|---|---|---|---|---|---|---|---|---|---|---|---|---|--- +T|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10|CH11|CH12|CH13|CH14|Failsave T + +###HUBSAN +Models: Hubsan H102D, H107/L/C/D and Hubsan H107P/C+/D+ + +Autobind protocol + +Telemetry enabled for battery voltage and TX RSSI + +Option=vTX frequency (H107D) 5645 - 5900 MHz + +CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9 +---|---|---|---|---|---|---|---|--- +A|E|T|R|FLIP|LIGHT|PICTURE|VIDEO|HEADLESS +####Sub_protocol H301 +CH5|CH6|CH7|CH8 +---|---|---|--- +LED|STAB|RTH|VIDEO + +####Sub_protocol H501 +CH5|CH6|CH7|CH8|CH9|CH10|CH11|CH12 +---|---|---|---|---|---|---|---|---|---|---|--- +FLIP|LIGHT|RTH|VIDEO|HEADLESS|GPS_HOLD|ALT_HOLD|SNAPSHOT + +###Joysway +CH1|CH2|CH3|CH4 +---|---|---|--- +A|E|T|R + +##CC2500 RF Module +###SKYARTEC +CH1|CH2|CH3|CH4|CH5|CH6|CH7 +---|---|---|---|---|---|--- + ? | ? | ? | ? | ? | ? | ? + +##NRF24L01 RF Module +###BLUEFLY +Autobind + +CH1|CH2|CH3|CH4|CH5|CH6 +---|---|---|---|---|--- +A|E|T|R|GEAR|PITCH + +###CFLIE +Modele: CrazyFlie Nano quad + +Autobind + +CH1|CH2|CH3|CH4 +---|---|---|--- +A|E|T|R + +###ESKY150 + +Autobind + +CH1|CH2|CH3|CH4 +---|---|---|--- +A|E|T|R + +###FBL100 +Autobind + +CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8 +---|---|---|---|---|---|---|--- + ? | ? | ? | ? | ? | ? | ? | ? + +####Sub_protocol HP100 +Same channels assignement as above. + +###Fy326 +Autobind + +CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9 +---|---|---|---|---|---|---|---|--- +A|E|T|R|FLIP|HEADLESS|RTH|Calibrate|Expert + +####Sub_protocol FY319 +Same channels assignement as above. + +###H377 +CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8 +---|---|---|---|---|---|---|--- +A|E|T|R|CH5|CH6|CH7|CH8 + +###HM830 +Modele: HM Hobby HM830 RC Paper Airplane + +Autobind + +CH1|CH2|CH3|CH4|CH5 +---|---|---|--- +A|Turbo|T|Trim|Bouton + +###HONTAI +Autobind protocol + +CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10|CH11 +---|---|---|---|---|---|---|---|---|----|---- +A|E|T|R|FLIP|LED|PICTURE|VIDEO|HEADLESS|RTH|CAL + +####Sub_protocol HONTAI +####Sub_protocol JJRCX1 +CH6| +---| +ARM| + +####Sub_protocol X5C1 +X5C1 clone +CH5|CH6|CH7|CH8|CH9|CH10|CH11 +---|---|---|---|---|----|---- +FLIP|LED|PICTURE|VIDEO|HEADLESS|RTH|CAL +####Sub_protocol FQ777 +Format FQ777-951C + +CH6|CH7|CH8|CH9 +---|---|---|--- +FLIP|SNAPSHOT|VIDEO|HEADLESS + +###INAV +En cours de passage + +###NE260 +Modele: Nine Eagles SoloPro + +Autobind + +CH1|CH2|CH3|CH4 +---|---|---|--- +A|E|T|R + +###UDI +Modele: Known UDI 2.4GHz protocol variants, all using BK2421 +* UDI U819 coaxial 3ch helicoper +* UDI U816/817/818 quadcopters + - "V1" with orange LED on TX, U816 RX labeled '' , U817/U818 RX labeled 'UD-U817B' + - "V2" with red LEDs on TX, U816 RX labeled '', U817/U818 RX labeled 'UD-U817OG' + - "V3" with green LEDs on TX. Did not get my hands on yet. +* U830 mini quadcopter with tilt steering ("Protocol 2014") +* U839 nano quadcopter ("Protocol 2014") + +Autobind + +CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10 +---|---|---|---|---|---|---|---|---|--- +A|E|T|R|FLIP 360|FLIP|VIDEO|LED|MODE 2 + +####Sub_protocol U816_V1 (orange) +####Sub_protocol U816_V2 (red) +####Sub_protocol U839_2014 +Same channels assignement as above. + + +###D'autres à venir \ No newline at end of file diff --git a/Multiprotocol/SHENQI_nrf24l01.ino b/Multiprotocol/SHENQI_nrf24l01.ino index b8ab94b..2ffc2fc 100644 --- a/Multiprotocol/SHENQI_nrf24l01.ino +++ b/Multiprotocol/SHENQI_nrf24l01.ino @@ -1,5 +1,3 @@ -<<<<<<< HEAD -======= /* This project is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,7 +13,6 @@ along with Multiprotocol. If not, see . */ ->>>>>>> refs/remotes/pascallanger/master #if defined(SHENQI_NRF24L01_INO) #include "iface_nrf24l01.h" @@ -42,17 +39,10 @@ void SHENQI_init() NRF24L01_WriteReg(NRF24L01_03_SETUP_AW, 0x03); // 5 bytes rx/tx address -<<<<<<< HEAD - LT8910_Config(4, 8, _BV(LT8910_CRC_ON)|_BV(LT8910_PACKET_LENGTH_EN), 0xAA); - LT8910_SetChannel(2); - LT8910_SetAddress((uint8_t *)"\x9A\x9A\x9A\x9A",4); - LT8910_SetTxRxMode(RX_EN); -======= LT8900_Config(4, 8, _BV(LT8900_CRC_ON)|_BV(LT8900_PACKET_LENGTH_EN), 0xAA); LT8900_SetChannel(2); LT8900_SetAddress((uint8_t *)"\x9A\x9A\x9A\x9A",4); LT8900_SetTxRxMode(RX_EN); ->>>>>>> refs/remotes/pascallanger/master } void SHENQI_send_packet() @@ -61,16 +51,6 @@ void SHENQI_send_packet() if(packet_count==0) { uint8_t bind_addr[4]; -<<<<<<< HEAD - bind_addr[0]=0x9A; - bind_addr[1]=0x9A; - bind_addr[2]=rx_tx_addr[2]; - bind_addr[3]=rx_tx_addr[3]; - LT8910_SetAddress(bind_addr,4); - LT8910_SetChannel(2); - packet[1]=rx_tx_addr[1]; - packet[2]=rx_tx_addr[0]; -======= bind_addr[0]=rx_tx_addr[0]; bind_addr[1]=rx_tx_addr[1]; bind_addr[2]=0x9A; @@ -79,39 +59,24 @@ void SHENQI_send_packet() LT8900_SetChannel(2); packet[1]=rx_tx_addr[2]; packet[2]=rx_tx_addr[3]; ->>>>>>> refs/remotes/pascallanger/master packet_period=2508; } else { -<<<<<<< HEAD - LT8910_SetAddress(rx_tx_addr,4); - packet[1]=255-convert_channel_8b(RUDDER); - packet[2]=255-convert_channel_8b_scale(THROTTLE,0x60,0xA0); - uint8_t freq=pgm_read_byte_near(&SHENQI_Freq[hopping_frequency_no])+(rx_tx_addr[1]&0x0F); - LT8910_SetChannel(freq); -======= LT8900_SetAddress(rx_tx_addr,4); packet[1]=255-convert_channel_8b(RUDDER); packet[2]=255-convert_channel_8b_scale(THROTTLE,0x60,0xA0); uint8_t freq=pgm_read_byte_near(&SHENQI_Freq[hopping_frequency_no])+(rx_tx_addr[2]&0x0F); LT8900_SetChannel(freq); ->>>>>>> refs/remotes/pascallanger/master hopping_frequency_no++; if(hopping_frequency_no==60) hopping_frequency_no=0; packet_period=1750; } // Send packet + 1 retransmit - not sure why but needed (not present on original TX...) -<<<<<<< HEAD - LT8910_WritePayload(packet,3); - while(NRF24L01_packet_ack()!=PKT_ACKED); - LT8910_WritePayload(packet,3); -======= LT8900_WritePayload(packet,3); while(NRF24L01_packet_ack()!=PKT_ACKED); LT8900_WritePayload(packet,3); ->>>>>>> refs/remotes/pascallanger/master packet_count++; if(packet_count==7) @@ -129,16 +94,6 @@ uint16_t SHENQI_callback() SHENQI_send_packet(); else { -<<<<<<< HEAD - if( NRF24L01_ReadReg(NRF24L01_07_STATUS) & BV(NRF24L01_07_RX_DR)) - { - if(LT8910_ReadPayload(packet, 3)) - { - BIND_DONE; - rx_tx_addr[3]=packet[1]; - rx_tx_addr[2]=packet[2]; - LT8910_SetTxRxMode(TX_EN); -======= if( NRF24L01_ReadReg(NRF24L01_07_STATUS) & _BV(NRF24L01_07_RX_DR)) { if(LT8900_ReadPayload(packet, 3)) @@ -147,7 +102,6 @@ uint16_t SHENQI_callback() rx_tx_addr[0]=packet[1]; rx_tx_addr[1]=packet[2]; LT8900_SetTxRxMode(TX_EN); ->>>>>>> refs/remotes/pascallanger/master packet_period=14000; } NRF24L01_FlushRx(); @@ -162,11 +116,7 @@ uint16_t initSHENQI() SHENQI_init(); hopping_frequency_no = 0; packet_count=0; -<<<<<<< HEAD - packet_period=100; -======= packet_period=500; ->>>>>>> refs/remotes/pascallanger/master return 1000; } diff --git a/Multiprotocol/TX_Def.h b/Multiprotocol/TX_Def.h index 08e131a..66193d0 100644 --- a/Multiprotocol/TX_Def.h +++ b/Multiprotocol/TX_Def.h @@ -22,6 +22,16 @@ #define PPM_MIN_125 1000 // 125% #endif +// TAARANIS PPM and channels +#if defined(TX_TARANIS) + #define PPM_MAX_100 1900 // 100% + #define PPM_MIN_100 1100 // 100% + #define PPM_MAX_125 2000 // 125% + #define PPM_MIN_125 1000 // 125% + + #define INVERT_TELEMETRY +#endif + // HISKY #if defined(TX_HISKY) #define PPM_MAX_100 1900 // 100% @@ -37,7 +47,6 @@ #define PPM_MAX_125 2050 // 125% #define PPM_MIN_125 1150 // 125% #endif - //Serial MIN MAX values #define SERIAL_MAX_100 2012 // 100% #define SERIAL_MIN_100 988 // 100% diff --git a/Multiprotocol/Telemetry.ino b/Multiprotocol/Telemetry.ino index ad5e419..af368ad 100644 --- a/Multiprotocol/Telemetry.ino +++ b/Multiprotocol/Telemetry.ino @@ -1,178 +1,3 @@ -<<<<<<< HEAD -//************************************* -// FrSky Telemetry serial code * -// By Midelic on RCGroups * -//************************************* - -#if defined TELEMETRY - #if defined FRSKYX_CC2500_INO - #define SPORT_TELEMETRY - #endif - #if defined FRSKY_CC2500_INO - #define HUB_TELEMETRY - #endif - #if defined SPORT_TELEMETRY - #define SPORT_TELEMETRY - #define SPORT_TIME 12000 - uint32_t last=0; - uint8_t sport_counter=0; - uint8_t RxBt=0; - uint8_t rssi; - uint8_t ADC2; - #endif - #if defined HUB_TELEMETRY - #define MAX_PKTX 10 - uint8_t pktx[MAX_PKTX]; - uint8_t index; - uint8_t prev_index; - uint8_t pass = 0; - #endif - #define USER_MAX_BYTES 6 - uint8_t frame[18]; - - void frskySendStuffed() - { - Serial_write(0x7E); - for (uint8_t i = 0; i < 9; i++) - { - if ((frame[i] == 0x7e) || (frame[i] == 0x7d)) - { - Serial_write(0x7D); - frame[i] ^= 0x20; - } - Serial_write(frame[i]); - } - Serial_write(0x7E); - } - - void compute_RSSIdbm(){ - - RSSI_dBm = (((uint16_t)(pktt[len-2])*18)>>5); - if(pktt[len-2] >=128) - RSSI_dBm -= 82; - else - RSSI_dBm += 65; - } - - void frsky_check_telemetry(uint8_t *pkt,uint8_t len) - { - if(pkt[1] != rx_tx_addr[3] || pkt[2] != rx_tx_addr[2] || len != pkt[0] + 3) - {//only packets with the required id and packet length - for(uint8_t i=3;i<6;i++) - pktt[i]=0; - return; - } - else - { - for (uint8_t i=3;i0) - telemetry_counter=(telemetry_counter+1)%32; - } - } - - void frsky_link_frame() - { - frame[0] = 0xFE; - if ((cur_protocol[0]&0x1F)==MODE_FRSKY) - { - compute_RSSIdbm(); - frame[1] = pktt[3]; - frame[2] = pktt[4]; - frame[3] = (uint8_t)RSSI_dBm; - frame[4] = pktt[5]*2; - } - else - if ((cur_protocol[0]&0x1F)==MODE_HUBSAN) - { - frame[1] = v_lipo*2; //v_lipo; common 0x2A=42/10=4.2V - frame[2] = frame[1]; - frame[3] = 0x00; - frame[4] = (uint8_t)RSSI_dBm; - } - frame[5] = frame[6] = frame[7] = frame[8] = 0; - frskySendStuffed(); - } - - #if defined HUB_TELEMETRY - void frsky_user_frame() - { - uint8_t indexx = 0, c=0, j=8, n=0, i; - - if(pktt[6]>0 && pktt[6]<=MAX_PKTX) - {//only valid hub frames - frame[0] = 0xFD; - frame[1] = 0; - frame[2] = pktt[7]; - - switch(pass) - { - case 0: - indexx=pktt[6]; - for(i=0;i>>>>>> refs/remotes/pascallanger/master 7E 98 10 05 F1 20 23 0F 00 A6 SWR_ID 7E 98 10 01 F1 33 00 00 00 C9 RSSI_ID 7E 98 10 04 F1 58 00 00 00 A1 BATT_ID @@ -417,24 +242,15 @@ pkt[6]|(counter++)|00 01 02 03 04 05 06 07 08 09 7E BA 10 03 F1 E2 00 00 00 18 ADC2_ID -<<<<<<< HEAD - Telemetry frames(RF) SPORT info 15 bytes - SPORT frame 6+3 bytes -======= Telemetry frames(RF) SPORT info 15 bytes payload SPORT frame valid 6+3 bytes ->>>>>>> refs/remotes/pascallanger/master [00] PKLEN 0E 0E 0E 0E [01] TXID1 DD DD DD DD [02] TXID2 6D 6D 6D 6D [03] CONST 02 02 02 02 [04] RS/RB 2C D0 2C CE //D0;CE=2*RSSI;....2C = RX battery voltage(5V from Bec) -<<<<<<< HEAD - [05] ????? 03 10 21 32 //TX/RX telemetry hand-shake bytes -======= [05] HD-SK 03 10 21 32 //TX/RX telemetry hand-shake bytes ->>>>>>> refs/remotes/pascallanger/master [06] NO.BT 00 00 06 03 //No.of valid SPORT frame bytes in the frame [07] STRM1 00 00 7E 00 [08] STRM2 00 00 1A 00 @@ -442,146 +258,6 @@ pkt[6]|(counter++)|00 01 02 03 04 05 06 07 08 09 [10] STRM4 03 03 03 03 [11] STRM5 F1 F1 F1 F1 [12] STRM6 D1 D1 D0 D0 -<<<<<<< HEAD - [13] CHKSUM1 - [14] CHKSUM2 - */ - - - void sportSend(uint8_t *p) - { - uint16_t crc_s = 0; - Serial_write(0x7e);//+9 - for (uint8_t i = 0; i < 9; i++) - { - if (i == 8) - p[i] = 0xff - crc_s; - if ((p[i] == 0x7e) || (p[i] == 0x7d)) - { - Serial_write(0x7d); - Serial_write(0x20 ^ p[i]); - } - else - Serial_write(p[i]); - if (i>0) - { - crc_s += p[i]; //0-1FF - crc_s += crc_s >> 8; //0-100 - crc_s &= 0x00ff; - } - } - } - - void sportIdle() - { - Serial_write(0x7e); - } - - void sportSendFrame() - { - //at the moment only SWR RSSI,RxBt and A2. - sport_counter = (sport_counter + 1) %9; - - for (uint8_t i=5;i<8;i++) - frame[i]=0; - - switch (sport_counter) - { - case 0: // SWR - frame[0] = 0x98; - frame[1] = 0x10; - frame[2] = 0x05; - frame[3] = 0xf1; - frame[4] = 0x20;//dummy values if swr 20230f00 - frame[5] = 0x23; - frame[6] = 0x0F; - frame[7] = 0x00; - break; - case 1: // RSSI - frame[0] = 0x98; - frame[1] = 0x10; - frame[2] = 0x01; - frame[3] = 0xf1; - frame[4] = rssi; - break; - case 2: //BATT - frame[0] = 0x98; - frame[1] = 0x10; - frame[2] = 0x04; - frame[3] = 0xf1; - frame[4] = RxBt;//a1; - break; - case 3: //ADC2(A2) - frame[0] = 0x1A; - frame[1] = 0x10; - frame[2] = 0x03; - frame[3] = 0xf1; - frame[4] = ADC2;//a2;; - break; - default: - sportIdle(); - return; - } - sportSend(frame); - } - - void process_sport_data()//only for ADC2 - { - uint8_t j=7; - if(pktt[6]>0 && pktt[6]<=USER_MAX_BYTES) - { - for(uint8_t i=0;i<6;i++) - if(pktt[j++]==0x03) - if(pktt[j]==0xF1) - { - ADC2=pktt[j+1]; - break; - } - pktt[6]=0;//new frame - } - } - #endif - - - void frskyUpdate() - { - if(telemetry_link && (cur_protocol[0]&0x1F) != MODE_FRSKYX ) - { - frsky_link_frame(); - telemetry_link=0; - return; - } - #if defined HUB_TELEMETRY - if(!telemetry_link && (cur_protocol[0]&0x1F) != MODE_HUBSAN && (cur_protocol[0]&0x1F) != MODE_FRSKYX) - { - frsky_user_frame(); - return; - } - #endif - #if defined SPORT_TELEMETRY - if ((cur_protocol[0]&0x1F)==MODE_FRSKYX) - { - if(telemetry_link) - { - process_sport_data(); - if(pktt[4]>0x36) - rssi=pktt[4]/2; - else - RxBt=pktt[4]; - telemetry_link=0; - } - uint32_t now = micros(); - if ((now - last) > SPORT_TIME) - { - sportSendFrame(); - last = now; - } - } - #endif - } - -#endif -======= [13] CHKSUM1 --|2 CRC bytes sent by RX (calculated on RX side crc16/table) [14] CHKSUM2 --| +2 appended bytes automatically RSSI and LQI/CRC bytes(len=0x0E+3); @@ -732,92 +408,92 @@ void proces_sport_data(uint8_t data) void TelemetryUpdate() { -#if defined SPORT_TELEMETRY - if (protocol==MODE_FRSKYX) - { // FrSkyX - if(telemetry_link) - { - if(pktt[4] & 0x80) - rssi=pktt[4] & 0x7F ; - else - RxBt = (pktt[4]<<1) + 1 ; - for (uint8_t i=0; i < pktt[6]; i++) - proces_sport_data(pktt[7+i]); - telemetry_link=0; + #if defined SPORT_TELEMETRY + if (protocol==MODE_FRSKYX) + { // FrSkyX + if(telemetry_link) + { + if(pktt[4] & 0x80) + rssi=pktt[4] & 0x7F ; + else + RxBt = (pktt[4]<<1) + 1 ; + for (uint8_t i=0; i < pktt[6]; i++) + proces_sport_data(pktt[7+i]); + telemetry_link=0; + } } - } -#endif + #endif // check for space in tx buffer -#ifdef BASH_SERIAL - uint8_t h ; - uint8_t t ; - h = SerialControl.head ; - t = SerialControl.tail ; - if ( h >= t ) - { - t += 64 - h ; - } - else - { - t -= h ; - } - if ( t < 32 ) - { - return ; - } + #ifdef BASH_SERIAL + uint8_t h ; + uint8_t t ; + h = SerialControl.head ; + t = SerialControl.tail ; + if ( h >= t ) + { + t += 64 - h ; + } + else + { + t -= h ; + } + if ( t < 32 ) + { + return ; + } -#else - uint8_t h ; - uint8_t t ; - h = tx_head ; - t = tx_tail ; - if ( h >= t ) - { - t += TXBUFFER_SIZE - h ; - } - else - { - t -= h ; - } - if ( t < 16 ) - { - return ; - } -#endif + #else + uint8_t h ; + uint8_t t ; + h = tx_head ; + t = tx_tail ; + if ( h >= t ) + { + t += TXBUFFER_SIZE - h ; + } + else + { + t -= h ; + } + if ( t < 16 ) + { + return ; + } + #endif #if defined DSM_TELEMETRY - if(telemetry_link && protocol == MODE_DSM ) - { // DSM - DSM_frame(); - telemetry_link=0; - return; - } + if(telemetry_link && protocol == MODE_DSM ) + { // DSM + DSM_frame(); + telemetry_link=0; + return; + } #endif if(telemetry_link && protocol != MODE_FRSKYX ) - { // FrSky + Hubsan + { // FrSky + Hubsan + Flysky AFHDS2A frsky_link_frame(); telemetry_link=0; return; } #if defined HUB_TELEMETRY - if(!telemetry_link && protocol == MODE_FRSKYD) - { // FrSky - frsky_user_frame(); - return; - } + if(!telemetry_link && protocol == MODE_FRSKYD) + { // FrSky + frsky_user_frame(); + return; + } #endif #if defined SPORT_TELEMETRY - if (protocol==MODE_FRSKYX) - { // FrSkyX - uint32_t now = micros(); - if ((now - last) > SPORT_TIME) - { - sportSendFrame(); - last += SPORT_TIME ; + if (protocol==MODE_FRSKYX) + { // FrSkyX + uint32_t now = micros(); + if ((now - last) > SPORT_TIME) + { + sportSendFrame(); + last += SPORT_TIME ; + } } - } #endif } @@ -846,19 +522,19 @@ void initTXSerial( uint8_t speed) #ifdef ENABLE_PPM if(speed==SPEED_9600) { // 9600 - #ifdef XMEGA - USARTC0.BAUDCTRLA = 207 ; - USARTC0.BAUDCTRLB = 0 ; - USARTC0.CTRLB = 0x18 ; - USARTC0.CTRLA = (USARTC0.CTRLA & 0xCF) | 0x10 ; - USARTC0.CTRLC = 0x03 ; - #else - //9600 bauds - UBRR0H = 0x00; - UBRR0L = 0x67; - UCSR0A = 0 ; // Clear X2 bit - //Set frame format to 8 data bits, none, 1 stop bit - UCSR0C = (1<>= 7 ; // Top bit if ( SerialControl.speed == SPEED_100K ) { - #ifdef INVERT_SERIAL - byteLo |= 0x02 ; // Parity bit - #else - byteLo |= 0xFC ; // Stop bits - #endif - // calc parity +#ifdef INVERT_SERIAL + byteLo |= 0x02 ; // Parity bit +#else + byteLo |= 0xFC ; // Stop bits +#endif + // calc parity temp = byte ; temp >>= 4 ; temp = byte ^ temp ; @@ -975,21 +651,21 @@ void Serial_write( uint8_t byte ) temp1 <<= 1 ; temp ^= temp1 ; temp &= 0x02 ; - #ifdef INVERT_SERIAL - byteLo ^= temp ; - #else - byteLo |= temp ; - #endif +#ifdef INVERT_SERIAL + byteLo ^= temp ; +#else + byteLo |= temp ; +#endif } else { byteLo |= 0xFE ; // Stop bit } byte <<= 1 ; - #ifdef INVERT_SERIAL - byte |= 1 ; // Start bit - #endif - uint8_t next = (SerialControl.head + 2) & 0x3f ; +#ifdef INVERT_SERIAL + byte |= 1 ; // Start bit +#endif + uint8_t next = (SerialControl.head + 2) & 0x3f ; if ( next != SerialControl.tail ) { SerialControl.data[SerialControl.head] = byte ; @@ -1007,11 +683,11 @@ void resumeBashSerial() { sei() ; // Start the transmission here - #ifdef INVERT_SERIAL - GPIOR2 = 0 ; - #else - GPIOR2 = 0x01 ; - #endif +#ifdef INVERT_SERIAL + GPIOR2 = 0 ; +#else + GPIOR2 = 0x01 ; +#endif if ( SerialControl.speed == SPEED_100K ) { GPIOR1 = 1 ; @@ -1149,4 +825,4 @@ ISR(TIMER0_OVF_vect) #endif // BASH_SERIAL #endif // TELEMETRY ->>>>>>> refs/remotes/pascallanger/master + diff --git a/Multiprotocol/YD717_nrf24l01.ino b/Multiprotocol/YD717_nrf24l01.ino index e3a3756..4e6a634 100644 --- a/Multiprotocol/YD717_nrf24l01.ino +++ b/Multiprotocol/YD717_nrf24l01.ino @@ -34,16 +34,6 @@ #define YD717_PAYLOADSIZE 8 // receive data pipes set to this size, but unused -<<<<<<< HEAD -enum { - YD717_INIT1 = 0, - YD717_BIND2, - YD717_BIND3, - YD717_DATA -}; - -======= ->>>>>>> refs/remotes/pascallanger/master static void __attribute__((unused)) yd717_send_packet(uint8_t bind) { uint8_t rudder_trim, elevator_trim, aileron_trim; @@ -149,11 +139,6 @@ static void __attribute__((unused)) yd717_init() NRF24L01_WriteReg(NRF24L01_1D_FEATURE, 0x07); // Set feature bits on NRF24L01_Activate(0x73); -<<<<<<< HEAD -static void __attribute__((unused)) YD717_init1() -{ -======= ->>>>>>> refs/remotes/pascallanger/master // for bind packets set address to prearranged value known to receiver uint8_t bind_rx_tx_addr[] = {0x65, 0x65, 0x65, 0x65, 0x65}; @@ -168,16 +153,6 @@ static void __attribute__((unused)) YD717_init1() NRF24L01_WriteRegisterMulti(NRF24L01_10_TX_ADDR, bind_rx_tx_addr, 5); } -<<<<<<< HEAD -static void __attribute__((unused)) YD717_init2() -{ - // set rx/tx address for data phase - NRF24L01_WriteRegisterMulti(NRF24L01_0A_RX_ADDR_P0, rx_tx_addr, 5); - NRF24L01_WriteRegisterMulti(NRF24L01_10_TX_ADDR, rx_tx_addr, 5); -} - -======= ->>>>>>> refs/remotes/pascallanger/master uint16_t yd717_callback() { if(IS_BIND_DONE_on) diff --git a/Multiprotocol/_Config.h b/Multiprotocol/_Config.h index 17c740a..556eea7 100644 --- a/Multiprotocol/_Config.h +++ b/Multiprotocol/_Config.h @@ -13,85 +13,6 @@ along with Multiprotocol. If not, see . */ -<<<<<<< HEAD -/** Multiprotocol module configuration file ***/ - -//Uncomment your TX type -#define TARANIS //TARANIS TAER (1100<->1900µs) -//#define TX_ER9X //ER9X AETR (988<->2012µs) -//#define TX_DEVO7 //DEVO7 EATR (1120<->1920µs) -//#define TX_SPEKTRUM //Spektrum TAER (1100<->1900µs) -//#define TX_HISKY //HISKY AETR (1100<->1900µs) - -//Uncomment to enable telemetry -#define TELEMETRY - -//Comment if a module is not installed -#define A7105_INSTALLED -#define CYRF6936_INSTALLED -//#define CC2500_INSTALLED -#define NFR24L01_INSTALLED - -//Comment a protocol to exclude it from compilation -#ifdef A7105_INSTALLED - #define JOYSWAY_A7105_INO - - #define FLYSKY_A7105_INO - #define HUBSAN_A7105_INO -#endif -#ifdef CYRF6936_INSTALLED - #define J6PRO_CYRF6936_INO - #define WK2x01_CYRF6936_INO - - #define DEVO_CYRF6936_INO - #define DSM2_CYRF6936_INO -#endif -#ifdef CC2500_INSTALLED - #define SKYARTEC_CC2500_INO - - #define FRSKY_CC2500_INO - #define FRSKYX_CC2500_INO -#endif -#ifdef NFR24L01_INSTALLED - #define HM830_NRF24L01_INO - #define CFlie_NRF24L01_INO - #define H377_NRF24L01_INO - #define ESKY150_NRF24L01_INO - #define HonTai_NRF24L01_INO - #define UDI_NRF24L01_INO - #define NE260_NRF24L01_INO - #define BlueFly_NRF24L01_INO //probleme gene id - #define FBL100_NRF24L01_INO // finir id - - #define BAYANG_NRF24L01_INO - #define CG023_NRF24L01_INO - #define CX10_NRF24L01_INO - #define ESKY_NRF24L01_INO - #define HISKY_NRF24L01_INO - #define KN_NRF24L01_INO - #define SLT_NRF24L01_INO - #define SYMAX_NRF24L01_INO - #define V2X2_NRF24L01_INO - #define YD717_NRF24L01_INO - #define MT99XX_NRF24L01_INO - #define MJXQ_NRF24L01_INO - #define SHENQI_NRF24L01_INO - #define FY326_NRF24L01_INO -#endif - -//Update this table to set which protocol and all associated settings are called for the corresponding dial number -const PPM_Parameters PPM_prot[15]= { -// Dial Protocol Sub protocol RX_Num Power Auto Bind Option -/* 1 */ {MODE_FLYSKY, Flysky , 0 , P_HIGH , AUTOBIND , 0 }, -/* 2 */ {MODE_HUBSAN, 0 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 3 */ {MODE_FRSKY , 0 , 0 , P_HIGH , NO_AUTOBIND , 0xD7 }, // D7 fine tuning -/* 4 */ {MODE_HISKY , Hisky , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 5 */ {MODE_V2X2 , 0 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 6 */ {MODE_DSM2 , DSM2 , 0 , P_HIGH , NO_AUTOBIND , 6 }, // 6 channels @ 11ms -/* 7 */ {MODE_DEVO , 0 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 8 */ {MODE_YD717 , YD717 , 0 , P_HIGH , NO_AUTOBIND , 0 }, -/* 9 */ {MODE_KN , FEILUN , 0 , P_HIGH , AUTOBIND , 0 }, -======= /**********************************************/ /** Multiprotocol module configuration file ***/ /**********************************************/ @@ -102,7 +23,7 @@ const PPM_Parameters PPM_prot[15]= { //Modify the channel order based on your TX: AETR, TAER, RETA... //Examples: Flysky & DEVO is AETR, JR/Spektrum radio is TAER, Multiplex is AERT... //Default is AETR. -#define AETR +#define EATR /**************************/ @@ -112,10 +33,10 @@ const PPM_Parameters PPM_prot[15]= { //If a chip is not installed all associated protocols are disabled. //4-in-1 modules have all RF chips installed //!!!If a RF chip is present it MUST be marked as installed!!! or weird things will happen you have been warned. -#define A7105_INSTALLED -#define CYRF6936_INSTALLED -#define CC2500_INSTALLED -#define NRF24L01_INSTALLED + #define A7105_INSTALLED + #define CYRF6936_INSTALLED +// #define CC2500_INSTALLED + #define NRF24L01_INSTALLED /****************************/ @@ -126,39 +47,55 @@ const PPM_Parameters PPM_prot[15]= { //Comment the protocols you are not using with "//" to save Flash space. //The protocols below need an A7105 to be installed -#define FLYSKY_A7105_INO -#define HUBSAN_A7105_INO + #define AFHDS2A_A7105_INO +// #define JOYSWAY_A7105_INO + #define FLYSKY_A7105_INO + #define HUBSAN_A7105_INO //The protocols below need a CYRF6936 to be installed -#define DEVO_CYRF6936_INO -#define DSM_CYRF6936_INO -#define J6PRO_CYRF6936_INO +// #define WK2x01_CYRF6936_INO //!\\ //pb voie + + #define DEVO_CYRF6936_INO + #define DSM_CYRF6936_INO +// #define J6PRO_CYRF6936_INO //The protocols below need a CC2500 to be installed -#define FRSKYD_CC2500_INO -#define FRSKYV_CC2500_INO -#define FRSKYX_CC2500_INO -#define SFHSS_CC2500_INO + #define SKYARTEC_CC2500_INO + + #define FRSKYD_CC2500_INO + #define FRSKYV_CC2500_INO + #define FRSKYX_CC2500_INO + #define SFHSS_CC2500_INO //The protocols below need a NRF24L01 to be installed -#define BAYANG_NRF24L01_INO -#define CG023_NRF24L01_INO -#define CX10_NRF24L01_INO -#define ESKY_NRF24L01_INO -#define HISKY_NRF24L01_INO -#define KN_NRF24L01_INO -#define SLT_NRF24L01_INO -#define SYMAX_NRF24L01_INO -#define V2X2_NRF24L01_INO -#define YD717_NRF24L01_INO -#define MT99XX_NRF24L01_INO -#define MJXQ_NRF24L01_INO -#define SHENQI_NRF24L01_INO -#define FY326_NRF24L01_INO -#define FQ777_NRF24L01_INO -#define ASSAN_NRF24L01_INO -#define HONTAI_NRF24L01_INO - + #define HM830_NRF24L01_INO +// #define CFlie_NRF24L01_INO //!\\ //pb voie gaz +// #define H377_NRF24L01_INO +// #define ESKY150_NRF24L01_INO +// #define HonTai_NRF24L01_INO +// #define UDI_NRF24L01_INO +// #define NE260_NRF24L01_INO +// #define BlueFly_NRF24L01_INO //probleme gene id +// #define FBL100_NRF24L01_INO // finir id //!\\ //pb voie ??? + #define INAV_NRF24L01_INO + + #define BAYANG_NRF24L01_INO + #define CG023_NRF24L01_INO + #define CX10_NRF24L01_INO + #define ESKY_NRF24L01_INO +// #define HISKY_NRF24L01_INO + #define KN_NRF24L01_INO + #define SLT_NRF24L01_INO + #define SYMAX_NRF24L01_INO + #define V2X2_NRF24L01_INO + #define YD717_NRF24L01_INO +// #define MT99XX_NRF24L01_INO +// #define MJXQ_NRF24L01_INO +// #define SHENQI_NRF24L01_INO +// #define FY326_NRF24L01_INO +// #define FQ777_NRF24L01_INO +// #define ASSAN_NRF24L01_INO +// #define HONTAI_NRF24L01_INO /**************************/ /*** TELEMETRY SETTINGS ***/ @@ -173,9 +110,9 @@ const PPM_Parameters PPM_prot[15]= { //#define INVERT_TELEMETRY //Comment a line to disable a protocol telemetry -#define DSM_TELEMETRY -#define SPORT_TELEMETRY -#define HUB_TELEMETRY + #define DSM_TELEMETRY + #define SPORT_TELEMETRY + #define HUB_TELEMETRY /****************************/ @@ -200,7 +137,8 @@ const PPM_Parameters PPM_prot[15]= { //It is important for the module to know the endpoints of your radio. //Below are some standard transmitters already preconfigured. //Uncomment only the one which matches your transmitter. -#define TX_ER9X //ER9X/ERSKY9X/OpenTX ( 988<->2012µs) +//#define TX_ER9X //ER9X/ERSKY9X/OpenTX ( 988<->2012µs) +#define TX_TARANIS //TARANIS TAER (1100<->1900µs) //#define TX_DEVO7 //DEVO (1120<->1920µs) //#define TX_SPEKTRUM //Spektrum (1100<->1900µs) //#define TX_HISKY //HISKY (1100<->1900µs) @@ -225,7 +163,7 @@ const PPM_Parameters PPM_prot[15]= { //Example: You can associate multiple times the same protocol to different dial positions to take advantage of the model match (RX_Num) const PPM_Parameters PPM_prot[15]= { // Dial Protocol Sub protocol RX_Num Power Auto Bind Option -/* 1 */ {MODE_FLYSKY, Flysky , 0 , P_HIGH , NO_AUTOBIND , 0 }, +/* 1 */ {MODE_FLYSKY, Flysky , 0 , P_HIGH , AUTOBIND , 0 }, /* 2 */ {MODE_HUBSAN, 0 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 3 */ {MODE_FRSKYD, 0 , 0 , P_HIGH , NO_AUTOBIND , 40 }, // option=fine freq tuning /* 4 */ {MODE_HISKY , Hisky , 0 , P_HIGH , NO_AUTOBIND , 0 }, @@ -234,7 +172,6 @@ const PPM_Parameters PPM_prot[15]= { /* 7 */ {MODE_DEVO , 0 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 8 */ {MODE_YD717 , YD717 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 9 */ {MODE_KN , WLTOYS , 0 , P_HIGH , NO_AUTOBIND , 0 }, ->>>>>>> refs/remotes/pascallanger/master /* 10 */ {MODE_SYMAX , SYMAX , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 11 */ {MODE_SLT , 0 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 12 */ {MODE_CX10 , CX10_BLUE , 0 , P_HIGH , NO_AUTOBIND , 0 }, @@ -242,11 +179,7 @@ const PPM_Parameters PPM_prot[15]= { /* 14 */ {MODE_BAYANG, 0 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 15 */ {MODE_SYMAX , SYMAX5C , 0 , P_HIGH , NO_AUTOBIND , 0 } }; -<<<<<<< HEAD -/* Available protocols and associated sub protocols: -======= /* Available protocols and associated sub protocols to pick and choose from ->>>>>>> refs/remotes/pascallanger/master MODE_FLYSKY Flysky V9X9 @@ -254,28 +187,18 @@ const PPM_Parameters PPM_prot[15]= { V912 MODE_HUBSAN NONE -<<<<<<< HEAD - MODE_FRSKY -======= MODE_FRSKYD ->>>>>>> refs/remotes/pascallanger/master NONE MODE_HISKY Hisky HK310 MODE_V2X2 NONE -<<<<<<< HEAD - MODE_DSM2 - DSM2 - DSMX -======= MODE_DSM DSM2_22 DSM2_11 DSMX_22 DSMX_11 ->>>>>>> refs/remotes/pascallanger/master MODE_DEVO NONE MODE_YD717 @@ -308,142 +231,26 @@ const PPM_Parameters PPM_prot[15]= { MODE_BAYANG NONE MODE_FRSKYX -<<<<<<< HEAD - NONE -======= CH_16 CH_8 ->>>>>>> refs/remotes/pascallanger/master MODE_ESKY NONE MODE_MT99XX MT99 H7 YZ -<<<<<<< HEAD -======= LS ->>>>>>> refs/remotes/pascallanger/master MODE_MJXQ WLH08 X600 X800 H26D -<<<<<<< HEAD + E010 MODE_SHENQI NONE MODE_FY326 FY326 FY319 - -RX_Num value between 0 and 15 - -Power P_HIGH or P_LOW - -Auto Bind AUTOBIND or NO_AUTOBIND - -Option value between 0 and 255. 0xD7 or 0x00 for Frsky fine tuning. -*/ - -//****************** -//TX definitions with timing endpoints and channels order - -// Turnigy PPM and channels -#if defined(TX_ER9X) - #define PPM_MAX 2140 - #define PPM_MIN 860 - #define PPM_MAX_100 2012 - #define PPM_MIN_100 988 - #define AETR -#endif - -// Devo PPM and channels -#if defined(TX_DEVO7) - #define PPM_MAX 2100 - #define PPM_MIN 900 - #define PPM_MAX_100 1920 - #define PPM_MIN_100 1120 - #define EATR -#endif - -// SPEKTRUM PPM and channels -#if defined(TX_SPEKTRUM) - #define PPM_MAX 2000 - #define PPM_MIN 1000 - #define PPM_MAX_100 1900 - #define PPM_MIN_100 1100 - #define TAER -#endif - -// TARANIS PPM and channels -#if defined(TARANIS) - #define PPM_MAX 2000 - #define PPM_MIN 1000 - #define PPM_MAX_100 1900 - #define PPM_MIN_100 1100 - #define EATR -#endif - -// HISKY -#if defined(TX_HISKY) - #define PPM_MAX 2000 - #define PPM_MIN 1000 - #define PPM_MAX_100 1900 - #define PPM_MIN_100 1100 - #define AETR -#endif - -#if defined(EATR) - enum chan_order{ - ELEVATOR=0, - AILERON, - THROTTLE, - RUDDER, - }; -#endif - -#if defined(TAER) - enum chan_order{ - THROTTLE=0, - AILERON, - ELEVATOR, - RUDDER, - }; -#endif - -#if defined(AETR) - enum chan_order{ - AILERON =0, - ELEVATOR, - THROTTLE, - RUDDER, - }; -#endif -enum chan_orders{ - AUX1 =4, - AUX2, - AUX3, - AUX4, - AUX5, - AUX6, - AUX7, - AUX8, - AUX9 -}; - -#define PPM_MIN_COMMAND 1250 -#define PPM_SWITCH 1550 -#define PPM_MAX_COMMAND 1750 - -//Uncoment the desired serial speed -#define BAUD 100000 -//#define BAUD 125000 -======= - E010 - MODE_SHENQI - NONE - MODE_FY326 - NONE MODE_SFHSS NONE MODE_J6PRO @@ -458,6 +265,7 @@ enum chan_orders{ FORMAT_HONTAI FORMAT_JJRCX1 FORMAT_X5C1 + FQ777-951 */ // RX_Num is used for model match. Using RX_Num values different for each receiver will prevent starting a model with the false config loaded... @@ -471,5 +279,4 @@ enum chan_orders{ // As an exxample, it's usefull for the WLTOYS F929/F939/F949/F959 (all using the Flysky protocol) which requires a bind at each power up. // Option: the value is between -127 and +127. -// The option value is only valid for some protocols, read this page for more information: https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/Protocols_Details.md ->>>>>>> refs/remotes/pascallanger/master +// The option value is only valid for some protocols, read this page for more information: https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/Protocols_Details.md \ No newline at end of file diff --git a/Multiprotocol/_EEPROM.txt b/Multiprotocol/_EEPROM.txt new file mode 100644 index 0000000..4e78f4e --- /dev/null +++ b/Multiprotocol/_EEPROM.txt @@ -0,0 +1,4 @@ +0-4 rx Flysky afhds2a +10+ 0-4 tx id + +10 réf gene id +30+6 devo reset Autobind auto \ No newline at end of file diff --git a/Multiprotocol/calcul chanel.ods b/Multiprotocol/calcul chanel.ods new file mode 100644 index 0000000000000000000000000000000000000000..4f8f154691595740efa31c6e6ad0388389c88476 GIT binary patch literal 19588 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 Yl+Xd*tiYo*fV=pCumD*8{BsBK0POsd(f|Me literal 0 HcmV?d00001 diff --git a/Multiprotocol/iface_a7105.h b/Multiprotocol/iface_a7105.h index f8792d9..5df2714 100644 --- a/Multiprotocol/iface_a7105.h +++ b/Multiprotocol/iface_a7105.h @@ -89,6 +89,7 @@ enum A7105_MASK { enum { INIT_FLYSKY, + INIT_FLYSKY_AFHDS2A, INIT_HUBSAN }; diff --git a/Multiprotocol/iface_nrf24l01.h b/Multiprotocol/iface_nrf24l01.h index 6aab6c1..cc8b6fe 100644 --- a/Multiprotocol/iface_nrf24l01.h +++ b/Multiprotocol/iface_nrf24l01.h @@ -103,13 +103,8 @@ enum { //#define NOP 0xFF // XN297 emulation layer -<<<<<<< HEAD -#define XN297_UNSCRAMBLED 8 - -======= enum { XN297_UNSCRAMBLED = 0, XN297_SCRAMBLED }; ->>>>>>> refs/remotes/pascallanger/master #endif \ No newline at end of file diff --git a/Multiprotocol/multi.lua b/Multiprotocol/multi.lua deleted file mode 100644 index 07721ae..0000000 --- a/Multiprotocol/multi.lua +++ /dev/null @@ -1,94 +0,0 @@ --- Multiprotocole Midelic et Pascallanger -local debut = 0 -local tps = 0 -local tpsact = 1024 -local mix, mixe -local channel - -local inp = { - { "Protocole", VALUE, 1, 26, 2 }, - { "Switch", SOURCE } -} --- 6 7 8 15 16 17 24 25 26 --- 4 5 12 13 14 21 22 23 --- 1 2 3 9 10 11 18 19 20 -local out = { "Bind", "Gaz", "Aile", "Prof", "Dir" } - -local function run_func(proto, sw) - -- test mixage lua - if debut == 0 then - -- passage en lua - for channel = 0, 3, 1 do - local mix = model.getMix(channel, 0) - mix_source = mix["source"] - if mix_source < 33 or 1 then - model.deleteMix(channel, 0) - mix["source"] = channel + 34 - mix["name"] = "Lua " - model.insertMix(channel, 0, mix) - end - end - end - -- inter install - channel = 4 - mix = { name="Raz Bind", source=33, weight=100, switch=0, multiplex=REPLACE } - count = model.getMixesCount(channel + 0) - if count == 0 and inter == 1 then - model.insertMix(channel + 0, 0, mix) - elseif count == 1 and inter == 0 then - mixe = model.getMix(channel, 0) - if mixe["name"] == mix["name"] then - model.deleteMix(channel, 0) - end - end - - -- delais init - if proto ~= debut then - tps = getTime() + 250 -- delai pour mini 12 cycle PPM - tpsact = 1024 - debut = proto - end - - local gaz = 1024 - local ail = 0 - local dir = 0 - local pro = 0 - - if tpsact == 0 and sw < 100 then - -- reprise valeur input - pro = getValue(1) - ail = getValue(2) - gaz = getValue(3) - dir = getValue(4) - elseif tpsact ~= 0 then - -- decallage pour position memo (centre) - if proto > 4 then proto = proto + 1 end - - -- calcul position - -- decallage pour > 18 - if proto > 18 then - ail = 1024 - proto = proto - 18 - end - -- decallage pour > 9 - if proto > 9 then - ail = -1024 - proto = proto - 9 - end - - if proto < 4 then pro = -1024 end - if proto > 6 then pro = 1024 end - - if proto % 3 == 1 then dir = -1024 end - if proto % 3 == 0 then dir = 1024 end - - if tps < getTime() then - tpsact = tpsact - 512 - if tpsact>-20 then tps = getTime() + 250 end - end - sw = tpsact - end - - return sw, gaz, ail, pro, dir -end -return { run=run_func, input=inp, output=out} diff --git a/Multiprotocol/multiprotocol.h b/Multiprotocol/multiprotocol.h index 672b922..3ca59f2 100644 --- a/Multiprotocol/multiprotocol.h +++ b/Multiprotocol/multiprotocol.h @@ -16,7 +16,7 @@ // Check selected board type #ifndef XMEGA #if not defined(ARDUINO_AVR_PRO) && not defined(ARDUINO_AVR_MINI) && not defined(ARDUINO_AVR_NANO) - #error You must select the board type "Arduino Pro or Pro Mini" or "Arduino Mini" +// #error You must select the board type "Arduino Pro or Pro Mini" or "Arduino Mini" #endif #if F_CPU != 16000000L || not defined(__AVR_ATmega328P__) #error You must select the processor type "ATmega328(5V, 16MHz)" @@ -24,10 +24,27 @@ #endif //****************** -// Protocols +// Protocols max 31 x2 //****************** enum PROTOCOLS { + MODE_JOYSWAY = 40, // =>A7105 + MODE_WK2x01 = 41, // =>CYRF6936 + MODE_SKYARTEC = 42, // =>CC2500 + + MODE_UDI = 44, // =>NRF24L01 + MODE_FBL100 = 45, // =>NRF24L01 + + MODE_HM830 = 50, // =>NRF24L01 + MODE_CFLIE = 51, // =>NRF24L01 + MODE_H377 = 52, // =>NRF24L01 + MODE_ESKY150 = 53, // =>NRF24L01 + MODE_BlueFly = 54, // =>NRF24L01 + MODE_NE260 = 55, // =>NRF24L01 + + MODE_AFHDS2A = 31, // =>A7105 + MODE_INAV = 57, // =>NRF24L01 + MODE_SERIAL = 0, // Serial commands MODE_FLYSKY = 1, // =>A7105 MODE_HUBSAN = 2, // =>A7105 @@ -57,18 +74,17 @@ enum PROTOCOLS MODE_HONTAI = 26, // =>NRF24L01 MODE_OPENLRS = 27, // =>OpenLRS hardware }; - enum Flysky { - Flysky = 0, - V9X9 = 1, - V6X6 = 2, - V912 = 3 + Flysky=0, + V9X9=1, + V6X6=2, + V912=3 }; enum Hisky { - Hisky = 0, - HK310 = 1 + Hisky=0, + HK310=1 }; enum DSM { @@ -80,38 +96,38 @@ enum DSM }; enum YD717 { - YD717 = 0, - SKYWLKR = 1, - SYMAX4 = 2, - XINXUN = 3, - NIHUI = 4 + YD717=0, + SKYWLKR=1, + SYMAX4=2, + XINXUN=3, + NIHUI=4 }; enum KN { - WLTOYS = 0, - FEILUN = 1 + WLTOYS=0, + FEILUN=1 }; enum SYMAX { - SYMAX = 0, - SYMAX5C = 1 + SYMAX=0, + SYMAX5C=1 }; enum CX10 { - CX10_GREEN = 0, - CX10_BLUE = 1, // also compatible with CX10-A, CX12 - DM007 = 2, - Q282 = 3, - JC3015_1 = 4, - JC3015_2 = 5, - MK33041 = 6, - Q242 = 7 + CX10_GREEN = 0, + CX10_BLUE=1, // also compatible with CX10-A, CX12 + DM007=2, + Q282=3, + JC3015_1=4, + JC3015_2=5, + MK33041=6, + Q242=7 }; enum CG023 { - CG023 = 0, - YD829 = 1, - H8_3D = 2 + CG023 = 0, + YD829 = 1, + H8_3D = 2 }; enum MT99XX { @@ -135,9 +151,41 @@ enum FRSKYX }; enum HONTAI { - FORMAT_HONTAI = 0, + FORMAT_HONTAI = 0, FORMAT_JJRCX1 = 1, - FORMAT_X5C1 = 2 + FORMAT_X5C1 = 2, + FORMAT_FQ777 = 3 +}; + +enum HUBSAN +{ + H107 = 0, + H301 = 1, + H501 = 2 +}; +enum FY326 +{ + FY326 = 0, + FY319 = 1 +}; + +enum WK2X01 +{ + WK2801 = 0, + WK2601 = 1, + WK2401 = 2 +}; + +enum UDI +{ + U816_V1 = 0, + U816_V2 = 1, + U839_2014 = 2 +}; +enum FBL100 +{ + FBL100 = 0, + HP100 = 1 }; #define NONE 0 @@ -188,7 +236,7 @@ struct PPM_Parameters #define IS_RX_FLAG_on ( ( protocol_flags & _BV(0) ) !=0 ) // #define CHANGE_PROTOCOL_FLAG_on protocol_flags |= _BV(1) -#define CHANGE_PROTOCOL_FLAG_off protocol_flags &= ~_BV(1) +#define CHANGE_PROTOCOL_FLAG_off protocol_flags &= ~_BV(1) #define IS_CHANGE_PROTOCOL_FLAG_on ( ( protocol_flags & _BV(1) ) !=0 ) // #define POWER_FLAG_on protocol_flags |= _BV(2) @@ -206,8 +254,9 @@ struct PPM_Parameters #define BIND_BUTTON_FLAG_on protocol_flags |= _BV(5) #define BIND_BUTTON_FLAG_off protocol_flags &= ~_BV(5) #define IS_BIND_BUTTON_FLAG_on ( ( protocol_flags & _BV(5) ) !=0 ) + //PPM RX OK -#define PPM_FLAG_off protocol_flags &= ~_BV(6) +#define PPM_FLAG_off protocol_flags &= ~_BV(6) #define PPM_FLAG_on protocol_flags |= _BV(6) #define IS_PPM_FLAG_on ( ( protocol_flags & _BV(6) ) !=0 ) //Bind flag @@ -227,19 +276,21 @@ struct PPM_Parameters #define RX_MISSED_BUFF_on protocol_flags2 |= _BV(2) #define IS_RX_MISSED_BUFF_on ( ( protocol_flags2 & _BV(2) ) !=0 ) //TX Pause -#define TX_MAIN_PAUSE_off protocol_flags2 &= ~_BV(3) -#define TX_MAIN_PAUSE_on protocol_flags2 |= _BV(3) -#define IS_TX_MAIN_PAUSE_on ( ( protocol_flags2 & _BV(3) ) !=0 ) +#define TX_MAIN_PAUSE_off protocol_flags2 &= ~_BV(3) +#define TX_MAIN_PAUSE_on protocol_flags2 |= _BV(3) +#define IS_TX_MAIN_PAUSE_on ( ( protocol_flags2 & _BV(3) ) !=0 ) + #define TX_RX_PAUSE_off protocol_flags2 &= ~_BV(4) -#define TX_RX_PAUSE_on protocol_flags2 |= _BV(4) -#define IS_TX_RX_PAUSE_on ( ( protocol_flags2 & _BV(4) ) !=0 ) +#define TX_RX_PAUSE_on protocol_flags2 |= _BV(4) +#define IS_TX_RX_PAUSE_on ( ( protocol_flags2 & _BV(4) ) !=0 ) + #define IS_TX_PAUSE_on ( ( protocol_flags2 & (_BV(4)|_BV(3)) ) !=0 ) //******************** //*** Blink timing *** //******************** -#define BLINK_BIND_TIME 100 -#define BLINK_SERIAL_TIME 500 +#define BLINK_BIND_TIME 100 +#define BLINK_SERIAL_TIME 500 #define BLINK_BAD_PROTO_TIME_LOW 1000 #define BLINK_BAD_PROTO_TIME_HIGH 50 @@ -416,30 +467,30 @@ Serial: 100000 Baud 8e2 _ xxxx xxxx p -- RxNum value is 0..15 (bits 0..3) Type is 0..7 <<4 (bit 4..6) sub_protocol==Flysky - Flysky 0 - V9x9 1 - V6x6 2 - V912 3 + Flysky 0 + V9x9 1 + V6x6 2 + V912 3 sub_protocol==Hisky - Hisky 0 - HK310 1 + Hisky 0 + HK310 1 sub_protocol==DSM DSM2_22 0 DSM2_11 1 DSMX_22 2 DSMX_11 3 sub_protocol==YD717 - YD717 0 - SKYWLKR 1 - SYMAX4 2 - XINXUN 3 - NIHUI 4 + YD717 0 + SKYWLKR 1 + SYMAX4 2 + XINXUN 3 + NIHUI 4 sub_protocol==KN - WLTOYS 0 - FEILUN 1 + WLTOYS 0 + FEILUN 1 sub_protocol==SYMAX - SYMAX 0 - SYMAX5C 1 + SYMAX 0 + SYMAX5C 1 sub_protocol==CX10 CX10_GREEN 0 CX10_BLUE 1 // also compatible with CX10-A, CX12 @@ -464,14 +515,18 @@ Serial: 100000 Baud 8e2 _ xxxx xxxx p -- X800 2 H26D 3 E010 4 + sub_protocol==FY326 + FY326 0 + FY319 1 sub_protocol==FRSKYX CH_16 0 CH_8 1 sub_protocol==HONTAI - FORMAT_HONTAI 0 - FORMAT_JJRCX1 1 - FORMAT_X5C1 2 - Power value => 0x80 0=High/1=Low + HONTAI 0 + JJRCX1 1 + X5C1 2 + FQ777-521 3 + Power value => 0x80 0=High/1=Low Stream[3] = option_protocol; option_protocol value is -127..127 Stream[4] to [25] = Channels @@ -483,3 +538,4 @@ Serial: 100000 Baud 8e2 _ xxxx xxxx p -- 2047 +125% Channels bits are concatenated to fit in 22 bytes like in SBUS protocol */ + diff --git a/Multiprotocol/opentx-multi-2015-24-12.bin b/Multiprotocol/opentx-multi-2015-24-12.bin deleted file mode 100644 index fe1836e7e5e2ddc5d8ea5bdd6facd0cd5ea034a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362852 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

nU^30%Xmx_3Fk>w;p$o6Gj0d_60`S);=FomNNTf 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≧K*L%BUCvXm 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 diff --git a/Multiprotocol/opentx.bin b/Multiprotocol/opentx.bin deleted file mode 100644 index 8e886c42a6124e07e42f51ab36b361274825ac8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228420 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%0DYKT495;W&8fO?RU0}70G_6 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 rU<7OfxblzN{@SQsl}CU2%7^hy diff --git a/Multiprotocol/sync.ffs_db b/Multiprotocol/sync.ffs_db new file mode 100644 index 0000000000000000000000000000000000000000..1d9eca37de4989b7134c95087de83d9f11ac52d1 GIT binary patch literal 942 zcmV;f15x}&a%E*kX>4Uvd2V9>2><{90RR915C8xG6}jz98GuD5n~;0J#ko*5fdc>l z0ssI20K)+Q000000516G{ShwB(BQ>={Nes?Jj~z6A2S>rxSE`I#fljprV72}yC(Lf z!g2?JnFbo3!Zvo1ha0X`@oI2z`_~R%04|`QDmF|DOU)WyL$G^plFGvyDOXDif_cx| z{8bjy>1I=)$m|)RG?j+snR70g4_MOI*Lk4VQ1WC!P57jB*YOY|{ZK<{^1O@r!HYGq^&a(NXty&FiSmA{H$Z8V&3OTxAnK)4Se(FCen3P^D z5te?9jXDquRg6_D#=B$iEYCKiRN|>r*gk9=cVtqjU5bZMde}gMw+SUo8*Ky<-)_(t z9TGN{lcB^3nda$)jk#PM3H0q1ntpNZ4 z00sa600000cwTjs+bhFi7{`CMp)@W?A&CnS+iqu=^Z7KBQZAKUI;8jml-;@_H7Ux4 z+{p#ETsf4IB_bJy%^YGmOxf1g#rIv$YPCK+eV+GuzVExzoZx^K{TQR)&w%~NYf6g# z(rX(PA>t=-ZqQOvuZdeNF`ksbZ33?ZA1vm+rE#9D4UgTC{{rXvUfm{MCHSiaZWs6& z=E`t;$$t)>yD~|<2A+e>ed1TB&vf{S*9v{>1dk6Mqm}nxhWhosE%Mic8w&S`Hwe5D zT%Gp@eLZ=c%Qg5~_>%lh@RW>lUbE&{jylb~$lMQ4nljff^7TwFkiQvzmA8QJnwO|v zi}%$h+{0F3|M%$I5#hYbQJ<&e-X?e+gm>{M@OF4+viTi3!H+GRyAE?@jPO1KLS9dp zD_zMk1a2tee4qdKuhhQ?{1yDr$>(_k@1J09!dyEA-1i;z)>Ga?P?+lj^{(+-%Dn@A z=M?8?7V_#8cv#4*OQ`P_cn|opGS?UUPM43)KacmK{;xXV$x`lNuh91g{y7`pp9pyV Q5bwD#?n%@B0IsWEV38Tn)&Kwi literal 0 HcmV?d00001