This started out as an iRippit X-50 50 Disc CD/DVD Duplicator. I saw it on a deal site and figured I could hack it to get it to read CD's / DVD's instead of burn them. I'm not interested in copying disc's I just want an easy way to auto load them for ripping to my NAS.

At one point, I had a majority of my DVD's ripped to my Windows Home Server. The hard drives in that ended up failing without much warning, and I lost a good chunk of that collection. I still own the optical disc's and would like to re-rip them, but in an automatic way.

Drivers for newer operating systems are not there, and the software this works with is really only designed to copy a bunch of the same disc over and over. A band interesting in burning their own discs might like this.

The first step was to remove all of the housing and electronics, and identify what things I can use and what each part is.


I documented what I could figure out from each connecting wire:

  • Bad Disk Full (Orange, Yellow, Green, Blue) QRB1114
  • Bin Full (Red, Orange, Yellow, Green) QRB1114
    • Pin 1 = Red = Emitter Anode
    • Pin 2 = Orange = Emitter Cathode
    • Pin 3 = Yellow = Sensor Emitter
    • Pin 4 = Green = Sensor Collector
  • Drive Door (Blue, Black, Purple, Yellow) QRB1114
  • Home Sensor (Red, Orange, Yellow) Sharp GP1A75E3J00F (Yellow = E)
  • Disk Present (Red, Black, Blue) Sharp GP1A75E3J00F (Blue = E)
  • Safety Int (Black, Read, Green) Sharp GP1A75E3J00F (Green = E)
  • JP13 Greyish White Wires go to the Disc Release Solenoid.
  • Stepper Motor FL42STH47-1206AC (1.8 degrees 1.2A)
    • Rated Voltage = 4V
    • Current / Phase = 1.2A
    • Resistance / Phase 3.3Ω
    • Inductance / Phase 2.8mH
    • Holding Torque = 3.17Kg-cm
    • Rotor Inertia = 68g-cm^2
    • Detent Torque = 200g-cm
  • Power Supply 12V @ 2.5A

This should be enough information to get going.

I don't need the safety interrupt, so that leaves me with 5 sensors, 1 stepper and 1 solenoid that I need to interface with.



That still left me with trying to identify that Sharp optical sensor since there are 2 of them I will need. I can see that the blue wire here is the Emitter, I'd really like to find the specs on this to make sure I drive it correctly.

My search let me here, not identical, but very close. The 361 chip on my board is a current limiting resistor.

A little experimenting with the lid sensor that I'm not going to need should help me figure out how to interface with this.

Ohhh I found it @ DigiKey 425-2565-ND

Sharp GP1A75E3J00F I'm still not sure from this how to identify the other two leads.

I had a heck of a time getting the .net gadgeteer board and the L6470 stepper controller to talk to any stepper motor.

I was finally able to get this turning a stepper motor over the weekend. It seems it's very sensitive to it's register settings.

I had to use some software and a stepper motor datasheet to get some values to feed into their software.

According to this: https://www.ghielectronics.com/community/forum/topic?id=8081&page=2

Those values only get you close and you need to use an o-scope to tune it further.

TODO:

  • Hookup and test stepper motor to L6470 module
  • Verify resistors and voltage coming into micro-controller.
  • Write some rough code to exercise the machine using the optical sensors to prevent damage
    • A loop that grabs CD's from source stack, drops them every other into the bins until bins are full.
  • Write code to interface machine to PC to take simple commands and report back
  • Write code on PC side to control machine and rip discs

9/30/2013

Andrew and I learned how to interface with the Disc Presence sensor. It was very easy

  • Blue Wire to Ground
  • Red Wire to 5V
  • Black Wire to Pin 3 (interrupt pin)
        public bool IsDiscPresent { get { return !diskPresenceSensor.Read(); } }
 
        private Gadgeteer.Interfaces.InterruptInput diskPresenceSensor;
        private void SetupDiscPresenceSensor()
        {
            char_Display.PrintString("DiscSensorSetup");
            diskPresenceSensor = breadBoard_X1.SetupInterruptInput(GT.Socket.Pin.Three, GT.Interfaces.GlitchFilterMode.On, GT.Interfaces.ResistorMode.PullUp, GT.Interfaces.InterruptMode.RisingAndFallingEdge);
            diskPresenceSensor.Interrupt += diskPresenceSensor_Interrupt;
            diskPresenceSensor.Read();
        }
 
        void diskPresenceSensor_Interrupt(GT.Interfaces.InterruptInput sender, bool value)
        {
            char_Display.Clear();
            char_Display.PrintString(IsDiscPresent.ToString());
        }

I wrote down the documentation on how we hooked up the other sensor. We still need to verify the input voltages. I'm pretty sure this board expects 3 volt inputs, not 5 to prevent damage.