Let's Make Robots!

Control CD-Rom Steppers from within Blender

Hi all,

I am complete new to this topic but I want to use stepper-motors from old cd-drives to control them from within blender.

I have searched trough the Forum and other Sides quiet a lot but I still do have a lot of questions.

First one is: Why exactly do I need an Arduino-Board (or similar) to control the Steppers? The CD-Drive can Eject a CD without a Arduino already. Isn’t there a possibility to use the Hardware from the CD-Drive as it is? For example: Can’t I just write a Phyton-Script in Blender witch tells the Computer to “Eject” the CD-Drive to control the Motor?

If this is not possible: What is the cheapest way to control for example 9 Steppers independently from within Blender?

Kind regards,


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

yes, it’s the open-source program :) and by the way: sorry for my bad english. thank you very much, for your replies. i am interested in kinematic architecture and i want to build some moveable models. i’m am just experimenting and can’t explain exactly, what i’m going to do ;) but i’m going to by a arduino motor shield now and check it out. there is a tutorial on the arduino page. thank’s very much again!

kind regards,



At first, I thought you just had bad English, and wanted to control motors inside A blender. Probably a little sad, but I laughed for a bit after I found what you really meant.

I think you need to explain exactly what you are trying to acheive. Do you want to use the motors by themselves or do you just want to control an old CD-rom with software?

If you are going to keep the entire CD-rom PCB then you can do as you say. If you just want to use a stepper motor then you will need a stepper motor controller.


You can write a python script that does it, like this for windows: http://code.activestate.com/recipes/180919/

or this:

import ctypes
import time

ctypes.windll.winmm.mciSendStringW("set cdaudio door open", None, 0, None)
ctypes.windll.winmm.mciSendStringW("set cdaudio door closed", None, 0, None)

or you can see some more methods here: