G-code commands to rotate the A-axis by 90 degree?

Hey Tom, hey Andy @AndyP, hey all,

While the BB Controller has 4 axes, it only has limited support for rotary motion. The ability to turn a specific number of degrees is not implemented. For rotary motion, you would have to configure it to think the angle traveled is actually a linear distance. For instance, for a metric program, you would configure the axis to move 360 degrees in one revolution. That way, when you tell it to move by 45 mm, it would turn by 45 degrees.

This would work until you tried to run a program that runs with imperial units. Then you would have to reconfigure the axis for 360 inches per revolution.

This can work pretty well if you just use your rotary axis to do rapid turns to a new position.

Another thing that is missing is the ability to maintain a constant feed rate as the distance from the center of rotation changes. In other words, the rotational speed needs to be slower as the distance from the center of rotation increases, otherwise the feed rate will increase and possibly mess up your cut.

We do plan to implement full support for rotary motion, but do not have it scheduled. You can track the status of this request on github at https://github.com/buildbotics/bbctrl-f … /issues/95 .

– Source: Re: 4-axis Upgrade – Buildbotics Forum by Doug

I got it to work today. I just had to adjust those values in the motor settings and used a modified post processor to wrap the Y axis to the A axis. Glad to see it working great.

– Source: Re: Rotary axis – Buildbotics Forum by rblur01

You could also ask Roger Treadway (@rblur01) directly, in his setup in Worth the Price? / Rotary Axis Setup he says that he sets ‘travel-per-rev’ to 360. He says there:

Change the axis from Y to A. Change your “travel-per-rev” to 360. This will have to be the case for all rotaries for our controller as it is. Change the “step-angle” to whatever is mentioned for your rotary, mine was stated to be 0.3 degrees.

– Source: Rotary Setup for Onefinity

See one of his results here

In this case a command like G0 A90 (after setting one of the axes to “A”) rotates it by 90 degrees.

If you want to use three linear XYZ axes and and an A rotary axis additionally, you might be interested in this: