@dc42 Thank-you for the warning and insight! Perfectly valid for long processes such as 3D printing or CNC machining. Fortunately, in my application, power loss shouldn't be a problem as it is simply for statically positioning objects - so the G-code is only a couple of lines and the process is only a few seconds. If power is lost, I'll just start the process over.
Best posts made by loddie
-
RE: Is streaming G-code (real-time) possible?
Latest posts made by loddie
-
RE: Duet 3 real-time Gcode
@jay_s_uk This is great news. You clued me in to what to search for. From this post, it seems no checksum is needed. So it seems it is as simple as connecting Duet board via USB, opening the serial port with corresponding baudrate on computer, and sending Gcode command such as: "G1 X100 Y100\r\n".
As for closed loop, your explanation makes sense and was how I thought it worked. However, I now realize my #2 question was written incorrectly. If I use the integrated stepper drivers on a 6HC or 3HC directly with an encoded stepper motors (no external driver), there is no closed loop error correction option; but if I use a 1HCL directly with an encoded stepper, there can be error correction (performed on the 1HCL). However, I would need one 1HCL per axis. In other words, to have closed loop function in a Duet board (rather than an independent external stepper driver), the only option is the 1HCL (one per axis). Is this correct?
Thank-you for you insights!
-
Duet 3 real-time Gcode
I'm planning on building a multiple axis CNC machine for positioning objects (rather than machining). The control software will be Grasshopper, a parametric plugin for Rhino. There are many example projects online and Grasshopper can even be configured to directly control many axis by sending step and direction signals to a driver. However, as Grasshopper runs on a PC, it is not very good at providing synchronous control. I need motion paths that are accurate, which sychronize motion between several axes so the desired paths are followed.
The other requirement I need is real-time control. That is, a user presses a button or keyboard/mouse command and the corresponding G-code for the desired motion path is sent to a CNC controller which immediately executes the commands. In other words, the user does not save a file with G-codes, then load it into the CNC controller - instead the operation is in real-time. Grasshopper can send immediate G-Code commands via many means such as serial port, OSC commands, etc.
-
Can Duet 3 accept real-time G-Code commands and immediately execute them or are they only executed from a saved file?
-
Also, I'm interested in using closed loop steppers or servos. Is the closed loop function correction performed in the amplifier drive? I'm confused if I need one 1HCL per closed loop axis to take advantage of closed loop or if I can use the 6HC and 3HC and still benefit from closed loop control. The confusion stems from the descriptions of the latter two not mentioning closed loop capability, whereas the 1HCL specifically mentions it.
Thank-you!
-
-
RE: Is streaming G-code (real-time) possible?
@dc42 Thank-you for the warning and insight! Perfectly valid for long processes such as 3D printing or CNC machining. Fortunately, in my application, power loss shouldn't be a problem as it is simply for statically positioning objects - so the G-code is only a couple of lines and the process is only a few seconds. If power is lost, I'll just start the process over.
-
RE: Is streaming G-code (real-time) possible?
@EasyTarget Thank-you! I'll have to dig deeper into the documentation as I somehow missed it. Anyway, it is great to know the capability exists.
-
Is streaming G-code (real-time) possible?
After much searching here and online, I can't find the answer I'm looking for. I'd like to use Duet3D hardware to control a custom CNC positioning device and stream instructions from software on a local host Windows PC.
Is it possible to stream G-code data into Duet3D controller boards instead of loading from a file? From this thread, it seems that Pronterface and Slicer3D can stream files directly to a 3Dprinter, so I am optimistic.
If so, is there any feedback mechanism such as checksum or "OK" to notify the sender that the data was received?
If not, can other firmware (besides RepRap) with streaming capability be used with the Duet3D controller boards?
-
RE: Multiple Motion System
@o_lampe I had not thought of that. Thank-you for pointing it out.
This application would be TPU, which I have yet to print with (mainly ABS/PLA). Does TPU require a perimeter for an object the size on an infill? If so, seems the G-Code would need to be edited. Or, perhaps the perimeter could be designed into the CAD file so that it exists for adhesion, but eliminate the perimeter from the slicer settings.
-
RE: Multiple Motion System
@o_lampe Good idea! Some have mentioned that different speeds results in difference in print quality if not appearance. Perhaps this could be addressed by having the outer wall speeds, the same, but have differing infill speeds.
-
RE: Multiple Motion System
@o_lampe said in Multiple Motion System:
openScad
Thanks! I'm not familiar with openScad but am quite proficient with Fusion360. It seems slicing the model is the easy part. As you mention, it the synchronization that I am not sure about.