Overclocking And Overvolting


I actually just kinda guessed that it should work, I didn't try anything. :(
I'll experiment later. 125Mhz should be more than enough for MP3 playback, just need to find the right player.
 
Does an unconnected wifi really use that much power? 8 hours at 87% not connected vs 12:20 at 82%? Simply by connecting the wifi instead of leaving it to scan it increased battery life by more than 50%
The alternative is that OPP3 @ 500Mhz actually uses less power than OPP1 @ 125Mhz, and I find that hard to explain.
 
Note: mplayer -q (the terminal output was taking most of CPU :p) played mp3's mostly fine (cuts if you do something, but not otherwise) at 50Mhz, btw...
 
Renegade said:
So what is the max speed that the Pandora runs with overvolting? 1.1Ghz?

At OPP5 mine doesn't go any higher than 1ghz really (tried 1.1ghz but it froze), but it's pretty amazing how well everything seems to run at 1ghz -HD videos that mplayer would stutter on play flawlessly, everything is lightning quick :D
Incidentally on OPP3 mine wouldn't go higher than 850mhz, I don't know if those who had better results with OPP3 could get better than 1.1ghz at OPP5?
 
Last edited by a moderator:
Jdbye said:
Blue Ion said:
urjaman said:
I dont know how the flashing process updates the kernel if at all, but FYI the kernel lives in a different UBI(FS) volume than the main flash image. And combining this info with the 3D acceleration failure sounds like you're/you were still running the old kernel. For all things to work properly, the kernel binary and modules on the rootfs must(/should*) match each other.

* If the changes are minimal and you purposefully make the new component (modules or kernel) match the old one then it should also work....
Actually, that was the problem. I forgot to flash the uImage as well that was why I wasn't getting the cpu_opp_max and the 3d acceleration problem, my uImage came from the Hotfix 3 which is older. I guess mixing uImage and rootfs would work as long as there aren't any showstopping mismatchs, like in my case the video driver.
Now it works, 3d acceletation, and me getting to 860 Mhz, tough I think I still have to tweak that value.
Ah, I didn't realize they were separate, that makes sense.

If you're interested, I modified op_cpuspeed.sh to auto overvolt to OPP4 when you go > 800Mhz and to OPP5 when you go > 900Mhz, with a warning message before it changes the voltage, and changed the max clock speed to 1Ghz. This requires the newest kernel on openpandora.org/firmware.

Edit: Added undervolting as well and easily modifyable mhz settings.

Here it is:
Code:
#!/bin/bash
#get value range
minmhz=14
safemhz=600
maxmhz=1000
curmhz="$(cat /proc/pandora/cpu_mhz_max)"
newmhz="$(cat /proc/pandora/cpu_mhz_max)"
curopp="$(cat /proc/pandora/cpu_opp_max)"
newopp="$(cat /proc/pandora/cpu_opp_max)"
#at what mhz should it change the voltage?
opp2mhz=125
opp3mhz=250
opp4mhz=800
opp5mhz=900
device=/proc/pandora/cpu_mhz_max
oppdevice=/proc/pandora/cpu_opp_max
if [ ! $1 ]; then
        if [ $DISPLAY ]; then
                newmhz=$(zenity --scale --text "Set CPU clockspeed" --min-value=$minmhz --max-value=$maxmhz --value=$curmhz --step 1)
        else
                newmhz=$(read -p "Please enter the desired clockspeed")
        fi
else
newmhz=$1
fi
if [ $newmhz ]; then
        if [ $newmhz -gt $opp2mhz ]; then
                if [ $newmhz -gt $opp3mhz ]; then
                        if [ $newmhz -gt $opp4mhz ]; then
                                if [ $newmhz -gt $opp5mhz ]; then
                                        newopp=5
                                else
                                        newopp=4
                                fi
                        else
                                newopp=3
                        fi
                else
                        newopp=2
                fi
        else
                newopp=1
        fi
        if [ $newmhz -gt $safemhz ]; then
                if [ $DISPLAY ]; then
                        answer=$(zenity --question --title "alert" --text "You are trying to set the CPU clock to $newmhz which is above its specification of $safemhz, doing so may burn down your house, sour milk, or just blow up (OK, not that likely)! Proceed?";echo $?)
                        echo $answer
                        if [ $answer = 1 ]; then exit 1; fi
                else
                        answer="n";read -p "You are trying to set the CPU clock to $newmhz which is above its specification of $safemhz, doing so may burn down your house, sour milk, or just blow up (OK, not that likely)! Proceed? [y/n]" -t 10 answer
                        echo $answer
                        if [ $answer = n ]; then exit 1; fi
                fi
        fi

        if [ $newopp -gt $curopp ]; then
                if [ $newopp -gt 3 ]; then
                        if [ $DISPLAY ]; then
                                answer=$(zenity --question --title "alert" --text "You are trying to set the CPU clock to $newmhz, this will increase the CPU voltage from OPP${curopp} to OPP${newopp} and may shorten the life of your CPU. Proceed?";echo $?)
                                echo $answer
                                if [ $answer = 1 ]; then exit 1; fi
                        else
                                answer="n";read -p "You are trying to set the CPU clock to $newmhz, this will increase the CPU voltage from OPP${curopp} to OPP${newopp} and may shorten the life of your CPU. Proceed? [y/n]" -t 10 answer
                                echo $answer
                                if [ $answer = n ]; then exit 1; fi
                        fi
                fi
        fi
        if [ $newopp -gt $curopp ]; then
                echo $newopp > $oppdevice
                echo cpu_opp_max set to $(cat /proc/pandora/cpu_opp_max)
        else
                if [ $newopp -lt $curopp ]; then
                        echo $newopp > $oppdevice
                        echo cpu_opp_max set to $(cat /proc/pandora/cpu_opp_max)
                else
                        echo cpu_opp_max not changed (current setting: $(cat /proc/pandora/cpu_opp_max))
                fi
        fi
 
        if [ $newmhz -le $minmhz ]; then newmhz=$minmhz; fi
        if [ $newmhz -ge $maxmhz ]; then newmhz=$maxmhz; fi
        echo $newmhz > $device
        echo cpu_mhz_max set to $(cat /proc/pandora/cpu_mhz_max)
fi

Save it on a SD card as op_cpuspeed.sh, and do:
Code:
sudo cp /path/to/modified/op_cpuspeed.sh /usr/pandora/scripts

Screenshot ;) (I added "and may shorten the life of your CPU" to the warning after taking the screenshot)
100824230928.png
If you press cancel it won't change the CPU clock at all. I could have made it just not change the voltage but still change the CPU speed but that would cause a crash so I didn't see the point :p
Hi cannot get this to work, I have latest firmware but after I copy the instruction and name it op_cpuspeed.sh save to sd card then run terminal from card when I enter "sudo cp /path/to/modified/op_cpuspeed.sh /usr/pandora/scripts" all I get is "cp: cannot stat `/path/to/modified/op_cpuspeed.sh' : No such file or directory"

any ideas?
 
Last edited by a moderator:
/path/to/modified/op_cpuspeed.sh
Notice the part where it says "path to modified..."? You're supposed to replace that with the path to the modified op_cpuspeed.sh ;)
It'll probably be something like
/media/KINGSTON/op_cpuspeed.sh (if your SD card is named KINGSTON and you put the new script at the root of the SD card)
replace KINGSTON with whatever your SD card is actually named (if you don't know, you can just see it on the desktop even)
 
WizardStan said:
/path/to/modified/op_cpuspeed.sh
Notice the part where it says "path to modified..."? You're supposed to replace that with the path to the modified op_cpuspeed.sh ;)
It'll probably be something like
/media/KINGSTON/op_cpuspeed.sh (if your SD card is named KINGSTON and you put the new script at the root of the SD card)
replace KINGSTON with whatever your SD card is actually named (if you don't know, you can just see it on the desktop even)
Ahhh I see.................works perfectly many thanks
 
Last edited by a moderator:
Here you go
http://www.megaupload.com/?d=ZHPMJUN4

Stick it in the Home 'username' folder and then use the terminal command to copy it into the usr/pandora/scripts folder.

Works for me so hope it helps.
 
Chaser said:
Here you go
http://www.megaupload.com/?d=ZHPMJUN4

Stick it in the Home 'username' folder and then use the terminal command to copy it into the usr/pandora/scripts folder.

Works for me so hope it helps.
Cheers ill try when I get home,
I had it working then flashed and now mine wont ( i think its to do with unix carrage returns)
Thanks again (even my favorite host :D)
 
Last edited by a moderator:
Anyone else tried setting the pandora to opp2 at 500mhz? I've just started it and so far it works great. Any suggestions on programs to do a good stress test with?
 
i tested opp1 at 500 and its good, crashes at 550. How high does opp1 go for you? whats your max for opp2?
 
MonkeyChops said:
i tested opp1 at 500 and its good, crashes at 550. How high does opp1 go for you? whats your max for opp2?
I've found my max for all OPP levels:

OPP1: limit between 550 and 560 (stable vs unstable)
OPP2: limit between 700 and 712 (stable vs unstable)
OPP3: limit between 862 and 875 (stable vs quick crash)
OPP4: limit between 950 and 962 (stable vs quick crash)
OPP5: limit between 1037 and 1050 (stable vs quick crash)
OPP5: under 1037

Test involved playing mp3 using exaile, and zooming in on the Pandora Fractal Drawer.

edit:
It looks like my stress test wasn't enough. I was able to crash at 1037 pretty quickly with dosbox and quest for glory 1.
 
Last edited by a moderator:
With the newest hotfix, I've been able to do 1075Mhz@OPP5. The only thing I've been using to *test* is running Mario 64 at the intro screen. I let it run for 10 minutes and it goes through a whole bunch of different playthroughs. I'll try and test with other stuff, but Mario64 seems to crash on me if I go higher. However, I can do 1.1Ghz running Diablo on PCSXReArmed and that seemed quite stable. So just looking for different things to test. I guess I'll try multitasking some other stuff.
 
Vitel said:
Increasing the voltage to OPP5 will definitely reduce the life of the CPU drastically
Explain this please

Seems like no one has explained the technical reason yet.

Overclocking and overvolting both can lead to electromigration. Electromigration is where the force of the electrons colliding with the metal line lattice structure over time causes the metal to actually move and will eventually break the electrical connection, rendering that particular line (and likely the whole chip) inoperable. This collision is a normal part of electrical circuits as this collision is how heat is generated. Think of it as water flowing over stones over the course of many years. Eventually the stones erode away.

But since this is a normal part of circuit operation, why do overclocking and overvolting make it worse? Well, there's a normal MTTF (mean time to failure) figured in for nominal operation. TI expects this part to withstand normal operation and succumb to electromigration (or some other failure) after a certain amount of time. Overclocking aggravates this because it simply scales linearly. If you are rated at 60,000 hours for 500 mhz and you overclock to 600 MHz, you've just reduced your hours to 48,000 assuming equal time of use and that number being due to electromigration only.

Overvolting is worse because it increases the electrons' saturation velocity. They have more electrical potential behind them and thus collide with the lattice at higher speeds, causing more damage and causing failure to electromigration to happen quicker. The only type of electrical traces that aren't vulnerable to this are bi-directional lines, like the traces that make up a data bus. These lines see electrons flow both ways, and thus, electrons flowing in one direction will somewhat reverse the damage electrons flowing in the opposite direction had done.

Active cooling methods can help increase life despite overvolting and overclocking because the cooling will make the metal lattice calmer as there is less heat energy in the metal meaning a structure with less movement, which means less electron collisions. This is an option for desktop and even laptop systems, but that's not the case with a mobile SoC such as this.

This is a good summary: http://en.wikipedia.org/wiki/Electromigration (also note that failure due to electromigration is pretty rare in a normal lifespan of a device)
 
Last edited by a moderator:
Cooling doesn't really help in case of electromigration. See also the Northwood Sudden Death Syndrome, which is triggered by an increased core voltage of the P4 Northwood core. Most Northwoods killed in such a way were cooled quite well (below 45°C).
 
god_at_hell said:
Cooling doesn't really help in case of electromigration. See also the Northwood Sudden Death Syndrome, which is triggered by an increased core voltage of the P4 Northwood core. Most Northwoods killed in such a way were cooled quite well (below 45°C).

Cooling will lessen the vibrations of your lattice, causing fewer collisions with the electrons. It cannot eliminate those lattice vibrations though, so if your design is not designed to accommodate electromigration concerns, it will fail unless you cool it enough to magically turn it into a superconductor. To say it doesn't help is dishonest though, as those lattice collisions are the very thing that starve transistors of current and require cooling to reach higher clocks.
 
Last edited by a moderator:
Back
Top