G02 Circles

Discussion about the arduino based g-code interpreter, grbl
Post Reply
Posts: 5
Joined: Mon May 02, 2016 3:38 pm

G02 Circles

Post by rfresh737 » Fri Jul 22, 2016 1:22 am

Awhile back somewhere I read that we should not try to make a circle with one G02 command, that is was better to do a circle in 4 parts.

I have a small laser machine running Grbl 0.9i and I see at each arc point there is a small surface burn where each arc starts/stops.

I can't find that reference now that I read months ago, advising making circles in 4 parts, but is this still recommended? And if it is, is there anything I can do to reduce that laser head hesitation that makes those small surface burn marks?

And lastly, I'm running 0.9i should I upgrade to 0.9j?

Laser Job Test.jpg
Laser Job Test.jpg (40.64 KiB) Viewed 1757 times

Posts: 8596
Joined: Mon Apr 09, 2012 6:11 pm
Location: Pennsylvania --- south of the Turnpike, East of US-15

Re: G02 Circles

Post by WillAdams » Fri Jul 22, 2016 10:46 am

I believe that was the G-code page in the wiki, and the reason for not is the potential ambiguity of the actual path which might vary from one G-code implementation to another. If it works on your machine, just do it. But remember to test if the interpreter is upgraded or changed.
Shapeoko 3XL #0006 w/ Carbide Compact Router w/0.125″ and ¼″ Carbide 3D precision collets
Nomad 883 Pro #596 (bamboo)

Will Winder
Posts: 435
Joined: Fri Apr 20, 2012 2:40 pm
Location: Hudson, MA

Re: G02 Circles

Post by Will Winder » Fri Jul 22, 2016 2:07 pm

There are weird rules and edge cases for arcs and splitting them up into sections avoids having to trust that the controller was implemented correctly.

As for the pause marks, make sure your gcode sender is buffering multiple commands to grbl and you should have no problems. Most senders get that right, but you seem to be using one that doesn't. More specifically it is probably using the "Send-response" protocol instead of "character counting".
ShapeOko #367: Dual-Y drive, Belt on outside, 1000mm Y-Axis, DW660 Spindle, Nema-23 X/Y motors.

Primary developer on Universal Gcode Sender.

Posts: 148
Joined: Fri Jun 05, 2015 4:19 am

Re: G02 Circles

Post by DRobs86 » Tue Aug 02, 2016 6:04 am

The radius method can only arc 180 degrees, but I seem to remember that IJK offsets allow a full circle.

Posts: 89
Joined: Tue Sep 10, 2013 3:13 pm
Location: Germany

Re: G02 Circles

Post by Estlcam » Tue Aug 02, 2016 7:48 am


splitting arcs is not necessary if your CNC controller interprets it correctly.
It is just "good practise" if you don't know how your CNC controller behaves because a full circle command is ambiguous: it may be seen as a full 360° circle or no circle at all (0°).

Estlcam CAM and Arduino UNO CNC controller: www.estlcam.com

Posts: 376
Joined: Tue Aug 12, 2014 2:16 pm
Location: Albuquerque NM, USA

Re: G02 Circles

Post by chamnit » Tue Aug 02, 2016 2:30 pm

For reference, Grbl does support full circles in IJK mode. You need to specify at least one axis target and one IJK term. So for a full circle of radius 5mm from the origin, 'G2 X0 I5 F500' will draw a 5mm radius circle from X0 to X10 and back. It's completely fine to write full circle arcs in this way in IJK mode, but absolutely NOT in the R radius mode. The latter is highly numerically unstable by its formulation/design. It's highly recommended that you just stay away from R radius mode arcs or, if you have to use them, break them up into semi- or quarter- circles at the largest.

As Estlcam mentioned, full circle arcs are not something that is universally supported or consistent. LinuxCNC has a relatively new way of doing this with a P term, which isn't supported by Grbl. Older CNC machines actually enforce semi- or quarter- circle arcs only. If you look at some good CAM programs, they will usually have an option to set this in the post-processor so it'll be output correctly for your machine.

Either way, it's always good practice to keep your arcs broken up into semi-circles. It's almost always supported in this way and will not effect how your program runs if you move it to a different machine. Although, its harder to hand-write g-code like this, most CAM programs will do it for you.

Posts: 5
Joined: Mon May 02, 2016 3:38 pm

Re: G02 Circles

Post by rfresh737 » Tue Aug 02, 2016 2:35 pm

Thanks everyone for the great information...!!!

Post Reply