• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category LCD
  • Assigned To No-one
  • Operating System iPod Nano 2G
  • Severity Low
  • Priority Very Low
  • Reported Version Release 3.6
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by liar - 2010-09-05
Last edited by TheSeven - 2010-11-14

FS#11604 - IPod Nano2G lcd_sleep implementation

this patch implements lcd_sleep for both, type 2 (0) and 7 (1) lcds.

i have no chance to test it on a type 7 lcd but i know it already worked several month ago (please try).
to see what lcd type you have go to:
System→Debug→View HW info

what you should see when you apply this patch is:
when the backlight turns off, the lcd should shut down within 3 seconds.

if you see any glitches when the lcd gets powered on/off please report it.

if the lcd does not power on again, dont worry,
just shut the ipod down(press play for ~5 seconds),
turn it on again(the lcd will work again),
switch to diskmode
and copy a rockbox version without the patch to the ipod.

Closed by  TheSeven
2010-11-14 15:36
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

Committed in r28591

For those who wonder, this also works for type 1 (7) LDS176 LCDs.

St. commented on 2010-09-11 11:52

I can confirm that this works on my Type 2 and Type 7 LCD Nano2Gs

However, there seems to be a visible issue when the display changes from the bootloader splash to the main menu/start screen in the form of a white, fullscreen "flash" now that is only present with this patch in my build.

<wild guess> Presumably when your code takes over the handling of the LCD <wild guess>

It's hardly a deal-breaker…but sometimes the "flash" is a lot more noticeable than others,

Also, I'm wondering if it would be too hard (or at all possible) to add a menu option for this.
It is definitely something I am interested in, but, not something something my GF would be interested in and probably not something I would want to use all the time.
A menu/config option would be a lot more practical in this case IMO.


This patch works for me as well (LDS176 type). A suggestion: define HAVE_LCD_SLEEP_SETTING in ipodnano2g.h and there is a setting for the LCD sleep. This has been implemented a while ago.

Before this patch can go into svn I would like to the flash-issue resolved which is very visible during startup and when waking up the LCD. Can you please fix this?

Btw, savings on my nano2g were ~1 mA. A saving of 1 mA equals about 1 hour of runtime for my usecase.

Edit: Minor update to patch (use #define HAVE_LCD_SLEEP_SETTINGS, cluster LCD-defined in config.h).

liar commented on 2010-10-22 16:29

avoid white flash during boot by not reseting the lcd chip during boot.
avoid white flash on lcd wakeup by initializing the lcd before enabling the backlight.
avoid white flash on lcd shutdown when Settings→General Settings→Display→LCD Settings→Sleep→Always is enabled by disabling the backlight before shutting the lcd down.
simplify the lcd wakeup routine.

i think that one is ready to commit now

This is still lacking the init values for the third LCD type. They are rare, but they exist. Because the non-init code can handle them the same way, they are also detected as type 1. See norloader or emBIOS loader for details on how to detect and initialize them.

liar commented on 2010-10-26 16:25

i've added the init values for the third lcd type and ifdefed out my changes in the bootloader build to avoid an increased bootloader binsize.

liar commented on 2010-10-26 21:28

whoops, the previous one contained another (LCD_SLEEP unrelated) patch

liar commented on 2010-11-12 23:46

there was a problem with the bootloader…


Available keyboard shortcuts


Task Details

Task Editing