another cnc mill questionaire

ok here are the two parts...

first the software that opens and transmits a gcode file
http://www.mmcpix.com/CNC/CNCdriver.zip

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
http://www.mmcpix.com/CNC/GCode_Interpreter.zip
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 www.makebot.com. 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!

hi,

(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 :slight_smile:

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 :cry:

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

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! :stuck_out_tongue:

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 :frowning:
c) connected to photoswitches :slight_smile:
d) connected to hall effect switches :slight_smile:
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

thank you for your kind answers. for the limiting switches i will use something like these: http://www.google.at/imgres?imgurl=http://www.fischertechnik-fans.de/Images/Tasterinnen.jpg&imgrefurl=http://www.fischertechnik-fans.de/html/Tipps/alternativeteile.php&usg=__cn9bRSjqhrJVgUHl2R2FSplJQJU=&h=589&w=784&sz=73&hl=de&start=0&zoom=1&tbnid=B9XA--RLwVLjNM:&tbnh=113&tbnw=151&prev=/images%3Fq%3Dfischertechnik%2Btaster%26um%3D1%26hl%3Dde%26rlz%3D1C1AVSW_enAT376AT376%26biw%3D1024%26bih%3D513%26tbs%3Disch:1&um=1&itbs=1&iact=hc&vpx=414&vpy=80&dur=432&hovh=195&hovw=259&tx=87&ty=73&ei=kKIlTa3AAYSeOsvd0e0I&oei=kKIlTa3AAYSeOsvd0e0I&esq=1&page=1&ndsp=16&ved=1t:429,r:2,s:0

as a noob i have to ask again: i would think that i need to go with some voltage to the switch wich then goes to a pin on the arduino in case the switch is pressed. am i right? if so, does it matter if i use 3.3V or 5V from the arduino?

another question regarding these switches is, that i thought, that these are also used to set the axis to 0. i mean before the actual cutting starts, the motors should drive the axis to for example axis-min-switch and resets the measurement of the axis to 0 to know where it is, as the stepper motors only measure relativly.

those limit switches will be fine
I would use whatever voltage you have on the Arduino
so the switch (when closed) will connect, for example, 5v to the limit measuring (max or min) pin

you can also use them as "home" switches, but the software makes no provision for that

stepper motors just o what they are told

the software can use absolute or relative positioning
the PC interface allows you to "jog" (move) x y and z manually

how are you generating your gcode?

oh, i see. i use http://www.vectric.com/WebSite/Vectric/cut3d/c3d_index.htm

to generate gcode. as i design my things in 3d (cinema4d) and cut3d generates gcode from 3d formats. if you know an alternative, please tell me.

the thing i´m curious now is how do i position my workpiece so that it is milled correctly? do i just place the head somewhere and then put the workpiece relative to this position regarding the settings in the "tools" "options" menu (origin x, origin y)? < confused again :wink: >

is there any way to get the machine finding its 0-axes and then count "absolut" from there on?

I plan to use the limit switches as home so I'll position the workpiece, then home all the axes, then off we go

I'm just curious (not trying to be critical) as to why one would want to run a CNC machine with an Arduino when it's relatively easy and inexpensive to simply use EMC2? I run this very powerful and capable software on a 10 year old Pentium 4 machine I got for free so my software and computer costs are zero. The EMC2 community is very active and supportive and development of the software is constant in response to the users needs. Couldn't ask for more!

for me it was the intellectual challenge of implementing it all
you still need something that sits between EMC2, which is software, and the steppers (raw hardware)

the Arduino + EasyDriver combination provides the equivalent of commercial setups like Gecko at £ several hundred

Further most commercial software needs to use the parallel ports as all the timing is done on the PC and you can't wait for USB/serial ports to catch up

by offloading the signal generation to the Arduino, you remove this problem at a stroke

but more than all that see reason 1 above!