Overclocking And Overvolting


You made me do it. I am now running 1GHz at 1,35. So far no problems. And boy is it fast!

Considering the life expectancy of 5 years of continuous use according to the TI specs, I guess I'll run this OC setting more often :)
 
^ That was the right decision, have fun with your device before it's outdated anyway :)
I've settled on 800/46 to save battery/reduce heat in everyday use like browsing the web or watching video and 1100/62 when playing demanding games like PSX stuff.
 
I noticed a max OPP setting has been added to the GIT, I think that's also been added to the latest ubifs image/rootfs at http://openpandora.org/firmware/images/ (they were modified on the same date) - meaning overvolting if you have the latest rootfs is as simple as echo 5 > /proc/pandora/cpu_opp_max :)
 
Jdbye said:
I noticed a max OPP setting has been added to the GIT, I think that's also been added to the latest ubifs image/rootfs at http://openpandora.org/firmware/images/ (they were modified on the same date) - meaning overvolting if you have the latest rootfs is as simple as echo 5 > /proc/pandora/cpu_opp_max :)
I'll check that out, since my pandora stopped booting (after a hard crash), I had to reflash and got struck with the "Please select date..., Please select date..., Please select date..." bug so I'll flash with the latest image, to get rid of this problem. At least until the final HotFix 4 comes around

However, I was under the impression (when reading this thread) that you need a special kernel, or just a newer one than the on being used.
Oh, well, I shall see. If I can overclock to 900 Mhz at OPP5 I'll be quite happy, as I'd like to play Mario 64 with no sound skipping. I used to be able to do so at 875 mhz with my previous pandora, but the replacement is kinda a dud and barely gets 720 mhz, at least, on top of the fixed screen cable, I got a better wifi and better nubs for free.
I hope it doesn't mean it is going to die sooner than every other pandora (specially after the warranty is out).

By the way, how are you going to protect people from burning their pandoras out by using insane voltages? And, specially, how do you differentiate normal burnout with overclocking burnout?
 
Last edited by a moderator:
Blue Ion said:
By the way, how are you going to protect people from burning their pandoras out by using insane voltages? And specially how do you differentiate normal burnout with overclocking burnout?
Strictly speaking, you don't, which is why OPT has discouraged changing the voltage. I suspect allowing custom voltages will not be making it into the official firmware. If a processor does burn out, it is just an (exceptionally challenging) exercise in soldering to get the firmware off the NAND and they can determine whether you installed a custom firmware that allows custom voltage or not.
 
Last edited by a moderator:
Well, no dice, /proc/pandora is no more populated than it usually is and on top of that, there is some kind of problem with the battery measurement. That is, Xfce battery widget displays 0% and the red light is flashing as if it didn't had any juice left, even though it does.
Also dmesg shows a lot about symbols disagreeing with clk_set_parent, clk_round_rate, clk_disable, clk_enable within pvrsrvkm, so perhaps 3d acceleration is not functional either.

Oh well...
Back to a Hotfix 3 image.
At least, I'm going to be able to change the month an avoid the please select date bug now.
 
Blue Ion said:
Well, no dice, /proc/pandora is no more populated than it usually is and on top of that, there is some kind of problem with the battery measurement. That is, Xfce battery widget displays 0% and the red light is flashing as if it didn't had any juice left, even though it does.
Also dmesg shows a lot about symbols disagreeing with clk_set_parent, clk_round_rate, clk_disable, clk_enable within pvrsrvkm, so perhaps 3d acceleration is not functional either.

Oh well...
Back to a Hotfix 3 image.
At least, I'm going to be able to change the month an avoid the please select date bug now.
Well the kernel image is updated at least, I'm happily overvolting to OPP4 at 925Mhz right now using http://openpandora.org/firmware/ima...c890d6b47ac7959354cdf34-r21-omap3-pandora.bin :)
You can put the kernel on a FAT or EXT2 formatted SD card and use a boot.txt or autoboot.txt to boot from the NAND using that kernel, or you can just replace the kernel on the NAND. If you wanna put it on a SD card this might be of help: http://pandorawiki.org/Running_Linux_from_an_SD_card
I'm booting Angstrom from a SD card already, so for me I just had to replace the kernel on the FAT partition of my SD card :) Having to use echo 5 > /proc/pandora/cpu_opp_max every time I want to overvolt can get annoying but at least then I have more control over which OPP level it uses at say, 925Mhz.
OoT is still not fullspeed though and still needs a lot of frameskip :( I don't think it will run fullspeed even at 1Ghz, maybe at 1.1Ghz.
Edit: 1Ghz improved OoT considerably but it still slows down in certain areas. It runs much better than at 850Mhz, but the frameskip makes it too annoying :p
Mario Kart 64 however is fullspeed :D

Note though that I'm using the kernel together with this rootfs (aug 15th, here's the matching ubifs image) - That's the Hotfix 4 Beta 1 image (which I updated to beta 2), the new kernel might not work with older versions of the OS/modules, seems to work fine with that one though :)
 
Last edited by a moderator:
Blue Ion said:
Well, no dice, /proc/pandora is no more populated than it usually is and on top of that, there is some kind of problem with the battery measurement. That is, Xfce battery widget displays 0% and the red light is flashing as if it didn't had any juice left, even though it does.
Also dmesg shows a lot about symbols disagreeing with clk_set_parent, clk_round_rate, clk_disable, clk_enable within pvrsrvkm, so perhaps 3d acceleration is not functional either.

Oh well...
Back to a Hotfix 3 image.
At least, I'm going to be able to change the month an avoid the please select date bug now.

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....
 
Last edited by a moderator:
urjaman said:
Blue Ion said:
Well, no dice, /proc/pandora is no more populated than it usually is and on top of that, there is some kind of problem with the battery measurement. That is, Xfce battery widget displays 0% and the red light is flashing as if it didn't had any juice left, even though it does.
Also dmesg shows a lot about symbols disagreeing with clk_set_parent, clk_round_rate, clk_disable, clk_enable within pvrsrvkm, so perhaps 3d acceleration is not functional either.

Oh well...
Back to a Hotfix 3 image.
At least, I'm going to be able to change the month an avoid the please select date bug now.

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....
When I compiled the kernel myself, wifi didn't work, but when I used the precompiled kernel in openpandora.org/firmware built from the same source it did, so I think it might have more to do with the way it's compiled than the differences in the code - of course, I might be wrong, but at least I had great success with using the prebuilt aug 22th kernel with the aug 15th rootfs and modules - older versions of the rootfs might not work so well with the latest kernel.
 
Last edited by a moderator:
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.
 
Last edited by a moderator:
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
 
Last edited by a moderator:
Jdbye said:
That's great.
Perhaps you could make the opp changing limits more edition friendly and allow undervolt as well.
Like 4 variables that are the limits of speed between voltages.

I mean this because almost everyone can hit 800 or even 900 at opp3, perhaps 1 ghz at opp4 (sadly not me D:), while at the other side, run 500 mhz at opp2 or even opp1.
This way everyone should be able to use their speed at their minimum voltage, minimizing battery use and damage to the cpu.

Being able to boot at such opp would be best, but that opens the door for all sorts of hell.

Thanks for the script anyway.
 
Last edited by a moderator:
Blue Ion said:
Jdbye said:
That's great.
Perhaps you could make the opp changing limits more edition friendly and allow undervolt as well.
Like 4 variables that are the limits of speed between voltages.

I mean this because almost everyone can hit 800 or even 900 at opp3, perhaps 1 ghz at opp4 (sadly not me D:), while at the other side, run 500 mhz at opp2 or even opp1.
This way everyone should be able to use their speed at their minimum voltage, minimizing battery use and damage to the cpu.

Being able to boot at such opp would be best, but that opens the door for all sorts of hell.

Thanks for the script anyway.
I made it 800 because psx4all crashes at 850 at OPP3 for me where other apps are stable, I don't think anyone can reach 1Ghz at OPP4, not the OPP4 that is defined in the kernel at least (54 vsel). I don't know anything about what kind of speeds you can run stable at OPP2 or OPP1 so I didn't include those voltages at all.
But sure, I'll add variables for at which clock speeds it should overvolt to OPP4/OPP5 :)

Edit: Updated the script with variables :)
Edit2: Added OPP1 and OPP2 as well + variables. I haven't tested it though, but it should work properly.
Edit3: Fixed the tiny bug that the overvolt warning would appear even if you went from OPP1-2 to OPP2-3. :)

Tell me if you figure out the max speeds OPP1 and OPP2 are stable at ;)
 
Last edited by a moderator:
Jdbye said:
Mario Kart 64 however is fullspeed :D

Wow I just... hmm... never mind.

Is that with or without sound?
 
Last edited by a moderator:
Pleng said:
Jdbye said:
Mario Kart 64 however is fullspeed :D

Wow I just... hmm... never mind.

Is that with or without sound?
With, I don't play without sound :p
I like Diddy Kong Racing better though, and that won't even run, it crashes the emulator as soon as I try to run it.
 
Last edited by a moderator:
Jdbye said:
With, I don't play without sound :p

Awesome. I wonder if it would still be full speed with 2-4 players? Once external joypad support has been implemented, of course!

I like Diddy Kong Racing better though, and that won't even run, it crashes the emulator as soon as I try to run it.

Meh. I tried to play diddy kong on the DS. I don't know if it's the same as the N64 version but I got tired of being forced to ead a story before I could actually play, I like games you can just pick up and play. I mean, come on, it's a racing game!!
 
Last edited by a moderator:
Pleng said:
Jdbye said:
With, I don't play without sound :p

Awesome. I wonder if it would still be full speed with 2-4 players? Once external joypad support has been implemented, of course!

I like Diddy Kong Racing better though, and that won't even run, it crashes the emulator as soon as I try to run it.

Meh. I tried to play diddy kong on the DS. I don't know if it's the same as the N64 version but I got tired of being forced to ead a story before I could actually play, I like games you can just pick up and play. I mean, come on, it's a racing game!!
It's almost the same, the characters are different in the DS version and they added a few extra features. I never cared much for the adventure mode, actually I used a cheat to unlock all the tracks then just played them in the tracks mode :)
Splitscreen multiplayer would probably run equally well, I tried splitscreen in a different game (though of course I wasn't able to actually play multiplayer) and performance was the same as single player.
Enough off-topic though :p
 
Last edited by a moderator:
I modified the op_power script to drop it to opp1 and 125 mhz (instead of 14) and compared power estimations.
With 100% power, idle CPU, the original 14Mhz opp3, I get about 19 hours. At 125Mhz opp1, I get about 25 hours.
With 100% power, CPU chugging along mindlessly calculating garbage and dumping it to stdout, the original 14Mhz opp3 showed about 14.5 hours. At 125Mhz opp1, it still reads about 19 hours.
Open, CPU chugging along mindlessly, at 500Mhz opp3, I have an estimated 11ish hours of battery life
It isn't a huge gain, but 125Mhz is enough to play MP3s where 14 would not: an extra 8 hours of music playback ain't too shabby, if that's what you're using it for.
 
What are you using to play MP3s at 125Mhz? Gnome Mplayer for me cut out fairly frequently at 125Mhz
 
Back
Top