. .
Page 1 of 2 12 LastLast

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Quote Originally Posted by Desertboy View Post
    3d printing is mainstream so lots of development has been done for it and a lot of money has been made by people in the process. CNC is still niche for the home user Mach 3 offers excellent value, linuxcnc even better. Open source tools are only just starting their development cycle and not had tme to mature like 3d printing has.

    The big thing is you can't use an arduino with those you need breakout board and suitable steppers a more expensive but more professional setup.

    When I've spent a month with grbl and a month with linuxcnc working I'll be able to make a better conclusion.

    grbl is very powerful there's little reason for many firmware settings as you do everything with gcode, you can't run headless with grbl I remember reading it's just too much for the uno so it won't be coming to the Uno version at least but you can use a PI to control the Uno to create a nice all in one solution.
    From what I've seen the open source CNC stuff has been around a good deal longer but yeah, as a niche area has had much less development by able bodied parties.
    My CNC only exists because I inherited an old RapMan printer (made in like 2008) so it's very outdated and practically useless nowadays, especially compared to my own-design machine. So I took it apart and am reusing a good portion of the parts. Including the NEMA23's.
    Having run some calculations my CNC shield and the drivers I'm using (DRV8825) will be adequate for the power requirements. The spindle I decided first off to modify from an old cordless drill, stripping down to the motor, epicyclic gearbox and added an ER-11 collet. Tests show that's running adequately but I may upgrade to a proper spindle if needs be...
    I'm currently getting started with the higher level control electronics for the spindle, again reusing stuff as much as possible and in theory it'll work without a hitch. Planning to make that "in practice" tomorrow!

    So basically, what are my goals with this thing? To make a cheap and reasonably good CNC out of scraps I have lying around and other cheap materials where needs be. So far so good.


    And yes, I'm aware. Again, in many ways the CNC has been relatively straightforward compared to 3D Printers because they're less demanding on the code and setup front. The mechanics are more demanding because of the forces involved but hey, it balances out. Naturally the Pi would control the Arduino separately (much like the Octoprint setup I use on my printer); it's basically running as a computer to replace your laptop/desktop and receiving files over the web. I wouldn't dream of trying to get the uno running that on its own, it's a microcontroller and not a computer, so not designed for that sort of processing.
    Last edited by AcrimoniousMirth; 27-06-2017 at 04:24 PM.

  2. #2
    m_c's Avatar
    Lives in East Lothian, United Kingdom. Current Activity: Viewing 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,910. Received thanks 360 times, giving thanks to others 8 times.
    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.
    Avoiding the rubbish customer service from AluminiumWarehouse since July '13.

  3. #3
    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 ;)

  4. #4
    m_c's Avatar
    Lives in East Lothian, United Kingdom. Current Activity: Viewing 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,910. 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.

  5. #5
    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. #6
    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 :)

  7. #7
    Quote Originally Posted by AcrimoniousMirth View Post
    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 :)
    I'm going to buy 4 AM882H and a 60v power supply when I finish my build but at moment finishing the Z axis and mounts seem to be more important.

    But now you can buy 5*DRV8825 for £7 from china delivered which is crazy.
    Last edited by Desertboy; 28-06-2017 at 10:54 AM.
    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 ;)

  8. #8
    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 :)

  9. #9
    m_c's Avatar
    Lives in East Lothian, United Kingdom. Current Activity: Viewing 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,910. 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.

  10. #10
    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 :)

Page 1 of 2 12 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
  •