Part 1 introduced the project, part 2 covered the mechanics and part 3 the electronics. Part 4 covers the software side.

1. Maestro

Install the Pololu Maestro software and then connect the Maestro to your PC and start the software.

Under the Serial Settings tab choose “USB Dual Port”. Uncheck “Enable CRC”. Check “Never sleep”. Click on Apply Settings

The microswitches should already be displaying their status. Press the switches and make sure they are working.

Enable the three servo channels and manually move each servo to make sure it works.

Use the software to position the arm over the in tray, DVD drive and out tray. Make a note of the servo position values. Be careful not to go near the limits of the servo as it turns into a continuous rotation servo and loses position.

Use the software to work out a slow speed for raising and lowering the toolhead and also the value to make it stop without the servo making a buzzing sound. Make a note of these values.

Finally use the software to determine the servo values for the grippers being fully open and fully closed. Make a note of these values.

2. Tweaking

Open the DVD tray and put a DVD into it.

Use the two M8 nuts next to the hub to adjust the length of the arm so that the grippers are directly above the hole in the DVD.

Swing the arm over the in tray and check if the grippers are positioned over the center. If not swing the tray outwards slightly or add M8 washers as spacers between the tray and the tray anchor. If you move the tray then you will need to check again the servo value need for the in tray position.

Repeat this for the out tray.

3. Raspberry Pi Setup

Copy to the Raspberry Pi (RPi) the following:

Edit config.xml in a text editor and insert the servo values you have worked out.

Mono needs to be installed on the RPi but the version in the repositories does not work. Instead use the version found here.

Run the server with:

mono ./BotServer.exe config.xml

Open the DVD tray and put a DVD into the in tray.

Load a disc by visiting:

Replace the IP address with the address of your RPi. The disc should be loaded into the tray.

You may have to adjust the YAxisLowertoDriveTime in config.xml which is given in 1/1000th of a second and governs the time spent lowering the toolhead before dropping the disc into the drive tray.

Once the load disc function is working test the unloading with:

The YAxisLowertoOutTrayDropTime in config.xml governs the time spent lowering the toolhead before dropping the disc into the out tray. It has to drop from low enough that it consistently goes into the tray, but high enough that when the stack in the out tray is full there is space to drop the last disc.

4. PC Setup

Copy the following files to your PC:

  • JacktheRipperBot.exe
  • Rip.bat
  • ScanningFinished.bat

Make sure the full .NET Framework 4.0 is installed. If you need to install it then reboot before running JacktheRipperBot.exe.

Install DVDFab Passkey or AnyDVD. Both applications have the option to execute a command when scanning of a disc has completed. Set this up to run ScanningFinished.bat.

Install Handbrake and check the correct path to HandbrakeCLI.exe is used in Rip.bat.

Start JacktheRipperBot.exe and enter the IP address of your RPi.

Go to the advanced tab and try the various operations individually.

Once you are happy everything is working enter the number of discs in the in tray and click on Start to start ripping!