another cnc mill questionaire

hi there, i know there is a lot stuff out there and i did a lot of research in google and and several forums.

i want to build a cnc mill using an arduino (uno or duemilanove) with three axes. i already connected three easydrivers and stepper motors to the arduino and have them running.

the building of the cnc mill is in progress.

what i am looking is the right firmware for the arduino that will make it possible to use either replicatorG as host oder mach3. at the moment i am confused by the amount of different firmwares (gcode interpreter, mendel,....).

would anybody be so nice an tell me exactly which firmware i will have to use and where i can find it for my project?

thank you so much in advance!!!

don't know if it helps I'm going down the same route! (<- you see what i did there!)

I have written a gcode interpreter for exactly that setup, 3 EasyDrivers connected to a Uno

I have also written a piece of software that sits on the PC and feeds gcode to it

Stir in Eagle and pcbgcode and I have a complete "design" to "cut" solution

If you like I can post the software

thats supergreat! i would be very happy if you would send me your software.

does this mean that if i design something in a 3d package, export this and create gcode from it then i can feed the mill with your software?

oh i´m excited....

yup the PC software takes a gcode file and sends it line by line to the Arduino which interprets it and controls the 3 steppers

I'll put it all together inamo

oh this sounds sooo good! as you tell me that gcode is beeing send from your software to the arduino - am i right, that it is possible to use other software that sends gcode like replicatorG? i mean actually i do not need replicatorG as i have the gcode already but i simply like the user interface :)

I can't speak for ReplicatorG as I don't know it but, the gcode interpreter "talks" to the PC software

I'll upload them both in a bit I just tried to make it idiot-proof

trouble is the idiots outnumber us!

ok here are the two parts…

first the software that opens and transmits a gcode file

you will need to click File :: Options to chose your COM port (and any other settings you fancy)
As well as sending the gcode it shows a picture of what it’s up to
It’s aimed at PCB milling btw

second the gcode interpreter that runs on the Uno
DO look at _init.pde as you will need to configure it to suit your machine
It supports 3 axes each with limit switches

like I said I think it’s idiot-proof, but…

feel free to ask questions, but I take no responsibility for you destroying your Arduino, drivers, motors, house, wife, children, sundry other loved ones or any other part of your immediate environment!

oh and if you make any changes - please let me know what you did

Do you have any info on the machanics of your build, btw?

i am just downloading your codes. thank you sooo much by now. i will try to figure it out and let you know how i am doing. thank you for your offer to ask you questions.

regarding to my construction: i will build it next week. basically its a similar design to the makebot-router which you can find on the difference will be that i will use linear ball bearings. if you like i will keep you informed about how i am doing.

thank you so much again and have a nice day!


(1) i am just trying the cnc driver. i setup port 8 (where my arduino is connected) but the software is telling me "unable to open port (win error code: 2)".

(2) i wired my arduino the way it says in _init.pde what is strange is that the stepper motors all go on "wake up" and get hot after a while. maybe i am an idiot but in the _init.pde it says pins 14-19 correspond to analog 0-5 so i connected pin 18 to A4 ( where it says analog in). i guess this is bullshit - can you tell me where the pins 14-19 are? i am sorry for asking stupid questions but i maybe an idiot :)

please help!

hello that happens when it - er - can't open the port!

can you talk to your arduino using the IDE? which port does that use? have you told the cnc driver (setup) which port to use?

cheers Mike

i can talk to arduino using port 8 and i told cncdriver to use this port (in the tools menu). thats how i connected arduino and uploaded the qgcode interpreter. i also tried it using serproxy on that port and running a flash application which drives a stepper motor.

i tried the same on an arduino duemilanove which connects to port 7. so i did upload gcode interpreter and then started cncdriver. then "tools menu", "options" set port to 7.

i get the same error "unable to open com port"

what do i do wrong :'(

Not quite sure - I will glare at the code when I wake up! :)

thank you in advance!

meant to ask what OS are you using? I've tried on Win7 and XP

i´m on windows xp

tried it on windows 7 aswell. did´nt work.

aha we have a result I managed to reproduce the error and we have a fix

it's silly windozy! :P

open device manager find the USB COM port and change it to COM5

that should squish the buglet do let me know how you get on

cheers Mike

YOU BRILLIANT YOU! good morning by the way. i changed to com5 (windows told me that another device is already using com5) and it works. thank you a thousand times.

i will be finishing the router today or tomorrow and i must say that i was really worried the last days when i thought "oh, i am building a router and when i am finished i don´t know how to drive it". i read about thousand threads and googled for cnc arduino blah blah until my fingers blooded but did not find one solution that i understand.

would you be so nice and provide me with some more information about the gcode interpreter _init.pde regarding how to wire all up?

just to make sure:

what i understand are the stepper controls like

define X_STEP_PIN 7

define X_DIR_PIN 6

define Y_STEP_PIN 2

define Y_DIR_PIN 3

define Z_STEP_PIN 9

define Z_DIR_PIN 10

what i am not shure are:

(1) endswithches

for example: #define X_MIN_PIN 14

define X_MAX_PIN 15

do i have to connect the switches also to 3.3V, 5V or something else?

(2) motor control

is this the sleep/wakeup for the easy drivers?

(3) panic stop/reset

are these buttons and do they need some 3.3V, 5V or somehting else like the endswitches?

i would be glad if you would help me again and wish you the best possible day!!

glad to see we made some progres!!

endswitches are limit switches to stop excess travel + and- in each of x, y, z

they can be a) ignored! b) connected to microswitches :( c) connected to photoswitches :) d) connected to hall effect switches :) basically whatever you have

they can be a) logic low is good, high is bad b) logic low is bad, high is good there is a seting to invert them if they're working the wrong way

in order to "ignore" them to logic high

motor control is used to switch the router spindle on and off if you're doing this manually, ignore it

panic stop/reset is used to freeze everything (in case of an emergency)

you can just ignore it (set it to logic high) panic reset is only checked after a panic, so you can ignore that too

hope that helps

cheers Mike