Duet potential?

  • At the risk of this sounding incredibly naive and/or ignorant, I am going to ask this anyway.

    Does this have to be a 3D printer board? Do the "heater" outputs have to be heaters? Does the firmware have to be for 3D printers?

    What I'm asking is, is this board simply just a 32 bit CNC Controller? Does it matter what type of Cnc? With support for so many motors, could I use one of these as a five or six axis Robotic arm? Or a five axis Waterjet cutter mainboard/motherboard?

    Of course the software would have to be tweaked, in all honesty though, I see a CNC controller with a touch screen, a web interface that should support proper remote access, and a lot of stepper driver motors with the expansion board. I do not just see a 3D Printer controller.

    Am I crazy?

  • administrators

    A number of users have used the Duet for laser cutting and other forms of CNC. As you point out they are very similar. There have been a few discussions on here about what additional gcodes are required

  • its a bit of work, but yes, for now I just modify the Gcode to do what i want it to do for CNC.

    you can see some more on my setup here:

    By the way you are correct. It would be great to use this Duet family boards for other uses, but that requires a team or people ( or one really dedicated person ( wink wink)) to make the firmware changes for those other uses.

    as well as the web interface.


  • administrators

    If some CNC experts can put together a list of additional gcode support needed, that would be be helpful.

  • administrators

    Yes, I have a feeling I asked for input on other gcodes a few months ago but cant find the thread. Thats why David implemented arc support in a previous firmware version as that was the most substantive thing that we were told was missing.


  • I'm no expert, I do have some experience.

    It's difficult to make one list because it is tailored to each application. 3 axis cnc mill, cnc lathe, Swiss-type lathes like this: https://youtu.be/HHFi0xDnERg

    They are each tailored, some changing standard g codes and m codes to suit their needs, much like you had to do (or the person before you) to tailor the g/m code to work with the slicer. I am unsure if it will help you, it helps me understand, and some is over my head but I can take a generic or specific file and program the CAM to the machines I use. I can then output the g code and also send you (what I believe to be) the output config file telling Autodesk Inventor HSM what to output.

    If that is what I found, or if it's on my computer somewhere, it may be enough for you (or anyone else up to the task) to reverse engineer it. I only use the software, I do not have the faintest idea how it functions, I only understand what it outputs and not the way it creates the output. I don't have a capture card, I'm unsure how to capture my screen during simulation, if my Titan X graphics card can do that then I'll upload what the CAM simulation looks like.

    Why not evolve LinuxCNC?

    Does this help?





    Oh and I showed an employee from MicroChip (merged with Atmel, I'm sure most of you know that though) the Duet Wifi cuz he had a Prusa i3 knock off.

    He was impressed by the upgrade, he does something with chip programming, I'm not sure. Sounds like he is more of a software guy than a hardware guy because he was very familiar with Arduino, not sure what that means to you guys though. He thought it was awesome though, so yeah…good job already on it all 🙂

    I'm not saying it's not good enough, I'm just saying I want to do anything I can to help make it better, like ai (in general)...it could, is, and will be a huge difference in people's lives. 🙂

  • administrators

    Better CNC support is on our list to implement. What we really need is to know which are the most important gcodes for us to support first.

  • @dc42:

    Better CNC support is on our list to implement. What we really need is to know which are the most important gcodes for us to support first.

    Maybe taking a look at the WinCNC post processor in Fusion365… i read that this particular post processor has good cross support for a number of platforms... the gcode it generates is compatible with both Mach3 and UCCNC so why not compatible with Duet as well?

  • administrators

    I think there are two things here:

    1. CNC commands that have no equivalent in Duet (arc support used to be once of these until it was added), or a subset of a command functionality that is not yet supported.

    2. CNC commands which have an equivalent, but are a different G/M code or have different switches on th codes

    for 1) we should be seeing which of these are actually used and then prioritising them for implementation in the future. For 2) the answer is some form of pre processor. I am not very familiar with CNC gcodes but from this forum post alone we have GRBL, Mach3, UCCNC, LinuxCNC.

    For the preprocessor we would need to decide if a stand alone program that takes GRBL, Mach3… etc and an input and provides compatible gcode as an output is preferable to writing an addon for Fusion360 et all. A separate program is more of a pain for the user but easier to update and implement than a whole bunch of plugins. Plugins would potentially get more traction from the users of this software, some of whom could keep them up to date.

  • The reason I would go the way of a plugin is because if Autodesk chose to contribute to the development because the open-source version became good enough, development could skyrocket.

    I will have a better answer for you David once I catch up with school a bit more. We have 3 weeks left and I've been swamped studying for the final exams and catching up on work (since I spent so much time fiddling with my printer attempting to overcome my own incompetence haha).

    All I can say now is that the Cam software I use which is Autodesk Inventor HSM. It appears that Autodesk is pretty heavily invested into AI, they have a new 3d printing software: https://www.autodesk.com/products/within-medical/overview and a generative design software: https://www.autodesk.com/solutions/generative-design which suggest a big change compared to other software companies. The medical application I actually had an engineer contact me about that I haven't had time to respond to, any questions you'd like to know the answer to? How does it work? Haha I'm curious.

    Anyway, HSM adapts a tool path around a 3D model with Artificial Intelligence based on a few parameters like the tool geometry, hardness of material, number of stepovers desired, angle of toolpath (such a ramp, or spiral, milling for hollowing out pockets), etc. If I were to hand program the same thing, there are G-Codes specifically designed to shorten the length of code, such as arcs and chamfers, and radial or spiral milling….The machine doesn't care how much code there is, nor does the Cam software, or post processor...so a relatively simple part could end up being 20,000+ lines of code REAL quick. The cam software converts everything to long-hand doing all the trigonometry in the software/on the hardware.

    Doesn't the duet have to convert this to polar coordinates on the fly, hence the jump to 32 bit? It would be beneficial to have a system to convert this to polar coordinates if a plugin were to be the route, and if this is true. Take advantage of available hardware, or cloud rendering (which is the best part of Fusion 360). Cloud rendering is what the 3d printer should rely on, because it would lessen the cost of the hardware overall and allow you to have just a faster network standards rather than higher performance onboard hardware.

    I have a Titan Xp workstation with an OC 4.2 GHz 6900k, if the slicer or gcode interpreter could take full advantage of my available cores (Cuda or Intel) or use cloud rendering, with the fast internet standards on the horizon...it would be relatively quick to do that...depending on a lot.

    I digress, my point is that the Cam software does everything the long way so I would focus on some of the basic g codes first, for 3 axis milling first. I'll try to write up a list of essentials and the priority of implementation. It may not be until closer to the end of the month though because I do have a lot to do. I'll look at the registry or whatever files installed on my computer that have to do with post processing and see if I can give you an example to work with.

    Hopefully it will speed up the development.

  • I put this on here hopefully to lessen the burden on the software programmers. I have little to no experience programming, so AI to me at the age of 24 is an extremely appealing approach. My mom hates that I say this, "Progress isn't made by early risers, it's made by lazy people trying to figure out easier ways to do stuff." Car, boat, plane, train, tv remote, calculator…need I go on? Haha

    It is with this mindset that I tend to view work, trying to think harder to avoid working haha.

    I came across this article: http://www.primaryobjects.com/2013/01/27/using-artificial-intelligence-to-write-self-modifying-improving-programs/

    And my approach towards software development will without a doubt be with this approach. With some of the Open-Source AI projects, I think this is realistic, if not now, then in the near future. So I will be working toward this over the summer and see where I get with it.

    As an ambitious student, the software developers that do this for a living, will most likely guide me in the right direction to do it safely and professionally, because they'll remember how difficult it was for them to get to where they are now. This may seem like a naive approach, but just look at what AlphaGo accomplished, AI experts imagined that was more than 5 years off and now Deepmind is (sort of) Open-Source, and TensorFlow has evolved quite quickly. I'm going to see where I get with it though.

    It might speed things up which (if done correctly or done well) is never a bad thing…right?

    Just my late night curiosity.

  • Would this aid in any advancement of the capabilities of the hardware and firmware?


    This DLP projector uses the "PRO4500 Wintech Production Ready Optical Engine"

    Found here: https://www.wintechdigital.com/index.php?route=product/product&product_id=53

    Or here: http://www.ti.com/devnet/docs/catalog/endequipmentproductfolder.tsp?actionPerformed=productFolder&productId=20400&DCMP=DesignHouse&HQS=dlp-embed-cat-14q4-bwintech-lp-en

    Which is based on the Texas Instruments' DLP4500 chipset.

    The Hardware, Firmware, and the Electronics are all Open-Source. The main board is essentially a clone of the BeagleBone Black and an AVR-based motor controller. (It says it on the Electronics page).

    I'm thinking this should be a serious consideration. I want to build one, I need a DLP printer for my prototyping.

    This sounds like it is just another application that could be added with (hopefully) relatively minimal effort. Thoughts?

  • Here is a controller that works great but I think the Duet Wifi/Ethernet would be even better. G codes and description of what they do.


Log in to reply