FQ777-124 Pocket Drone

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 ?)

Please Log in or Create an account to join the conversation.

More
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?

Please Log in or Create an account to join the conversation.

More
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, ...
Attachments:

Please Log in or Create an account to join the conversation.

More
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.
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.

Please Log in or Create an account to join the conversation.

More
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.
PACKET RECV: 20 15 5 6 D3 45 0 18

nrf 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 7F

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).

Please Log in or Create an account to join the conversation.

More
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!

Please Log in or Create an account to join the conversation.

More
15 Jul 2016 21:41 #51732 by HappyHarry
Replied by HappyHarry on topic FQ777-124 Pocket Drone
really nice work guys!

Please Log in or Create an account to join the conversation.

More
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!

Please Log in or Create an account to join the conversation.

More
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

Please Log in or Create an account to join the conversation.

More
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!

Please Log in or Create an account to join the conversation.

More
22 Jul 2016 22:14 #52022 by Tradecrafter
Replied by Tradecrafter on topic FQ777-124 Pocket Drone


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 ??
Attachments:

Please Log in or Create an account to join the conversation.

More
23 Jul 2016 00:30 #52030 by bikemike
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.

Please Log in or Create an account to join the conversation.

More
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

Please Log in or Create an account to join the conversation.

More
23 Jul 2016 00:58 #52032 by bikemike
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.

Please Log in or Create an account to join the conversation.

More
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

Please Log in or Create an account to join the conversation.

More
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.

Please Log in or Create an account to join the conversation.

More
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 !!!
Attachments:
Last edit: 23 Jul 2016 04:19 by Tradecrafter.

Please Log in or Create an account to join the conversation.

More
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 ?

Please Log in or Create an account to join the conversation.

More
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)?

Please Log in or Create an account to join the conversation.

More
25 Jul 2016 10:32 #52129 by kahuna001
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.

Please Log in or Create an account to join the conversation.

Time to create page: 0.096 seconds
Powered by Kunena Forum