• Tags
  • Documentation
  • Order
  • Register
  • Login
Duet3D Logo Duet3D
  • Tags
  • Documentation
  • Order
  • Register
  • Login

Duet3d CNC gcode

Scheduled Pinned Locked Moved
CNC
6
14
1.1k
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • undefined
    chernogorsky
    last edited by 25 Jun 2022, 16:13

    Hi,
    Im start using d3 as cnc controller
    Works just great
    Im using some post-processor for fusion360 + some modification in it, but I think its no a road should be followed:

    1. d3 has not enough cnc folowers (and would not have enough in a few years) compare to march3 or linuxcnc
    2. as a result of p1 - it would be quite a limited support for post processors - probably only the very basic features for major cam only
    3. if I try moving/port something from lcnc/m3 eviroment it would be quite hard, since I would be needed to emulate the difference in first place

    That said, I think it worths considuring moving cnc gcode style toward lcnc / m3 or any other standard (tormach ?)

    P.S. Im not even close to be named as a cnc newbe, im just walking around cnc ). I do IT system design for a living, and that exact part I force my teams to avoid in my projects )

    undefined 1 Reply Last reply 25 Jun 2022, 22:12 Reply Quote 0
    • undefined
      chimaeragh @chernogorsky
      last edited by 25 Jun 2022, 22:12

      @chernogorsky Have you seen this post? Ultimate Reprap Fusion Post Processor

      Duet 2 Wifi, Ooznest Workbee CNC 1510

      undefined 1 Reply Last reply 26 Jun 2022, 01:17 Reply Quote 0
      • undefined
        chernogorsky @chimaeragh
        last edited by 26 Jun 2022, 01:17

        @chimaeragh Yes,
        Im using it, with few modification (have probably made merger request if it'll be interested)
        that's where I find that we are probably heading the wrong way

        examples:

        1. I want using the probe (fusion360), ok - let say, that I'll be able to write/debug code for it myown (support - probably no)
        2. I want using linuxcnc addon for probes (they have like 50 scripts (tested/and updated) for probing,
          but different gcode flavor, so in order to make it work I need to translate it line by line
        3. I wanna try other CAM,

        What Im saying is - duet3d cnc community is not that huge (at least now and in a few years) to create/support all that may be required and avaiable on a open-source-like enviroments

        If (IHMO) d3 uses some of the more spreaded gcode flavor that can help spread the board itself

        P.S. I myself probably be able to code it myself
        P.P.S. or I'd realize that I spend more time coding (something needed me only) than cncing

        undefined 1 Reply Last reply 26 Jun 2022, 09:42 Reply Quote 0
        • undefined
          droftarts administrators @chernogorsky
          last edited by 26 Jun 2022, 09:42

          @chernogorsky is there anything specific that RRF doesn’t support for you?

          Most CNC commands are supported in RRF, and we try to keep to the NIST standard. There is a list of Gcodes not implemented here, and the reasons/workarounds: https://docs.duet3d.com/User_manual/Reference/Gcodes_not_implemented

          Alternatively, you can write your own gcodes if they are missing; in RepRapFirmware 2.03 and later, if you try to execute a G- or M-command that RRF does not implement, it will execute a system macro of that name if it exists. For example, if you send G40 then it will execute /sys/G40.g if it exists; and if you send M48 then it will execute /sys/M48.g if it exists.

          If a Gcode exists but doesn’t work as you want, you can either recompile RRF without that command, and write your own macro for it, or submit a change request in the ‘firmware wishlist’ section of the forum.

          Ian

          Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

          undefined 1 Reply Last reply 26 Jun 2022, 13:59 Reply Quote 1
          • undefined
            chernogorsky @droftarts
            last edited by 26 Jun 2022, 13:59

            @droftarts Im not talking about clear gcode
            Im talking about gcode flavor

            Example:
            I cant use code post processed / designed for linuxcnc
            I have to use separate post processor (which work quite good for f360 btw)

            so if i want using something but f360, or use existed code for lcnc / mach3 i have to spend tremendos of time each time, so in long term it not worth it (except for me personally)

            undefined undefined 2 Replies Last reply 26 Jun 2022, 14:00 Reply Quote 0
            • undefined
              chernogorsky @chernogorsky
              last edited by 26 Jun 2022, 14:00

              So I'll not be able to reuse code for other env, we have to create and SUPPORT owr own

              undefined 1 Reply Last reply 26 Jun 2022, 14:29 Reply Quote 0
              • undefined
                droftarts administrators @chernogorsky
                last edited by 26 Jun 2022, 14:29

                @chernogorsky It's pretty rare that Gcode is transportable between machines; there's too many differences between them. Number of axes, feed rates, machine size, tools, etc; the list is endless. It's only if you have a homogenous product, like the Prusa machines in 3D printing, that you can get anywhere close to this. That you have to change 'flavour' or post processor for specific machines is not a surprise.

                Like I said, if there's anything specific you feel is missing from RRF, please submit a change request in the 'firmware wishlist' section of the forum.

                Ian

                Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                1 Reply Last reply Reply Quote 2
                • undefined
                  Catalin_RO
                  last edited by 27 Jun 2022, 16:27

                  I was among the first users of Duet on a CNC machine over four years ago. Back than I had a genuine, first version, Workbee, with several years of using GRBL on another low cost CNC. While Duet was lacking features of GRBL that I was already used with, the old Pololu DRV8825 drivers were not up to the task and I decided not to spend to much on proper Leadshine drivers. So Duet looked perfect as a hardware platform.

                  With CamBam for the CAM part, configuring it to generate a GCode that was understood by Duet back then was OK (G2 and G3 were not even planned back then, not to mention the work coordinates!). I wrote on the forum about the issues that I have found, I complained about some of the missing features, and things slowly got better.

                  These days the Duet boards are a good choice, depending on the CNC you want to control.

                  3 years later problems started to creep in. Being an Electronics engineer, I started digging. It all came down to the on-board drivers. Randomly, only at powering on, they reported disconnected and/or shorted steppers. I checked all connections, I replaced connectors, I ended up replacing cables - no luck! And, worse, sometimes I was not able to use the CNC for a whole day. Once started, all went flawlessly! I was not the only one with the symptom, just search the forum for "phase disconnected". There was no clear solution to the problem!

                  My ten cents - even if properly cooled, using the on-board drivers at 2.4A (my steppers are rated for 3A) for hours at a time is affecting them over time. The higher power drivers on the Duet 3 board should be better. But there is another problem - the supply voltage! You can't get proper performance from the steppers on a larger CNC without using at least 36V as supply. Even the new Duet 3 boards are limited to 32V.

                  So I decided to put the Duet board to storage and moved to PlanetCNC MK3 with Leadshine drivers. The bill was slightly higher, but not hugely higher (less than double!). And it comes with a lot of CNC specific bells and whistles.

                  undefined 1 Reply Last reply 27 Jun 2022, 21:46 Reply Quote 1
                  • undefined
                    chernogorsky @Catalin_RO
                    last edited by 27 Jun 2022, 21:46

                    @catalin_ro Im using 6xd, so no direct drivers
                    direct one - I had many issues with d2, with d3 not so much, but I rarely push the limits

                    overheating - not sure its an issue - used to run d3 in 45-50 outside

                    rest - donno,
                    I just foresee that due to limited numbers of users that env would not be able to grow naturally (not only create something required, but also support it for prolonging period of time)

                    example: I can create (and I did) cnc pendant, will probably code it till some finished module
                    but in case I switch to another project it most likely would be abandoned

                    same for all "not critical / not mainstream" parts

                    With 3d its easier (its more general in terms), but still linear adv, ....

                    at the moment it not limit me a lot, but will see how its go

                    undefined 1 Reply Last reply 28 Jun 2022, 05:04 Reply Quote 0
                    • undefined
                      3DPMicro @chernogorsky
                      last edited by 3DPMicro 28 Jun 2022, 05:04

                      @chernogorsky I dont think the amount of followers on the cnc side is an issue. It's really not that complicated if you take the time to understand gcode. What I mean is anyone that has a cnc mill should be capable of looking at the program and understanding what the machine's about to do and be able to adjust as needed. Its intimidating at first but g code is quite simple. Most non industrial, single tool CNC's need very little in addition to the actual movement commands.

                      I use the Duet on 2 printers, a test rig, a (very) small cnc mill, my friends cnc mill and am in the process of using it on a lathe that's being retrofitted to cnc with clearpath servos. My motivation for using it on machines other than a 3d printer is familiarity and flexibility. I have basically the same system and support on everything. With the ability to use external drivers there are few limitations. I'm currently testing brushed dc servos with Gecko drives and it looks promising. Very smooth, high rpm and cheap if you find the right deals

                      Duet controlled Lathe, micro mill, 3d printer and 1992 Haas VF2 VMC

                      1 Reply Last reply Reply Quote 0
                      • undefined
                        T3P3Tony administrators @chernogorsky
                        last edited by 28 Jun 2022, 10:04

                        @chernogorsky said in Duet3d CNC gcode:

                        @droftarts Im not talking about clear gcode
                        Im talking about gcode flavor

                        Example:
                        I cant use code post processed / designed for linuxcnc
                        I have to use separate post processor (which work quite good for f360 btw)

                        so if i want using something but f360, or use existed code for lcnc / mach3 i have to spend tremendos of time each time, so in long term it not worth it (except for me personally)

                        What specific elements of the linuxcnc gcode flavor are different for the F360 output etc?

                        Is this about a gcode not being supported, or the syntax being different?

                        www.duet3d.com

                        undefined 1 Reply Last reply 28 Jun 2022, 16:27 Reply Quote 0
                        • undefined
                          chernogorsky @T3P3Tony
                          last edited by 28 Jun 2022, 16:27

                          @t3p3tony syntax, im talking about syntax
                          the idea is (same as it in programming)
                          you creating your own template system, you are using standard
                          you creating your own variant of the language, you are using same as a bigger project (so you can grab parts from there without modification)

                          undefined undefined 2 Replies Last reply 28 Jun 2022, 16:51 Reply Quote 0
                          • undefined
                            T3P3Tony administrators @chernogorsky
                            last edited by 28 Jun 2022, 16:51

                            @chernogorsky ok, i understand what that is, but I don't understand the differences between (say) Linux CNC and F360 output that you mentioned.

                            Some examples would be helpful.

                            www.duet3d.com

                            1 Reply Last reply Reply Quote 0
                            • undefined
                              3DPMicro @chernogorsky
                              last edited by 3DPMicro 28 Jun 2022, 22:44

                              @chernogorsky
                              this is the commands to run my micro mill in the simplest form
                              begin-
                              M453 (CNC mode. Can be set from command line then doesnt need to be included it in programs)
                              T0 ; set tool .1mm ENGRAVER
                              G21 ; set units to millimeters
                              G90 ; use absolute coordinates
                              (add spindle on command or whatever else. Or not)

                              some code using I and J-
                              (My PP (post processor) uses a 0 after G or M codes. RRF doesn't seem to mind. G1, G0, M3 is common these days)

                              ;ENGRAVING
                              G00 Z0.5
                              G00 X1.836 Y29.742
                              G01 Z-0.23 F18.
                              G03 X1.804 I-0.034 J-1.019F80.
                              G01 X1.787
                              G01 Y29.896
                              G03 X1.836 Y29.742 I20.298 J6.458
                              G01 X1.884 Y29.757
                              G03 X1.907 Y29.688 I20.2 J6.597
                              G03 X1.884 Y29.689 I-0.078 J-0.967
                              G01 X1.857 Y29.691
                              G03 X1.804 Y29.692 I-0.055 J-0.969
                              G01 X1.777
                              G03 X1.737 Y29.691 I-0.002 J-0.97.........

                              End Code (not required)-
                              G00 Z5.0
                              G28 XY

                              M30 typically ends a cnc program but RRF uses the command to erase a file from the SD card. The program can just end as above. You can add additional commands to turn off spindle or disable motors if you want.
                              If I recall RRF can also use R instead of I,J,K which I assume you mean as "flavor". Most CNC controls need % as first and last character. RRF does not.
                              I think you can roll any begining or end "required" code in to a macro or copy and paste then just use Fusion or whatever for movement commands only. If you want to use cutter comp or offsets add as needed. Most modern PP use "cancel" commands and set WCS at the beginning and end but it can be greatly simplified like above and the machine will work fine. Its only as complicated as you make it

                              Duet controlled Lathe, micro mill, 3d printer and 1992 Haas VF2 VMC

                              1 Reply Last reply Reply Quote 0
                              10 out of 14
                              • First post
                                10/14
                                Last post
                              Unless otherwise noted, all forum content is licensed under CC-BY-SA