Welcome to my website


Archive
The power of the Raspberry PI
29 August 2012 20:42


Warning: One Raspberry pi was hurt doing this Blog, please keep children away from the screen.

I have planned to use this super cool Raspberry PI for an number of projects and some of them will be battery powered, so when I got my RPI, I was looking at how much power it is using and if there is some way to make this better.
by looking at the board I can see there is some LDO’s (RG1, RG2 and RG3) and I was thinking if I just replaced them with some switch mode modules from EBay then maybe saving some watts.
So I then Google around and looked into forums to see what other users was saying and maybe has done it already and from that I discovered that there are a number of issues and things that I maybe have to look into and find some way of resolving it for my project.

So the issue I have found on my list is.

  • Volt levels for stabile operations
  • Micro USB power loss
  • Polyfuse
  • LDO (RG1, RG2 and RG3) efficiency VS switch mode
  • LAN9512 1.8V power issue.

Volt levels for stabile operations
The power supply for the raspberry pi most deliver 5.0V and 700+ mA for it to work stabile and the volt level most be between 4.75V and 5.25V volt over the range of 0-700 mA, but it seems that people has an hard time finding power supply that can deliver the stabile volt levels over the whole mA range.

Micro USB power loss
I think it is an good idea to use an common connector like the Micro USB but what I have found is that all the USB cables I have is there an high loss level do to very thin wires and resistance in the cable, so the only way to be sure it is working well and at the right levels is to measuring the volt level between the test point TP1 and TP2 on the board.

Polyfuse
There is 3 Polyfuse on the board, one at the Micro USB power connector and the other two are at the USB ports. They are there is protect the board and that is a good thing but they have an resistance there is changing and they limit the power there can be drawn from the USB ports to around 130-150mA and it seems that a lot of users have issues when they connect things to the USB port like a USB wireless network dongle then the device do not work because of the limit power and do to the resistance in them then there is an extra power loss in them.

LDO (RG1, RG2 and RG3) efficiency VS switch mode
to keep the design simple and the cost low they have used Low-dropout regulator aka LDO to converting the 5v to 1.8V, 2.5V and 3.3V but they are not so efficiency when compared with the switch mode.

LAN9512
There has unfortunately been an small design error on the board, it is because there is inside the LAN9512 chip is an 1.8V LDO regulator to power the internal functions of the chip but the output pins has been connected to the output pin of the external 1.8V LDO(RG1) so the two LDO are in parallel.
The problem is that the internal LDO is (on my boards) having an slightly higher volt level then the RG1 is having, so this mean that the LAN9512 internal LDO is feeding the other parts on the board with 1.8V and because of this then the LAN9512 chip is getting hot and the internal LDO has not been design to power any external parts.

 

So the big question is how much power does the RPI use and how to get it to use less power?

 

Polyfuse
I understand they are there to protect the RPI but for me they are just a pain in the b… because I cannot connected an USB wireless network dongle or an USB webcam because they just use too much power, so what I have done is simple to make an small short over the Polyfuse with an small jumper so I can easily test with and without the short in place, but from all my testing it works very well with the short and I have not seen any issues with it.

Polyfuse F1 & F2
the two fuses are there to protect the board and 5v power from USB devices there is using too much power.

On the left you can see the unmodified board and on the right is my board where I have solder an jumper block over the F1 and F2, by doing it this way I can easy test things with the short and without.

Polyfuse F3
the F3 is the 5V input fuse

on the left there is the unmodified board and on the right you can see the my board with the jumper block over the F3 fuse

Newsflash: When I was writing this blog post the Raspberry Pi team has just posted in the forum that all new boards will no longer have the polyfuse and there will just be an 0 Ohm short part in their place and when they at some time will make an new version of the board then the part will be removed from the design.

 

Low-dropout regulator
I have removed the two LDO’s RG1 & RG2 from my board because I can then test with different options to power the 3.3V and the 1.8V rail, it also make it easier to measure how much power each rail is using.
I have not removed the RG3 as it is very small and I think it is very limit what power there is going through it so it is not worth to use time on, maybe on another test at a later time.

Removing RG1
The RG1 LDO is converting 3.3V into 1.8V

on the left is the unmodified board and on the right you can see that I have replaced the LDO with an pin header so I can very easily connect other LDO’s or switch mode modules to it.

Removing RG2
The RG2 LDO is converting 5.0V into 3.3V

on the left side is the unmodified board and on the right is the board with the LDO removed!!, it was not going well when tried to remove it and the trace came off the board, I think I just used to much heat in the attempt to heat up the tin under the LDO. So because of this I cannot solder on a pin header but it does not matter too much because I can just use the other pin header on the board where I can find the GND, 5V and 3.3V pins.

 

LAN9512
The function of this chip is the USB ports and network card, there has been an small design error when they made the boards and that is the internal 1.8V of the LAN9512 is connected to the external 1.8V power rail and it was not design for this dual LDO mode and when the LAN9512 LDO is having a higher volt level then the external RG1 is having then it is starting to use the LAN9512 LDO to power the other devices on the board and this is why there has been an number of reports about the LAN9512 getting very hot.

Fixing the LAN9512 1.8V issue
it is not easy because this chip is very small and there are two pins for 1V8 core pin15 & pin38 there has to be disconnected from the board and then you have to add 3 new decoupling caps, one on 4.7uF and two 0.1uF.

Here is a photo of the unmodified chip.

Here is a photo where I have cut the board traces to pin 15 & 38 and then solder on some wires.

 

Here is a photo of my board with all the modifications.

The pin header on top of C11 in the lower left corner is just an easy place to put the pin header where I have connected the yellow wires to the top pin and the two other pins on the cap C11 is 3.3V and GND.

 

Testing the power use
In order to measure different between the setups then the tests must be the same each time so it is easier to compare the data, so for each test setup I then first do the measurement when the raspberry is idle and another one when it is fully working on all it parts and for each test setup the test was running for 45+ minutes in order to get an stabile temperature and the background temperature was just around 27C for all the tests.

The Image
The OS image is the Debian Wheezy from the 18/6-12 and on the 24/6-12 it was updated with command apt-get update and apt-get upgrade

Load testing
The fully load test is 3 different commands in order to put work load on all parts of the raspberry pi and it have taking me some time to find what tests to use and in what combinations, so here is an small list and description of the tests.

Workload 1 for network
from my desktop pc I copied many gigabytes of files to and from the RPI and I used the WinSCP to copy the files.

Workload 2 for graphics
To place an workload on the graphics part in the CPU on the RPI I have used the omxplayer there is an command line player where it was playing an Mpeg4 movie clip there was stored on the SD card.
Command line: omxplayer movieclip.m2ts

Workload 3 for CPU, IO, Storage and Memory
In order to best put work load on all other parts of the Raspberry Pi I have then used the application called “Stress” there is designed to do stress testing and it seems to do an very good job.
Website: http://weather.ou.edu/~apw/projects/stress/
Command line: stress -v --cpu 4 --io 4 --hdd 2 --vm 2 --vm-bytes 64M --timeout 1h

 

Thermal image
The thermal images I have posted here is color corrected to low temperature at 28C and high at 63C and this is very important to do if your comparing images because if they are not then the color temperature values on the images will not be the same, If the images are not corrected then let say 50C can be the red color in one image and in another it is yellow and this make it hard to compare the images and have the true view of them, I have seen number others thermal images on the net where they have not correct the values and this gives an misleading impression of the data, so this is why all my images are corrected to low 28C and high temperature to 63C.

 

Test 1
Work load: Idle mode
Board: Unmodified board
in this test it is simple an unmodified board and it is just power on with one SSH session to my pc so I can verify that the RPI is working.

Here is a photo of the test setup.

Thermal image of the Raspberry Pi


Power usage
Power rail
Volt
Amp
Watt
5.0V
4.960V
0.371725A
1.843756W

Heat profile (max values)
Heat location
Fluke T25 Thermal Imager
RG1 1.8V LDO
39.34C
RG2 3.3V LDO
55.78C
CPU/RAM
49.59C
LAN9512
57.56C

 

 

Test 2
Work load: Copying files over the network with SCP, omxplayer with mpeg4 movie and Stress test
Board: Unmodified board

Thermal image of the Raspberry Pi

Here you can see the RG1 is not very hot so it is not doing any work and it is the LAN9512 chip there is supply the board with the 1.8V

Power usage
Power rail
Volt
Amp
Watt
5.0V
4.901V
0.471345A
2.310061W

Heat profile (max values)
Heat location
Fluke T25 Thermal Imager
RG1 1.8V LDO
41.56C
RG2 3.3V LDO
61.16C
CPU/RAM
54.44C
LAN9512
60.28C

 

 

Test 3
Work load: Idle mode
Board: Modified board
the same as test 1 but this time with a modified board where the LAN9512’s 1.8V rail is not connected to the RG1 so that the LAN9512 no longer supply the other parts on the board with 1.8V.

Here is a photo of the test setup
 
in the top with the red, brown and black wires are the 3.3V RG2 and on top of the RG1 pin header is the 1.8V LDO, the prototype board over the raspberry is the 3 decoupling caps for the LAN9512, yes I know it is best to have the caps as close to the chip as possible.

Thermal image of the Raspberry Pi


Power usage
Power rail
Volt
Amp
Watt
5.0V
4.927V
0.366391A
1.805208W

Heat profile (max values)
Heat location
Fluke T25 Thermal Imager
RG1 1.8V LDO
43.81C
RG2 3.3V LDO
100.78C
CPU/RAM
45.16C
LAN9512
53.59C

The RG1 and RG2 temperatures cannot be compared to them there is on the unmodified board because they are not mounted in the same way and don’t have the board pad for heat dissipation.
Yes the value of RG2 is correct and I have rechecked them to be sure.

 

 

Test 4
Work load: Copying files over the network with SCP, omxplayer with mpeg4 movie and Stress test
Board: Modified board
the same as test 2 but this time with a modified board where the LAN9512’s 1.8V rail is not connected to the RG1 so that the LAN9512 no longer supply the other parts on the board with 1.8V.

Thermal image of the Raspberry Pi


Power usage
Power rail
Volt
Amp
Watt
5.0V
4.898V
0.469403A
2.299268W

Heat profile (max values)
Heat location
Fluke T25 Thermal Imager
RG1 1.8V LDO
46.56C
RG2 3.3V LDO
112.41C
CPU/RAM
50.28C
LAN9512
55.44C

The RG1 and RG2 temperatures cannot be compared to them there is on the unmodified board because they are not mounted in the same way and don’t have the board pad for heat dissipation.
Yes the value of RG2 is correct and I have rechecked them to be sure.

 

 

 

So now we know how much power the Raspberry Pi uses with the LDO’s, but how much power does the Raspberry Pi actually use?

To test this I have now removed the LDO’s from the setup and is now not only feeding the RPI with 5.0V but also the 3.3V and 1.8V rail from external supply’s and this allows me to measure the power use of the 3 rails without the power converters and this will tell how much it is actually is using and by this I will have better data for finding an high efficiency power converters to replace the LDO’s.

Here are some photos of the setup with the external power rails.



My bench power supply is providing the setup with 5.0V and then I have to switch mode boards there is providing the 3.3V and 1.8V

 

 

Test 5
Work load: Idle mode
Board: Modified board
the same as test 1 but this time with a modified board where the LAN9512’s 1.8V rail is not connected to the RG1 so that the LAN9512 no longer supply the other parts on the board with 1.8V and the RG1 & RG2 is removed from the board.

Thermal image of the Raspberry Pi


Power usage
Power rail
Volt
Amp
Watt
5.0V
4.998V
0.035272A
0.176289W
3.3V
3.259V
0.026200A
0.085385W
1.8V
1.813V
0.065550A
0.118842W
Total watt =
0.380516W

Heat profile (max values)
Heat location
Fluke T25 Thermal Imager
RG1 1.8V LDO
33.94C
RG2 3.3V LDO
40.31C
CPU/RAM
44.19C
LAN9512
52.97C

 

 

 

Test 6
Work load: Copying files over the network with SCP, omxplayer with mpeg4 movie and Stress test
Board: Modified board
the same as test 2 but this time with a modified board where the LAN9512’s 1.8V rail is not connected to the RG1 so that the LAN9512 no longer supply the other parts on the board with 1.8V and the RG1 & RG2 is removed from the board.

Thermal image of the Raspberry Pi


Power usage
Power rail
Volt
Amp
Watt
5.0V
4.973V
0.066198A
0.329202W
3.3V
3.231V
0.030200A
0.097576W
1.8V
1.778V
0.079480A
0.141315W
Total watt =
0.568093W

Heat profile (max values)
Heat location
Fluke T25 Thermal Imager
RG1 1.8V LDO
34.63C
RG2 3.3V LDO
42.50C
CPU/RAM
49.81C
LAN9512
55.25C

 

 

 

Summary for test 1-4
Test description
CPU/RAM temp.
LAN9512 temp.
Total power usage
Test 1 – Unmodified board
Workload: Idle
49.59C

57.56C

1.843756W

Test 2 – Unmodified board
Workload: heavy stress tests
54.44C

60.28C

2.310061W

Test 3 – Modified board (fixed the LAN9512 issue)
Workload: Idle
45.16C

53.59C

1.805208W

Test 4 – Modified board (fixed the LAN9512 issue)
Workload: heavy stress tests
50.28C

55.44C

2.299268W

LAN9512 issue with the 1.8V
the issues with the small design error there is connection the two 1.8V LDO’s together is having the unlucky impact that the RG1 LDO is not doing any work and it is the LAN9512 chips build-in LDO there is powering the other parts on the board with the 1.8V, the build-in LDO is design to power the internal parts of the chip and the reason why there is an pin out of the chip is because it needs to be connected to some external capacitors for its stabile operation. The RG1 LDO is on the board to provide the 1.8V power to the other parts on the board like the RAM, CPU and maybe others...

So how much hotter do the LAN9512 chip get because of this?
If you compare the tests 1+2 there is the unmodified board to the tests 3+4 where I have modified the board to resolving the error.

How much hotter is the LAN9512 chip in idle mode?
If we take LAN9512 values from test1-test3 it is (57.56C-53.59C) = 3.97C

How much hotter is the LAN9512 chip in hard work mode?
If we take LAN9512 values from test2-test4 it is (60.28C-55.44C) = 4.84C

How much hotter is the CPU/RAM chip in idle mode?
If we take CPU/RAM values from test1-test3 it is (49.59C-45.16C) = 4.43C

How much hotter is the CPU/RAM chip in hard work mode?
If we take CPU/RAM values from test2-test4 it is (54.44C-50.28C) = 4.16C

so if we take the average of the four values ((3.97C+4.84C+4.43C+4.16C)/4) it is 4.35C that the temperature is higher because of this small design error, but I have from other undocumented tests I have done then I have seen the temperature different be around 8C and I am an little surprised that I only is seems the temperature around 4C higher now when I have seen it at 8C and the only explanation that I can think of is that in this testing the RPI board is mounted on some small stands there is giving the board around 1cm of free air under the board and when I have done the other tests where I have seen the 8C, then the board has been placed flat down on my table so there is no air under it..
So if it is 4C with 1cm of air under the board and 8C with no air under the board, so how much worse will it be if this board was mounted inside some small case... I have not tested with a case but I will guess that it will get more then 10C hotter when inside a case where it not can get the heat away from the board.

So is a heat sink a good idea? If there not was this error on the board then I will say no as then the temperature values will be fine within the specs of it, but because there is this error and I have seeing an 4-8C higher temperature for free air boards and most likely higher when inside an box then I will say YES I think it is an good idea because it will most likely give the board an longer life and be more stable.

Is it a good idea for you to try fixing the LAN9512 error?
It is not very easy to fix this and I had to use an microscope to see what I was doing, so it is not an simple task doing this and what is it giving you… just an lower temperature, it is not like this error is preventing the board from function correctly and the fixed make it work, it is just temperature.
So NO I don’t think it is a good idea that you try to fix this heat issue when you just can put on a heat sink and that may be just as good fix there is making the chips getting cooler.

Now the next question is will the board use less or more power with this LAN9512 fix?
If we see the idle mode for test1 and test3’s power then it is (1.843756W-1.805208W)=0.038548W and for the hard working mode in test 2 and test 4 it is (2.310061W-2.299268W)=0.010793W.
This is a very small saving in power so it's not worth using time on and this is because when we change the load from one LDO to another LDO then the different is very small.

 

Summary for test 5-6
Test description
CPU/RAM temp.
LAN9512 temp.
Total power usage
Test 5 - Modified board (removed the RG1+RG2 and fixed the LAN9512 issue)
Workload: Idle
44.19C

52.97C

0.380516W

Test 6 - Modified board (removed the RG1+RG2 and fixed the LAN9512 issue)
Workload: heavy stress tests
49.81C

55.25C

0.568093W

Wow that is cool that such small device with so much processing power is only using 0.3805W in idle and 0.5680W when it is working hard, I am keep thinking that I much have made an error when taking the measurements or wrong calculations on the data but I have recheck and it seems there is no errors.
But let’s face it, these values are without the impact of the LDO’s but in the real world there has to be a converter for the 3.3V, 2.5V and 1.8V power rails so they will use more power then 0.3805W to run a Raspberry Pi.

So how bad are the LDO regulators anyway?

In idle mode
Raspberry Pi LDO power efficiency is (100/Test1_total_watt)*Test5_total_watt= 20.6380%
so that means that of the 1.843756W the Raspberry Pi is using in idle mode only 20. 6380% is going to the processing power and the 79.3619% is lost in power converting….

In heavy load mode
Raspberry Pi LDO power efficiency is (100/Test2_total_watt)*Test6_total_watt= 24.5921%
so that means that of the 2.310061W the Raspberry Pi is using in heavy load mode only 24.5921% is going to the processing power and the 75.4078% is lost in power converting….

This mean that the LDO regulators is losing around 75-79% with average of 77% in power loss… that is a huge loss and it seems to me that it will make good sense to find some power converters there is working better than this, so If I find a power converter there is having an efficiency of maybe 90% this mean that the power loss is only 10% and if taking the Test 6 heavy load value and add the 10% then it will mean my Raspberry Pi will use 0.624902W in total under heavy load…. That is very cool and I am surprised it is so low.

Now the hunt is started to find an 90+% power converter and I already have one from TI there is claiming an efficiency of 93-95%, so now it is time to analyze some power converters with my dummy load to find the best one..

So soon I will have a 0.6W Raspberry Pi………..

 

 

Tooms @ 29 August 2012 20:42 | Comment | Direct link


Arkive list
2014 - August
2014 - April
2014 - March
2014 - February
2014 - January
2013 - December
2013 - November
2013 - October
2013 - August
2013 - June
2012 - December
2012 - September
2012 - August
2012 - May
2012 - April
2011 - November
2011 - October
2011 - September
2010 - May
2010 - March
2010 - January
2009 - December
2009 - November
2009 - October
2009 - August
2009 - July
2009 - May
2009 - April
2009 - March
2009 - February
2009 - January
2008 - December
2008 - November
2008 - August
2008 - January
2007 - December
2007 - November
2007 - October
2007 - August
2007 - July
2007 - April
2007 - March
2007 - February
2007 - January
2006 - December
2006 - November
2006 - September
2006 - August
2006 - July
2006 - May
2006 - April
2006 - March
2006 - February
2006 - January
2005 - December
2005 - November
2005 - October
2005 - September
2005 - August