• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Battery/Charging
  • Assigned To
  • Operating System iPod Nano 2G
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by TheSeven - 2009-10-24
Last edited by TheSeven - 2010-03-11

FS#10714 - iPod Nano 2G battery life improvements, clock scaling and undervolting

Here is a patch that tries to reach Apple’s battery runtime… It’s scaling the clock from 47923200Hz to 191692800Hz (yes, these frequencies are weird, but they are correct!) and undervolt the CPU core to 1.000V at the high and 0.900V at the low freq.

There are some known issues:
- After USB was connected, you’ll need to reboot your ipod, or it will keep the USB controller enabled, which sucks far more current than the backlight.
- Battery_bench is currently broken for Nano2G, I’m looking into fixing this.
- On my iPod, the CPU core could be undervolted to at least 0.800V, but the main system clock started to get unstable at 0.875V, with a significant frequency drop. This results in clearly noticable pitch changes while playing music, when it’s boosting/unboosting. Please watch out for this and report it if you have an iPod that is still doing such things at 0.900V.
- I’m also not sure about the upper voltage, my CPU seemed to work fine at 0.975V at the high freq, but I added a small safety margin here.

Please test this and report any instabilites, crashes or other weird behavior, that does only turn up if this patch is applied.

Closed by  TheSeven
2010-03-11 02:30
Reason for closing:  Fixed
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407

A different approach has been committed

Fixed some bugs.

rebase to current SVN, and I set the voltage to constant 1.000V now to avoid trouble with the PMU not being able to raise it quick enough. This also avoids talking to I2C and generally needing to wait for anything in set_cpu_frequency.

Working for me

This seems to work for me too, but only partially. Running some of the more CPU-intensive Demos, like Cube and Plasma, does not make the CPU boost, so the demos run quite slowly.

jch commented on 2009-12-04 00:56

Failure here.

It initially works fine, but after a few minutes, the pitch of the playback becomes too long by two octaves (playing Ogg). I’ve checked that reverting this patch fixes the issue on the very same files.

Excuse me if I sound noobish but I though the original ARM core clock speed was 200 mhz, I’m wondering why you have 479 mhz on the list. I though this was to save battery life not to overclock the chip in the Nano 2g.

You messed up your conversion.

47923200Hz = 47.92mHz
191692800Hz = 191.69mHz

Works great for me.
The only inconvenience I noticed is that plugins load longer, and some of them (e.g. plasma) work slowly for the first second or so.

Hm, with current HEAD I have severe trouble when I have that patch applied. I have found a solution to this (by switching to FASTBUS mode), and will make a patch with this soon.
That “pitch issue” reported by jch points towards the voltage being to low for his iPod. On mine, this starts at 900mV and below


Available keyboard shortcuts


Task Details

Task Editing