Advanced Search

Search Results (Searched for: cx-10)

  • cluxter
  • cluxter's Avatar
29 Apr 2018 23:39
Replied by cluxter on topic fy326 q7 quadcopter

fy326 q7 quadcopter

Category: Model Configs

gonzalovalenzuela wrote: my module is working, I can bind with my Syma X5, X11, JJRC H8C and the CX-10 , so I will review the settings on the ini file, maybe I'm doing something wrong


I have not been able to bind my t8sg / 7e with a copy of syma; I think it's bayangtoys x8 and it does not bind either. Do you bind well with Syma X5?
  • C0ckpitvue 777
  • C0ckpitvue 777's Avatar
30 Jan 2018 00:30
Replied by C0ckpitvue 777 on topic Juncheng 3015-1 / 3015-2

Juncheng 3015-1 / 3015-2

Category: Model Configs

Yes,try the cx-10 blue board protocol.Do you have the nfr24l01 module in your devo?
  • andy.stow.away
  • andy.stow.away's Avatar
25 Jan 2018 13:55
Replied by andy.stow.away on topic Cheerson CX-10W CX-10WD WIFI Profotol?

Cheerson CX-10W CX-10WD WIFI Profotol?

Category: Protocol Development

Anyone interested in doing the same for the new cheerson cx-of drone?

www.cheersonhobby.com/en-US/Home/ProductDetail/149
  • C0ckpitvue 777
  • C0ckpitvue 777's Avatar
24 Jan 2018 20:37
Replied by C0ckpitvue 777 on topic Juncheng 3015-1 / 3015-2

Juncheng 3015-1 / 3015-2

Category: Model Configs

Did you scroll down in the options page of the cx-10 ini and high light cx10 next to reinit button and press enter?
  • campbell
  • campbell's Avatar
09 Dec 2017 18:54
Replied by campbell on topic PROPEL Micro X01 atom

PROPEL Micro X01 atom

Category: Protocol Development

no luck on any of the cx-10 sorry
  • dvBilly
  • dvBilly's Avatar
13 Nov 2017 17:50
Replied by dvBilly on topic SOLVED: CX-10 binds but does not ACK packets

SOLVED: CX-10 binds but does not ACK packets

Category: Protocol Development

Thank you for the response and the information! Soon I will test it on the yd719 as well.
  • hexfet
  • hexfet's Avatar
12 Nov 2017 22:51
Replied by hexfet on topic SOLVED: CX-10 binds but does not ACK packets

SOLVED: CX-10 binds but does not ACK packets

Category: Protocol Development

Not irrelevant - this is a bug. I have made a PR with a fix and once that's merged the nightly builds will not have this issue.

The Use A.ACK option was added recently to accommodate nRF clone chips that don't support auto-acknowledge correctly. This change missed updating the bind procedure, which uses auto-ack to skip binding if an already bound receiver is detected. The fix is to always go through the bind procedure when the option is set to No.

I've tested this with my yd717 and it fixes the issue you describe.

Thanks!
  • dvBilly
  • dvBilly's Avatar
12 Nov 2017 18:02
Replied by dvBilly on topic SOLVED: CX-10 binds but does not ACK packets

SOLVED: CX-10 binds but does not ACK packets

Category: Protocol Development

Being a beginner to deviation, this post may be just irrelevant (if so, I apologize).

A couple of days ago I received my first deviation-capable remote controller. In fact it is the 2nd receiver I ever bought by itself (and not as part of some RTF package, that is how much of a beginner I am). I decided to train myself on it using my toy quadcopters. The Syma X5SC worked fine especially after installing the settings found in another thread of this forum. So did my other Symas (X125S and an X5H) using default settings.

But the reason I write this here is that I read the part in the first message about the yd717 protocol and "sending bind packets with the occasional data packet (every ACK timeout?)". This seems to be related to the issues I had with my Attop yd719 Skyline, the next toy on the list.

Here I tried the yd717 protocol with various formats (yd717,Sky Wlkr etc) with ACK=YES. Many of the formats did bind with the quad-copter just fine, but controlling it was next to impossible: slow responses, extreme and erratic movements etc (I have a video on that). I messed a little with the mixer but to no avail. Then, while experimenting I turned ACK to NO in the yd717 options (after it the initial bind) and then the little thing was flying fine and perfectly controllable. Only problem was that with ACK=YES it does not bind when turned on. So now I do the initial bind with ACK=YES and then turn it to ACK=NO to fly it. Besides that, no issues. Since I know very little about those things, if there is a better way to do this it would be educational for me to know.

Cheers to all.
  • daive
  • daive's Avatar
07 Nov 2017 06:40 - 25 Dec 2017 06:14
JUMPER T8SG My problem. was created by daive

JUMPER T8SG My problem.

Category: General Discussions

RCヘリ&ドローン のんびり飛行:マルチプロトコル送信機 Jumper T8SG
日本語翻訳がありました。全文かどうかは、未確認です。
blogs.yahoo.co.jp/sab_goblin/42797398.html
blogs.yahoo.co.jp/sab_goblin/42797407.html

T8SG is my Epoch-making Transceiver.
But there are several problems.
If what kind of information is taken out, is help obtained?
All items were bought in 2017/AUG-2017/NOV.The date of production is unclear.
(transrated : www.excite.co.jp/world/english/ )

0. Jumper T8SG : t8sg-v5.x.x-2017-10-05 , lastest version ?
→vlad_vy replied the topic: Jumper T8SG builds www.deviationtx.com/forum/builds/7346-ju...uilds?start=80#65802

2017-12-18版 :https://www.deviationtx.com/downloads-new/category/829-2017-12-18
ファイル名  :deviation-t8sg-v5.0.0-4810939.zip

 Manual : download.appinthestore.com.s3.amazonaws....%20User%20Manual.pdf

 The Japanese user is waiting for Japanese radio law correspondence. ((((oノ´3`)ノ

↓↓ TARANIS Q X7 & iRX4 Plus Can be used . (14-DEC-2017)↓↓
1. JJR/C H36 , Protocol : MJXq / E010,Tx power 30mw-100uW, It can't be bind. , Even if it can be bind, no control.
→ E011 and E010 with Multiprotocol T8SG :https://www.deviationtx.com/forum/6-general-discussions/7397-e011-and-e010-with-multiprotocol-t8sg#65424
 E010 latency with T8SG : www.deviationtx.com/forum/6-general-disc...ency-with-t8sg#65539
 more.
'(EDIT:13/NOV/2017)
 プロトコル変更で融通きかなくなった6mmモーター系 : jizomae.blog.jp/archives/73428370.html
→ My fuselage was bought from amazon.co.jp. 0615 motor ToyQuad is very inexpensive.

  jjrc h36 mjxq e010 protocol bind problems
   www.deviationtx.com/forum/protocol-devel...otocol-bind-problems

↑↑ TARANIS Q X7 & iRX4 Plus Can be used . (14-DEC-2017)↑↑

2.Cheerson CX-10SE:BLACK , Protocol : CX10 / Blue-A , Tx pw : 10mW, No problem. , A BLACK orginal-controller can't be used by ivory.
3.Cheerson CX-10SE:IVORY WHITE , Protocol : CX10 / Blue-A & Green & other , Tx pw : 10mW, It can't be bind., A ivory orginal-controller can't be used by Black

4.Floureon F10 WHITE , Protocol : H8-3D / H8-3D , Tx pw : 10mW , No problem.
5.Floureon F10 BLUE , Protocol : H8-3D / H8-3D , Tx pw : 10mW , No problem .
6.JJR/C H20 , Protocol : H8-3D / H8-3D , Tx pw : 10mW , No problem .
7.JJR/C H20H , Protocol : H8-3D / H20H , Tx pw : 10mW , It can be bind. but , propeller Starting method is unclear.
 Altitude Hold Mode Quad , H20H controller : propeller starting , A throttle is pushed. Takeoff , throttle up.
⇒Select ʺH20Hʺ format, CH5 = motors on/off:https://docs.google.com/spreadsheets/d/1nBHzT3VWF6ShAhOqRB5y0Bcc7aXFuRFFlQkHn1RIM84/edit#gid=0
( 09/NOV/2017 , for DEVO )

8.Eachine E012 , It isn't being checked in T8SG.
→ EAchine E012 :https://www.deviationtx.com/forum/protocol-development/7150-eachine-e012?limitstart=0

9.FuriBee F36 , It isn't being checked in T8SG. , F36 / T36 can share a controller.
10.GoolRC T36(TOMTOP T36) , It isn't being checked in T8SG. , F36 / T36 can share a controller.
→ Furibee F36 protocol attempt :https://www.deviationtx.com/forum/protocol-development/6806-furibee-f36-protocol-attempt?limitstart=0

11.HELIWAY 901HS , It isn't being checked in T8SG. , throttle nutral by a spring. ,can share a controller. I have that checking ly.
 Altitude Hold Mode Quad , 901HS controller : propeller starting , Left:Bottom Left corner & Right:Bottom right corner. Takeoff , takeoff button.
12.HELIWAY 901S , It isn't being checked in T8SG. ,can share a controller. no nutral spring.I have that checking ly.
※DBPOWER 901HS doesn't have it, so it's unclear. Holy Stone HS190 / HS190W look like HELIWAY 190S / 190HS.
 SHIRUI 901HS = HELIWAY 901HS.
 DBPOWER 901HS : www.amazon.co.jp & www.mercari.com/jp/ , no camera , no wifi fpv , Altitude Hold Mode (13/NOV/2017)

13.FDJ Z201YS , It isn't being checked in T8SG.
   Altitude Hold Mode Quad

20. S9 Micro Foldable RC Drone , It isn't being checked in T8SG.
   STANDARD : No Altitude Hold Mode.
   Wifi FPV : Altitude Hold Mode Quad

14.FQ777 124 , Protocol : FQ777 / 124 SSV , Tx pw : 10mW , can share a controller. I have that checking ly.
15.FQ777 124+ , Protocol : FQ777 / 124 SSV , Tx pw : 10mW ,can share a controller. but,124+ battery exchange can be done, so it's thick.I have that checking ly.

16.HT F807 , It isn't being checked in T8SG.

17.Cheerson CX-37 ( CX- 37WD ), It isn't being checked in T8SG. , CX-37-TX controller can be bind.
18.Cheerson CX-37-TX ( CX-37WD-TX ), It isn't being checked in T8SG.

19.Cheerson CX-STARS / DHD D1 , It isn't being checked in T8SG.
  DRONE D1 / PXY nano / Fayee FY804 / SKEYE Pico , same ?
  Floureon FX10 ?

21.JJRC H67 , Protocol : Bayang , Tx pw : 10mW , can share a controller, RED / WHITE . I have that checking ly.
0716 motor, 3.7V / 260mAh / 30C lipo , (^◇^)
  H67 / E011 / E011C : Look like same.
''
1 / 9 / 10 / 21 : Propeller look like same.
2 / 3 / 4 / 5 / 14 / 15 :Propeller look like same.
2 / 3 / 4 / 5    :Propeller guard look like same. insertion hole : Cross hole
6 / 7       :Propeller look like same : 2 / 3 / 4 / 5 / 14 / 15
14 / 15      :Propeller guard look laike same. It's difficult to load and it comes off right now.
11 / 12 / 13 / 20 : Propeller , Propeller guard , look like same.
17 / 18     :Propeller , It's a little shorter than 11 / 12 / 13 /20
Seller,found only here? : www.linparts.com/cheerson-cx37tx-mini-rc...c454bc8#.WhQG0eRlJ9A

Betaflight & F3 FC & DSM2/DSMX
Min / Max Limit が±120でも、Scale - / + が100 だと、スティックの値がフルスケールで反映されないので、
この場合は、(スロットルの例です。この設定をしないと、モーターの起動/停止が出来ない。 )
Model menu:Mixer:1-TR:Min Limit -120 / Max Limit 120
Model menu:Mixer:1-TR:Scale- / Scale+ : 100   <<これが100だと✖
↓ ↓ ↓
Model menu:Mixer:1-TR:Min Limit -120 / Max Limit 120
Model menu:Mixer:1-TR:Scale- / Scale+ : 120   <<これが120だと〇
としてみる。私の処は、150 / 100 だったので、150 / 150 としました。
aurora68+deviation:マイクロヘリABC:http://cyuryo.cocolog-nifty.com/blog/2017/05/aurora68deviati.html
2.2 Scaleの設定
に、記述があります。「マイクロヘリABC」さんに感謝(^^♪(2017-DEC-25)
他に、BF:CLIでの DSM2/DSMX バインド方法の例があります。
  • Wene001
  • Wene001's Avatar
04 Nov 2017 16:04 - 04 Nov 2017 16:26
Replied by Wene001 on topic offtopic: code help with goebish multipro

offtopic: code help with goebish multipro

Category: General Discussions

Thanks Master :-)
This was my second Arduino Projekt after an Openxsensor for Frsky telemetrie.
i begin to love this little Arduinos :-)
i think i a have to learn coding.....

If anyone is interested in my poor code modifications....
/*
 ##########################################
 #####   MultiProtocol nRF24L01 Tx   ######
 ##########################################
 #        by goebish on rcgroups          #
 #                                        #
 #   Parts of this project are derived    #
 #     from existing work, thanks to:     #
 #                                        #
 #   - PhracturedBlue for DeviationTX     #
 #   - victzh for XN297 emulation layer   #
 #   - Hasi for Arduino PPM decoder       #
 #   - hexfet, midelic, closedsink ...    #
 ##########################################


 This program 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.

 This program 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.
 If not, see <http://www.gnu.org/licenses/>.
 */

#include <util/atomic.h>
#include <EEPROM.h>
#include "iface_nrf24l01.h"


// ############ Wiring ################
#define PPM_pin   2  // PPM in
//SPI Comm.pins with nRF24L01
#define MOSI_pin  3  // MOSI - D3
#define SCK_pin   4  // SCK  - D4
#define CE_pin    5  // CE   - D5
#define MISO_pin  A0 // MISO - A0
#define CS_pin    A1 // CS   - A1

#define ledPin    13 // LED  - D13

// SPI outputs
#define MOSI_on PORTD |= _BV(3)  // PD3
#define MOSI_off PORTD &= ~_BV(3)// PD3
#define SCK_on PORTD |= _BV(4)   // PD4
#define SCK_off PORTD &= ~_BV(4) // PD4
#define CE_on PORTD |= _BV(5)    // PD5
#define CE_off PORTD &= ~_BV(5)  // PD5
#define CS_on PORTC |= _BV(1)    // PC1
#define CS_off PORTC &= ~_BV(1)  // PC1
// SPI input
#define  MISO_on (PINC & _BV(0)) // PC0

#define RF_POWER TX_POWER_80mW 

// tune ppm input for "special" transmitters
#define SPEKTRUM // 1100-1900, Elevator reversed

// PPM stream settings
#define CHANNELS 12 // number of channels in ppm stream, 12 ideally
enum chan_order{
    ELEVATOR,
    AILERON,
    THROTTLE,
    RUDDER,
    AUX1,  // (CH5)  led light, or 3 pos. rate on CX-10, H7, or inverted flight on H101
    AUX2,  // (CH6)  flip control
    AUX3,  // (CH7)  still camera (snapshot)
    AUX4,  // (CH8)  video camera
    AUX5,  // (CH9)  headless
    AUX6,  // (CH10) calibrate Y (V2x2), pitch trim (H7), RTH (Bayang, H20), 360deg flip mode (H8-3D, H22)
    AUX7,  // (CH11) calibrate X (V2x2), roll trim (H7)
    AUX8,  // (CH12) Reset / Rebind
};

#define PPM_MIN 1000
#define PPM_SAFE_THROTTLE 1050 
#define PPM_MID 1500
#define PPM_MAX 2000
#define PPM_MIN_COMMAND 1300
#define PPM_MAX_COMMAND 1700
#define GET_FLAG(ch, mask) (ppm[ch] > PPM_MAX_COMMAND ? mask : 0)
#define GET_FLAG_INV(ch, mask) (ppm[ch] < PPM_MIN_COMMAND ? mask : 0)

// supported protocols
enum {
    PROTO_V2X2 = 0,     // WLToys V2x2, JXD JD38x, JD39x, JJRC H6C, Yizhan Tarantula X6 ...
    PROTO_CG023,        // EAchine CG023, CG032, 3D X4
    PROTO_CX10_BLUE,    // Cheerson CX-10 blue board, newer red board, CX-10A, CX-10C, Floureon FX-10, CX-Stars (todo: add DM007 variant)
    PROTO_CX10_GREEN,   // Cheerson CX-10 green board
    PROTO_H7,           // EAchine H7, MoonTop M99xx
    PROTO_BAYANG,       // EAchine H8(C) mini, H10, BayangToys X6, X7, X9, JJRC JJ850, Floureon H101
    PROTO_SYMAX5C1,     // Syma X5C-1 (not older X5C), X11, X11C, X12
    PROTO_YD829,        // YD-829, YD-829C, YD-822 ...
    PROTO_H8_3D,        // EAchine H8 mini 3D, JJRC H20, H22
    PROTO_MJX,          // MJX X600 (can be changed to Weilihua WLH08, X800 or H26D)
    PROTO_SYMAXOLD,     // Syma X5C, X2
    PROTO_HISKY,        // HiSky RXs, HFP80, HCP80/100, FBL70/80/90/100, FF120, HMX120, WLToys v933/944/955 ...
    PROTO_KN,           // KN (WLToys variant) V930/931/939/966/977/988
    PROTO_YD717,        // Cheerson CX-10 red (older version)/CX11/CX205/CX30, JXD389/390/391/393, SH6057/6043/6044/6046/6047, FY326Q7, WLToys v252 Pro/v343, XinXun X28/X30/X33/X39/X40
    PROTO_FQ777124,     // FQ777-124 pocket drone
    PROTO_E010,         // EAchine E010, NiHui NH-010, JJRC H36 mini
    PROTO_BAYANG_SILVERWARE, // Bayang for Silverware with frsky telemetry
    PROTO_END
};

// EEPROM locationss
enum{
    ee_PROTOCOL_ID = 0,
    ee_TXID0,
    ee_TXID1,
    ee_TXID2,
    ee_TXID3
};

struct {
    uint16_t volt1;
    uint16_t rssi;
    uint8_t updated;
    uint32_t lastUpdate;
} telemetry_data;

uint8_t transmitterID[4];
uint8_t current_protocol;
static volatile bool ppm_ok = false;
uint8_t packet[32];
static bool reset=true;
volatile uint16_t Servo_data[12];
static uint16_t ppm[12] = {PPM_MIN,PPM_MIN,PPM_MIN,PPM_MIN,PPM_MID,PPM_MID,
                           PPM_MID,PPM_MID,PPM_MID,PPM_MID,PPM_MID,PPM_MID,};


const int buzzer = 9; //buzzer to arduino pin 9
unsigned long previousMillis = 0;        // will store last time BEEPER was updated
const long interval = 2000;           // interval at which to beep (milliseconds)
const long beep = 200;  // Beepdauer
const long freq = 1000; // Tonhöhe - Frequenz

void setup()
{
//    Serial.begin(9600);      // open the serial port at 9600 bps:
    randomSeed((analogRead(A4) & 0x1F) | (analogRead(A5) << 5));
    pinMode(6, INPUT_PULLUP);
    pinMode(7, INPUT_PULLUP);
    pinMode(8, INPUT_PULLUP);
    pinMode(10, INPUT_PULLUP);
    pinMode(buzzer, OUTPUT);        //Buzzer
    pinMode(ledPin, OUTPUT);
    digitalWrite(ledPin, LOW); //start LED off
    pinMode(PPM_pin, INPUT);
    pinMode(MOSI_pin, OUTPUT);
    pinMode(SCK_pin, OUTPUT);
    pinMode(CS_pin, OUTPUT);
    pinMode(CE_pin, OUTPUT);
    pinMode(MISO_pin, INPUT);
    frskyInit();
    
    // PPM ISR setup
    attachInterrupt(digitalPinToInterrupt(PPM_pin), ISR_ppm, CHANGE);
    TCCR1A = 0;  //reset timer1
    TCCR1B = 0;
    TCCR1B |= (1 << CS11);  //set timer1 to increment every 1 us @ 8MHz, 0.5 us @16MHz

    set_txid(false);
}

void loop()
{
    uint32_t timeout=0;
    // reset / rebind
    if(reset || ppm[AUX8] > PPM_MAX_COMMAND) {
        reset = false;
        telemetry_data.volt1 = 400;
        selectProtocol();
        NRF24L01_Reset();
        NRF24L01_Initialize();
        init_protocol();
    }
    if(telemetry_data.volt1 < 345) {
        Alarm();
    }
    
    telemetry_data.updated = 0;
    // process protocol
    switch(current_protocol) {
        case PROTO_CG023:
        case PROTO_YD829:
            timeout = process_CG023();
            break;
        case PROTO_V2X2:
            timeout = process_V2x2();
            break;
        case PROTO_CX10_GREEN:
        case PROTO_CX10_BLUE:
            timeout = process_CX10();
            break;
        case PROTO_H7:
            timeout = process_H7();
            break;
        case PROTO_BAYANG:
        case PROTO_BAYANG_SILVERWARE:
            timeout = process_Bayang();
            break;
        case PROTO_SYMAX5C1:
        case PROTO_SYMAXOLD:
            timeout = process_SymaX();
            break;
        case PROTO_H8_3D:
            timeout = process_H8_3D();
            break;
        case PROTO_MJX:
        case PROTO_E010:
            timeout = process_MJX();
            break;
        case PROTO_HISKY:
            timeout = process_HiSky();
            break;
        case PROTO_KN:
            timeout = process_KN();
            break;
        case PROTO_YD717:
            timeout = process_YD717();
            break;
        case PROTO_FQ777124:
            timeout = process_FQ777124();
            break;
    }
    // updates ppm values out of ISR
    update_ppm();
    
    while(micros() < timeout) {
        if(telemetry_data.updated) {
            frskyUpdate();
        }            
    }
    telemetry_data.updated = 0;
}

void set_txid(bool renew)
{
    uint8_t i;
    for(i=0; i<4; i++)
        transmitterID[i] = EEPROM.read(ee_TXID0+i);
    if(renew || (transmitterID[0]==0xFF && transmitterID[1]==0x0FF)) {
        for(i=0; i<4; i++) {
            transmitterID[i] = random() & 0xFF;
            EEPROM.update(ee_TXID0+i, transmitterID[i]); 
        }            
    }
}

void selectProtocol()
{
    // wait for multiple complete ppm frames
    ppm_ok = false;
    uint8_t count = 10;
    while(count) {
        while(!ppm_ok) {} // wait
        update_ppm();
        if(ppm[AUX8] < PPM_MAX_COMMAND) // reset chan released
            count--;
        ppm_ok = false;
    }
    
    // startup stick commands (protocol selection / renew transmitter ID)
    
    if(ppm[RUDDER] < PPM_MIN_COMMAND && ppm[AILERON] < PPM_MIN_COMMAND) // rudder left + aileron left
        current_protocol = PROTO_BAYANG_SILVERWARE; // Bayang protocol for Silverware with frsky telemetry
        
    else if(ppm[RUDDER] < PPM_MIN_COMMAND)   // Rudder left
        set_txid(true);                      // Renew Transmitter ID
    
    // Rudder right + Aileron right + Elevator down
    else if(ppm[RUDDER] > PPM_MAX_COMMAND && ppm[AILERON] > PPM_MAX_COMMAND && ppm[ELEVATOR] < PPM_MIN_COMMAND)
        current_protocol = PROTO_E010; // EAchine E010, NiHui NH-010, JJRC H36 mini
    
    // Rudder right + Aileron right + Elevator up
    else if(ppm[RUDDER] > PPM_MAX_COMMAND && ppm[AILERON] > PPM_MAX_COMMAND && ppm[ELEVATOR] > PPM_MAX_COMMAND)
        current_protocol = PROTO_FQ777124; // FQ-777-124

    // Rudder right + Aileron left + Elevator up
    else if(ppm[RUDDER] > PPM_MAX_COMMAND && ppm[AILERON] < PPM_MIN_COMMAND && ppm[ELEVATOR] > PPM_MAX_COMMAND)
        current_protocol = PROTO_YD717; // Cheerson CX-10 red (older version)/CX11/CX205/CX30, JXD389/390/391/393, SH6057/6043/6044/6046/6047, FY326Q7, WLToys v252 Pro/v343, XinXun X28/X30/X33/X39/X40
    
    // Rudder right + Aileron left + Elevator down
    else if(ppm[RUDDER] > PPM_MAX_COMMAND && ppm[AILERON] < PPM_MIN_COMMAND && ppm[ELEVATOR] < PPM_MIN_COMMAND)
        current_protocol = PROTO_KN; // KN (WLToys variant) V930/931/939/966/977/988
    
    // Rudder right + Elevator down
    else if(ppm[RUDDER] > PPM_MAX_COMMAND && ppm[ELEVATOR] < PPM_MIN_COMMAND)
        current_protocol = PROTO_HISKY; // HiSky RXs, HFP80, HCP80/100, FBL70/80/90/100, FF120, HMX120, WLToys v933/944/955 ...
    
    // Rudder right + Elevator up
    else if(ppm[RUDDER] > PPM_MAX_COMMAND && ppm[ELEVATOR] > PPM_MAX_COMMAND)
        current_protocol = PROTO_SYMAXOLD; // Syma X5C, X2 ...
    
    // Rudder right + Aileron right
    else if(ppm[RUDDER] > PPM_MAX_COMMAND && ppm[AILERON] > PPM_MAX_COMMAND)
        current_protocol = PROTO_MJX; // MJX X600, other sub protocols can be set in code
    
    // Rudder right + Aileron left
    else if(ppm[RUDDER] > PPM_MAX_COMMAND && ppm[AILERON] < PPM_MIN_COMMAND)
        current_protocol = PROTO_H8_3D; // H8 mini 3D, H20 ...
    
    // Elevator down + Aileron right
    else if(ppm[ELEVATOR] < PPM_MIN_COMMAND && ppm[AILERON] > PPM_MAX_COMMAND)
        current_protocol = PROTO_YD829; // YD-829, YD-829C, YD-822 ...
    
    // Elevator down + Aileron left
    else if(ppm[ELEVATOR] < PPM_MIN_COMMAND && ppm[AILERON] < PPM_MIN_COMMAND)
        current_protocol = PROTO_SYMAX5C1; // Syma X5C-1, X11, X11C, X12
    
    // Elevator up + Aileron right
    else if(ppm[ELEVATOR] > PPM_MAX_COMMAND && ppm[AILERON] > PPM_MAX_COMMAND)
        current_protocol = PROTO_BAYANG;    // EAchine H8(C) mini, BayangToys X6/X7/X9, JJRC JJ850 ...
    
    // Elevator up + Aileron left
    else if(ppm[ELEVATOR] > PPM_MAX_COMMAND && ppm[AILERON] < PPM_MIN_COMMAND) 
        current_protocol = PROTO_H7;        // EAchine H7, MT99xx
    
    // Elevator up  
    else if(ppm[ELEVATOR] > PPM_MAX_COMMAND)
        current_protocol = PROTO_V2X2;       // WLToys V202/252/272, JXD 385/388, JJRC H6C ...
        
    // Elevator down
    else if(ppm[ELEVATOR] < PPM_MIN_COMMAND) 
        current_protocol = PROTO_CG023;      // EAchine CG023/CG031/3D X4, (todo :ATTOP YD-836/YD-836C) ...
    
    // Aileron right
    else if(ppm[AILERON] > PPM_MAX_COMMAND)  
        current_protocol = PROTO_CX10_BLUE;  // Cheerson CX10(blue pcb, newer red pcb)/CX10-A/CX11/CX12 ... 
    
    // Aileron left
    else if(ppm[AILERON] < PPM_MIN_COMMAND)  
        current_protocol = PROTO_CX10_GREEN;  // Cheerson CX10(green pcb)... 
    
    // read last used protocol from eeprom
    else 
        current_protocol = constrain(EEPROM.read(ee_PROTOCOL_ID),0,PROTO_END-1);      
    // update eeprom 
    EEPROM.update(ee_PROTOCOL_ID, current_protocol);
    // wait for safe throttle
    while(ppm[THROTTLE] > PPM_SAFE_THROTTLE) {
        delay(100);
        update_ppm();
    }
}

void init_protocol()
{
    switch(current_protocol) {
        case PROTO_CG023:
        case PROTO_YD829:
            CG023_init();
            CG023_bind();
            break;
        case PROTO_V2X2:
            V2x2_init();
            V2x2_bind();
            break;
        case PROTO_CX10_GREEN:
        case PROTO_CX10_BLUE:
            CX10_init();
            CX10_bind();
            break;
        case PROTO_H7:
            H7_init();
            H7_bind();
            break;
        case PROTO_BAYANG:
        case PROTO_BAYANG_SILVERWARE:
            Bayang_init();
            Bayang_bind();
            break;
        case PROTO_SYMAX5C1:
        case PROTO_SYMAXOLD:
            Symax_init();
            break;
        case PROTO_H8_3D:
            H8_3D_init();
            H8_3D_bind();
            break;
        case PROTO_MJX:
        case PROTO_E010:
            MJX_init();
            MJX_bind();
            break;
        case PROTO_HISKY:
            HiSky_init();
            break;
        case PROTO_KN:
            kn_start_tx(true); // autobind
            break;
        case PROTO_YD717:
            YD717_init();
            break;
        case PROTO_FQ777124:
            FQ777124_init();
            FQ777124_bind();
            break;
    }
}

// update ppm values out of ISR    
void update_ppm()
{
    for(uint8_t ch=0; ch<CHANNELS; ch++) {
        ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
            ppm[ch] = Servo_data[ch];
        }
        
    }
    ppm[ELEVATOR] = ppm[ELEVATOR]-23; //Subtrim Elevator
    ppm[AILERON] = ppm[AILERON]+38; //Subtrim Aileron
    ppm[RUDDER] = ppm[RUDDER]-10; //Subtrim Rudder

/*      
      Serial.print(" ELEVATOR "); 
      Serial.print(ppm[ELEVATOR]); 
      Serial.print(" AILERON "); 
      Serial.print(ppm[AILERON]); 
      Serial.print(" THROTTLE "); 
      Serial.print(ppm[THROTTLE]); 
      Serial.print(" RUDDER "); 
      Serial.println(ppm[RUDDER]); 
    
      Serial.print(" telemetry_data.volt1 "); 
      Serial.println(telemetry_data.volt1);  
*/
        
#ifdef SPEKTRUM
    for(uint8_t ch=0; ch<CHANNELS; ch++) {
        
        ppm[ch] = constrain(map(ppm[ch],1130,1870,PPM_MIN,PPM_MAX),PPM_MIN,PPM_MAX);
        if(digitalRead(6) == LOW) {
          if(ch == ELEVATOR || ch == AILERON || ch == RUDDER) {
            if(ppm[ch] < 1250) 
               ppm[ch] = ppm[ch]/2+ppm[ch]-500;
              
            else if(ppm[ch] > 1750) 
               ppm[ch] = ppm[ch]/2+ppm[ch]-1000;
            
            else 
               ppm[ch] = ppm[ch]/2+750;
                   }
      } 
   }
    
#endif

    ppm[AUX1] = digitalRead(6) == HIGH ? 2000 : 1000;
    ppm[AUX2] = digitalRead(8) == LOW ? 2000 : 1000;
    ppm[AUX3] = digitalRead(10) == LOW ? 2000 : 1000;
    ppm[AUX5] = digitalRead(6) == LOW ? 2000 : 1000;
    ppm[AUX8] = digitalRead(7) == LOW ? 2000 : 1000;  
}

void ISR_ppm()
{
    #if F_CPU == 16000000
        #define PPM_SCALE 1L
    #elif F_CPU == 8000000
        #define PPM_SCALE 0L
    #else
        #error // 8 or 16MHz only !
    #endif
    static unsigned int pulse;
    static unsigned long counterPPM;
    static byte chan;
    counterPPM = TCNT1;
    TCNT1 = 0;
    ppm_ok=false;
    if(counterPPM < 510 << PPM_SCALE) {  //must be a pulse if less than 510us
        pulse = counterPPM;
    }
    else if(counterPPM > 1910 << PPM_SCALE) {  //sync pulses over 1910us
        chan = 0;
    }
    else{  //servo values between 510us and 2420us will end up here
        if(chan < CHANNELS) {
            Servo_data[chan]= constrain((counterPPM + pulse) >> PPM_SCALE, PPM_MIN, PPM_MAX);
            if(chan==3)
                ppm_ok = true; // 4 first channels Ok
        }
        chan++;
    }
}

void Alarm() 
{
 
  unsigned long currentMillis = millis();

  
  if (currentMillis - previousMillis >= interval-beep) {
    tone(buzzer, freq);
  }
    
    if (currentMillis - previousMillis >= interval) {
    // save the last time you beeped
    previousMillis = currentMillis;
    noTone(buzzer);

  }
}
  • goebish
  • goebish's Avatar
29 Oct 2017 22:29
Replied by goebish on topic JJRC H8DH - POTENSIC F183DH - (unknown protocol)

JJRC H8DH - POTENSIC F183DH - (unknown protocol)

Category: Protocol Development

Try this build, it has an H8DH format for CX-10 protocol:
www.dropbox.com/sh/4idi2nlmqs02rye/AABKd...GK9JlzsJQH0q-ba?dl=0
Let me know if it binds, functions are not implemented yet.
  • goebish
  • goebish's Avatar
29 Oct 2017 21:56
Replied by goebish on topic JJRC H8DH - POTENSIC F183DH - (unknown protocol)

JJRC H8DH - POTENSIC F183DH - (unknown protocol)

Category: Protocol Development

Seems this is a CX-10 variant, can you try with all its sub-formats ?
If it's doesn't work I'll make a test build with the same RF channels than in your dump, and if it still doesn't work I'll also copy your TX ID, but that means that only one deviated H8DH could fly in a given area.
  • Perchetti
  • Perchetti's Avatar
23 Oct 2017 20:11
Replied by Perchetti on topic Eachine E010 inductrix clone data captures

Eachine E010 inductrix clone data captures

Category: Protocol Development

MAny many thanks 4 quick answer but interesting thing that with wltoys v911 v977 cheerson cx-10 works ok
  • Lounge Pilot
  • Lounge Pilot's Avatar
11 Oct 2017 14:40 - 11 Oct 2017 15:00
Replied by Lounge Pilot on topic Cannot Install USB Driver on Windows XP

Cannot Install USB Driver on Windows XP

Category: Feedback & Questions

Thanks aMax; your assistance is much appreciated.
The upgrade went smoothly and the 4-in-1 module seems to be working OK as, so far, after downloading a couple of model configs, I've managed to bind it with my XK K110 and a Cheerson CX-10, and I'm now looking forward to learning how to tweak all the settings.

It turns out that installing Deviation on a Devo 10 using a Windows PC is far simpler than the user manual suggests because the DFU USB driver is installed by v2.31 of the Dfuse USB Upgrade Tools.
For a first-time installation of Deviation on a Devo 10 using Windows XP, here's what worked for me.

  1. Download the file: deviation-devo10-v5.0.0.zip from here
  2. Download the file: Dfuse USB Upgrade Tools 2.31.zip from here
  3. Extract the file: deviation-devo10-v5.0.0.zip
  4. Extract the file: Dfuse USB Upgrade Tools 2.31.zip
  5. Open the file: Walkera Dfuse USB Upgrade Tools 2.31.exe, complete the Setup Wizard and "Launch devention Upgrade Tools".
  6. Connect the PC to the USB port of the Devo 10 and turn on while pressing the ‘EXT’ button to enter programming mode.
    (After a short pause, the devention Dfuse USB Upgrade Tool should recognise that the Devo 10 is connected.)
  7. In the "File" field of the "Firmware" tab in the Dfuse USB Upgrade Tool, open the file: deviation-devo10-v5.0.0.dfu
    (A "File correctly loaded" message should appear.)
  8. Click "Upgrade" and ignore the Warning: just say "Yes".
  9. When complete, turn off the Devo 10 and and turn back on while holding ‘ENT’: there should be a USB logo on the screen.
  10. On the PC, follow the prompt to format a drive using the default options.
  11. Upgrade the file system as described in section 2.3 of the User Manual
I hope the above proves useful to anyone else in a similar situation.
  • mediocre_llama
  • mediocre_llama's Avatar
13 Sep 2017 01:55
Replied by mediocre_llama on topic Cheerson CX-10W CX-10WD WIFI Profotol?

Cheerson CX-10W CX-10WD WIFI Profotol?

Category: Protocol Development

Cyanotic87,
Awesome work, Is there a way that you know of to get into the wifi chip of this model and play with it. My intentions are to make 4 or 5 of these receive commands from one iphone controller. I have tried to crack into the interface of the NIC with no luck.
Thanks for any feedback in advance
  • Baldness
  • Baldness's Avatar
09 Jul 2017 05:19
Replied by Baldness on topic JD 395 cx-10

JD 395 cx-10

Category: Protocol Development

For the love of god, i have been trying to get my mk33041 out of headless mode for literally the entire day.

Im not a programmer. Im not familiar with the "builds" section of this site where someone commented "go see my updates uploads". I cant for the life of me find the cx-10 green model for the Devo7e everyone says is working so great. PLEASE can you just attach it without calling me a newbie and giving me vague hints with acronyms on where to find it here. Im losing my mind, i lost my patience with this 6 hours ago.
  • cyanotic87
  • cyanotic87's Avatar
31 May 2017 11:14
Replied by cyanotic87 on topic Cheerson CX-10W CX-10WD WIFI Profotol?

Cheerson CX-10W CX-10WD WIFI Profotol?

Category: Protocol Development

Thanks @sha
Basically the NalDecoder is a flow-rewriting-thing.
The codec used by the drone is a variant of real-time x264. So I've studied how the data flow is structured on x264.
I've started then logging the stream flow (man in the middle attack) and comparing the NALs in the stream with the ones produced by the android app (yes, the app stores the processed stream into a file on the device's memory).
Once I've started comparing the NALs streamed and the ones in the file I noticed some differences on them and I've tried to figure out how to "translate" the stream to match the exact format of the one stored into the file.
I made here it quick and simple, but to find this solution it took me 3 weeks.

Other approaches I tried to follow are: unpack the android .apk, try to find a library that works with that stream, try to decode that stream with every tool in the world (it actually works just on ffmpeg-based players), try to decode all the other streams (there are 4 or 5 connections going on when you turn on the drone) etc etc etc
If you need more explanations let me know :)
  • sha
  • sha's Avatar
31 May 2017 09:57
Replied by sha on topic Cheerson CX-10W CX-10WD WIFI Profotol?

Cheerson CX-10W CX-10WD WIFI Profotol?

Category: Protocol Development

First of all, great work on the code. I just have a quick question, in the your nalDecoder, how are you decoding before feeding it to ffplay? Is it some standard protocol or did you deduce it from the video stream?
  • Chimera
  • Chimera's Avatar
14 Apr 2017 21:51 - 14 Apr 2017 21:52
Replied by Chimera on topic CX 10D Traces

CX 10D Traces

Category: Protocol Development

as much as I hate to spend more money, this board looks identical (except for the build date) - www.ebay.com/itm/Cheerson-CX-10WD-CX10WD...9:g:ORgAAOSwYXVY0Dsa

edit : nevermind, not identical
  • cimbolino
  • cimbolino's Avatar
30 Mar 2017 12:46
Replied by cimbolino on topic Cheerson cx-10a cx-10w cx-10c

Cheerson cx-10a cx-10w cx-10c

Category: Model Configs

Dear friend, I don't have fleet of CX10, but after the first CX10W, due to hard control with phone, I bought CX10A (with TX) and this TX bind with CX10W . Good job !
After I read possibility to bind its with DEVO7E (deviation+NRF24L01) - Well I bind its ! (CX10 - BluA)

My CX10W (I don't know why) fly only about 2min. So (no possible to change battery) I add another CX10W to my collection, but.... surprise !! This CX10W works only with phone ! No bind with TX of CX10A and no bind with DEVO7E (cx10- BluA- Green)

How many CX10W version there are in the world ?
I don't understand !!
If someone may help me...
Thanks in advance !
Displaying 21 - 40 out of 736 results.
Time to create page: 0.860 seconds
Powered by Kunena Forum