. .
Page 2 of 3 FirstFirst 123 LastLast
  1. #11
    Quote Originally Posted by m_c View Post
    The problem with CNC machining, is it usually requires far faster and more accurate motion than 3D printing, and an Arduino is not really up to the task.
    Even an ARM processor isn't ideal, as getting jitter free motion needs good clock scaling, which can be handled far better in an FPGA, which is why you'll find nearly all CNC motion controllers use an FPGA for motion generation, often paired with some form of microprocessor which handles communication and the maths for generating the motion paths, before passing the required motion to the FPGA.
    LinuxCNC and Mach running via a parallel port also have the same issue, however they ultimately rely on using a sledgehammer to crack a nut, by throwing enough processing power at the problem, you can get it to work well enough it's not a problem.

    And then you have the available hardware. Nearly all shields I'm sure have been designed with 3D printing in mind, where speed and acceleration requirements aren't that great, so 24V is acceptable. If you were to use those same speeds on any reasonably sized router or mill, it would be painfully slow.
    Hardware really is a case of, you get what you pay for.
    The CNCshield is designed for grbl which is cnc router firmware not 3d printing! It can pass up to 36v to steppers (It's designed for a hobby machine after all) but if you need 60v to the drivers you can do that easily as well. Most people use cheap ass Polou steppers which are not suitable for 36v but you can get a lsightly more expensive driver than will push 36v fine or wire a real driver to replace the cheap chip drivers the cncshield is designed to take on board.

    Of course it's not as good as much more expensive solutions but it's very powerful for the price (£25 including 4 stepper drivers!) and not as useless as you might think but I will move to a breakout board solution relatively soon I consider it the least essential purchase right now in getting the thing built and cutting.

    Ardunio and cncshield are also very good for testing nema's so when I do upgrade I will have a simple test bed for the recovered motor's I collect.

    grbl is very stable these days, maybe not the quickest of course but they are rock solid stable.

    "The controller is written in highly optimized C utilizing every clever feature of the AVR-chips to achieve precise timing and asynchronous operation. It is able to maintain up to 30kHz of stable, jitter free control pulses."
    Last edited by Desertboy; 27-06-2017 at 05:25 PM.
    http://www.mycncuk.com/threads/10880...60cm-work-area My first CNC build WIP 120cm*80cm

    If you didn't buy it from China the company you bought it from did ;)

  2. #12
    Quote Originally Posted by m_c View Post
    The problem with CNC machining, is it usually requires far faster and more accurate motion than 3D printing, and an Arduino is not really up to the task.
    Even an ARM processor isn't ideal, as getting jitter free motion needs good clock scaling, which can be handled far better in an FPGA, which is why you'll find nearly all CNC motion controllers use an FPGA for motion generation, often paired with some form of microprocessor which handles communication and the maths for generating the motion paths, before passing the required motion to the FPGA.
    LinuxCNC and Mach running via a parallel port also have the same issue, however they ultimately rely on using a sledgehammer to crack a nut, by throwing enough processing power at the problem, you can get it to work well enough it's not a problem.

    And then you have the available hardware. Nearly all shields I'm sure have been designed with 3D printing in mind, where speed and acceleration requirements aren't that great, so 24V is acceptable. If you were to use those same speeds on any reasonably sized router or mill, it would be painfully slow.
    Hardware really is a case of, you get what you pay for.

    The other guy who replied makes some good points.
    We are advised to use the latest uno as the clock is designed for faster rates. I can't say it requires "faster and more accurate" motion than 3D printing honestly, especially not at a hobby scale. My 3D printers has travel moves of 400mm/s happily, can print at a good 100mm/s and maintains accuracy on the micrometer scale without an issue. I haven't had much experience with CNCs but in general they seem slower than my printer and the bits larger than my nozzle, rendering certain forms of accuracy less reliable.
    Naturally if I wanted to invest several hundred in a CNC I would so and the quality would be much better. However I don't. This is a hobby build from scraps and cheap pieces that'll get used for sure, but not that much, I'm guessing.
    Ah, many shields ARE designed for 3D printing, but that's why you make sure to get a CNC shield, designed for higher power throughput. My RAMPS board is designed for 12V but I easily modified it to 24V. However I still wouldn't use it for CNC work as half the stuff on it isn't needed. The CNC shield is capable of up to 36V, adequate for a hobby machine, and plenty for what I need.
    I should note again, this isn't an industry scale or quality machine I'm aiming for. I just had a fun idea to reuse some old scraps lying around and it'll be an entry point for if I do want to create something more professional! 3D printing is my real joy but there's nothing wrong with expanding my skills, knowledge and tool bank :)



    Honestly, what I really would need guidance on is the homing sequence. If I'm understanding what I've read correctly; the XY are homed to the 0 corner on the machine in "machine coordinates" and the Z (spindle) to its upper limit, also 0.
    As the machine knows the maximum cutting depth (Z max) once you've put in your cutting bit you then jog the tool down till it touches the top of the material you plan to cut. This then gives the machine the "cutting coordinate" offset 0 from world coordinate 0.
    Knowing the maximum depth and that this new machine coordinate = cutting coordinate 0 it knows the new range in which to cut.

    Correct?

    So in practicality, the machine is homed to a designated corner with the spindle at its highest, material is clamped, cutting bit inserted and jogged down to touch the material and that then registered by the machine, then cutting may begin.

    This is my one true sticking point, the rest I'm comfortable with now that I know the shield isn't feeding the Arduino too.
    Thanks for all the help :)

  3. #13
    m_c's Avatar
    Lives in East Lothian, United Kingdom. Last Activity: 4 Days Ago Forum Superstar, has done so much to help others, they deserve a medal. Has been a member for 9-10 years. Has a total post count of 2,908. Received thanks 360 times, giving thanks to others 8 times.
    Quote Originally Posted by Desertboy View Post
    The CNCshield is designed for grbl which is cnc router firmware not 3d printing! It can pass up to 36v to steppers (It's designed for a hobby machine after all) but if you need 60v to the drivers you can do that easily as well. Most people use cheap ass Polou steppers which are not suitable for 36v but you can get a lsightly more expensive driver than will push 36v fine or wire a real driver to replace the cheap chip drivers the cncshield is designed to take on board.
    That CNC shield is just a glorified header board, with pinouts optimised for grbl. You could just as easily use it for 3D printing.
    Regardless, what I was highlighting was the more stringent requirements for CNC.

    Of course it's not as good as much more expensive solutions but it's very powerful for the price (£25 including 4 stepper drivers!) and not as useless as you might think but I will move to a breakout board solution relatively soon I consider it the least essential purchase right now in getting the thing built and cutting.

    Ardunio and cncshield are also very good for testing nema's so when I do upgrade I will have a simple test bed for the recovered motor's I collect.
    Just for clarity, I never said an Arduino is not a useable option, it's just not an ideal one.
    grbl is very stable these days, maybe not the quickest of course but they are rock solid stable.

    "The controller is written in highly optimized C utilizing every clever feature of the AVR-chips to achieve precise timing and asynchronous operation. It is able to maintain up to 30kHz of stable, jitter free control pulses."
    And if you have a look at the grbl source, you'll see it's using a similar smoothing algorithm to Repetier (which incidentally has a nice explanation on how it works). It may be jitter free, but in order to achieve the jitter free, you have to compromise accuracy. And then to achieve the higher pulse rates, it starts scaling steps, so you loose even more accuracy, and introduce a certain amount of jitter.

    If I didn't have as much work to do just now, I'd try connecting an arduino to a datalogger, and see just how jitter free the output really is.

    P.S. the technobabble may impress your average arduino coder, but all they're ultimately doing is handling pulse generation in native AVR C, and relying on ISRs for timing. The only thing optimised other than good coding technique, is avoiding using C++ and the arduino compiler, which is inherently bloated.
    Avoiding the rubbish customer service from AluminiumWarehouse since July '13.

  4. #14
    Quote Originally Posted by Desertboy View Post
    The CNCshield is designed for grbl which is cnc router firmware not 3d printing! It can pass up to 36v to steppers (It's designed for a hobby machine after all) but if you need 60v to the drivers you can do that easily as well. Most people use cheap ass Polou steppers which are not suitable for 36v but you can get a lsightly more expensive driver than will push 36v fine or wire a real driver to replace the cheap chip drivers the cncshield is designed to take on board.

    Of course it's not as good as much more expensive solutions but it's very powerful for the price (£25 including 4 stepper drivers!) and not as useless as you might think but I will move to a breakout board solution relatively soon I consider it the least essential purchase right now in getting the thing built and cutting.

    Ardunio and cncshield are also very good for testing nema's so when I do upgrade I will have a simple test bed for the recovered motor's I collect.

    grbl is very stable these days, maybe not the quickest of course but they are rock solid stable.

    "The controller is written in highly optimized C utilizing every clever feature of the AVR-chips to achieve precise timing and asynchronous operation. It is able to maintain up to 30kHz of stable, jitter free control pulses."
    Well said! I'd like to add that it's even cheaper than £25 now! CNC shield and Arduino UNO coming to about £10-15 total now including the cheap pololus.
    I knew I'd be using NEMA23s (part of the limitation of me recycling old bits) so I reused some old DRV8825 drivers which as you say are capable of 24-36V and higher currents, so are suitable for the NEMA23s. Those back in the day would've cost me about £7 so you're right, cheap as dirt for hobbyists :)

  5. #15
    Quote Originally Posted by m_c View Post
    That CNC shield is just a glorified header board, with pinouts optimised for grbl. You could just as easily use it for 3D printing.
    Regardless, what I was highlighting was the more stringent requirements for CNC.
    True that! But you wouldn't as you'd have to add thermistor control, heated bed, heated nozzle... and to be in line with today's cheapest printer motherboard (the RAMPS) you'd also need to add on extra for servo control, LCD and SD integration etc.
    If you had one already it'd be interesting turning it into a printer driver but you wouldn't purchase one for printing, especially as said RAMPS is about £18 including the necessary drivers and LCD/SD :)

  6. #16
    m_c's Avatar
    Lives in East Lothian, United Kingdom. Last Activity: 4 Days Ago Forum Superstar, has done so much to help others, they deserve a medal. Has been a member for 9-10 years. Has a total post count of 2,908. Received thanks 360 times, giving thanks to others 8 times.
    Quote Originally Posted by AcrimoniousMirth View Post
    The other guy who replied makes some good points.
    We are advised to use the latest uno as the clock is designed for faster rates. I can't say it requires "faster and more accurate" motion than 3D printing honestly, especially not at a hobby scale. My 3D printers has travel moves of 400mm/s happily, can print at a good 100mm/s and maintains accuracy on the micrometer scale without an issue. I haven't had much experience with CNCs but in general they seem slower than my printer and the bits larger than my nozzle, rendering certain forms of accuracy less reliable.
    Naturally if I wanted to invest several hundred in a CNC I would so and the quality would be much better. However I don't. This is a hobby build from scraps and cheap pieces that'll get used for sure, but not that much, I'm guessing.
    Ah, many shields ARE designed for 3D printing, but that's why you make sure to get a CNC shield, designed for higher power throughput. My RAMPS board is designed for 12V but I easily modified it to 24V. However I still wouldn't use it for CNC work as half the stuff on it isn't needed. The CNC shield is capable of up to 36V, adequate for a hobby machine, and plenty for what I need.
    I should note again, this isn't an industry scale or quality machine I'm aiming for. I just had a fun idea to reuse some old scraps lying around and it'll be an entry point for if I do want to create something more professional! 3D printing is my real joy but there's nothing wrong with expanding my skills, knowledge and tool bank :)
    At least you're aware of the limitations.
    Honestly, what I really would need guidance on is the homing sequence. If I'm understanding what I've read correctly; the XY are homed to the 0 corner on the machine in "machine coordinates" and the Z (spindle) to its upper limit, also 0.
    As the machine knows the maximum cutting depth (Z max) once you've put in your cutting bit you then jog the tool down till it touches the top of the material you plan to cut. This then gives the machine the "cutting coordinate" offset 0 from world coordinate 0.
    Knowing the maximum depth and that this new machine coordinate = cutting coordinate 0 it knows the new range in which to cut.

    Correct?

    So in practicality, the machine is homed to a designated corner with the spindle at its highest, material is clamped, cutting bit inserted and jogged down to touch the material and that then registered by the machine, then cutting may begin.

    This is my one true sticking point, the rest I'm comfortable with now that I know the shield isn't feeding the Arduino too.
    Thanks for all the help :)
    That sounds fine.
    I would recommend learning a bit about G-codes though, and how they work on whatever controller you're using, as there can be slight differences in how they're implemented.

    The machine home does not have to be 0,0,0, however it depends on if grbl supports it not being at 0,0,0. Depending on machine layout, home can be at the opposite travel limit i.e. to keep the gantry at it's furthest away point to improve access for loading/clamping.
    Once homed, you would then normally define a work offset. For changeable repeatable tools, you'd also use tool offsets, but I don't think you really need to worry about tool offsets.

    Alternatively, as this sounds like not that powerful a machine, use the KISS option. Don't bother with homing switches, set home at 0,0,0 for the work piece, and ignore offsets.
    This is how I use my digitising machine, as it removes complexity and it just stalls if it does run out of travel. I certainly wouldn't use this technique on my mill of lathe.
    Avoiding the rubbish customer service from AluminiumWarehouse since July '13.

  7. #17
    Quote Originally Posted by m_c View Post
    At least you're aware of the limitations.


    That sounds fine.
    I would recommend learning a bit about G-codes though, and how they work on whatever controller you're using, as there can be slight differences in how they're implemented.

    The machine home does not have to be 0,0,0, however it depends on if grbl supports it not being at 0,0,0. Depending on machine layout, home can be at the opposite travel limit i.e. to keep the gantry at it's furthest away point to improve access for loading/clamping.
    Once homed, you would then normally define a work offset. For changeable repeatable tools, you'd also use tool offsets, but I don't think you really need to worry about tool offsets.

    Alternatively, as this sounds like not that powerful a machine, use the KISS option. Don't bother with homing switches, set home at 0,0,0 for the work piece, and ignore offsets.
    This is how I use my digitising machine, as it removes complexity and it just stalls if it does run out of travel. I certainly wouldn't use this technique on my mill of lathe.
    Thanks for the advice!
    I'm familiar with Gcode (again having come from the 3D Printing world) but respect that it may be implemented slightly differently in CNC.
    I personally would have it at 0,0 given my machine layout!
    So what's the precise difference between the work and tool offset? If I were to manually change a tool I would expect to home again, swap tools and then set the offset with the new tool. That way it takes into account the different length of bit.
    I got endstops from the scrapped Rapman and I don't see any reason why not to make it as good as I can while maintaining the budget approach! It's a bit of a quandary, I know, but though I'm keeping costs minimal I do want to do the best I can with what I have :)

  8. #18
    m_c's Avatar
    Lives in East Lothian, United Kingdom. Last Activity: 4 Days Ago Forum Superstar, has done so much to help others, they deserve a medal. Has been a member for 9-10 years. Has a total post count of 2,908. Received thanks 360 times, giving thanks to others 8 times.
    One is for where the work piece is, and one for the size of tool ;-)

    I'm sure the work piece offset doesn't need explained.

    Whether tool offsets are any use, depends on if/how the controller implements them. For mills/routers, the two offsets are tool length compensation, and tool diameter/radius compensation.
    Tool length is only really much use if you have some way to switch tools and reliably repeat the previous tool length I.e. something with a tool changer.

    Diameter/radius compensation is more important, as it allows g-code to be used that doesn't rely on a certain size tool being used. In a nutshell, with diameter compensation, you can produce G-code that simply traces the outline of what you want to cut, the controller then applies a suitable offset based on the set tool diameter, and cuts on the inside or outside of the g-code line. If you want to use a different diameter tool, you just change the set tool diameter and the controller adjusts to suit the new offset.
    Without the compensation, you need to produce G-code that already follows the offset cutting path based on the diameter of the tool you plan to be using. If you want to swap tool diameter, you would need to re-generate the G-code to have the correct offset for the new tool.

    It can be argued what method is better. Using cutter compensation makes the g-code more versatile, but is reliant on the correct tool offsets and modes being set in the controller. Without compensation, eliminates the issue of having to set tool offsets and simplifies using the machine.
    With any decent CAM, there's minimal difference in producing the G-code for either. Regenerating for a different tool diameter is usually a case of just setting the new diameter, and clicking a button, so not using compensation is hardly a major problem given how often you're likely to need to alter tool diameter.
    The hardest part, is making sure the post processor is producing the correct codes and format for your controller.
    Avoiding the rubbish customer service from AluminiumWarehouse since July '13.

  9. #19
    If you've got your head around machine coordinates and work coordinates, that's great. A lot of people struggle at that point! Tool offsets are not really needed a lot of the time. In fact, they are most useful if you are using a toolchanger where each tool will go back in the spindle at the same precise position every time. You set work coordinates by touching off the work in X, Y, and Z as described using a reference tool; then the software can use the preset tool offsets to, in effect, reset the Z work coordinate based on the new tool's projection from the spindle every time you change tools. Like a lot of people, I use a slightly different approach. I use a touchplate to set the Z coordinate for the first tool I am going to use. I run a macro which first touches off the movable touchplate (maybe on the top surface of the work, maybe off the spoil board or bed, depending on what I am using as a reference) and then touches off a fixed touchplate set into the bed. The software stores the difference between the Z coordinates. When I switch to the second (or third, etc) tool, another macro touches the tool off the fixed touchplate and can use the stored offset to, in effect, translate this into referencing off the original surface. Which might have be machined away by this point. It's not quite the same as using tool offsets, but it is more suited to a machine like mine where the tool is held in a collet and I cannot control "stickout" very accurately when I change tools.

    Which brings me to my problem with open source software for CNC as it stands at the moment - the commercial software lets me do these kinds of things very easily, both in terms of writing macros and modifying control screens to add or change functionality. I had a play with grbl a while ago for another project as I needed motion control software that I could get inside and modify reasonably easily and grbl fitted the bill. However, there is a big difference between adding functionality via macros that give direct access to "CNC functionality" and working out how to do that while grubbing about with a C compiler. It's a bit like asking why I should bother with using a database package when I could write the same thing in assembler! Well, that's a bit of an exaggeration but it's a bit like that. The other problem is that I ended up using Universal Gcode Sender to sit between PC and grbl. UGS seemed to be the best option at the time I was looking. While it had some machine control features, it was a bit clumsy to use and somewhat limited. That might have changed by now - I haven't needed to look. The commercial options are much better in this respect. LinuxCNC is a halfway house - pretty much the same functionality as things like Mach3 but a full open-source "product". But you do then need to cart around a PC or similar with you, which is why I was looking at grbl. Maybe RPi is the way to go but my aim at that time was to get something working rather than spend ages researching options. I'm sure that this is a developing area, although I have to say that as the open-source aspect is driven mainly by lower-power machines which make less demand on the control system, it may be that the priorities for development will be different in the same way that a desktop skate-bearing machine with a router as spindle differs from a full-sheet router with 3HP spindle. I'm not knocking the former option BTW - my first CNC router was MDF with skate bearing guides and I used that (with LinuxCNC) for the best part of 5 years.

    I shall continue to watch the open-source area with interest as I'm sure that there will be some useful developments. For example, there is the stmbl open-source hardware development for servo drivers, and there are a lot of creative "amateurs" out there.

    BTW, on the subject of Arduino power - I'm pretty sure that the Uno spec says that it is happy with 7-12V as it has onboard regulation to give 5V for the Atmega chip, etc. I think my Sanguinololu 3D printer controller (that dates me...) uses 12V. I'm in the process of developing an Arduino-based controller for a different kind of machine at the moment, which is why I was looking this up on the Arduino site a couple of nights ago. It may be that the shield does not pass its power to the Arduino purely because its acceptable input voltage range exceeds what is acceptable by the Arduino.

  10. #20
    Quote Originally Posted by Neale View Post
    BTW, on the subject of Arduino power - I'm pretty sure that the Uno spec says that it is happy with 7-12V as it has onboard regulation to give 5V for the Atmega chip, etc. I think my Sanguinololu 3D printer controller (that dates me...) uses 12V. I'm in the process of developing an Arduino-based controller for a different kind of machine at the moment, which is why I was looking this up on the Arduino site a couple of nights ago. It may be that the shield does not pass its power to the Arduino purely because its acceptable input voltage range exceeds what is acceptable by the Arduino.
    Not sure the specs but you cannot use 12v inductive sensors on a ramps board directly you need to wire some resistors to drop the voltage as it will fry the arduino so I would err on the side of caution.
    Last edited by Desertboy; 27-06-2017 at 10:27 PM.
    http://www.mycncuk.com/threads/10880...60cm-work-area My first CNC build WIP 120cm*80cm

    If you didn't buy it from China the company you bought it from did ;)

Page 2 of 3 FirstFirst 123 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Which cables to shield?
    By andy586 in forum General Electronics
    Replies: 0
    Last Post: 02-07-2014, 04:33 PM
  2. Any arduino coders here?
    By Mad Professor in forum General Electronics
    Replies: 48
    Last Post: 25-03-2013, 06:07 PM
  3. CNC Controller with Arduino and Gamepad
    By Christian Knuell in forum Electronic Project Building
    Replies: 2
    Last Post: 20-10-2012, 10:25 PM
  4. ​DIY arduino CNC 2 axis table
    By ruthharm84 in forum Electronic Project Building
    Replies: 5
    Last Post: 06-05-2012, 01:54 AM
  5. Replies: 0
    Last Post: 25-01-2012, 09:29 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •