View Full Version : Brushless ESC and PWM Circuit

Brad Bentley
11-23-2006, 03:59 AM
Hi, i have the BS2IC, I have gotten up past the servo section in the book, made a few experimental circuits with the programming, I have a basic understanding of how it all works.

But what I want to do is control a 6 pole brushless motor its a c4 dynamite 540 motor, 7700kv 7700rpm/volt. heres the specs


I am looking to run the motor full tilt, i dont really care about·controlling the speed of the motor as long as its full tilt, because this motor will be on a switch·circuit, the basic off/on. Im not sure if I can get it to do what I want, I know the programming end of it fairly well, but what stumps me is how to build the ESC portion.

I totally understand the PWM and how that all works with the servo. But I have also heard that I could use the servotest.bs2 with the ESC so it shoots pulses to the ESC driving the motor, using the same circuit to drive the servo as in the book.

If I could make·the ESC and PWM·all in one circuit with the bs2 that would be awesome, so a quick rundown of what im looking for:

Max rpm with the c4 brushless, which will be around 110,000 rpm. the motor has 6 poles. Each pulse I believe turns the motor a 1/6th of the way. so 660,000 pulses a minute. I would like to turn the unit on and off with a switch. And also a clue on the programming end of it.

12-07-2006, 12:41 PM
You can purchase a brushless ESC that will handle the amp load your motor requires and then just hook and output pin of your stamp to the pulse input to the ESC and then send it pulseout command·and this should run it forward at full speed.

12-07-2006, 09:32 PM
"ESC" in this context means "Electronic Speed Control" -- basically a device that recieves the servo-type control signal (1 mSec to 2 mSec pulse, repeated every 20 to 50 mSec) but instead of controlling a servo with that signal, the ESC controls the speed of an attached motor.

I assume the PWM circuitry is built into the ESC. You should be able to get them at Tower Hobbies or other RC hobby store.

Chris Savage
12-08-2006, 12:31 AM
·· Some older ESC I have seen still require a servo but I’m sure many now do have the internal circuitry.· Guess I am showing my age.· The ones I refer to also use a wire-wound rheostat for the speed control.

Chris Savage
Parallax Tech Support

12-09-2006, 09:47 AM
Chris you are talking about some really old school ESC for Electric cars and trucks...

Brad Bentley
12-09-2006, 01:06 PM
I ended up buying a mag 8 ESC, which is for a brushless, its a 70 Amp continuous 90 amp max, I thought I would have it all setup. So I programmed the basic stamp, the program looks fine. and everything is all setup all the wires etc. So i try to fire the motor up, and all i hear is click click click click, etc etc. and its the ESC that needs to be programmed before I can use it!!! ERRRhttp://forums.parallax.com/images/smilies/mad.gif· Im mad cause I cant program the stupid thing without a reciever and transmitter. Unless somehow I can tap into the ESC? But I didnt spend 40 to tap into it and screw it up.

I was thinking i would just take it down to a RC hobby place, and paying them a few dollars to get it setup for me. I have my old homework board i am using to run this, the pulsout tests out fine for a regular servo. I was planning on using this setup for the project im running. and then I would have spare room on the board for extra programming storage. When i want to switch the speeds I could just load in another program.


12-09-2006, 01:24 PM
Well you can use a debug in statement and change the speed that way just like to example in the Whats a Microcontroller text page # ..122

Here is the code modified so you only have to input the duration (speed setting) you want and not the hold time which needs to be constant. This is setup for pin 14 to output the pulse change it to what pin you are using.

' What's a Microcontroller - ServoControlWithDebug.bs2
' Send messages to the BASIC Stamp to control a servo using
' the Debug Terminal.
' {$STAMP BS2}
' {$PBASIC 2.5}
counter Var Word
duration Var Word
DEBUG "Enter PULSOUT duration:", CR
DEBUGIN DEC duration
DEBUG "Servo is running...", CR
FOR counter = 1 TO 150
PULSOUT 14, duration