Legacy Forum: Preserving Nearly 20 Years of Community History - A Time Capsule of Discussions, Memories, and Shared Experiences.

Power electronics for 1m tall Humanoid

RoboSavvy distributes and manufactures robots. This forum is dedicated to robots and other bits designed or manufactured by RoboSavvy and robot software developed by RoboSavvy.
13 postsPage 1 of 1
13 postsPage 1 of 1

Power electronics for 1m tall Humanoid

Post by MarcoP » Wed Nov 14, 2012 8:00 pm

Post by MarcoP
Wed Nov 14, 2012 8:00 pm

Hi all.

I am starting this separate topic to discuss the power management features of the robot.

The robot will have 2 Lipos (4cell,8000mAh) and one DC input.
There will be two main uses for power: Servos and onboard PC(plus remaining electronics).
To reduce electromagnetic interference it is desirable that each battery supplies one system, independently from the other.

One of the requirements for the robot is that it allows for battery hot swapping. For this to be achieved it is possible to use 1 battery (or DC input) to power both systems. Some restrictions are applied for power usage in this situation.

One of the problems that must be addressed is the inrush currents generated when a LiPo battery is connected to the system, because of the capacitance's present (in DC-DC converters and to stabilize supply of power to the servos). These currents can damage or degrade components by creating excessive heating. Also of concern is that these kinds of fast rising currents can generate strong magnetic fields that can cause erroneous behavior of electronics. This should be avoided.

Three methods are being evaluated for this:

Method 1: NTC resistors in series with power supplies. These resistors have a few ohms when they are at room temperature, thus limiting the inrush current, but their resistance drops when they heat up to avoid unnecessary power waste. They are a cheap and fast solution to implement but they have some problems. If a battery is removed and replaced quickly, the resistor may not have enough time to cool down, meaning that when the new battery is connected the protection offered by the resistor will be lower if any. Another problem is that the resistor must be selected as to remain hot (sometimes over 100ºC) at normal operating current. This wastes some power and creates unwanted heating in the electronics. Also, in the case of the servos the current consumption is highly variable, which prevents a proper dimensioning of the resistor.

Method 2: Parallel of resistor and high current mosfet in series with power supply. This application uses a resistor to limit current inrush in a similar way to the previous method, however a transistor is used in this configuration to “short-out” the resistor terminals to prevent heating. This method removes all of the disadvantages from the NTC method. It does however add some complexity because some other circuitry is required to trigger the transistor at an appropriate time. The methods for achieving this are usually via analog circuits that measure current or voltage on the circuit side, or via a timer on a micro-controller.

Method 3: Hot Swap controller. There are available chips designed for this very purpose. They control a mosfet that powers the circuit, and generally use a current sense resistor to control the current that goes through the mosfet using negative feedback. Usually an external potentiometer can be used to set the desired maximum current. They are the most versatile of methods, because they can also be used as a resettable fuse preventing things from burning if short circuits occur. Since mosfets were already planned to be used for power switching, and there is a need to monitor current in real time, this method allows for the use of some components for a dual purpose. It is however the method that requires the most components.

We are planning on using method 3.
The planned implementation is to use an arduino running a state machine, that the user can modify, for example to have power switch over to dc automatically when it's plugged in. The fact that it is not hardwired makes it very flexible.
Also incorporated will be led and buzzer for low battery alarms, readout of battery voltage and a display for expended energy (by integration of the current measurement), which is a better way to gauge remaining charge level in a battery than by simply measuring voltage.

It's intended to have one unregulated output that can handle 50A continuous (for servos), and a secondary output rated at 15A to power an onboard 5V,5A regulated power supply and also to power the motherboard (12V, 6A). Since we hope this board might be used for other applications we are planning on using an off the shelf 12V dc dc converter, instead of also implementing it in the board.

The arduino will be connected to the pc so that we can know in software the parameters, such as battery level.

If anyone has some ideas regarding this, feel free to share.

Regards
Marco
Hi all.

I am starting this separate topic to discuss the power management features of the robot.

The robot will have 2 Lipos (4cell,8000mAh) and one DC input.
There will be two main uses for power: Servos and onboard PC(plus remaining electronics).
To reduce electromagnetic interference it is desirable that each battery supplies one system, independently from the other.

One of the requirements for the robot is that it allows for battery hot swapping. For this to be achieved it is possible to use 1 battery (or DC input) to power both systems. Some restrictions are applied for power usage in this situation.

One of the problems that must be addressed is the inrush currents generated when a LiPo battery is connected to the system, because of the capacitance's present (in DC-DC converters and to stabilize supply of power to the servos). These currents can damage or degrade components by creating excessive heating. Also of concern is that these kinds of fast rising currents can generate strong magnetic fields that can cause erroneous behavior of electronics. This should be avoided.

Three methods are being evaluated for this:

Method 1: NTC resistors in series with power supplies. These resistors have a few ohms when they are at room temperature, thus limiting the inrush current, but their resistance drops when they heat up to avoid unnecessary power waste. They are a cheap and fast solution to implement but they have some problems. If a battery is removed and replaced quickly, the resistor may not have enough time to cool down, meaning that when the new battery is connected the protection offered by the resistor will be lower if any. Another problem is that the resistor must be selected as to remain hot (sometimes over 100ºC) at normal operating current. This wastes some power and creates unwanted heating in the electronics. Also, in the case of the servos the current consumption is highly variable, which prevents a proper dimensioning of the resistor.

Method 2: Parallel of resistor and high current mosfet in series with power supply. This application uses a resistor to limit current inrush in a similar way to the previous method, however a transistor is used in this configuration to “short-out” the resistor terminals to prevent heating. This method removes all of the disadvantages from the NTC method. It does however add some complexity because some other circuitry is required to trigger the transistor at an appropriate time. The methods for achieving this are usually via analog circuits that measure current or voltage on the circuit side, or via a timer on a micro-controller.

Method 3: Hot Swap controller. There are available chips designed for this very purpose. They control a mosfet that powers the circuit, and generally use a current sense resistor to control the current that goes through the mosfet using negative feedback. Usually an external potentiometer can be used to set the desired maximum current. They are the most versatile of methods, because they can also be used as a resettable fuse preventing things from burning if short circuits occur. Since mosfets were already planned to be used for power switching, and there is a need to monitor current in real time, this method allows for the use of some components for a dual purpose. It is however the method that requires the most components.

We are planning on using method 3.
The planned implementation is to use an arduino running a state machine, that the user can modify, for example to have power switch over to dc automatically when it's plugged in. The fact that it is not hardwired makes it very flexible.
Also incorporated will be led and buzzer for low battery alarms, readout of battery voltage and a display for expended energy (by integration of the current measurement), which is a better way to gauge remaining charge level in a battery than by simply measuring voltage.

It's intended to have one unregulated output that can handle 50A continuous (for servos), and a secondary output rated at 15A to power an onboard 5V,5A regulated power supply and also to power the motherboard (12V, 6A). Since we hope this board might be used for other applications we are planning on using an off the shelf 12V dc dc converter, instead of also implementing it in the board.

The arduino will be connected to the pc so that we can know in software the parameters, such as battery level.

If anyone has some ideas regarding this, feel free to share.

Regards
Marco
MarcoP
Savvy Roboteer
Savvy Roboteer
Posts: 81
Joined: Thu Jan 19, 2012 6:14 pm

Re: Power electronics for 1m tall Humanoid

Post by PaulL » Sun Nov 18, 2012 12:59 am

Post by PaulL
Sun Nov 18, 2012 12:59 am

LTC1479? :)
LTC1479? :)
PaulL
Savvy Roboteer
Savvy Roboteer
Posts: 423
Joined: Sat Sep 15, 2007 12:52 am

Post by MarcoP » Sun Nov 18, 2012 1:21 pm

Post by MarcoP
Sun Nov 18, 2012 1:21 pm

Hi

I did take a look at that chip.
For the benefit of others, it's a chip that manages power from 2 batteries and a dc input. It saves a lot of trouble for many applications but since everything is hardwired so it is not very flexible.

We want something where the user can easily change the power management features in software.

To achieve this i am going to use 3 LTC4359 (Ideal Diode Controller) and a TPS2480PW (hotswap controller and inrush limiter). Since this is now a modular design it will be easier to control and modify in the future.

This will require one more power transistor, but in return we will get voltage and current measurement over i2c which is important for us.

Regards
Hi

I did take a look at that chip.
For the benefit of others, it's a chip that manages power from 2 batteries and a dc input. It saves a lot of trouble for many applications but since everything is hardwired so it is not very flexible.

We want something where the user can easily change the power management features in software.

To achieve this i am going to use 3 LTC4359 (Ideal Diode Controller) and a TPS2480PW (hotswap controller and inrush limiter). Since this is now a modular design it will be easier to control and modify in the future.

This will require one more power transistor, but in return we will get voltage and current measurement over i2c which is important for us.

Regards
MarcoP
Savvy Roboteer
Savvy Roboteer
Posts: 81
Joined: Thu Jan 19, 2012 6:14 pm

Post by PaulL » Wed Nov 21, 2012 4:05 pm

Post by PaulL
Wed Nov 21, 2012 4:05 pm

I have a question - do you really need to split the power packs? Why not go with a 4S2P pack along with DC input and charger circuit? I think the DC to DC converter should do well to reducing interference from the motor current spikes.

Btw, individual cell monitoring would be slick - I plan to do this on my RN-1 (only 2 cells, though). Agreed regarding current / voltage measurement - that's what "smart" battery packs in laptops do.
I have a question - do you really need to split the power packs? Why not go with a 4S2P pack along with DC input and charger circuit? I think the DC to DC converter should do well to reducing interference from the motor current spikes.

Btw, individual cell monitoring would be slick - I plan to do this on my RN-1 (only 2 cells, though). Agreed regarding current / voltage measurement - that's what "smart" battery packs in laptops do.
PaulL
Savvy Roboteer
Savvy Roboteer
Posts: 423
Joined: Sat Sep 15, 2007 12:52 am

Post by MarcoP » Wed Nov 21, 2012 5:51 pm

Post by MarcoP
Wed Nov 21, 2012 5:51 pm

Hi

I'm not sure that this will create problems. I agree that the dc/dc power converter probably is enough to filter everything out.
But why risk it?

But the main reason for two batteries is that it enables us to switch out the 2 batteries (one at a time) without the dc power supply, yet keep the pc and servos running.

It's a very useful feature to keep the robot more mobile.

Rgds
Marco
Hi

I'm not sure that this will create problems. I agree that the dc/dc power converter probably is enough to filter everything out.
But why risk it?

But the main reason for two batteries is that it enables us to switch out the 2 batteries (one at a time) without the dc power supply, yet keep the pc and servos running.

It's a very useful feature to keep the robot more mobile.

Rgds
Marco
MarcoP
Savvy Roboteer
Savvy Roboteer
Posts: 81
Joined: Thu Jan 19, 2012 6:14 pm

Post by MarcoP » Tue Nov 27, 2012 7:55 pm

Post by MarcoP
Tue Nov 27, 2012 7:55 pm

Hi

Just showing the setup we will be using to test the power electronics under load.

Image

We will be using a 16V 60A power supply to power the robot. I have it powering a car bulb since it's the best money for power resistor i could get.
I draws about 10A, so i will need 4 more to test it at the rated 50A.

A shunt resistor is used to allow for current measurement with a panel amp meter.

Regards
Hi

Just showing the setup we will be using to test the power electronics under load.

Image

We will be using a 16V 60A power supply to power the robot. I have it powering a car bulb since it's the best money for power resistor i could get.
I draws about 10A, so i will need 4 more to test it at the rated 50A.

A shunt resistor is used to allow for current measurement with a panel amp meter.

Regards
MarcoP
Savvy Roboteer
Savvy Roboteer
Posts: 81
Joined: Thu Jan 19, 2012 6:14 pm

Post by MarcoP » Tue Dec 04, 2012 9:04 pm

Post by MarcoP
Tue Dec 04, 2012 9:04 pm

Hi

So now time to design the pcb.

Assuming 50ºC inside the robot and and 1 oz pcb we are looking at about 10cm trace width to handle 50A which of course is not practical.

To get usable trace widths we seem to have two options.
One is to place the high current components so close together that their terminals almost touch, which will enable us to use large amounts of solder that should handle the current.
The problem with this method is that by concentrating the high current components the heat buildup might be too much.
Second option is to spread them out more and use copper bus bars for the high current traces. However this will add size and weight to the board.

Going to do a prototype board to test method 1 and see how it goes.

Regards
Hi

So now time to design the pcb.

Assuming 50ºC inside the robot and and 1 oz pcb we are looking at about 10cm trace width to handle 50A which of course is not practical.

To get usable trace widths we seem to have two options.
One is to place the high current components so close together that their terminals almost touch, which will enable us to use large amounts of solder that should handle the current.
The problem with this method is that by concentrating the high current components the heat buildup might be too much.
Second option is to spread them out more and use copper bus bars for the high current traces. However this will add size and weight to the board.

Going to do a prototype board to test method 1 and see how it goes.

Regards
MarcoP
Savvy Roboteer
Savvy Roboteer
Posts: 81
Joined: Thu Jan 19, 2012 6:14 pm

Post by MarcoP » Thu Dec 06, 2012 4:29 pm

Post by MarcoP
Thu Dec 06, 2012 4:29 pm

Hi

Another important consideration is to protect the expensive electronics and servos from voltage irregularities.

The do this we are using an unidirectional transient voltage suppression diode (TVS).
Image

It's basically a zener diode optimized for high speed switching connected across the voltage input form the batteries or dc input.

Any large voltage spike get's shorted out trough the diode to clamp the voltage to safe levels.

If by some reason voltage is reversed in the inputs, for example wrong wiring the diode shorts it out to prevent it from damaging electronics.

The power supply we are using (see above) has short circuit protection.

To tests thing out i wanted to know how fast does the power supply shutdown if a short is detected. To do that i used a shunt resistor (shown above) connected to an oscilloscope.

When i short out the supply i get this in the oscilloscope:
Image
So it seems the power supply turns off in about 8ms.
(a lot of noise in the signal since it has a lot of gain)

Next we wanted to make sure the TVS could handle the shorts without damage, so we shorted out the supply using the TVS.

Image

The picture tells us that the short draws about 100A. We tested the TVS under the worse possible condition, ie without being mounted on the pcb which means minimal heatsinking. Still there was no noticeable rise in temperature, which tell us it is good enough .

Regards
Hi

Another important consideration is to protect the expensive electronics and servos from voltage irregularities.

The do this we are using an unidirectional transient voltage suppression diode (TVS).
Image

It's basically a zener diode optimized for high speed switching connected across the voltage input form the batteries or dc input.

Any large voltage spike get's shorted out trough the diode to clamp the voltage to safe levels.

If by some reason voltage is reversed in the inputs, for example wrong wiring the diode shorts it out to prevent it from damaging electronics.

The power supply we are using (see above) has short circuit protection.

To tests thing out i wanted to know how fast does the power supply shutdown if a short is detected. To do that i used a shunt resistor (shown above) connected to an oscilloscope.

When i short out the supply i get this in the oscilloscope:
Image
So it seems the power supply turns off in about 8ms.
(a lot of noise in the signal since it has a lot of gain)

Next we wanted to make sure the TVS could handle the shorts without damage, so we shorted out the supply using the TVS.

Image

The picture tells us that the short draws about 100A. We tested the TVS under the worse possible condition, ie without being mounted on the pcb which means minimal heatsinking. Still there was no noticeable rise in temperature, which tell us it is good enough .

Regards
MarcoP
Savvy Roboteer
Savvy Roboteer
Posts: 81
Joined: Thu Jan 19, 2012 6:14 pm

Toaster oven smd reflow

Post by MarcoP » Tue Dec 11, 2012 7:56 pm

Post by MarcoP
Tue Dec 11, 2012 7:56 pm

Hi again

Another step we needed to take was to get some equipment to do smd reflow soldering.

Again we saw how we can do more with less.

Since we are not going to be doing a lot of these we chose to use a small electric oven.

Image

Image

It took too long to reach the needed temperatures, because a lot of heat was being lost trough the surface. To solve that, the inside of the oven was lined with tin foil to reflect heat better.

To measure temperature we used an k type thermocouple. (green wire in oven) that will be attached to the boards.

What was now needed was to turn the oven on and off with a PID controller to achieve the correct temperatures.

We had and extruder controller board laying around from an older model of 3d printer that is basically an arduino with a few transistor outputs and a chip to read to the temperature sensor.

All that was needed was to connect to a relay to switch the oven on and off.

Image

Since we are not going to use this often we did not add an LCD screen that is usual in these setups. We are just going to monitor the temperatures in the pc connected to the arduino.

The desired temperatures and time intervals are set in the software and a simple PID control is used to turn the relay on and off. After a few tweaks we managed to get it to follow the temperature profile with no more than 5ºC error.

We will get back to this when we get pcb ready to populate.

Regards
Hi again

Another step we needed to take was to get some equipment to do smd reflow soldering.

Again we saw how we can do more with less.

Since we are not going to be doing a lot of these we chose to use a small electric oven.

Image

Image

It took too long to reach the needed temperatures, because a lot of heat was being lost trough the surface. To solve that, the inside of the oven was lined with tin foil to reflect heat better.

To measure temperature we used an k type thermocouple. (green wire in oven) that will be attached to the boards.

What was now needed was to turn the oven on and off with a PID controller to achieve the correct temperatures.

We had and extruder controller board laying around from an older model of 3d printer that is basically an arduino with a few transistor outputs and a chip to read to the temperature sensor.

All that was needed was to connect to a relay to switch the oven on and off.

Image

Since we are not going to use this often we did not add an LCD screen that is usual in these setups. We are just going to monitor the temperatures in the pc connected to the arduino.

The desired temperatures and time intervals are set in the software and a simple PID control is used to turn the relay on and off. After a few tweaks we managed to get it to follow the temperature profile with no more than 5ºC error.

We will get back to this when we get pcb ready to populate.

Regards
MarcoP
Savvy Roboteer
Savvy Roboteer
Posts: 81
Joined: Thu Jan 19, 2012 6:14 pm

Post by MarcoP » Thu Feb 07, 2013 1:21 pm

Post by MarcoP
Thu Feb 07, 2013 1:21 pm

The cost of growing: Our fist custom made PCB's

Image

As well as the stencils for them:

Image

The larger one is the power board. Notice the huge pads to dissipate heat as well as vias to use the the other side to dissipate heat as well.

Also board for sensors, communications and for magnetic encoder(for another project).

Regards
The cost of growing: Our fist custom made PCB's

Image

As well as the stencils for them:

Image

The larger one is the power board. Notice the huge pads to dissipate heat as well as vias to use the the other side to dissipate heat as well.

Also board for sensors, communications and for magnetic encoder(for another project).

Regards
MarcoP
Savvy Roboteer
Savvy Roboteer
Posts: 81
Joined: Thu Jan 19, 2012 6:14 pm

Post by MOHIT JINDAL » Thu Feb 07, 2013 3:01 pm

Post by MOHIT JINDAL
Thu Feb 07, 2013 3:01 pm

50amp for servos :shock: :roll: I don't think there is any dc servo which takes 50amp. ServoCity mega servos ?
50amp for servos :shock: :roll: I don't think there is any dc servo which takes 50amp. ServoCity mega servos ?
MOHIT JINDAL
Savvy Roboteer
Savvy Roboteer
Posts: 178
Joined: Wed Nov 10, 2010 7:43 am

Post by MarcoP » Fri Feb 08, 2013 1:10 pm

Post by MarcoP
Fri Feb 08, 2013 1:10 pm

Hi

The robot uses Robotis Servos. Mx106, 64 and 28. Over 20 in total.
If we add all of the power requirements we will come up with a large value for current. For 99% of the time the robot will be using very little current, but when doing complex movements where all the servos move at once the current will be very high.

This was designed for 50A so that we have a safety margin. (the current for all of the servos goes trough this board).

Rgds
Hi

The robot uses Robotis Servos. Mx106, 64 and 28. Over 20 in total.
If we add all of the power requirements we will come up with a large value for current. For 99% of the time the robot will be using very little current, but when doing complex movements where all the servos move at once the current will be very high.

This was designed for 50A so that we have a safety margin. (the current for all of the servos goes trough this board).

Rgds
MarcoP
Savvy Roboteer
Savvy Roboteer
Posts: 81
Joined: Thu Jan 19, 2012 6:14 pm

Post by MarcoP » Mon Feb 11, 2013 2:43 pm

Post by MarcoP
Mon Feb 11, 2013 2:43 pm

So here are our first tries of using solder paste in our reflow oven (look back a few posts):

Solder paste placed on chip legs (still unbaked)
Image

You can see the solder spheres suspended in the flux.

Not stellar results (245ºC):
Image

We suspected that the cause was insufficient temperature, because the temperature sensor was not placed close to the chip, so we repeated the test with the thermo couple right up against the chip and the results were better:

Image


Take as comparison a professional made board:
Image


Seems we are in the right track here.
We feel confident that we can move on to the actual prototype.

Rgds
So here are our first tries of using solder paste in our reflow oven (look back a few posts):

Solder paste placed on chip legs (still unbaked)
Image

You can see the solder spheres suspended in the flux.

Not stellar results (245ºC):
Image

We suspected that the cause was insufficient temperature, because the temperature sensor was not placed close to the chip, so we repeated the test with the thermo couple right up against the chip and the results were better:

Image


Take as comparison a professional made board:
Image


Seems we are in the right track here.
We feel confident that we can move on to the actual prototype.

Rgds
MarcoP
Savvy Roboteer
Savvy Roboteer
Posts: 81
Joined: Thu Jan 19, 2012 6:14 pm


13 postsPage 1 of 1
13 postsPage 1 of 1