Milling CNC with DuetWifi ?



  • I guess we'll figure this out in a few weeks when I receive my board 😉 (and every other things)

    Cheers
    Robin



  • @Tony

    It seems like the firmware can be configured to run in CNC mode, is there any guides or write ups on this.

    I ask as my next project will be a MPCNC machine that will work fine with the steppers we normally use in 3d printing and the DuetWiFi will actually allow me to use some nice Nema23's for this project as speed is not of the essence accept on positional moves



  • I have to make the usual point here about cheap CNC machines… "just running it slow" to make up for weak mechanics isn't actually a very good solution. When you take extremely shallow cuts, your cutters wear out quickly and you will heat up the workpiece considerably. For example, wood can scorch, plastic will definitely melt, and metals may work-harden and get rougher. You'll usually end up with poor finish and short tool life. On the other end of the spectrum, running the cutters "fast enough" will flex the machine to the point you lose accuracy.

    This is a big issue with weak CNC designs like the MPCNC... they're super marginal performers. Don't get me wrong, you can get some work done with them, but for the assembly and config effort you're much better off building something like a Shapeoko.


  • administrators

    @Phil There is no specific "CNC" mode for the firmware, its just a case of setting appropriate max speed, acceleration and jerk values for the mechanics you are using. External drivers require the config to be set correctly to remap X/Y to the external drivers using M569.



  • A last dark spot for me is the way my 3d file will be converted to driver instructions.
    Do you have a dedicated software or compatibility with one already existing ?
    I 'm already used to 3d softs and c++ as a hobby ( mainly 3dsMax, UE4 and related ) I guess this can't be harder than those
    Could you point me to something to look at ?



  • Fusion 360 would be great at generating g code for CNC milling (etc) operations.



  • Autodesk stuff ! I couldn't dream better 😉 thx !



  • @Tony, thanks. I really should pull apart a simple gcode file generated for milling.

    @Whag, Fusion 360 is great, haven't yet played with the milling bits, been having to much fun learning the design side and printing things designed in it…. and it's free for personal use, incredible!



  • @Aussiephil, did you ever get around to finding a set of options in config.g that allow the Duet to just process a regular "Mach3" gcode file without complaining that the hotend and heatbed thermistors are not wired up? I'm just testing this scenario now with my DIY 3in1 (route/laser/3d print). I managed to disable the heatbed but not the extruder.


  • administrators

    Can't you just define all your tools to have no heaters in the M563 commands?



  • Hi dc42, worked that out last night and managed to get a regular mach3 gcode file working on the axis. I'll probably create a generic config.g and run a macro to add in all the odds and sods required for each specific setup, i.e. CNC_Route.g/Laser.g/3DPrint.g before running a job (assuming the g code in config.g can be run after the fact as a macro?).



  • @dc42, is there something specific in the ending gcode you look for to know when the job is finished? I was comparing a regular Simplify3D gcode file with the one I have from Vetric Cut2D and apart from the ";" comments I cannot see anything different that you could be looking for? With the Cut2D job, even though the job is finished and the last move has been completed, the web interface does not refresh to show that the job is finished. If I manually refresh the page it shows that there are no jobs printing. Is there a gcode I can throw in at the end to refresh the web page status? Is it the lack of E axis movements?



  • I have a mill/3d printer and after trying several 3d printer based controllers my thoughts are that if you are going to use this as a CNC router in it's primary function then there are many things you will need that printer controllers do not do.

    Offsets G54(25-100), plane rotation, digitizing with a probe, good spindle control, the list is long. I wired all my motors and home/limit switches with plugs, I setup the machine using two control cards so I change 10 plugs when I switch between systems. I leave the spindle and hotend/extruder wired to the separate systems. I find myself switching less and less because wood chips and dust do not play well with 3d printing. Having a hand-wheel to move the bigger machine is a must.

    Here is a machine I might be working on that will print and mill with a Siemens control so we will see how that goes. Even then this machine will only mill the part after it is printed, not other materials. I worked at Ingersoll Milling for many years and after I found out they are building this I started the phone calls to get back there.

    https://3dprint.com/149303/ornl-ingersoll-wham/



  • @jmjcoke:

    I have a mill/3d printer and after trying several 3d printer based controllers my thoughts are that if you are going to use this as a CNC router in it's primary function then there are many things you will need that printer controllers do not do.

    Offsets G54(25-100), plane rotation, digitizing with a probe, good spindle control, the list is long. I wired all my motors and home/limit switches with plugs, I setup the machine using two control cards so I change 10 plugs when I switch between systems. I leave the spindle and hotend/extruder wired to the separate systems. I find myself switching less and less because wood chips and dust do not play well with 3d printing. Having a hand-wheel to move the bigger machine is a must.

    Here is a machine I might be working on that will print and mill with a Siemens control so we will see how that goes. Even then this machine will only mill the part after it is printed, not other materials. I worked at Ingersoll Milling for many years and after I found out they are building this I started the phone calls to get back there.

    https://3dprint.com/149303/ornl-ingersoll-wham/

    OMG, that is a very large 3D printer!

    Just in the process of designing the enclosure for my new machine with extreme dust collection in mind. The detachable spindle/z axis head will have a vacuum tube taking all dust from the source and it will be sitting on a vacuum table. The middle of the vacuum table will have a removable square in the middle that when removed exposes the 400x400 3d printer heat bed that lowers down into a cavity under the vacuum table. When the block is in place no dust can get down there. When it comes time to do 3D printing I just detach the spindle head and put the 3D printer head on (once all residual dust is vacuumed up). Also the entire top plate of the vacuum table will be easy to remove to allow build up in the cavity to be cleaned up (the entire XY frame attaches to this plate). The laser unit just drops into the spindle clamp on the Z axis head and maintains the same cut origin as the spindle.

    There will also be a switch to throw the two Z outputs from the Duet between one stepper on the spindle/laser head and two steppers driving the heat bed table. Still looking for a 2 position 8 pole switch though.

    So far the Duet Wifi has worked just fine with the XYZ frame I have already made, apart from this annoying inability for the web page to update at the end of the job. Actually looks like the web interface locks up as I cannot do any thing with it till I refresh the page.

    As for probing, this is and has been part of the code for bed levelling for quite a while and I cannot foresee any other use for probing for what I will be doing. I also believe there is a gcode call to probe any point you want, although a serial interface may be in order to issue the probe and record the point to file.

    As for spindle control, the PWM based spindle controller and 48V DC spindle I have work really well with the Fan0 PWM output (set to 5V jumper). I just defined a new postprocessor file in Cut2D to use the M106 S0-255 call rather than M03. Ditto for the 7W diode laser work and the PWM controller for that.

    I still have my 6040 CNC being driven by a Gekko G540 and USB Smoothstepper from Mach3 for the more complex work and tougher materials. This new machine really is just for routing ply/mdf from 3mm up to 12mm and laser cutting up to 3mm ply. The ability to 3D print is just a secondary thought to deal with bigger print sizes. Also think the way the axis are being driven is going to be more accurate than the Duplicator i3 knockoff I have. GT2 belt teeth are pressed into a matching track in the 4040 T Slot profile so all stretching and bounce associated with using long belts is negated. Have had the y axis shoot along at 44000 mm/min without missing any steps and comes to a stop with zero bounce. And the new stepper drivers are configured to 160 steps / mm rather than the usual 80 for GT2/pully setups. Plenty of resolution for a nice clean 3d printed part.

    Just wish dc42 could add arc support with the G2 G3 calls when I'm doing router jobs for more fluid moves on all arcs? All the other 8 bit printer firmware supports this so it really should be supported on this high end board. Fairly sure Simplify3D only uses short lines to make up rounded edges as this is how the STL/OBJ models are constructed. Perhaps down the track 3D slicers will support poly models as well as mesh objects and then 3D printers will be able to do smooth arcs. As it is even high vector mesh objects seem to print curves with visible flat areas.


  • administrators

    Regarding arcs, I think all the slicers still output arcs as segments. It's a bit chicken and egg regarding firmware support for arcs and slicer support. Support for CNC milling gcode generation that already generates arc commands is a good reason to add G2/G3 to RepRapFirmware.

    @Jgrouse Can you add a firmware wishlist request for this support, and other CNC specific functionality that is currently not implemented.

    Once we have firmware that properly supports arcs we are one step closer to 3d printing with arcs rather than lots of straight lines. That said there is a lot more that would need to be done as far as a model file that represents arcs properly and slicers that support them


  • administrators

    @jgrouse:

    @dc42, is there something specific in the ending gcode you look for to know when the job is finished? I was comparing a regular Simplify3D gcode file with the one I have from Vetric Cut2D and apart from the ";" comments I cannot see anything different that you could be looking for? With the Cut2D job, even though the job is finished and the last move has been completed, the web interface does not refresh to show that the job is finished. If I manually refresh the page it shows that there are no jobs printing. Is there a gcode I can throw in at the end to refresh the web page status? Is it the lack of E axis movements?

    M0 or M1 says the job is finished. Reaching the end of the SD card file should have the same effect.


  • administrators

    I'll add CNC support to the firmware work list. Is it just G2 G3 and M3 that you need?



  • @dc42:

    M0 or M1 says the job is finished. Reaching the end of the SD card file should have the same effect.

    Gave that a shot as well without success. It just seems as though the web interface locks up after I start the print even though the axis are all doing their thing. Forcing a web page refresh then shows that the status is back to idle rather than just staying on a status of printing.

    Must be something else in the gcode it is expecting? I even slapped on a copy of all the preamble comments from a Simplify3D gcode file to see if that made any difference. Might need to pm the test file I have and the config.g I currently use to see what you make of it?


  • administrators

    Can you make the gcode file available?



  • @dc42:

    I'll add CNC support to the firmware work list. Is it just G2 G3 and M3 that you need?

    G2/G3 would be great for routing work. As I mentioned in my post it really was just for the sake of routing work as all the slicers still do not output arcs due to regular mesh objects for input.

    No real need in my case for the M3/M5 to drive a VFD as the spindle controller I have takes 5V PWM from one of the fan outputs anyhow. Others might want it though if they want to run with conventional spindle stop/start gcode? Guess you would also have to add a means of specifying which outputs drive the CW/CCW start/stop and speed control (usually analogue 0-10V into the VFD)? Personally I would leave it up to the user to find a way to map PWM out to an analogue voltage.

    Greatly appreciate the work you've already put into this fantastic firmware!


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.