Servo Problem NEED HELP

Interested in Robotics? Here's the place to be.
Post Reply
User avatar
vector357
Posts: 9
Joined: Tue Mar 18, 2008 10:12 am
Contact:

Servo Problem NEED HELP

Post by vector357 » Tue Mar 18, 2008 10:19 am

I am trying to convert a Walkera X-UFO that has 4 Brushed motors to be able to use Brushless motors.

The Signal coming out of the Rx is PWM, and the signal going to the gate of the FET's is a Pulsed signal.

Here is the Time's I got. Hori Div = 2v div. Vert Div THR IN 1v div
Vert Div THR Mix Out .1v div.

Here is another discussion of this.
http://www.rcgroups.com/forums/showthre ... ost9380888

Does anyone know how to convert the Pulsed signal Back into a PWM signal so the Brushless motor ESC can read it?
This is the signal from the receiver.
Image

This is the signal at the Gate of the ELE motor FET
Image


This image is of the THR out the other end of the Mixer at the FET Gate. The pulse is .1ms H Div
Image

Bigglez
Posts: 1282
Joined: Mon Oct 15, 2007 7:39 pm
Contact:

Re: Servo Problem NEED HELP

Post by Bigglez » Tue Mar 18, 2008 10:51 am

Greetings (No First Name Supplied),
vector357 wrote:I am trying to convert a Walkera X-UFO that has 4 Brushed motors to be able to use Brushless motors.

The Signal coming out of the Rx is PWM, and the signal going to the gate of the FET's is a Pulsed signal.

Does anyone know how to convert the Pulsed signal Back into a PWM signal so the Brushless motor ESC can read it?
I'm not familiar with a Walkera X-UFO, but the common
signal format in R/C servos is a variable duty-cycle pulse
drive
(as you have in your PIX).

By far the most simple hardware solution is to read the
Rx servo signal into a uC (microcontroller, such as AVR or
PIC), and spit out the PWM signal needed by your brushless
motor.

So a lot depends upon your ability to code and program a
uC for your project. If this is not attractive you can do
the same thing with combinational logic gates. This is a
bit harder to build (more parts) but should work equally
well as a uC solution.

Here's some background, you probably already know this
based on your use of an O-scope to inspect the waveforms.

The duration of the pulse is the "demand" and typically
range from 1.25ms to 1.75ms, and a repetition of
50 per second (20ms between pulses).

Your brushless motor is quite different and may not
conform to any standard, so you need to know more
about it first. Brushless motors require more than one
winding and sequential pulses to turn or hold the
rotor. If you only have one FET in your motor driver
the sequential windings may be driven by other
circuitry you haven't presented (i.e. internal to the
motor). If there is more than one FET driving your
brushless motor we'd need more details.

Comments Welcome!

User avatar
vector357
Posts: 9
Joined: Tue Mar 18, 2008 10:12 am
Contact:

Post by vector357 » Tue Mar 18, 2008 12:56 pm

Hi, thanks for the info. I learned most of that a long time ago, and when you don't use it, you loose it. Or at least I kind of did.

Let me see if I follow you, The "Demand" is From Rx to uC Right? or is Demand the signal going from uC to the FET's? A Multiple Duty Pulse is coming out the uC, but a single PWM Pulse is going in to the uC.

So the Output from Rx is typically around 50 to 60 Hz?

OK, I have been flying for a while, but haven't been swimming around into this end of the pond till now. So forgive me if I seem a bit Naive.

I would like to be able to use the main board I currently have, as well as the 3 stabilizing gyros that comes with it.

I could always make a controller, but that is the hard way for me right now. I need to use what I have, and I will have a small surplus of these boards with gyros and Rx installed, shortly. I need a way to convert a multiple DC Pulse into that Single 50 Hz pulse you spoke of, so I can directly feed an Electronic Speed Controller (ESC) for a Brushless motor. Actually, this thing uses 4 brushless motors.

As for controlling a brushless without an ECS, I would not want to dive into that pond. I have limited resources.

I have done the Basic stamp, but haven't done the PIX. Any Documentation would be helpful.

Thanks
Vic

Bigglez
Posts: 1282
Joined: Mon Oct 15, 2007 7:39 pm
Contact:

Post by Bigglez » Tue Mar 18, 2008 1:22 pm

Greetings Vic,
vector357 wrote: Let me see if I follow you, The "Demand" is From Rx to uC Right? or is Demand the signal going from uC to the FET's? A Multiple Duty Pulse is coming out the uC, but a single PWM Pulse is going in to the uC.
Yes. As you have multiple motors, do you also have
multiple "channels" on the radio link?

Each channel is a pulse stream at 50 per second (20ms
between pulses). The duration (width) of the pulse
commands the servo position.
vector357 wrote: So the Output from Rx is typically around 50 to 60 Hz?
Yes, unless it's a multi-channel radio.
vector357 wrote: I would like to be able to use the main board I currently have, as well as the 3 stabilizing gyros that comes with it.
Okay, smart move. The interface you'll need
can be a daughter card tied into the original design.
vector357 wrote:I need a way to convert a multiple DC Pulse into that Single 50 Hz pulse you spoke of, so I can directly feed an Electronic Speed Controller (ESC) for a Brushless motor. Actually, this thing uses 4 brushless motors.
Does the ESC control one or all motors? Does the
radio have four channels for four servos?

Does the ESC have digital (pulse) or analog (voltage)
inputs?
I have done the Basic stamp, but haven't done the PIX. Any Documentation would be helpful.
I think a BS or BS2 can support this design - there's not
much processing needed.

Before designing firmware (uC software) you'll need
to nail down the inputs and outputs, which might require
a bit more work with the 'scope.

Starting with the radio, is it one channel? If not, we need
to understand how the multiple channels are configured
(probably time MUX'd but not sure).

Next, the firmware needs to understand the demand signal,
which is expected every 20ms and of variable duration.
The length of the pulse is the info that determines the
motor speed and direction.

Once you have a digital value of the demand the next step
is to format it for the ESC. If the ESC is digital you
will be creating a new pulse string to match. If it's
analog you can convert the new pulse string to a
DC control voltage by several means, all of which are
straight forward (and may only require a CR network
to get the average DC from a variable duty-cycle
pulse stream).

Comments Welcome!

User avatar
vector357
Posts: 9
Joined: Tue Mar 18, 2008 10:12 am
Contact:

Post by vector357 » Tue Mar 18, 2008 1:33 pm

Give me a few minutes, and I will post a quick diagram of what I have.

>Yes. As you have multiple motors, do you also have
multiple "channels" on the radio link?
The motors all work in unison in conjunction with the gyro to maintain a stable and level flying platform.

The THR signal from the receiver does control proportional downword thrust, but the Yaw causes each axis of motors to speed up or slow down to cause the craft to spin in one direction or another, or to move foreword or back. It's a flying X

No, the THR is a single Output, and each other channel, ELE, RUD, AIL, PIT, has it's own signal. Let me post the diagram and then you will see what I have.

The bottom of the Diag should say Brushed Motor in stead of ESC's.

I am trying to convert the bottom 4 signals back into a signal similar to the receiver output, but with the PWM of each individual output from the controller, so each Independant PWM signal can Directly control a Brushless motor ESC, the same as the Stock FET's controlled the Stock Brushed motors.



Image

User avatar
philba
Posts: 2050
Joined: Tue Nov 30, 2004 1:01 am
Location: Seattle
Contact:

Post by philba » Tue Mar 18, 2008 2:00 pm

good advice. One minor point - the servo pulse width will run from 1 to 2 mS.

Bigglez
Posts: 1282
Joined: Mon Oct 15, 2007 7:39 pm
Contact:

Post by Bigglez » Tue Mar 18, 2008 2:01 pm

Greetings Vic,
vector357 wrote:The bottom of the Diag should say Brushed Motor in stead of ESC's
Got it! So the controller is already
sending four channels of PWM signals to the existing motors?

I jumped to the conclusion that you had R/C servos,
but more likely you have DCPM (brush motors) running from
PWM signals, correct?

The brushless motors (that you plan to use in place of the
DCPM motors) each require an ESC, which you also have
ready, correct?

The solution is about the same effort and hardware,
just different signal formats. We still need to know the
signal input expected by the brushless motor ESC.

Comments Welcome!

User avatar
vector357
Posts: 9
Joined: Tue Mar 18, 2008 10:12 am
Contact:

Post by vector357 » Tue Mar 18, 2008 2:10 pm

Bigglez wrote:Greetings Vic,
vector357 wrote:The bottom of the Diag should say Brushed Motor in stead of ESC's
Got it! So the controller is already
sending four channels of PWM signals to the existing motors?
CORRECT

I jumped to the conclusion that you had R/C servos,
but more likely you have DCPM (brush motors) running from
PWM signals, correct? CORRECT

The brushless motors (that you plan to use in place of the
DCPM motors) each require an ESC, which you also have
ready, correct? CORRECT

The solution is about the same effort and hardware,
just different signal formats. We still need to know the
signal input expected by the brushless motor ESC.

The ESC Accepts the same kind of signal as the Direct Output from the Rx, which is a single pulse of PWM

Comments Welcome!

User avatar
vector357
Posts: 9
Joined: Tue Mar 18, 2008 10:12 am
Contact:

Post by vector357 » Tue Mar 18, 2008 2:14 pm

philba wrote:good advice. One minor point - the servo pulse width will run from 1 to 2 mS.
So that means 1 to 2 ms is the common accepted signal for an ESC.

Bigglez
Posts: 1282
Joined: Mon Oct 15, 2007 7:39 pm
Contact:

Post by Bigglez » Tue Mar 18, 2008 2:21 pm

Greetings Vic,
vector357 wrote:The ESC Accepts the same kind of signal as the Direct Output from the Rx, which is a single pulse of PWM
So the next step is to measure the timing of the
PWM signal from the control board, and note the
repitition time (ms), signal for min and signal for max
(us). Also confirm the signal is logic (near ground
and near either 5V or the local battery voltage).

This signal goes into your uC and comes out as the
R/C servo signal common used in a single channel
radio.

As you have four channels you can either build four
single channel devices or one multi-channel,
which might need a more powerful uC (not sure if a
BS or BS2 can do this heavy lifting?).

It should be possible to capture the waveform on
your analogue scope. You may need to use the
trigger hold-off (if fitted) to get a stable image.
Or, you might find a sync signal on the controller
board that triggers the scope each PWM cycle.

Comments Welcome!

User avatar
vector357
Posts: 9
Joined: Tue Mar 18, 2008 10:12 am
Contact:

Post by vector357 » Tue Mar 18, 2008 3:54 pm

Bigglez wrote:Greetings Vic,
vector357 wrote:The ESC Accepts the same kind of signal as the Direct Output from the Rx, which is a single pulse of PWM
So the next step is to measure the timing of the
PWM signal from the control board, and note the
repitition time (ms), signal for min and signal for max
(us). Also confirm the signal is logic (near ground
and near either 5V or the local battery voltage).

I have measured the Logic, and it is from Zero volts to 3.3v, 4 volts max.

This signal goes into your uC and comes out as the
R/C servo signal common used in a single channel
radio.
It goes into the controller, and comes out as a multi PWM which is much faster a pulse then the incoming signal, designed to pulse the gates of 4 Brushed motor FET's.
Look at the 2 wave forms in the diag, that was take on the same scale on my scope as the incoming signal above it.


As you have four channels you can either build four
single channel devices or one multi-channel,
which might need a more powerful uC (not sure if a
BS or BS2 can do this heavy lifting?).

I was looking into using a few 555 timners as mono stable pulse stretchers

It should be possible to capture the waveform on
your analogue scope. You may need to use the
trigger hold-off (if fitted) to get a stable image.
Or, you might find a sync signal on the controller
board that triggers the scope each PWM cycle.

I can get a good pic of it. but my scope doesn't have a Hold function. I just sync the pulse and snap a pic.

Comments Welcome!

User avatar
vector357
Posts: 9
Joined: Tue Mar 18, 2008 10:12 am
Contact:

Post by vector357 » Wed Mar 19, 2008 4:29 am

Yes, there are 5 Input channels that control 4 axis. THR, RUD, ELE, AIL, and PIT.

All these signals are mixed in the uC with the Gyros output, and the axis is kept level.

Transmitter is normal 6 channel RC radio. The uC controls the 4 motors in unison as well as semi independently, to allow this to move around, spin, Lift and descend. If the gyros sense an unexpected tilt while in flight, the uC tells the appropriate motor to speed up bringing it level again. Radio input tells it to lift, move left or right, back or foreword, spin right or left, and up and down.

Currently the uC 4 output signals have been converted into a pulsed signal that can be fed to the gate's of the 4 FET's that currently control the Brushed motors it uses for flight.

What I need is a way to take each gate signal, and convert it back into a signal that an ESC can read. I need to do this, so the mixing from the uC can continue to control the Brushless motors the way it did the Brushed motors.

The output to each gate starts at 0 v, and the signal starts off as a pulsed spike, the same as you would expect any pulsed DC power switch to operate. The gate starts at zero, then as the signal increases, the gate gets pulsed more and more till it's final state is Always on at 4 volts

That may be the answer. I need something that can translate a variably pulsed DC signal, into a PWM signal to match the radio typical output.

I will try to get some better signal readings today. The Radio output is a typical output signal from an FM RC 6 channel control system.

The receiver's output to the uC, is also typical of a common RC receivers output to any servo that would be plugged into it.

The ESC accepts that typical output, as if it were a standard servo. Basically it is an electrical servo, that controls the speed of a 3 phase brushless motor.

If I connected any of the ESC's directly to the Rx, they would function. However, I need the signal from the uC, because that is the Mixed signal that tells the motors how and when to speed up or slow down, so the Gyro's can hold it level in the air. :?

This tidbit is unrelated, but is is appropriate to this forum. The Video link is to a walking Robot, and this thing is as agile as a mountain goat.
http://www.youtube.com/watch?v=W1czBcnX1Ww

User avatar
Sambuchi
Posts: 366
Joined: Tue Jan 18, 2005 1:01 am
Location: Orlando FL
Contact:

Post by Sambuchi » Wed Mar 19, 2008 7:10 am

vector, thats one impressive robot in that video.

I've dabbled with [accelerometers working with DSP's] a little with little luck. It takes a lot of experience to master it!
_________________
Tony

You can look at my projects here www.sambuchi.net

User avatar
vector357
Posts: 9
Joined: Tue Mar 18, 2008 10:12 am
Contact:

Post by vector357 » Wed Mar 19, 2008 12:42 pm

I haven't had the opportunity to do much with robots, but that was sure impressive. That thing carried a 300 lb load divided into 4 packs on it's back, up the side of a step hill, and just kept going. That is some impressive pack mule.

User avatar
vector357
Posts: 9
Joined: Tue Mar 18, 2008 10:12 am
Contact:

Post by vector357 » Thu Mar 20, 2008 7:34 am

So far, there have been posed many solutions, and many of them I believe I could easily build myself. However, it seems that component testing and lots of R&D and Money are needed to try any of these ideas.

It looks like I'm the only person on the planet that has this dilemma of trying to convert a PPM signal into a PWM signal. I was hoping that someone had already found the solution to this, but I guess there aren't any.

Thanks to all of you for your help. If all this effort ends in failure, then I guess I will have to just upgrade to stronger FET's, and Larger duty Brushed motors, or buy a Pre built UFO board designed for Brushless motors.

Either way I go, I see now that it will be EXPENSIVE to say the least. And that is not an option at my immediate disposal at this time.

But again, thanks for all you guys help
Vic

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest