# What are the Maximum Dimentions that Duet gcode can handle?

• I have a general question. And I have a rather obscure application in mind.

What I'd like to know is what are the maximum numbers that can be used in a gcode command.

The application is laser cutting of a piano roll. At the moment the hardware to do this does not exists. A maximum piano roll is 350ft but you still need to cut individual holes in the paper within 0.1mm or less. If we were working in inches, then 5000 inches should cover it and of course this is easily represented as a floating point number. But there are other issues and registers, so the question is what are the real life limits here and what would be the best way to handle this.

I was very interested to see that the Duet board can handle many different geometries. One easy way to do this (which avoids very large numbers) is to paginate it and cut one page at a time, then roll through the next 10 inches (or whatever) and cut that. But it does introduce the possibilities of discontinuity at the page edges.

Another way to handle this would be to have 2 X axis, one that increases perhaps linearly over time from 0 to 3000 inches and the other which has more limited movement so that when you say move to x=1000.2543 inches and X1 is already at 978 inches the X2 motor would move to an absolute position on the carrriage at 22.2543 inches. In this scenario an existing problem is how to keep the X2 parameter within the limited phisical range of the carriage, perhaps if it got near the edges the X1 feed rate could be sped up or slowed down depending on the average X2 position.

Thoughts anyone?

• On Cartesian and CoreXY printers, the limit is +/-2^31 microsteps. Let's assume x256 microstepping, because a future revision of the firmware may do the calculations at x256 microstepping even though you would normally use less. A typical steps/mm is 80 at x16 microstepping, which becomes 1280 at x256 microstepping. At 1280 steps/mm the maximum amount of movement is about +/- 1.68km.

For delta printers it's different, and AFIR the limit is about 10m of carriage movement. We can increase this if/when someone makes a delta printer needing more than this.

• 1,68km, LOL. So doing it the simple way would work so far as register size is concerned, but I think the main motion of the paper needs to be one directional, hence the idea of using either stepped or a composite motion. Any thoughts on what the best general approach would be?

• You could use a G92 command to reset the origin of that axis after each page.

• [...] Let's assume x256 microstepping, because a future revision of the firmware may do the calculations at x256 microstepping even though you would normally use less. [...]

May I inquire about the reasoning for this? Would this reduce maximum speed of/affect printers using less than x256 microstepping?

• [...] Let's assume x256 microstepping, because a future revision of the firmware may do the calculations at x256 microstepping even though you would normally use less. [...]

May I inquire about the reasoning for this? Would this reduce maximum speed of/affect printers using less than x256 microstepping?

1. To reduce the effect of rounding to the nearest microstep at the junctions between moves;
2. To allow microstepping to be changed without needing to re-home the printer afterwards.

It would not reduce maximum speed when using lower than x256 microstepping.

• @dc42 Sounds fantastic, thank you!

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