Re: [HBRobotics] Computer controlled FPV drones

116 views
Skip to first unread message
Message has been deleted

Maxim Kulkin

unread,
Jan 31, 2019, 8:36:58 PM1/31/19
to hbrob...@googlegroups.com
I just found and ordered this one:

They have 50% discount now (hurry up, it will end in 6hrs) so you can get a drone with a camera already installed for $35. Also, I guess you will need an FPV receiver, I found this one, should work with laptop/Raspberry Pi



On Thu, Jan 31, 2019 at 2:28 PM Chris Mayer <cmay...@gmail.com> wrote:
A few people were interested in the drone project I'm working on, so here are some links to help get you started.

Any and all of these things can be substituted.  I paid a little more for the convenience of fast free shipping.

Drone
Camera

Monitor

Lots of videos available on adding the cam to the drone.

Every RC controller is different, but what we want to do for any RC toy is to hack the controller, not the toy, for computer control. For pushbuttons, a simple transistor to short a button to ground is the normal method.  
For analog signals, it is usually a potentiometer voltage divider. Cut the center pin, and set an analog voltage to control the joystick 'position'.  Unfortunately, once you cut the pin, you lose the ability to control the toy with the controller.  If you want both, use an SPDT switch to switch between the manual potentiometer voltage and the hacked Arduino input voltage.
I haven't found any good YouTube videos that do this for analog controllers - most are button type only.  Also most tutorials on making an RC  toy controllable by an Arduino involve adding receiver circuitry on the toy, which we don't want to do.

--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.
To post to this group, send email to hbrob...@googlegroups.com.
Visit this group at https://groups.google.com/group/hbrobotics.
For more options, visit https://groups.google.com/d/optout.
Message has been deleted

Chris Albertson

unread,
Jan 31, 2019, 10:11:06 PM1/31/19
to hbrob...@googlegroups.com
I've fund a way to hack the transmitter for toy drones.     I have an FrSky Taranis QX7 transmitter.    This has ain interlay bay for adding a second transmitter board.    I bought a board that works will almost all the toy class drones.    There are two ways to "hack" a QX7

1) the software is completely open source and there is a large community around it.   What ever software yu like can run on the transmitter.   It uses a common ARM M type CPU chip and is easy to program over USB.   Kind of like an Arduino inside the QX7.
2) all the physical controls in the QX7 are full size standard and replaceable and conectorized.  You can replace any of them, including the joysticks very easy.  Replacing the controls is considered a user serviceable. The manufacturer, FrSky sells replacement controls and has instructions but you don't need them.

That said, I've found it MUCH easier to modify the drone itself.  It is much more straight forward and not really expensive.      

But in the end my solution is to make my own dories with a 3D printer and added on commercial parts.

Why modify the drone thandnot the controller?  You find out really fast that you need feedback from the sensors that are inside the drone.   Using a controller works if there is a human in the loop because his eyes provide feedback to his fingers.   But if you try and automated the human you can't, not without a LOT of work.   So it is much simpler to place the automation inside the drone.

Finally you do not have to do all this from scratch, there are good open source solutions, and communes on forums around this open source solution.

One opinion I've developed is that if you are going to do this get the "hobby grade" and not the "toy grade" equipment.   IN the hobby drone world the quality is dramatically better and there is a high degree of standardization so stuff works well together.   Yes the cost goes up but for most of use $100 or so is not a lot when you consider the big upgrade in quality and reliability.   But also with this hobby grade stuff the INTERFACES are documented.  You can know what kind of signal is in each wire and the pinouts of all the connectors and the software's open source.  No reverse engineering is required.

But, yes you can very easy hack a QX7, and a QX7 can be fitted with a toy-frame transmitter "plug and play" no tools needed for under $10.



On Thu, Jan 31, 2019 at 2:28 PM Chris Mayer <cmay...@gmail.com> wrote:
A few people were interested in the drone project I'm working on, so here are some links to help get you started.

Any and all of these things can be substituted.  I paid a little more for the convenience of fast free shipping.

Drone
Camera

Monitor

Lots of videos available on adding the cam to the drone.

Every RC controller is different, but what we want to do for any RC toy is to hack the controller, not the toy, for computer control. For pushbuttons, a simple transistor to short a button to ground is the normal method.  
For analog signals, it is usually a potentiometer voltage divider. Cut the center pin, and set an analog voltage to control the joystick 'position'.  Unfortunately, once you cut the pin, you lose the ability to control the toy with the controller.  If you want both, use an SPDT switch to switch between the manual potentiometer voltage and the hacked Arduino input voltage.
I haven't found any good YouTube videos that do this for analog controllers - most are button type only.  Also most tutorials on making an RC  toy controllable by an Arduino involve adding receiver circuitry on the toy, which we don't want to do.

--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.
To post to this group, send email to hbrob...@googlegroups.com.
Visit this group at https://groups.google.com/group/hbrobotics.
For more options, visit https://groups.google.com/d/optout.


--

Chris Albertson
Redondo Beach, California
Message has been deleted

Chris Albertson

unread,
Jan 31, 2019, 11:36:13 PM1/31/19
to hbrob...@googlegroups.com


On Thu, Jan 31, 2019 at 7:49 PM Chris Mayer <cmay...@gmail.com> wrote:
Not really what we're doing, but thanks anyway. Every RC toy already has it's own transmitter, and whatever one you have won't fly my drone.

I bet $1 it will.     All the toy drones use one of about a dozen protocols.   The radio I have was built by a person who reversed engineered them all.   This radio plugs into a controller that has the switches and joysticks.   This little radio converts the control input to what the toy drone understands.

It will fly just about all the $10 to $50 drones on Amazon.  In fact it is SO MUCH EASIER to fly a toy drone with this than to use those way-cheap controllers.   

Here is the list of compatible toy drones.   But it will fly even more because many of these drone are sold under many names.   



If the goal is to fly a drone using only the feedback from the FPV camera, that is a hard problem.  There is currently a contest to do just this.  They have some big prize money up for grabs if you can perfect this.    Having access to the IMU data makes it much easier to fly.

I think the problem is that using only video you can't get a velocity except by looking at several frames.   But this introduces lag.  Am IMU gives there current rates, not the rates they were flown a few frames back.  Also you will see that this 5.8 GHz video is why noisy

The even cheaper way to go is to use Microsoft's simulator.  The interface is documented  It's free and it's purpose is to help people learn to write software to control drones and cars.  It is called "airtime" and is on GitHub.     

It is probably best to start with a simulation them move to a real hardware drone.


My main point was that, some one already did the work to reverse engineer most toy control on-air protocols but if you move up the food chain one rung from"toy" to "hobby" then you no longer need to do any reverse engineering and you are still in the low cost non-pro world where parts are cheap.





 
Modifying the drone makes no sense at all.  Video feedback is the same the human gets. Might be nice to get extra internal stuff, but again, not what we're doing.
What's a dorie?

--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.
To post to this group, send email to hbrob...@googlegroups.com.
Visit this group at https://groups.google.com/group/hbrobotics.
For more options, visit https://groups.google.com/d/optout.

Chris Albertson

unread,
Jan 31, 2019, 11:51:25 PM1/31/19
to hbrob...@googlegroups.com
More info:

The hardware (schematic and PCB layout) ad software are open source.    The gaol is to control every one of the many R/C toys.

You can buy the board and then feed it serial data from a PC and then the title board converts this to what your toy drone needs.  So your PC based software only needs to know how to talk to this one radio and it in turns knows how to talk with the  toys.

With bigger drones this is the solved problem and they can accept waypoints, heading and speed commands over wifi or radio and can interface as ROS nodes.    But it you want to work with this toys class drones  this open source multi-protocol controller would be the ticket.

On Thu, Jan 31, 2019 at 7:49 PM Chris Mayer <cmay...@gmail.com> wrote:
Not really what we're doing, but thanks anyway. Every RC toy already has it's own transmitter, and whatever one you have won't fly my drone.
Modifying the drone makes no sense at all.  Video feedback is the same the human gets. Might be nice to get extra internal stuff, but again, not what we're doing.
What's a dorie?

--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.
To post to this group, send email to hbrob...@googlegroups.com.
Visit this group at https://groups.google.com/group/hbrobotics.
For more options, visit https://groups.google.com/d/optout.

Chris Albertson

unread,
Jan 31, 2019, 11:51:58 PM1/31/19
to hbrob...@googlegroups.com

Chris Albertson

unread,
Feb 1, 2019, 12:27:49 AM2/1/19
to hbrob...@googlegroups.com


More info.

OK, I read the docs.      Maybe it makes sense to me because I have a few toy and a few hobby drones and the transmitters...

to control a toy drove from a PC this will work as long as it is one of the few dozen supported toy drones.   Check at Githum b=for the list of supported drones.

1) Buy a pre-build multi-protocol transmitter.    
2) There are three pins on the above Ground, Power and PPM.  PPM is an analog signal that you need you computer to generate but this can be done with a digital output.   The volts out are either "High" or "low"   TTL works.      PPM is used to send 8 analog channels the first four are used.   The channels contain "AETR" or roll, pitch, throttle, yaw.   The position of the pulse determines the value.  It is analog.   Your PC needs to send roll, pitch, throttle, yaw. over and over agin to the multi-protocol transmitter.  

3) notebook PCs are really bad at sending realtime analog signals with no glitches.   But it would be really easy to program an Arduino to send read numbers from a USB serial and sand each number via PPM to the multi-protocol transmitter.  

There is also a serial/digital interface that a computer could use but the docs say it is more complex then PPM.   Ut using it allows things like receiving telemetry from the toy drone



Message has been deleted

Maxim Kulkin

unread,
Feb 3, 2019, 1:14:54 AM2/3/19
to hbrob...@googlegroups.com
What receiver did you use? Where do you think lag comes from?
Here is a video where guy uses receiver that I mentioned and you can see there is no lag:

On Sat, Feb 2, 2019 at 6:20 PM Chris Mayer <cmay...@gmail.com> wrote:
I just got my USB receiver today, and the results are not good.
It did install automatically on my Win 7 desktop, and it shows up as USB 2.0 PC CAMERA. That's the good news.
The bad news is that it is way too slow for any real time use.
~90 seconds to scan and find my little drone.
Lag time between waving my hand and seeing it is anywhere from 5 to 10 seconds. (As compared to my cheap webcam that is as instantaneous as I can detect with my eyes.)
Message has been deleted

Maxim Kulkin

unread,
Feb 3, 2019, 1:53:48 AM2/3/19
to hbrob...@googlegroups.com
That is good to know.

If you're using video capture, it probably uses a video codec (most popular these days is H.264). The encoding process requires accumulating frames before they can be encoded and sent to output stream, so that might be what is happening. If you still interested giving VLC player a try, you can look into activating zero latency H.264 profile.

On Sat, Feb 2, 2019 at 10:29 PM Chris Mayer <cmay...@gmail.com> wrote:
Hey, thanks for that video link!
It turns out the lag was in the VLC media player, not the camera or the receiver.
Using the free NCH Debut capture software it is much faster.
Message has been deleted

Mark Johnston

unread,
Feb 1, 2020, 3:45:00 AM2/1/20
to HomeBrew Robotics Club
At the HBRC meeting you stated the 5ghz camera was $5.   I think that was a rather large 'verbal typo'.  To get the nice tiny camera with a radio link is at least $15 even on AliExpress was my finding.
Still, it's impressive and I'll likely 'pull the trigger' as it is still in the affordable range.  By all means supply a link if in fact you have found a broadcasting video camera for $5 that 'just works'. 

It is also uncertain what actual drone you were thinking of using.  The one I took pictures of at the meeting that you had is not good at 'identifying itself' with part reference numbers.

Still, very cool and thanks for bringing it up at the meeting.

Mark
Message has been deleted

Chris Albertson

unread,
Feb 1, 2020, 7:13:25 PM2/1/20
to hbrob...@googlegroups.com
Does this actually work?  Can a computer actually get a toy drone to do any interesting behavior?

Hobby type racing drones are hard to control only because of their very high performance but the advantage is all that interfaces are very well documented and no hacking is required.

Camera drones are even better as it is possible to pretty much out of the box to send them commands from a computer but these tend to be larger and more expensive.  But they are already "robots" on day-one.

The toys are neat because of their very low cost but it seems that each one has to be individually reverse engineered.

--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages