Go Down

Topic: cnc (Read 5392 times) previous topic - next topic



can i make this cnc work with arduino serial board??


You probably could; it just wouldn't be as fast. Especially since someone on another list I am on (for TRS-80 Color Computer users) built a CNC machine that used a CoCo 3 (running at 2 MHz - granted, it has more RAM than an Arduino).

It should be possible as long as you are only using the Arduino as a controller, and/or perhaps a simple interpretor of commands.
I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.


is it enough outputs to control 3 stepper motors?


Mar 11, 2010, 10:28 pm Last Edit: Mar 11, 2010, 10:34 pm by dsg0812 Reason: 1
He was using a Mega + now he has the controllers on I2C, I am gonna make one too (not I2C but direct), soon after my exams, have bought the steppers (small KL23H251-24-8B from Keling) and pololu breakut controlers
http://www.pololu.com/catalog/product/1201 (really small, I am a bit conserned) and a powersupply, need still a fan and a heatsink.

I have planned to use 40X40X2 (mm) steel rectangle pipes for the framework so I can use coolants and be a little messy and try for aluminium. But I might start with mdf frame and uprade.
I have bought 40 ABEC bearings also and the leadscrews for the stages.

I will also be using a ArduinoMega



Mar 12, 2010, 12:08 am Last Edit: Mar 12, 2010, 12:11 am by mawe Reason: 1
david, i konow that he is using mega arduino, but my question is serial board can handle this? and he isnt using i2c :) he use just simple h bridge


On a regular Arduino, you have 14 digitial I/O pins, and 6 analog pins; the 6 analog pins can be used as digital ones quite easily - so you have up to 20 digital i/o pins.

Most stepper motors require 2 or 4 wires to run them; so for three steppers, you need (max) 12 pins of output. You have two dedicated pins for TX/RX (0 and 1). That still leaves you with plenty of pins left over (6 pins) for other things, like controlling spindle motors, checking for limit switches, etc.

With that said, I wouldn't control the motors directly from the Arduino; there are plenty of stepper controller chips out there (or you can cobble your own together from 74xx logic chips) where you only need to supply a pulse and a direction output (so 2 pins per stepper, or 6 pins total). Doing so simplifies the code immensely, and makes it faster (because the Arduino isn't having to send all the pulses and such needed for each coil in each motor - just direction and pulse).

That's the basics...

I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.


It is possible on a standard arduino (I know, I've done it). But I wouldn't recommend it, and I will soon be upgrading mine to a Mega. CNC needs a lot of inputs and outputs and you very quickly run out.

A simple H bridge driver uses 2-4 outputs per axis. But if you want microstepping then you need 2 PWM pins per axis too. If you then want variable drill speed as well, you've already run out of PWM. I would recommend microstepping, my machine was extremely noisy before I used microstepping, the steppers were actually noisier than the drill!

There's also 2 end stops per axis. It is possible to combine these onto one pin, but it makes the hardware and software more complex. It's so much easier to have enough pins in the first place. Later on you might want to add a warning buzzer, dust extraction, coolant, more axes, extruder head, sd card reader, lcd display, manual controls etc.

Speed isn't an issue, even the worst code will run too fast and make the motors skip.

If you already have a standard Arduino, you can use it to start off with until you run out of pins, then upgrade (as I am doing). But if you were looking at buying a new arduino for a CNC project I would suggest paying extra for a Mega.
Due VGA library - http://arduino.cc/forum/index.php/topic,150517.0.html


Mar 12, 2010, 02:18 am Last Edit: Mar 12, 2010, 02:20 am by dsg0812 Reason: 1
If you follow this thread trough all the pages, you see that he begins with normal H-bridge controled by Mega and later makes I2C circuitry to control those H-bridges



i dont care about microstepping and things like that ( for now) i just want to do simple cnc to gain little bit experence, so usual arduino is enough for me :)


Check out these chips:

They only take 3 pins per axis to control and they are very nice chips. I am building a cnc mill for making circuit boards and I am using these chips with the stepper motor and the I-PAK transistors they have. Each axis is only $24.40 complete plus shipping.

I am going to control mine directly from the computer, but I had purchased one axis worth of parts to test and they work great. I have even run it from a PicAxe processor and had even built a simple controller tester from a 555 timer, so I know you should be able to create a program for the Arduino to control them. I converted an older PC power supply to run everything. It has your 3.3 volt outputs needed for the motors and your 5 volts for the chip.
You would only need 9 Arduino pins to operate a full 3-axis cnc machine and 4 inputs for end stops and Emergency stop button.

Hope this help. If you have any questions about these chips, let me know. I'll answer any questions I can.



this is for unipolar, and i need for bipolar :P


Sorry, I didn't know you already had the motors.  :-?
It would be a great solution [glow]if you didn't have the motors yet[/glow].  :D  ;)



well, this project is just to learn the basics so i dont want to spend a lot, for me it is enough if it will be able to draw something with pen  ;D ::)


Mar 29, 2010, 06:43 am Last Edit: Mar 29, 2010, 07:00 am by Parcanman Reason: 1
You might want to look into the RepRap project.  They've already made a few different designs of Arduino-based CNC machines and have the sketches available for download, including a G-code interpreter.

I'm working on building a 2-axis wood-cutting machine.  I'm using the Adafruit motor shield which can control 2 stepper motors (bipolar or unipolar) or 4 regular DC motors (or 2 DC motors and one stepper).  It also has headers for 2 servo motors which can run independently of the other motors.  I'm using 2 Bipolar steppers I salvaged from an old DMX512-controlled DJ light for the gantry and tool movement.  I also have one hobby servo for the vertical axis, this is only for raising and lowering the tool head, not for 3D printing.

So essentially it's the same idea as what you're doing, I'm planning on starting out with just a marker, but I'm going to build it strong enough to hold a cheap electric drill so that once it works to my satisfaction, I can put a Dremel cutting bit into the drill chuck (a cheap Dremel goes for $70 bucks vs. $30 for a cheap electric drill).

I used to make adirondack chairs for people, but standing by the band saw was so time consuming, so I figure if I can build a machine to do the actual cutting work, I can have the machine making the parts and I'll just assemble them.  Eventually I want to add on with some kind of dispenser to automatically load new boards into the machine to cut so it can just be cutting pieces when I'm at work, then I can just finish the pieces by hand and assemble them.  This is just a basic starter project that should hopefully yield results (in the form of money).

NOTE: The link in the original post of this thread is invalid.


hello people, i did not used i2c on my machine............ in fact i started making tests with my s3v3 serial arduino..... then i got mi 3 arduino megas and liked the idea of using the usb cable.....

I someone wants to mahe his machine, start making questions...... i am here to help----

it is very easy....... i am stopped now because of a proyect i am into... but soon i am gonna get some upgrade parts from USA to make my machine go faster.............

allways using arduino!!!!!!!!!

Go Up