GP2X Battery Saving Time!


Daid

Member
Joined
Jun 13, 2006
Messages
267
Location
Netherlands
Website
Visit site
One of the major pains of GP2x is it's low battery live.

Now I'm wondering, because I'm currently working on a game where time isn't 100% critical (only 60%~90%). Where can I save battery live?

Could I 'dynamicly' clock it? Clock the CPU down as soon as I start to notice that I got way more cycles then I need. Not sure how much time a clock change needs... will the SDL_GetTick() be influenced by it? Will I save power with it? Basicly, could someone give me an update on this (the wiki isn't helping, and when I have my awnsers I will update it)

Is it possible to disable other parts of the hardware?
-LCD (turning it off in menus after X amount of no action)
-TV-Out is off by default right?
-Audio processor
-2nd processor (It's not running normaly I hope?)
-Other hardware?
 
On its own, the GP2X's main processor uses barely any power-- imagine a 60-watt bulb .. well, the ARM920T at default speed, and even at *300* MHz uses just thousandths of one watt. One. The LCD backlight does not appear to be very power-hungry either. The 940T is held in Reset state by default and therefore uses negligable power.

But what intrigues me most is what seems to be the ability to separate which PLLs (essentially, clock generators) are used for which components-- so when you overclock the ARM920T you don't raise the power draw of lots of other support components. Most interesting, even without overclocking, is that it might be feasible to lower the clockrate of say, the onboard video frame processor, scalers and other hardware to accomodate the task at hand, so all the support hardware you are not using at all or to full potential is not hogging precious battery power. According to discussion in #gp2xdev with a few knowledgeable members of the '2x community, this seems to be controllable via software. Perhaps it could be made an adjustment in the CPU/LCD tweaker.

As for your program .. if you are to underclock the 920T, it probably won't help much on its own but all that more power-hungry support hardware tuning down with it may help significantly. SDL_GetTicks() uses a real-time reference so it's based on milliseconds and is unaffected by processor clock. You could also time your program based on vsync but bear in mind adjustment in the LCD settings menu will vary is framerate (seems to be, furthest left is ~112hz/FPS, furthest right is 30hz/FPS.)
 
Personally, I don't have an issue with the battery life. Maybe jsut because I've not yet been on any long trips with it, but for my every-day use, it's more than fine. I just carry with me two extra batteries at all times, which really isn't that much of a bother.
 
i just got more than 6 hours of playing at 275mhz and watching movies at 200 mhz out of 2 2700mha 1.25 volt hähnel batteries... so i don't know why everyone is complaining about batterie life.if i just had watched movies at 200mhz i would have gotten more than 7 hours probably.
 
Vollgasasi posted on Jul 7 2006 at 05:25 AM said:
i just got more than 6 hours of playing at 275mhz and watching movies at 200 mhz out of 2 2700mha 1.25 volt hähnel batteries... so i don't know why everyone is complaining about batterie life.if i just had watched movies at 200mhz i would have gotten more than 7 hours probably.


My batteries last maybe two or three hours. How much battery power is used handling usb or writing the sd flash?
1) Compile a program on the pc,
2) usb mode on the gp2x
3) copy program to the gp2x
4) run the program on the gp2x (takes seconds to run)
5) repeat until the batteries go.
 
Last edited by a moderator:
For development just buy a brick. Or you'll go through endless aggravation, trust me. At any rate you should get much better than 2 or 3 hours. Ensure you fully discharge your batteries and fully recharge them to avoid the NiMH "Memory" Effect. My Energizer 2500MAh batteries get me over 5 hours of stressful emulators ...
 
Epicenter posted on Jul 6 2006 at 04:58 PM said:
On its own, the GP2X's main processor uses barely any power-- imagine a 60-watt bulb .. well, the ARM920T at default speed, and even at *300* MHz uses just thousandths of one watt. One. The LCD backlight does not appear to be very power-hungry either. The 940T is held in Reset state by default and therefore uses negligable power.
So... what is using most of the power? Vollgasasi seems to be draining about 450 mA on average there. (assuming I know what I'm talking about...)

IMO more battery life is better. Sure 6 hours is great, but what if you could get 10?
 
Last edited by a moderator:
i don't know if i really draw 450mA average.. see i get more battery life out of my 2000mAh 1.25V batteries than i get out of my 2100mAh 1.2V batteries so voltage is also a factor. could be that when my 2100 1,2v are empty for the gp2x that they still have 700mAh left or something, just the voltage dropped to critical levels for the gp2x. so my recommendation would be that everyone should get 1.25V batteries or higher if possible.
 
Vollgasasi posted on Jul 8 2006 at 07:41 AM said:
i don't know if i really draw 450mA average.. see i get more battery life out of my 2000mAh 1.25V batteries than i get out of my 2100mAh 1.2V batteries so voltage is also a factor. could be that when my 2100 1,2v are empty for the gp2x that they still have 700mAh left or something, just the voltage dropped to critical levels for the gp2x. so my recommendation would be that everyone should get 1.25V batteries or higher if possible.
have you ever measured the voltage of both batteries?

it's normal for a battery to have 1.26V, so some declare 1.2V, others 1.25V, could be even 1.3V sometimes
all of these are made by the same material, in same proccess (they're both NiMH) so you should not expect higher voltage ratings on these 1.25V batts

also you can measure the weight of each one, as of from here in Brazil it's easier to buy a 4300mAh AA battery (wich is a fake battery) than to buy a 2500mAh real battery, so if a battery have higher capacity rating but it is indeed lighter than your 2000mAh, you should avoid it

fully charged, mine Sony 2500mAh batteries reads 1.365V
 
Last edited by a moderator:
mines are really 1.25V high quallity batteries. ;) they really have 1.25V. here in germany the laws are pretty strict so when it says 1.2 volts it has 1.2 volts and when it says 1.25 then its 1.25
 
dwelch posted on Jul 7 2006 at 05:15 PM said:
My batteries last maybe two or three hours. How much battery power is used handling usb or writing the sd flash?
1) Compile a program on the pc,
2) usb mode on the gp2x
3) copy program to the gp2x
4) run the program on the gp2x (takes seconds to run)
5) repeat until the batteries go.

Why are you using this old technique when are much easier and better ways ever since fw 2.0 was released? All you have to do is:

1) Compile program on pc
2) Run the program on the gp2x from your pc's build directory (ie. No need to copy to gp2x)
 
Last edited by a moderator:
then you should go for the 1.35V, because my batteries do such thing with ease :]

but I still should say that batteries of NiMH are not 1.2V by choice, if it is NiMH or NiCd you're limited to 1.2V multiples, as alkalyne batteries are tied to 1.5V and so on..
 
There should not be 400mA being drawn by the ARM920T. Look at ARM's spec for the 920T's power consumption-- 0.25mW per MHz with cache-- that is, then, 50mW (THOUSANDTHS of a watt) at 200 MHz. At 300 Mhz, 75mW! Unless I did my math wrong, that's about 41.6 mA (if you're counting an amp at 1.8v, the input voltage to the 920T.) If you count it as 3.3v, much less than that. So .. it stands to reason it must be another component tied to the same clock generator as the 920T. So when the 920T rises, so does it. Probably video related-- I don't expect it's a coincidence that when clock is raised LCD timings change and brightness is altered!
 
Epicenter posted on Jul 9 2006 at 07:37 PM said:
There should not be 400mA being drawn by the ARM920T. Look at ARM's spec for the 920T's power consumption-- 0.25mW per MHz with cache-- that is, then, 50mW (THOUSANDTHS of a watt) at 200 MHz. At 300 Mhz, 75mW! Unless I did my math wrong, that's about 41.6 mA (if you're counting an amp at 1.8v, the input voltage to the 920T.) If you count it as 3.3v, much less than that. So .. it stands to reason it must be another component tied to the same clock generator as the 920T. So when the 920T rises, so does it. Probably video related-- I don't expect it's a coincidence that when clock is raised LCD timings change and brightness is altered!
I believe the process that MMSP2 uses puts the core at 0.80mW/MHz. But Squidge has managed to save twice the expected consumption by stopping the CPU and dropping its clock, so I dunno. There are definitely other things running on the same clock.
 
Last edited by a moderator:
as of from here in Brazil it's easier to buy a 4300mAh AA battery (wich is a fake battery) than to buy a 2500mAh real battery
haha! Até que eu achei estranho o cara vendendo 3800mAh por 10 reais... :p

2) Run the program on the gp2x from your pc's build directory (ie. No need to copy to gp2x)
You mount a folder from your PC on the gp2x? How? All I managed to do is access the GP2X's shares and telnet. o_O
 
Probably using USB networking and samba or NFS - I don't have a gp2x yet, but I imagine anything you'd need to do it would be in the file sharing somewhere, or perhaps built in for FW2.0.
 
Epicenter posted on Jul 10 2006 at 03:37 AM said:
There should not be 400mA being drawn by the ARM920T. Look at ARM's spec for the 920T's power consumption-- 0.25mW per MHz with cache-- that is, then, 50mW (THOUSANDTHS of a watt) at 200 MHz. At 300 Mhz, 75mW! Unless I did my math wrong, that's about 41.6 mA (if you're counting an amp at 1.8v, the input voltage to the 920T.) If you count it as 3.3v, much less than that.

Well, that doesn't explain why a WFI (Pause CPU & Wait For Interrupt, but keep all clocks going) saves about 90mA, stating that the processor itself must be using more than that. Maybe I need to jump out of Linux so I can try a deep sleep on the 920 itself (leaving the rest of the system running) and see how much that drops the power consumption.

That being said, I played with a ARM7 core at work yesterday, and it used 40mA @ 48mhz, and the manufacturer of the ARM9 core we are considering to use next states just under 1mA per mhz. I don't see how there can be another core that is much better (power consumption wise) considering they are all still ARM cores at the end of the day.
 
Last edited by a moderator:
Well, one thing this shows, is that applications should _always_ give up their timeslice when they have nothing to run, because whatever percentage of that 90mA they're not using can be saved then...
 
TKF15H said:
haha! Até que eu achei estranho o cara vendendo 3800mAh por 10 reais... :p
<pt_BR>
pois eh, daqui a poucos eles estao vendendo ateh pilha palito de 4300mAh hieuahe o_O
inicialmente eu achava que era photoshop, mas aparentemente sao soh as capas das pilhas D e C (grande e media) usadas em pilhas pequenas...
</pt_BR>
2) Run the program on the gp2x from your pc's build directory (ie. No need to copy to gp2x)
You mount a folder from your PC on the gp2x? How? All I managed to do is access the GP2X's shares and telnet. o_O
[/quote]
normally on linux you would just do smbmount //host/share /mnt/some-empty-directory (or mount //host/share /mnt/some-empty-dir -t smbfs)

but you'll have to have samba client files, as I don't have'em installed so far I'm leaving it for someone more experienced.. :]
 
Last edited by a moderator:
To install the samba client files couldn't be more easy... Just download them from the gp2xarchive (one big zip) and then unzip directly onto the root of the gp2x nand and you find you have one samba client installed :)
 
Back
Top