DVD Player into a CNC Tracer: How the Mechanics Actually Work
An old DVD player already carries two stepper motors, a lead-screw carriage, and a laser pickup on a sliding rail. This page explains how to reuse that hardware and an Arduino board to build a light-duty CNC tracer, what it can and cannot cut, and where the design stops being worth the effort. Written for engineers who want the load path and the numbers, not a photo gallery.

In this article
- 1
- 2
- 3
- 4
- 5
- 6
What a DVD player gives you before you buy anything
Open a tray-loading player made after roughly 2003 and you find a stamped steel chassis, a spindle motor, a laser pickup on a parallel rail, and at least two bipolar stepper motors. One drives the sled that carries the pickup along the disc radius. The other drives the tray or the tilt mechanism. Both are small: typically a 15 mm to 20 mm frame, 20 to 40 steps per revolution, and a coil resistance between 10 Ω and 40 Ω.
The sled rail is the useful part. It is a ground steel rod with a bronze or polymer bushing, and it already gives you roughly 35 mm to 45 mm of clean linear travel with very low backlash. That is a ready-made axis. Two more of these, salvaged from a second player, give you X and Y.
What you do not get is stiffness. The rail is supported at both ends by thin sheet metal. Push sideways on the carriage and you can see it deflect. That single fact decides what this machine can cut, and we will come back to it.
You also get a 12 V or 5 V rail on the power board, plus a ribbon cable you can cut and re-terminate. Label every wire before you cut. The pickup flex cable is fragile and not worth saving unless you plan to keep the laser.
Driving the steppers from an Arduino without losing steps
The stock driver chip on the player board is not addressable. Replace it. Wire each stepper to a dedicated driver module and let the Arduino send step and direction pulses. For a 20 Ω, 0.3 A motor, a small A4988 or DRV8825 carrier set to 0.25 A is enough. Set the current limit with the trimpot before you connect the motor, and measure it across a known resistor.
Microstepping helps more than raw torque here. Run 1/8 or 1/16 microstepping. A 20-step motor on a 1 mm pitch lead screw gives 0.05 mm per full step. At 1/8 microstepping the commanded resolution becomes 0.00625 mm, which is finer than the mechanical repeatability of the rail. You gain smoothness, not accuracy.
Power the motors from a separate 12 V supply, not from the Arduino 5 V pin. Share ground. Add a 100 μF electrolytic across the driver supply pins. Without it, the first direction reversal usually browns out the logic and the board resets mid-cut.
Keep step pulses short. A 5 μs pulse is fine for these drivers. If you use a library that blocks, such as the basic AccelStepper run loop, you cap your feed rate at a few hundred steps per second. That is slow, but for a tracing operation it is acceptable.
- 1Driver currentSet to 60–70% of the motor nameplate rating to avoid heat soak.
- 2Decoupling100 μF at the driver, 0.1 μF at the Arduino supply pin.
- 3GroundingSingle star point at the 12 V supply negative terminal.
- 4Limit switchesMechanical switches on X and Y, wired normally closed to a pull-up input.
Why the tool mount decides what you can cut
A tracing machine copies a profile. The stylus follows a template and the tool reproduces the path. That means the cutting force is small and mostly lateral, but it is applied at the end of a long lever. On a DVD sled, the tool sits 40 mm to 60 mm above the rail. A 2 N side load at the tip becomes a bending moment the sheet-metal bracket cannot hold. The carriage tilts, and your depth of cut changes as it moves.
The fix is to shorten the lever. Bring the tool as close to the rail as the workpiece allows, and add a second rail parallel to the first so the carriage is supported at two points. Two parallel rails with 30 mm spacing roughly triples the resistance to tilt. Scavenge the second rail from another player.
For the tool itself, a diamond scribe or a 30° engraving bit in a 3.175 mm collet works. A small DC spindle rated 12 V to 24 V and 10,000 to 20,000 rpm is enough for engraving brass, aluminium, and acrylic at 0.05 mm to 0.15 mm depth. Do not mount a router. The spindle mass alone will sag the rail.
Spring-load the tool in Z. A light compression spring, 1 N to 3 N preload, keeps the tip in contact with the surface and absorbs small height errors in the template or the workpiece. Without it, every uneven spot becomes a depth change.
How the tracing loop closes in firmware
There are two ways to run a tracer. The simple one is open loop: you drive X and Y along a pre-recorded path, and the stylus is only a guide for the operator. The better one is closed loop: the stylus deflection is measured and fed back so the machine keeps a constant contact force.
For closed loop on a hobby budget, mount a small strain gauge or a piezo disc behind the stylus and read it on an analog pin. When the reading crosses a threshold, slow the axis that is pushing into the template. This is a force-following loop, not a position loop, and it is enough for engraving.
Sample the analog input at 200 Hz or faster. Anything slower and the machine overruns the template edge before it reacts. Keep the control loop simple: read, compare, adjust the step interval. Do not add a PID with tuned gains on an 8-bit board unless you have measured the mechanical response first.
Log the axis positions to a serial terminal while you trace. The resulting point list is a usable digitized profile. Clean it up, and you can replay it on the same machine as a contour routine, or hand it to a larger mill.
Where this build stops being the right answer
This machine cuts soft material at shallow depth. Acrylic, engraving laminate, brass sheet up to 0.5 mm, and aluminium sheet up to 0.3 mm are realistic. Steel is not. Neither is any cut deeper than about 0.2 mm per pass on metal.
If your part needs a tolerance tighter than ±0.1 mm, or a surface finish below Ra 3.2 μm, the sled rails cannot deliver it. The rail straightness is around 20 μm to 50 μm over 40 mm, and the thermal drift of the sheet-metal frame adds more. It is a tracer, not a production machine.
The build makes sense when you need one or two parts, when the geometry is a flat profile, and when you want to digitize a template you already own. It also makes sense as a teaching tool. Students see backlash, compliance, and step loss happen in real time, which is hard to demonstrate on a closed machine.
When the part has to hold ±0.005 mm, cycle in volume, or be documented for a regulated industry, the build stops being economical. At that point the profile should go to a real machining center.
Homebuilt tracer against a production CNC for the same profile
Use this to decide which route the part should take.
| Factor | DVD player tracer | Production CNC |
|---|---|---|
| Achievable tolerance | ±0.1 mm or looser | ±0.005 mm |
| Surface finish | Ra 1.6–3.2 μm typical | Ra 0.2–1.6 μm |
| Materials | Plastic, brass, thin aluminium | Steel, titanium, Inconel, plastics |
| Max cut depth per pass | 0.2 mm in metal | Set by tool and rigidity, not the frame |
| Axis travel | About 40 mm per rail | Up to 4,000 mm |
| Setup time | Hours to days of build | Quotation in 12 hours, production in 24 hours |
| Best use | One-off tracing or teaching | Repeatable parts, 1 to 10,000+ |
The verdict on this build
Build the DVD player tracer if you want to digitize a flat profile, engrave a few soft parts, or teach how backlash and compliance behave. Send the part to a real mill if it needs ±0.005 mm, steel, or more than a handful of pieces.
Questions engineers ask before starting
How much torque does a DVD sled motor actually have?
Most sled steppers are rated 0.2 A to 0.5 A per phase with a holding torque under 0.05 N·m. That is enough to move a 50 g carriage along a clean rail and nothing more.
If you add a spindle, counterweight the Z axis or the motor will skip steps on the first rapid move.
Can I keep the original laser and use it to scan the template?
You can read the pickup photodiode, but the original servo loop expects a spinning disc and a specific focus error signal. Reusing it as a scanner means writing your own focus control.
A USB camera or a simple contact stylus is faster to get working and easier to calibrate.
What power supply should I use?
A 12 V, 2 A bench supply covers two small steppers and a 12 V spindle. Derive the 5 V for the Arduino from a separate regulator, not from the motor rail.
Keep motor current off the logic ground path. Star-ground at the supply terminal.
Why does my machine lose position after a few minutes?
Thermal drift in the sheet-metal frame is the usual cause, followed by step loss from an under-set driver current. Measure the carriage position with a dial indicator before and after a 10 minute run.
If the error grows steadily, it is thermal. If it jumps, it is a lost step. Lower the acceleration to fix the second case.
Is this accurate enough to reproduce a part for a customer?
For a soft-material, flat profile with a tolerance of ±0.1 mm or looser, it can be. Document the setup and inspect every part, because the machine has no repeatable home reference.
For anything tighter, or any part that needs material certification, it is not the right tool.
Need the profile cut to ±0.005 mm instead?
Send us the drawing or the digitized point list. You get a quotation and a free DFM analysis within 12 hours, and parts ship in 3–5 days.
12-hour quote100% inspectionNo minimum order quantity