[TriLUG] cdrom: does pushing the tray in damage them?

Rick DeNatale rick.denatale at gmail.com
Tue Oct 10 11:59:50 EDT 2006


On 10/10/06, Aaron S. Joyner <aaron at joyner.ws> wrote:

> So let's do a quick analysis of the mechanics involved*, and see if we
> can come to any logical conclusions.  The tray-moving mechanism of a
> CDROM is simply a small electric motor, with a set of big step down
> gears to allow the relatively fast-moving motor to slowly and evenly
> eject the tray.  There are typically two sensors at both ends of the
> travel, to detect when the drive has fully extended, or fully
> retracted.
...

> The
> other option is you push on the front of the tray.  There are a couple
> ways I can think of which might be used to detect this pressure.  The
> simplest would be to observe the fact that pushing on the tray turns the
> big gear, which spins the motor, which will generate a tiny fraction of
> current on the motor's power input.  You could observe this with an
> analog pin on the micro controller, and upon detecting such a current,
> follow the normal "retract the tray" sequence.  Some other options would
> be a pressure sensor mounted to the tray, or mounting the entire tray
> and housing on a slightly mobile platform, such that when you push on
> the tray, you shift the tray and motor housing itself against a switch
> in the back of the unit... but neither of these options probably work in
> the typical CDROM housing, as you need to securely spin the disc at
> thousands of RPM, so your platform needs to be steady.

Because of the reduction gearing, it would take quite a bit of force
to spin that motor by pushing on the door.

And the platform only really needs to be steady when the tray is
retracted, which can be accomplished by a mechanism which locks the
tray in place when it's fully closed.

I suspect that another option, which is probably the one most often
used, is to use the same sensor which detects that the tray is fully
extended, and enough slack to allow the door to be pushed in enough to
let that sensor know that it's been pushed, this probably involves
something like a spring.

These kinds of springs and locking mechanisms are quite common in
these kinds of devices.

This would be coupled with a state machine something like this (in a
pseudo-language I'm making up as I type):

state: tray-closed {
  on tray-button-pushed
       | computer-commanded-tray-open {
        unlock-tray
        turn on motor to open tray
        trigger door-travel-timeout-watchdog
        set-state-to opening-tray
      }
}

state: opening-tray {
    on tray-fully-extended-sensor.tripped {
        turn off motor
        set-state-to tray-opened
    }
    on tray-travel-timeout-watchdog.tripped {
        //handle opening timeout
        // this could either just stop the motor or reverse it.
    }
}

state: tray-opened {
     on tray-button-pushed
          | computer-commanded-tray-closed
          | tray-fully-extended-sensor-untripped {
          turn on motor to close tray
          trigger tray-travel-timeout-watchdog
          set-state-to opening-tray
      }
}


state: closing-tray {
    on tray-fully-retracted-sensor.tripped {
        turn off motor
        lock-tray
        start-disk  // There's probably some timeout logic to detect a missing
                         // or bad disk, or a drive failure here, but
I won't go into
                         // that here.
        set-state-to tray-closed
    }
    on tray-travel-timeout-watchdog.tripped {
        //handle opening timeout
        // this could either just stop the motor or reverse it.
    }
}

Now, one question relevant to the OPs question is what the designer
thought the purpose of causing the tray close when it's pushed is.

One reason might be to let the tray be closed conveniently by pushing
on it. This is what most users think, but...

Another, and probably more important in the designer's view, is to
retract the drive for protection when it is nudged, kind of like the
reflexes which couple our nervous system and muscles to
prevent/minimize damage when we encounter heat or force.

I just pulled out the owner's manual for my living room DVD player,
and as far as I can see, it never even mentions that the tray will
retract on anything other than pushing the button, even though pushing
on the tray does indeed retract it. So it looks like the designer,
Sony in this case, wasn't thinking of the feaure as a convenience.
The feature is there, but I suspect that it's designed to be used with
a duty cycle somewhere between 'use it regularly' and it'll work at
least once. The latter end of that range is where the air-bags in your
car lay.

I can't recall where just now, but I'm almost certain that I've run
across a manual for at least one CD/DVD player or drive which
cautioned against using the push the tray to close feature.
-- 
Rick



More information about the TriLUG mailing list