OpenServo.com Forum Index OpenServo.com
Discussion of the OpenServo project
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

OpenServo High Current controller

 
Post new topic   Reply to topic    OpenServo.com Forum Index -> Applications
View previous topic :: View next topic  
Author Message
ginge
Site Admin


Joined: 14 Jan 2006
Posts: 1029
Location: Manchester, UK

PostPosted: Tue Jul 04, 2006 4:42 pm    Post subject: OpenServo High Current controller Reply with quote

Hi all,

I have just finished and build a controller for a large 6A motor using OpenServo MCU and reference design. It can supply up to 12A continuous, and 15A peak. This is a large board, but has loads of connectors and outputs.

It's a little rough around the edges, and you could consider this a version 0.001 pre-pre-alpha. It does work though!



Check it out here
http://www.headfuzz.co.uk/?q=OpenServoBig

I update with a photo when I'm back form my holidays (2 weeks)

Barry
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
mpthompson



Joined: 02 Jan 2006
Posts: 650
Location: San Carlos, CA

PostPosted: Tue Jul 04, 2006 10:49 pm    Post subject: Reply with quote

Looks great Barry. Have a good vacation.
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
coallen



Joined: 09 May 2007
Posts: 8

PostPosted: Wed May 09, 2007 12:42 am    Post subject: Reply with quote

Hi Barry,

I am interested in making use of your PCB design for a high current driver. I have some motors that I suspect to be in the 10-12 amp range that I would like to use in a robot arm design. Could you tell me if the PCBs on your web site are the latest version and if they can be re-used?

Thanks in advance,
Chris
Back to top
View user's profile Send private message
ginge
Site Admin


Joined: 14 Jan 2006
Posts: 1029
Location: Manchester, UK

PostPosted: Wed May 09, 2007 10:06 am    Post subject: Reply with quote

Hi Chris,

Thanks for the interest.

The designs I have on my website are slightly dated now, but are functional.

I created a slightly newer version of this design here:
http://www.headfuzz.co.uk/?q=node/49

which uses a hex display instead of LEDs. This fixed up a couple of problems.

The amount of current your motors require is rather large. I can't see my boards being able to drive your motors if that is the average current. The L6203 driver I used can support continuous current of 6-7A with a absolute max peak of about 12A. The figures I posted above were slightly too high, and misrepresented. I apologise, it was my mistake reading the spec sheets.

I would recommend you look at creating a discrete H-Bridge using banks of High current parallel FETs to meet your demands.

Something I also later added to my design was a small PTC fuse to one of the motor terminals. This stops the bridge blowing out if there is a sustained stall on the motor. I would recommend doing this on any design you use.

In summary:- I don't think my driver boards are going to work out too well for you.

Let me know if there is anything I can do to help out with a suitable design. I will shortly be needing a very high current driver much like you. Hopefully I can work though the design and create something that is suitable.

Barry
_________________
http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
coallen



Joined: 09 May 2007
Posts: 8

PostPosted: Wed May 09, 2007 12:37 pm    Post subject: Reply with quote

Actually, 6-7 amps is what I suspect the average current to be with max draws in the 10-12 amp range. Though I'm just speculating. I need to test them out and see what they really are.

I like your design because it's also got a current sensor built in. From what I've been reading, OpenServo 3.0 might have that as well. What are your thoughts on driving heavier duty MOSFETS from the output of the stock OpenServo design?

Thanks again for your help. And I would just like to say you've got a very nice site.

Chris
Back to top
View user's profile Send private message
ginge
Site Admin


Joined: 14 Jan 2006
Posts: 1029
Location: Manchester, UK

PostPosted: Wed May 09, 2007 12:56 pm    Post subject: Reply with quote

Chris, Thanks Smile

OpenServo v2.x also has the current sensor. It has been a feature since the beginning.

Quote:
What are your thoughts on driving heavier duty MOSFETS from the output of the stock OpenServo design?


This is something I have tried and tested before. I broke out a connection before the FET drivers on the current board and took then off to my own driver hardware. This is how I came up with the designs above in the first place. It works well enough, but the current sensor capability because redundant in this case. Even if you were to hook up the current sensor from the OpenServo board you would end up frying the sense resistor.

I would recommend a hall-effect type sensor to read the very high current motors, the small sensors we use at the moment are inaccurate at high current.

Barry
_________________
http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
coallen



Joined: 09 May 2007
Posts: 8

PostPosted: Thu May 17, 2007 1:50 pm    Post subject: Reply with quote

If I were to hookup larger MOSFETs to the output of the standard OpenServo board, would there be any other changes I would need to make? What about the current sensor? Would I be in danger of frying it?

Also, what are your thoughts on using an absolute encoder instead of a potentiometer? Is there really that much benefit? The encoders such as the ones from US Digital are nice, but expensive (~$50) compare to a cheap pot.

Thanks!
Chris
Back to top
View user's profile Send private message
ginge
Site Admin


Joined: 14 Jan 2006
Posts: 1029
Location: Manchester, UK

PostPosted: Thu May 17, 2007 2:13 pm    Post subject: Reply with quote

Hi Chris,

If you use larger FETs on the standard OpenServo, you could run into several problems.

The first problem will be the PCB trace current capacity. You will end up burning those out before you fry the current sense resistor.
The traces onboard will not carry more than a couple of amps without damage.

The next problem, as you have already identified, is the current sense resistor. The wattage of this component will need to be uprated by a large margin. As the wattage of the resistor increases, so does its package size. You can't expect to fit a much larger resistor in place of the one already onboard.

There will be other less defines problems due to the inductance and the PWM driving. You will need to tweak the PWM settings. You will also run into problems with AVR brownouts where the motor is saturating the board. Adding some large protection caps should help here.

As for the encoder. This is an idea that keeps getting thrown around. I personally coded up some basic encoder support that worked well for the modified boards, but maxed out the AVR's processing capability at 2500-3000 ppr. If you want to use a stock 8MHZ OpenServo board to do the counting of the pulses, expect to have to code it up in super optimised fashion, or suffer from horrible PID and PWM performance.

I think we may have more luck with the 20MHZ version 3 that is currently in the works, but this is entirely wishful thinking at this point, as it is all a work in progress.

On a side note, I am currently working on a new design for my robot boards that will sink a continuous 10A current and 15A peak. The board is obviously a little larger than an OpenServo, but provides much more power than the previous modifications I have posted up. I expect this to be posted up on my website in the next couple of weeks, time permitting.

Barry
_________________
http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
coallen



Joined: 09 May 2007
Posts: 8

PostPosted: Thu May 17, 2007 2:39 pm    Post subject: Reply with quote

Hi Barry,

Thanks for the quick response.

ginge wrote:
The first problem will be the PCB trace current capacity. You will end up burning those out before you fry the current sense resistor.
The traces onboard will not carry more than a couple of amps without damage.

I should have been more specific. I was thinking of taking the control output from the standard OpenServo board and using it to drive larger MOSFETs. The power the MOSFETs are controlling would not come from the OpenServo board. Given this setup, would you see any issues? Now that I think about it, I suppose the current sensor wouldn't be an issue. Sorry, I'm still working on my coffee this morning : )

ginge wrote:
As for the encoder. This is an idea that keeps getting thrown around. I personally coded up some basic encoder support that worked well for the modified boards, but maxed out the AVR's processing capability at 2500-3000 ppr. If you want to use a stock 8MHZ OpenServo board to do the counting of the pulses, expect to have to code it up in super optimised fashion, or suffer from horrible PID and PWM performance.

The encoders I was looking at are the following:

http://www.usdigital.com/products/mae3/

You can purchase them in a configuration that outputs an analog signal, much like a pot, so you wouldn't have to count the pulses. Given this configuration, do you see any advantages over a pot?

ginge wrote:
On a side note, I am currently working on a new design for my robot boards that will sink a continuous 10A current and 15A peak. The board is obviously a little larger than an OpenServo, but provides much more power than the previous modifications I have posted up. I expect this to be posted up on my website in the next couple of weeks, time permitting.


This is great news! If you are looking for someone to go in on the first batch, PM me. I need 8-10 of them. My expertise is in application and client/server development, so I'm not an expert in embedded programming but am working on that in my personal time. However, I'm coming up to speed on programming the AVR and if there's anything I can help with on your project, please let me know.

Thanks again,
Chris
Back to top
View user's profile Send private message
ginge
Site Admin


Joined: 14 Jan 2006
Posts: 1029
Location: Manchester, UK

PostPosted: Thu May 17, 2007 3:06 pm    Post subject: Reply with quote

Hi,

Quote:
should have been more specific. I was thinking of taking the control output from the standard OpenServo board and using it to drive larger MOSFETs. The power the MOSFETs are controlling would not come from the OpenServo board. Given this setup, would you see any issues?


I don't see any issues with this. It is something I have done before. I found it best to break out the connection to you board before the FETs and not after. In this setup you will be using the lines from the MCU directly, byapssing the bridge portion. This way you have a little more noise immunity. It may also be worth your while removing the FETs to stop the switching noise cutting into your external bridge.

Quote:
You can purchase them in a configuration that outputs an analog signal, much like a pot, so you wouldn't have to count the pulses. Given this configuration, do you see any advantages over a pot?


Sexy! I like the look of those. There would be many reasons to use something like this over a pot. A pot is generally quite noisy, what I mean by that is that as the wiper moves over the trace inside the pot it can product a little error causing you motor jitter. These encoders would not suffer from that problem. You might need to scale the output from the encoder to the correct range to get the most, but definately worth the while.

I will let you know how I get on with the new driver hardware. It is currently in testing phase. Silly little things like life keep getting in the way.

Barry
_________________
http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    OpenServo.com Forum Index -> Applications All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group