Rockbox mail archiveSubject: ATA - USE_POWEROFF vs USE_SLEEP
ATA - USE_POWEROFF vs USE_SLEEP
From: Stuart Tedford <stuart.tedford_at_piresearch.co.uk>
Date: Tue, 10 Sep 2002 10:28:34 +0100
A while ago, I did some investigation into using poweroff for the hdd,
rather than sleep or standby.
It is important to note that the way it is in the code atm is very bad. Do
not simply #define USE_POWEROFF because it will apparanty shorten the life
of your hdd. This is because poweroff is called when the disk is still
spinning. I have documents that say the drive will typically fail after
this is done 20k times. This is what happens when you manually switch off
you jukebox while the disk is spinning - it lets out a short "whine" sound,
also happens sometimes when disconnecting USB. Beware.
I have an old cvs version of RockBox (circa early August) which I modified
to poweroff 1.5 seconds after calling sleep - ie. after the disk has stopped
spinning. It works really well and I have used it extensively over the last
month or so. To give you an idea of the implications of this, I ran some
tests at the time, the stock firmware ran for 10h50m, the unmodified cvs
Rockbox I based my version on ran for 9h25m, and my modified version of that
code ran for 12h50m.
I also found that it is best to call poweroff at least 1.5 seconds after
sleep has been called. If you call it imediately after, then the disk goes
into some sort of weird "freewheel" mode where it takes maybe 7 seconds to
finally stop spinning. This caused some problems when the disk was powered
up again during that time. It also increases the risk of damage if it is
dropped during that time too. And I don't know if this freewheeling is bad
for the disk, but I have to assume it is.
What I would like to know is if there is any progress being made on using
the onboard hdd cache? Becasue if that becomes usable then we can't use
poweroff because the cache data will be lost. But at least this method of
poweroff is a good backup plan to seriously reduce power consumption if we
can't use the cache.
Received on 2002-09-10