Thread Tools
Jan 19, 2013, 06:24 AM
Registered User
It's nice work! Well done ThierryRC. Unfortunatly for me, I havn't got time since a while, so my work did move ahead...

I programming in C. I learnt assembler years ago and I do not remember anything.

Thank for asking if I want with PPM. I will try to do it on my own. But If I have questions, I'm sure you'll be there .

Here come the first. In that process

A -> go in standby mode
F -> reset fifo read
0F xx -> choose channel xx
C -> goes in RX mode

Why does channel change? Should not it stay the same when communication have been started?
Sign up now
to remove ads between posts
Jan 19, 2013, 07:51 AM
Registered User

In is first post PhracturedBlue wrote:

"The Tx channel will be 01 until initialization is done and the throttle is brought to 0. At ~ 3 seconds, data is transmitted on multiple channels. Channel ordering is dependent on Transmitter
Tx2: 0a, 5a, 50, a0, 14, 64, 46, 96, 1e, 6e, 3c, 8c, 28, 78, 32, 82
Tx1: 79, 29, 6f, 1f, 83, 33, 65, 25, 8d, 3d, 5b, 0b, 97, 47, 51, 01"

In other words:

After switch on, RX listen on channel 00 (PhracturedBlue says 01 because he means first channel of 2.4ghz band) for a few seconds to get TX id number. Of course at the same time you have to switch on TX so that TX sends for a few seconds it's id number on channel 00. This is "binding" phase.

After binding (if RX has not received any packet on channel 00, RX read in it's eeprom to get TX id of previous bind ) RX listen on channels "xx" following a sequence that depends on TX id. They are 16 different sequences and each sequence has 16 different channels. You can find "sequence table" following links given by PhracturedBlue (search for "flysky.txt" or "flysky_a7105.c") or at the end of my "RX_A7105_06.asm" pic code.
The 4 least significant bit of TX id gives line number of "sequence table".
As example TX id of my mini quadcopter (H36 vitality) is 30 00 00 06 so channel sequence is the 7th line of sequence table (first line number is 00).
TX sends a new packet (contains TX id, and servos position) every 1,46ms.

All I know about this protocol comes from this thread...
Jan 29, 2013, 04:55 AM
Registered User
connerESP's Avatar
Sorry if this post if some offtopic but I’m through different post and haven’t found an answer yet. May be I’m a bit lost with all those information and need time to process it. Fist of I want to encourage you guys for and excellent job on reverse engineering on this popular protocol. You make amateur people like me learn more and more every day. Well my dumb question. If I’m correct I understand that flysky protocol could handle 9 channels, but this means that a 3 channels or a four channels radio always transmit the 9 channels and the receiver just ignore the channels that it couldn’t handle?. It is something related to the transmitter chip? For example the A7105 chip can transmit all the 9 channels?
Again sorry if that is offtopic or already answered.
Jan 29, 2013, 11:48 AM
RC beginner
actually conner, neither flysky nor any other standard ppm protocol will support 9 channels. contrary to popular myth the "9 channel" turnigy 9x never had more than 8 channels. they are all limited by ppm frame length of 22ms. i can also say that, after dissecting quite a few small radios, they do not transmit more than the basic number of joysticks. ie the v911/v929 type only send out 4ch signals even though they are 100% compatible with a 9x which sends out 8ch. the a7105 chip however is not limited by ppm standards and could technically be used to send 256 channels or even more via custom protocol.
Jan 30, 2013, 11:05 PM
Registered User
slebetman's Avatar
To add to dave's reply. Currently, either PPM or PCM, I know of no radio system where the receiver and transmitter negotiate the number of channels.

The transmitter usually doesn't know how many channels the receiver supports so transmits all channels (8 for an 8 channel TX, 4 for a 4 channel TX etc). There may be exceptions because I haven't played with all available PCM systems out there. The receiver also doesn't know how many channels the transmitter supports and so accepts what it can and ignoring what it can't support. In this way a 6 channel receiver can work with a 4 channel TX and a 3 channel receiver can work with an 8 channel TX. All without any need for fancy protocols etc. Just dumb "ignore what you can't handle and don't handle what you don't receive" behavior.

This has mostly been the case since the 72MHz days.
Jan 30, 2013, 11:15 PM
Registered User
Originally Posted by slebetman View Post
To add to dave's reply. Currently, either PPM or PCM, I know of no radio system where the receiver and transmitter negotiate the number of channels..
Not relevant to this thread, but in DSM2/DSMX the Rx and Tx negotiate the number of channels. The Tx sends how many it can support, and the Rx returns the number to actually send (always <= to the number sent bythe Tx). That said it seems to be more of a guideline than a requirement for most combinations of tx and rx.
Jan 31, 2013, 03:51 AM
Registered User
Hi everybody! I am sorry if I'm offtopic, but I have to figure out a question that it is bothering me. I have a RTF heli Stratos (2.4GHz) and a Turnigy 9X. I checked the TX/RX of the heli and TX is a A7105 module. As I understood, on Turnigy 9X I have PPM/6V/Vcc/GND/RFout and on A7105 I have CS/SCK/DIO/PIO/GND/3V.
The question is, do I have any chance to put these together and control my heli with turnigy 9X? thank you for your answer!
Jan 31, 2013, 06:36 AM
Registered User
midelic's Avatar
That is one thing I want to find also.How to decode ppm signal to SPI data and sent this data to A7105 chip?I'm interested to buil a stand alone Tx flysky module with a V911 rf module.Teach a man to fish........Anyway the path is:
PPMsignal-MCU(one ATmel ,PIC)-A7105.
Last edited by midelic; Jan 31, 2013 at 09:46 AM.
Jan 31, 2013, 07:45 AM
Registered User
i will come back, maybe tomorrow with some pics. But The remote control for RTF heli I suppose that it is pushing PPM signal in my A7105 module...

How can I check if it is PPM signal with a multimeter?
Feb 01, 2013, 08:18 AM
Registered User
If you have a RX that you can reprogram, I think you can transform it into a TX, because A7105 is a transceiver so it can do RX or/and TX as well.
Let me a some days to try to modify pic program in that way. You'll put ppm (ppm, 6V, gnd) into channel 1, as example, and it should do the job....

By the way, I have design several RX pcb with in mind reduce size(overall size = 31x23x10mm), simplify making(one layer pcb with 3 straps), avoid exotic components(replace 1.25mm pitch molex program connector with standard 2.54mm connector), standard servo connectors...
These are "standard" RX just like those you can buy everywhere, weighting about 5g without case.

If you want very light RX, Dave is your man! I can't compete with him

Updates are at this adress (previous RX in OLD directory)
Feb 01, 2013, 08:58 AM
Registered User
midelic's Avatar
I have an existing Flysky rx 6 ch receiver.How this one can be modified for Tx?Is it enough to put PPM signal on channel 1?
Feb 01, 2013, 09:36 AM
Registered User
I don't know witch mcu "Flysky rx 6 ch receiver" has. Could be microchip (pic), atmel(avr), texas (MSP430), renesas, ...
I'am used to pic, so if it's not a pic, I can't be no more help.
Modern mcu has "In Circuit Programming" pins so you can solder some wires on it and reprogram it with associated interface and programming software... if these pins does not interact "too much" with the RX design !
Feb 01, 2013, 09:46 AM
Registered User
midelic's Avatar
Ok ,I'll be happy to see build a Tx program for PIC.
Feb 01, 2013, 09:52 AM
RC beginner
Originally Posted by ThierryRC View Post
If you have a RX that you can reprogram, I think you can transform it into a TX, because A7105 is a transceiver so it can do RX or/and TX as well.
unfortunately turns out this is not the case. as you can see in my post from page #1 of this thread rfo is not connected in flysky/turnigy products. it will transmit but not very far. inches if youre lucky. similar situation with the v911 board but opposite. due to the rf amp and no connection for rfi it makes a great tx but very short range rx:

btw flysky mcu is otp. so much for that. we just cant seem to get a break here.
Last edited by dave1993; Feb 01, 2013 at 11:53 AM. Reason: added pic so you dont have to go searching
Feb 01, 2013, 08:14 PM
Registered User
midelic's Avatar
I'm newbie here.I'm trying to understand the code.
On flysky.txt line no. 2
2) Send 32bit address to address 0x06: 0x5475c52a
I really don't understand this one.
I see ThierryRC have this lines of code for this.
;ID A7105 <- 0x5475c52a ??? useful ???
	movlwf	0x06, spiReg
	call	spi_write
	movlwf	0x54, spiReg
	call	spi_write
	movlwf	0x75, spiReg
	call	spi_write
	movlwf	0xc5, spiReg
	call	spi_write
	movlwf	0x2A, spiReg
	call	spi_write
Can somebody explain this one to me.Because something is not clear.
I'm trying to translate this in avr assembler.
Last edited by midelic; Feb 02, 2013 at 09:25 AM.

Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
Question 9X - FlySky/iMax/Turnigy/Eurgle FOR DUMMIES aeajr Radios 1421 Yesterday 12:51 PM
Discussion Benefits of buying FlySky TH9x (v2) over Turnigy 9x (v2) wwfisher Radios 111 Jun 26, 2016 02:16 PM
Found turnigy 9x/flysky 9x wanted!!! kremecheze Aircraft - General - Radio Equipment (FS/W) 2 Mar 25, 2012 04:04 PM
Wanted ER9x or Turnigy/Flysky 9x daign FPV Equipment (FS/W) 0 Mar 22, 2012 06:21 PM
Found Turnigy/FlySky/Eurkle/etc 9X Shell flyandi Aircraft - General - Radio Equipment (FS/W) 0 Mar 11, 2012 06:12 PM