- Posts: 151
FQ777-124 Pocket Drone
- btoschi
-
- Offline
Less
More
15 Jul 2016 07:44 #51706
by btoschi
Replied by btoschi on topic FQ777-124 Pocket Drone
Again: Great finding !
Does that match the H101 protocol, too ? (or do they use different special values ?)
Does that match the H101 protocol, too ? (or do they use different special values ?)
- bikemike
-
- Offline
Less
More
- Posts: 42
15 Jul 2016 08:01 #51707
by bikemike
Replied by bikemike on topic FQ777-124 Pocket Drone
The h101 uses an xn297 which does crazier things with the packets I think. Bit reverse and xor.
Can you post some spi payload captures so I can check that each byte in the payload is being decoded properly?
And does the tx cycle through the channels in the order you specified them in?
Can you post some spi payload captures so I can check that each byte in the payload is being decoded properly?
And does the tx cycle through the channels in the order you specified them in?
- btoschi
-
- Offline
Less
More
- Posts: 151
15 Jul 2016 08:10 #51708
by btoschi
Replied by btoschi on topic FQ777-124 Pocket Drone
Here is a text file with an entire session including power up, bind and some (basic, held in hand) flying.
Yes, channels alternate 4d, 43, 27, 07, 4d, 43, ...
Yes, channels alternate 4d, 43, 27, 07, 4d, 43, ...
- bikemike
-
- Offline
Less
More
- Posts: 42
15 Jul 2016 14:00 - 15 Jul 2016 16:14 #51714
by bikemike
Replied by bikemike on topic FQ777-124 Pocket Drone
Here's what happens when I set the nrf to receive from my ssv and enable dynamic payload(on the ssv side):
sending 8 0x00 bytes, crc length 2.
As you can see, the data becomes encoded matching well with the xor value I previously posted.
Then I increased the size of the packet to get a longer xor value:
sending 8 0x00 bytes, crc length 2.
PACKET RECV: len: 8, pid: 2, nack: 0, data: 0 0 0 0 0 0 0 0 C5 D9 54 7D 4A 40 22 50 20 6 AB 1A 74 A5 B5 8B 4A B5 6A B6 A4 B5
PACKET RECV: len: 8, pid: 2, nack: 0, data: 0 0 0 0 0 0 0 0 C5 D9 6D 6B 52 AA CA E5 69 4A C6 B4 89 3D C9 44 A5 59 AB 34 AD 29
PACKET RECV: len: 7, pid: 2, nack: 0, data: 80 44 64 75 6C 71 2A 36 3B C 52 B5 52 A4 A8 A4 94 55 D5 3B 95 FC B6 A9 4B 57 28 97 E3 54
PACKET RECV: len: 8, pid: 2, nack: 0, data: 80 44 64 75 6C 71 2A 36 B9 28 52 A9 56 95 55 D4 AC 8B F7 5B CF F4 D5 6B 76 D9 BA 2D D5 EA
PACKET RECV: len: 8, pid: 2, nack: 0, data: 80 44 64 75 6C 71 2A 36 B9 28 51 A9 D2 40 2A 48 28 62 A8 D2 B8 C3 49 4E FA FF 77 B4 D5 F5
PACKET RECV: len: 8, pid: 2, nack: 0, data: 80 44 64 75 6C 71 2A 36 B9 28 4D 28 A9 52 81 10 21 85 59 54 D5 2A 20 B1 4A 55 33 64 95 6A
PACKET RECV: len: 8, pid: 2, nack: 0, data: 80 44 64 75 6C 71 2A 36 B9 28 99 92 D6 A4 DA 69 2A 55 D9 A5 6A AD 67 49 2D 6A A4 A6 95 95 As you can see, the data becomes encoded matching well with the xor value I previously posted.
Then I increased the size of the packet to get a longer xor value:
PACKET RECV: len: 24, pid: 3, nack: 0, data: 80 44 64 75 6C 71 2A 36 7C F1 6E 52 9 9D 1F 78 3F E1 EE 16 6D E8 73 9 15 D7 92 E7 3 BA
PACKET RECV: len: 24, pid: 3, nack: 0, data: 80 44 64 75 6C 71 2A 36 7C F1 6E 52 9 9D 1F 78 3F E1 EE 16 6D E8 73 9 15 D7 92 E7 3 BA
PACKET RECV: len: 24, pid: 3, nack: 0, data: 80 44 64 75 6C 71 2A 36 7C F1 6E 52 9 9D 1F 78 3F E1 EE 16 6D E8 73 9 15 D7 92 E7 3 BA
PACKET RECV: len: 24, pid: 3, nack: 0, data: 80 44 64 75 6C 71 2A 36 7C F1 6E 52 9 9D 1F 78 3F E1 EE 16 6D E8 73 9 15 D7 92 E7 3 BA
PACKET RECV: len: 24, pid: 3, nack: 0, data: 80 44 64 75 6C 71 2A 36 7C F1 6E 52 9 9D 1F 78 3F E1 EE 16 6D E8 73 9 15 D7 92 E7 3 BA
PACKET RECV: len: 24, pid: 3, nack: 0, data: 80 44 64 75 6C 71 2A 36 7C F1 6E 52 9 9D 1F 78 3F E1 EE 16 6D E8 73 9 15 D7 92 E7 3 BA
PACKET RECV: len: 27, pid: 3, nack: 0, data: 80 44 64 75 6C 71 2A 36 7C F1 6E 52 9 9D 1F 78 3F E1 EE 16 6D E8 73 9 15 D7 92 E7 3 BA
PACKET RECV: len: 24, pid: 3, nack: 0, data: 80 44 64 75 6C 71 2A 36 7C F1 6E 52 9 9D 1F 78 3F E1 EE 16 6D E8 73 9 15 D7 92 E7 3 BA
PACKET RECV: len: 27, pid: 3, nack: 0, data: 80 44 64 75 6C 71 2A 36 7C F1 6E 52 9 9D 1F 78 3F E1 EE 16 6D E8 73 9 15 D7 92 E7 3 BA
PACKET RECV: len: 24, pid: 3, nack: 0, data: 80 44 64 75 6C 71 2A 36 7C F1 6E 52 9 9D 1F 78 3F E1 EE 16 6D E8 73 9 15 D7 92 E7 3 BA
PACKET RECV: len: 24, pid: 3, nack: 0, data: 80 44 64 75 6C 71 2A 36 7C F1 6E 52 9 9D 1F 78 3F E1 EE 16 6D E8 73 9 15 D7 92 E7 3 BA
PACKET RECV: len: 24, pid: 3, nack: 0, data: 80 44 64 75 6C 71 2A 36 7C F1 6E 52 9 9D 1F 78 3F E1 EE 16 6D E8 73 9 15 D7 92 E7 3 BA
PACKET RECV: len: 24, pid: 3, nack: 0, data: 80 44 64 75 6C 71 2A 36 7C F1 6E 52 9 9D 1F 78 3F E1 EE 16 6D E8 73 9 15 D7 92 E7 3 BA
PACKET RECV: len: 27, pid: 3, nack: 0, data: 80 44 64 75 6C 71 2A 36 7C F1 6E 52 9 9D 1F 78 3F E1 EE 16 6D E8 73 9 15 D7 92 E7 3 BA
PACKET RE
Last edit: 15 Jul 2016 16:14 by bikemike.
- bikemike
-
- Offline
Less
More
- Posts: 42
15 Jul 2016 17:11 #51721
by bikemike
Replied by bikemike on topic FQ777-124 Pocket Drone
I was able to get the SSV to receive in enhanced shockburst mode from the tx. Not exactly sure what I did differently than the last time I tried. Maybe I didn't try 2 byte crc? Definitely need to have the reserved registers set as well.
nrf can not receive these as they are encoded. This is the data the nrf sees:
while this is the raw data the ssv sees(when reserved registers are set):
So it appears that the decoding differs between shockburst and enhanced shockburst on the ssv. Perhaps this is just that the XOR is offset because of the packet control field.
Anyway, at this point I think it's obvious that we can't transmit to an nrf from an ssv in enhanced shockburst mode or vice versa because of the encoding/crc. For transmitting I think it should be possible to fake an ssv enhanced shockburst packet by prepending the a packet control field to the payload, appending a 2 byte crc(calculated over address, packet control, and payload), and then encoding the whole packet(xor).
PACKET RECV: 20 15 5 6 D3 45 0 18nrf can not receive these as they are encoded. This is the data the nrf sees:
some raw packets:
PACKET RECV: 21 50 28 B0 B9 DF 9A 15 17 7 15 B6 3C
PACKET RECV: 22 50 28 B0 B9 DF 9A 15 17 2A 51 B1 52
and some packet control field parsed:
PACKET RECV: len: 8, pid: 1, nack: 0, data: A0 51 61 73 BF 34 2A 2E E 2B
PACKET RECV: len: 8, pid: 2, nack: 0, data: A0 51 61 73 BF 34 2A 2E 54 A3 while this is the raw data the ssv sees(when reserved registers are set):
some raw packets:
PACKET RECV: A2 14 4C C5 D5 AE B0 23 6B DB 3F C2
PACKET RECV: A2 14 4C C5 D5 AE B0 23 6B DB 3F E8
and some packet control field parsed:
PACKET RECV: len: 40, pid: 2, nack: 0, data: 28 99 8B AB 5D 60 46 D7 B6 7F
PACKET RECV: len: 40, pid: 2, nack: 0, data: 28 99 8B AB 5D 60 46 D7 B6 7FSo it appears that the decoding differs between shockburst and enhanced shockburst on the ssv. Perhaps this is just that the XOR is offset because of the packet control field.
Anyway, at this point I think it's obvious that we can't transmit to an nrf from an ssv in enhanced shockburst mode or vice versa because of the encoding/crc. For transmitting I think it should be possible to fake an ssv enhanced shockburst packet by prepending the a packet control field to the payload, appending a 2 byte crc(calculated over address, packet control, and payload), and then encoding the whole packet(xor).
- bikemike
-
- Offline
Less
More
- Posts: 42
15 Jul 2016 18:09 #51725
by bikemike
Replied by bikemike on topic FQ777-124 Pocket Drone
And here is a proof of concept binding and throttling up:
Now that I know it works I can code it up in nrf24_multipro. Woohoo!
Now that I know it works I can code it up in nrf24_multipro. Woohoo!
- HappyHarry
-
- Offline
Less
More
- Posts: 1136
15 Jul 2016 21:41 #51732
by HappyHarry
Replied by HappyHarry on topic FQ777-124 Pocket Drone
really nice work guys!
- petsmith
-
Topic Author
- Offline
Less
More
- Posts: 63
16 Jul 2016 02:31 #51738
by petsmith
Replied by petsmith on topic FQ777-124 Pocket Drone
Incredible work, guys! Thanks for the hard work!
- bikemike
-
- Offline
Less
More
- Posts: 42
18 Jul 2016 05:42 #51805
by bikemike
Replied by bikemike on topic FQ777-124 Pocket Drone
Ok, I've got something. I've implemented the protocol in nrf24_multipro but I'm not able to test it(with a transmitter). Hopefully someone with a Devo or Taranis can give it a shot! Hopefully it's not too hard to port this into the deviation codebase.
Very basic support so far (no support for any of the buttons). It's available here:
github.com/bikemike/nrf24_multipro/tree/fq777-124
Very basic support so far (no support for any of the buttons). It's available here:
github.com/bikemike/nrf24_multipro/tree/fq777-124
- bikemike
-
- Offline
Less
More
- Posts: 42
20 Jul 2016 11:14 #51921
by bikemike
Replied by bikemike on topic FQ777-124 Pocket Drone
I received my Taranis today so I tried the code myself. It worked but there was some lag due to dropped packets I assume.
I was able to improve this by transmitting three of the same packet per channel hop. I've uploaded this and support for the buttons to my guthub branch.
It sure is nice not having to use the crappy tx!
I was able to improve this by transmitting three of the same packet per channel hop. I've uploaded this and support for the buttons to my guthub branch.
It sure is nice not having to use the crappy tx!
- Tradecrafter
-
- Offline
Less
More
- Posts: 6
- bikemike
-
- Offline
Less
More
- Posts: 42
23 Jul 2016 00:30 #52030
by bikemike
The image is very small so I'm not sure what it is. It looks like some model of FQ777 transmitter I presume? I have no idea if all the FQ777s use the same protocol and radio chip or if they are all unique.
I think your first task is to determine what type of radio chip the transmitter uses. If it is the SSV7241 then perhaps it might work with this protocol.
Replied by bikemike on topic FQ777-124 Pocket Drone
Tradecrafter wrote: i want to make an receiver to this controller, using arduino and NRF 24l01 pa lna, so i could use it with any other projects, these protocol could serve my purpose, or i will need to buy an logic analyzer and make my way down the stone road all by myself ??
The image is very small so I'm not sure what it is. It looks like some model of FQ777 transmitter I presume? I have no idea if all the FQ777s use the same protocol and radio chip or if they are all unique.
I think your first task is to determine what type of radio chip the transmitter uses. If it is the SSV7241 then perhaps it might work with this protocol.
- Multirotor Go
-
- Offline
Less
More
- Posts: 55
23 Jul 2016 00:52 #52031
by Multirotor Go
Replied by Multirotor Go on topic FQ777-124 Pocket Drone
Hello
Thanks for your awesome work.
I would like to know when is this going to be available on the nightly builds?
I am dying to tried it out
Thanks for your awesome work.
I would like to know when is this going to be available on the nightly builds?
I am dying to tried it out
- bikemike
-
- Offline
Less
More
- Posts: 42
23 Jul 2016 00:58 #52032
by bikemike
I am dying for someone to try it out as well! Someone here who is familiar with deviationtx source code needs to port my code over. It can't be too difficult to do. I'd do it but I don't have a Devo.
Replied by bikemike on topic FQ777-124 Pocket Drone
Multirotor Go wrote: Hello
Thanks for your awesome work.
I would like to know when is this going to be available on the nightly builds?
I am dying to tried it out
I am dying for someone to try it out as well! Someone here who is familiar with deviationtx source code needs to port my code over. It can't be too difficult to do. I'd do it but I don't have a Devo.
- Multirotor Go
-
- Offline
Less
More
- Posts: 55
23 Jul 2016 02:18 #52036
by Multirotor Go
Replied by Multirotor Go on topic FQ777-124 Pocket Drone
You should PM someone from the developing team
- bikemike
-
- Offline
Less
More
- Posts: 42
23 Jul 2016 02:50 #52040
by bikemike
Replied by bikemike on topic FQ777-124 Pocket Drone
Sorry, I don't know who is on the developing team and couldn't find this information on the website. Perhaps someone who knows can PM one of them.
- Tradecrafter
-
- Offline
Less
More
- Posts: 6
23 Jul 2016 04:15 - 23 Jul 2016 04:19 #52042
by Tradecrafter
Replied by Tradecrafter on topic FQ777-124 Pocket Drone
its an "Syma X5c-Like" chinese cheap drone, but it came with the FQ777 name on it, it has headless return home like the Syma X5, but he fell... it crashed on the field and broked, so i 3D printed an mini-quad frame for the 7mm brushed mini motors, and mounted on it, so i decided to make an Arduino Pro mini/NRF24l01 receiver for this controller, i've been looking for the way to do this and looks like i found it...
i'm intending to do this for learning purposes, because its a cheap controller, and won't pay the efforts...
i'll buy the saleae logic analyzer, i´ve been willing to buy one for a while, and looks like a good reason to do this now...
the controller board has an atmel, for the buttons, knobs. and for the transmitter the microchip comes with no names on it, its weird... chinese...
you can see it on the picture, the red wire is the antenna.
my name is Leo, i am an Soldier from the Military Police of Rio de Janeiro and IT student, 33 years old, thanks for the fast response !!
Cheers !!
PS.: Apologize for the bad english, my native is Brazilian portuguese, and please, don't come for the Olympic Games !!!
i'm intending to do this for learning purposes, because its a cheap controller, and won't pay the efforts...
i'll buy the saleae logic analyzer, i´ve been willing to buy one for a while, and looks like a good reason to do this now...
the controller board has an atmel, for the buttons, knobs. and for the transmitter the microchip comes with no names on it, its weird... chinese...
you can see it on the picture, the red wire is the antenna.
my name is Leo, i am an Soldier from the Military Police of Rio de Janeiro and IT student, 33 years old, thanks for the fast response !!
Cheers !!
PS.: Apologize for the bad english, my native is Brazilian portuguese, and please, don't come for the Olympic Games !!!
Last edit: 23 Jul 2016 04:19 by Tradecrafter.
- kahuna001
-
- Offline
Less
More
- Posts: 34
24 Jul 2016 23:42 #52108
by kahuna001
Replied by kahuna001 on topic FQ777-124 Pocket Drone
So I tried to port the code but got lost ... gave up.
next ...
hook up Arduino mini pro with NRF24 and upgrade my 9XR-Pro to open-TX but cannot get it to bind.
I follow the hook-up diagram as follows.
www.dropbox.com/s/hxmbxsx8dn8sn4t/schalt...i-CORRECTED.jpg?dl=0
Any pointers here ?
next ...
hook up Arduino mini pro with NRF24 and upgrade my 9XR-Pro to open-TX but cannot get it to bind.
I follow the hook-up diagram as follows.
www.dropbox.com/s/hxmbxsx8dn8sn4t/schalt...i-CORRECTED.jpg?dl=0
Any pointers here ?
- bikemike
-
- Offline
Less
More
- Posts: 42
25 Jul 2016 07:31 #52124
by bikemike
Replied by bikemike on topic FQ777-124 Pocket Drone
The connections look right. Did you hold the yaw all the way right and the roll and pitch to the top right to make it choose the fq777-124 protocol? Do you see the LED on the arduino flash rapidly when it first starts up (the bind sequence)?
- kahuna001
-
- Offline
Less
More
- Posts: 34
25 Jul 2016 10:32 #52129
by kahuna001
Yes sir. All that. I even tried on 3.3v mini pro , 5v mini pro and Uno. With the dual 10k resistor divider , one 10k resistor inline, no resistor. All nothing.
I don't need a Taranis do it ? I read somewhere that all I need is a Open-TX firmware, set it to PPM , channel 1-12 , AETR 100%
I am going to put some debug in the code so I can be sure it actually go to the protocol. More update to come.
Replied by kahuna001 on topic FQ777-124 Pocket Drone
bikemike wrote: The connections look right. Did you hold the yaw all the way right and the roll and pitch to the top right to make it choose the fq777-124 protocol? Do you see the LED on the arduino flash rapidly when it first starts up (the bind sequence)?
Yes sir. All that. I even tried on 3.3v mini pro , 5v mini pro and Uno. With the dual 10k resistor divider , one 10k resistor inline, no resistor. All nothing.
I don't need a Taranis do it ? I read somewhere that all I need is a Open-TX firmware, set it to PPM , channel 1-12 , AETR 100%
I am going to put some debug in the code so I can be sure it actually go to the protocol. More update to come.
Time to create page: 0.307 seconds
-
Home
-
Forum
-
Development
-
Protocol Development
- FQ777-124 Pocket Drone