B-Axis Rollover

380 views
Skip to first unread message

Alex Richard

unread,
Jan 22, 2016, 8:28:03 PM1/22/16
to Pocket NC
Hey everyone, I just received a PocketNC today and so far everything is going well for the most part as I learn how the thing works.

I am wondering if there is any parameters in the control than can be changed to adjust how the machine handles B-Axis roll over.

I programmed a simple 5x milling toolpath and I was able to get the code to run well using B axis values between -9999 and +9999, however this posses some issues:

1) When the program is done and I command G53 A0 B0 to send the rotary axes home, the B axis unwinds all the way from its current position back to 0 which takes a lot of time.

2) Having to keep the B between -9999 and +9999 inherently has limitations in how you can program.  This is only 27 times around the part which is not much even for small parts if you are doing a 5x finishing with a ball mill and small step over.  With this limitation, the program would have to retract the tool, unwind, and then come back and start cutting again if long finishing operations must be performed.

Is it possible to change the control to read B values between 0 and 360 and to always find the shortest path to get to the next specified position?

I seems like LinuxCNC's Wrapped Rotary parameter might be needed for this, but I don't know if that can be changed for the Pocket NC.


Any input is appreciated.

Thanks,

Alex

Pocket NC

unread,
Jan 25, 2016, 12:38:54 PM1/25/16
to Pocket NC
Hi Alex,

We will look into getting this function going,  I cannot tell you how long it will take at this point but we will keep you posted!

Thanks,
Matt
Message has been deleted

Pocket NC

unread,
Jan 25, 2016, 12:51:52 PM1/25/16
to Pocket NC
A quick way to get the B axis back to zero without having to "unwind" is to use the "Home B Axis" button.  This will use the homing switch rather than using the step count to back up to zero.

To use this button select,
Machine,
Homing,
B axis.


Thanks,
Matt

Alex Richard

unread,
Jan 25, 2016, 12:54:00 PM1/25/16
to Pocket NC
Matt, thanks for the reply.

When the Home B Axis (or any axis, or Home All) is clicked, what code is executed exactly?  Is it possible to replicate this functionality from the NC Code instead of having to click a button in the Axis interface?  I would like my post to be able to automatically output nc code that prevents unwinding of B during and at the end of programs.

On some machines a G91 G28 B0 would accomplish this, but the Pocket NC doesn't support G28.

Thanks,

Alex

Alex Richard

unread,
Feb 14, 2016, 7:40:05 PM2/14/16
to Pocket NC
Hey Matt, any updates on this?

Alex Richard

unread,
Feb 15, 2016, 7:05:47 PM2/15/16
to Pocket NC
Matt, how do you change the Min and Max settings for the B Axis??

Also, is there no way to call in the NC code the same function that is called when the "B-Axis Home" button on Axis interface is pressed?

Thanks,

Alex


On Mon, Feb 15, 2016 at 12:56 PM, Matthew Hertel wrote:
Hi Alex,

No word on this just yet.  You can change the Min and Max settings to increase the total number of rotations possible but we don't have a safe way to make the B axis loop.      

Thanks,
Matt  

Alex Richard

unread,
Feb 16, 2016, 1:34:08 PM2/16/16
to Pocket NC
For anyone interested, here is Matt's reply:

On Feb 16, 2016, at 11:22 AM, Matthew Hertel wrote:

HI Alex,

You can edit that file by typing in scite instead of linuxcnc.  The file path is as follows 
>pocket nc
>>Linuxcnc 
>>>configs
>>>>ARM.Beaglebone
At this point you will need to select all files down at the bottom
>>>>>pocketnc.ini

Next, edit the Min_Limit and Max_Limit  under axis_4 as needed

You will need to restart linuxcnc before the settings take effect.

As far as having a way to home the B using Gcode, we do not have a solution and I am sorry for this!  WE WILL KEEP LOOKING!

Thanks,
Matt

Hamid Arionfard

unread,
Sep 23, 2020, 11:43:34 AM9/23/20
to Pocket NC
Is it possible to change the setting to -99999 to + 99999?1 what is the safety concern?!

qrot...@pocketnc.com

unread,
Sep 23, 2020, 1:17:02 PM9/23/20
to Pocket NC
It is alright to change the axis limits to higher than 9999 but we do not recommend it because that is the point where our calibration is stops. Any position after that one will be less accurate and will likely not fall within the specifications we declare. 

Thanks,
Q Rothing, Pocket NC

gre...@gmail.com

unread,
Sep 24, 2020, 2:49:10 AM9/24/20
to Pocket NC
What calibration would be effected by the axis limits? Surely one rotation is the same as the next. The stepper motor won't act any differently beyond the range you test over surely?

Graham

hart...@hotmail.com

unread,
Sep 24, 2020, 3:13:28 AM9/24/20
to Pocket NC
Hi Graham
It's not quite that simple, I think the team at PNC wished it was that simple.
Here is a good start to understanding the stepper motion and the latency etc. typical challenges with servos and drives in a cnc loop.
also you can reserch things like IPO-Takt to get a more detailed understanding of the issues.
I also added an image I use with some of my customers so they understand how the digital twin environment should match reality with our software.

motion_planning.jpg
Regards
Paul

gre...@gmail.com

unread,
Sep 24, 2020, 4:05:31 AM9/24/20
to Pocket NC
The stepper tweaking link is not relevant to the issue of maximum travel, there is no difference travelling back and forth between +/-9999 a load and going beyond it as long as you can store the position variable. What specifically do you think is going to happen? Your end points will be an integer number of steps/microsteps, there is no loop for stepper motors.

Graham

hart...@hotmail.com

unread,
Sep 24, 2020, 6:41:43 AM9/24/20
to Pocket NC
oh, I thought there was feedback. I've never checked that. Probably worth a shot to increase, maybe go to 20,000 or 40,000 first for a check. I think the system allows unlimited calibration points(i could be wrong) so you could graph the error, if any, then plot the function and predict the compensation for larger numbers as a good start. Worth a try for sure, if you can wait for the wind up and wind down on the large numbers.
cheers
TP

John Allwine

unread,
Sep 24, 2020, 12:00:50 PM9/24/20
to Pocket NC
The reason we limit the machine to -9999 to 9999 is due to the limitations of how MachineKit can compensate a continuous axis. We really only need to compensate from 0-360, but MachineKit must look up the absolute position of the B axis in a look up table to find what the compensation value is for that position. The max size of the table is 255 elements. So, with a range of ~20,000 degrees, that is 55 rotations. 255/55 = 4 points to compensate the 0-360 range (which isn't many) which is then repeated out to the -9999 to 9999. This is a known limitation, and we plan to improve this eventually. That said, we have improved our processes and machines that go out the door today generally need less compensation to bring the machine into spec. You'll need to look at your own compensation values to know how far off the machine could be off when outside the -9999 to 9999 range.

You can find your compensation values through the UI, by going to Conf > Server > Launch in new tab. Then go to the Compensation tab:
Screen Shot 2020-09-24 at 9.38.15 AM.png
In this example, the max compensation is .089191 degrees. Running uncompensated is likely acceptable for most people in this case, but you'll need to check your specific compensation table to know how much the compensation is adjusting your machine.

gre...@gmail.com

unread,
Sep 24, 2020, 3:19:21 PM9/24/20
to Pocket NC
Thanks for the explanation John! It does seem like it should have a rotary compensation mode to make better use of the 255 points.

Cheers,

Graham
Reply all
Reply to author
Forward
0 new messages