Mini CNC Arduino mega 2560

hi everyone, (I am a noob), I am trying to make a mini cnc with the old 3 dvd stepper motors, I have an arduino mega 2560, a shield ramps 1.4, and the Pololu Drv8825, the psu is a generic atx, I have the Problem that all the files I find are for 3d printers and not for a cnc, which have more parameters, (extruder, hotbed, thermometer) when I remove them the program fails, I also found the phyton bcnc but I don’t understand why the mega overheats too much to the point not until it can’t be used, any help? meanwhile I’ll be trying to load the marlin and see if I can use the pronterface …

There is a fork of grbl that works for ramps.

The MarlinBuilder releases also has a ramps version (V1CNC_Ramps) that should work for Marlin.

The mega should not be getting hot at all. The drivers should be toasty, but if you set the potentiometer on them, they should be ok. Too much and the motors and drivers overheat. Too low, and you will skip steps.

Are the dvd stepper motors even going to work with your DRV8825’s? Perhaps you could post a picture or the specs of the motors you have in mind to give us a clue?

My advice to you would be ditch the Mega & shield and buy an uno and cncshield, then download and flash GRBL to the uno, you will find it less cumbersome and your learning curve will be steep enough without adding to it unnecessarily.

if the motors work, try with the pronterface, they still get a little hot, in the same driver lower the current almost to a minimum * driver image * imgur. com/a/U3gP7J8


these are the stepper motors from the old dvd’s: imgur. com/a/h6idWkS

(I’m a new member, so I can’t upload the images directly, sorry for the inconvenience)

I tried to compile it and the arduino ide gives me error so now I am trying with platformio

The Arduino IDE on Windows can no longer manage Marlin. It still works on Linux, but platformio is a better option.

I managed to compile it and upload it to mega apparently (whit plataformio and VS code)…

======= ======= ======= ======= ======= =======
Environment Status Duration

mega2560 SUCCESS 00:00:11.526
======= 1 succeeded in 00:00:11.526
======= ======= ======= ======= ======= =======

now i’m turning down the drivers current so the motors don’t get hot and then i’ll try the pronterface

V1CNC_Ramps loaded, Pronterface can move all 3 axes, but when I load a .gcoce this happens

Loading file: C:\Users\tazzz\Desktop\Vuno.gcode
Loaded C:\Users\tazzz\Desktop\Vuno.gcode, 107 lines
0.00mm of filament used in this print
The print goes:

  • from 0.00 mm to 31.97 mm in X and is 31.97 mm wide
  • from 0.00 mm to 37.29 mm in Y and is 37.29 mm deep
  • from 0.00 mm to 0.00 mm in Z and is 0.00 mm high
    Estimated duration: 0 layers, 0:00:05
    Printer is now online.
    Marlin 513S
    echo: Last Updated: 2021-09-03 | Author: (V1 Engineering, Ryan, 513S)
    echo: Compiled: Dec 2 2021
    echo: Free Memory: 3318 PlannerBufferBytes: 1456
    echo:V85 stored settings retrieved (628 bytes; crc 34044)
    Print started at: 15:30:38
    echo:busy: paused for user
    echo:busy: paused for user
    echo:busy: paused for user
    echo:busy: paused for user
    echo:busy: paused for user
    echo:busy: paused for user
    echo:busy: paused for user

“”"“echo:busy: paused for user”""""

repeats it and repeats it and repeats it seems like a while that did not close </ 3

I sounds like there’s a pause that it is waiting for the user to clear. Can you post the beginning (first 50 lines or so) of the actual gcode file?

this is all gcode

(Scribbled version of C:\Users\daveb\AppData\Local\Temp\ink_ext_XXXXXX.svgB38JD1 @ 3000.00)
( --tab=“plotter_setup” --pen-up-angle=50 --pen-down-angle=30 --start-delay=160 --stop-delay=150 --xy-feedrate=3000 --z-feedrate=150 --z-height=0 --finished-height=0 --register-pen=true --x-home=0 --y-home=0 --num-copies=1 --continuous=false --pause-on-layer-change=false C:\Users\daveb\AppData\Local\Temp\ink_ext_XXXXXX.svgB38JD1 )
G21 (metric ftw)
G90 (absolute mode)
G92 X0.00 Y0.00 Z0.00 (you are here)

M300 S30 (pen down)
G4 P160 (wait 160ms)
M300 S50 (pen up)
G4 P150 (wait 150ms)
M18 (disengage drives)
M01 (Was registration test successful?)
M17 (engage drives if YES, and continue)

(Polyline consisting of 2 segments.)
G1 X22.77 Y11.21 F3000.00
M300 S30.00 (pen down)
G4 P160 (wait 160ms)
G1 X22.33 Y11.67 F3000.00
G1 X22.30 Y11.72 F3000.00
G1 X21.73 Y12.10 F3000.00
G1 X18.33 Y14.59 F3000.00
G1 X14.80 Y16.72 F3000.00
G1 X11.10 Y18.51 F3000.00
G1 X7.19 Y19.99 F3000.00
G1 X5.88 Y20.52 F3000.00
G1 X5.54 Y21.33 F3000.00
G1 X5.49 Y24.72 F3000.00
G1 X5.64 Y28.58 F3000.00
G1 X5.97 Y28.99 F3000.00
G1 X7.52 Y29.54 F3000.00
G1 X13.19 Y31.87 F3000.00
G1 X18.45 Y34.91 F3000.00
G1 X21.51 Y37.17 F3000.00
G1 X25.62 Y37.29 F3000.00
G1 X29.64 Y37.29 F3000.00
G1 X30.50 Y36.79 F3000.00
G1 X31.81 Y35.81 F3000.00
G1 X31.77 Y34.49 F3000.00
G1 X30.98 Y29.81 F3000.00
G1 X30.76 Y24.79 F3000.00
G1 X30.95 Y20.01 F3000.00
G1 X31.65 Y15.52 F3000.00
G1 X31.97 Y13.99 F3000.00
G1 X31.82 Y13.64 F3000.00
G1 X31.48 Y13.19 F3000.00
G1 X29.34 Y11.95 F3000.00
G1 X27.38 Y10.81 F3000.00
G1 X25.31 Y10.81 F3000.00
G1 X23.25 Y10.81 F3000.00
G1 X22.77 Y11.21 F3000.00
G1 X22.77 Y11.21 F3000.00
M300 S50.00 (pen up)
G4 P150 (wait 150ms)

(Polyline consisting of 2 segments.)
G1 X27.22 Y13.64 F3000.00
M300 S30.00 (pen down)
G4 P160 (wait 160ms)
G1 X28.10 Y14.37 F3000.00
G1 X28.17 Y15.19 F3000.00
G1 X25.13 Y20.57 F3000.00
G1 X24.70 Y21.58 F3000.00
G1 X24.98 Y22.57 F3000.00
G1 X25.51 Y24.76 F3000.00
G1 X24.94 Y26.94 F3000.00
G1 X24.71 Y27.90 F3000.00
G1 X25.39 Y29.31 F3000.00
G1 X26.83 Y31.79 F3000.00
G1 X27.77 Y33.42 F3000.00
G1 X28.06 Y33.92 F3000.00
G1 X28.04 Y35.17 F3000.00
G1 X26.27 Y36.18 F3000.00
G1 X25.66 Y36.09 F3000.00
G1 X23.10 Y32.02 F3000.00
G1 X21.73 Y29.73 F3000.00
G1 X20.57 Y29.39 F3000.00
G1 X19.04 Y29.05 F3000.00
G1 X17.67 Y28.21 F3000.00
G1 X16.88 Y27.27 F3000.00
G1 X16.51 Y26.74 F3000.00
G1 X15.99 Y26.49 F3000.00
G1 X12.42 Y26.37 F3000.00
G1 X8.91 Y26.28 F3000.00
G1 X8.42 Y26.12 F3000.00
G1 X8.19 Y25.81 F3000.00
G1 X8.04 Y24.71 F3000.00
G1 X8.15 Y23.70 F3000.00
G1 X8.60 Y23.20 F3000.00
G1 X12.35 Y23.04 F3000.00
G1 X16.07 Y22.96 F3000.00
G1 X16.96 Y22.03 F3000.00
G1 X18.49 Y20.62 F3000.00
G1 X20.56 Y20.03 F3000.00
G1 X21.54 Y19.81 F3000.00
G1 X22.14 Y19.04 F3000.00
G1 X25.63 Y13.34 F3000.00
G1 X26.30 Y13.25 F3000.00
G1 X27.22 Y13.64 F3000.00
G1 X27.22 Y13.64 F3000.00
M300 S50.00 (pen up)
G4 P150 (wait 150ms)

(end of print job)
M300 S50.00 (pen up)
G4 P150 (wait 150ms)
M300 S255 (turn off servo)
G1 X0 Y0 F3000.00
G1 Z0.00 F150.00 (go up to finished level)
G1 X0.00 Y0.00 F3000.00 (go home)
M18 (drives off)

That M01 is holding up the show. Comment it out or delete it.

I also think you will always have heat issues with those steppers in partnership with those drivers. The DRV8825’s will work down to about 8V but the motors in dvd drives are usually built for 5V. If you are supplying the drivers Vmot with anything more than 8V then the problem will be worse. Reduce the Vmot to 8 or 9V and turn the current pot right down and see if the stepper motors still turn.


The “Was registration test successful?” is supposed to be a prompt you can see somewhere, like an LCD display so you could acknowledge it and let the job continue.

And, in the “teach a man to fish” department, here’s the Gcode | Marlin Firmware reference page.

The M0 and M1 commands pause after the last movement and wait for the user to continue. M1 is a deprecated alias for M0 .

You can use our test crown premade gcode.

I decided it was better to stop using pronterface and in the Estlcam Basics it works perfect, i put a pen on it like in the tutorial and it works, the only strange thing is that in the repetier-host. must place the design outside the printing area so that it prints correctly