Install Advice (HOME_USE_INDEX with stepper using an encoder)

More
10 Apr 2023 17:29 #268762 by jtrantow
Install Advice was created by jtrantow
I have four machines running on identical computers. Two use PP and two use Mesa cards. I use tool length setters and probes. The monitors are 1024x768 touchscreens. Linuxcnc software originated with the Linuxcnc Buster ISO and I have been running 2.8.2 using gmoccapy and probe_screen for quite awhile and have been quite happy. 

One of the glass scales on the mill was damaged and I finally got around to replacing it with a new magnetic scale which has index signals every 50mm.

Q1) It appears that I should update to 2.9 to use the index signal with homing? A/B are already working with 1u magnetic scale and I can see the index signal with halmeter. I want to home to my existing limit switch, then move to zero the scale index. My understanding is this is possible with HOME_USE_INDEX?
In case it's important, I am using closed loop steppers and using scales to close the loop.
net y-pos-fb <= hm2_7i92.0.encoder.01.position => hm2_7i92.0.encoder.01.index-enable

Q2) Assuming I need to update to 2.9 for HOME_USE_INDEX, what's the best way to use a probe? When I update to 2.9, it appears to update to python3 which doesn't work with the probe screen python scripts that are used via gladevcp.

Q3) Does probe_basic still have a 1920x1080 screen requirement? It looks like there is a pretty clear path from Bullseye or Bookwork to Probe basic. I don't think isn't an option for me with the low res touch screens? So I think I'm staying with gmoccapy and some time of probe add on.

Q4) Are there any latency issues updating beyond Buster? (My router and my friend's mill are still using PPs.) 

I only use the linuxcnc computers for machine control. I'm not opposed to update beyond Buster if it makes things easier but I'm not looking for any new linux OS features. 
I'm comfortable changing things around in the .hal configurations or modifying scripts like M6, but I find the prereq and compatibility installs frustrating. To maintain my sanity, I to keep all four computers running the same software. My approach is to get my mill working correctly, then I clone the entire drive to a usb drive and copy it to the other machines.

I'd appreciate any simple install that satisfies:
  • Linuxcnc version that support encoder index HOME_USE_INDEX. (2.9?)
  • GUI support of 1024x768 touch screen including probing. (GMOCCAPY plus ??? for probing)
  • Debian versions with acceptable latency for PP configs.
  • All in a simple installation?

Please Log in or Create an account to join the conversation.

More
10 Apr 2023 20:04 #268782 by JPL
Replied by JPL on topic Install Advice

Q1) It appears that I should update to 2.9 to use the index signal with homing? A/B are already working with 1u magnetic scale and I can see the index signal with halmeter. I want to home to my existing limit switch, then move to zero the scale index. My understanding is this is possible with HOME_USE_INDEX?
In case it's important, I am using closed loop steppers and using scales to close the loop.
net y-pos-fb <= hm2_7i92.0.encoder.01.position => hm2_7i92.0.encoder.01.index-enable


 

No, you do not need v2.9 as 2.8.4 (current stable version) is supporting HOME_USE_INDEX. Have a look here: linuxcnc.org/docs/stable/html/config/ini-homing.html . See the last 2 diagrams of section "5 homing sequence". Those are showing how homing is executed when USE_INDEX= true.


 

Please Log in or Create an account to join the conversation.

More
12 Apr 2023 04:39 #268864 by jtrantow
Replied by jtrantow on topic Install Advice
Are you sure 2.8.4 HOME_USE_INDEX works with the Mesa encoders?

I tried 2.8.4 and the latest 2.8.4.23 from the buildbot.
When I run this y axis open loop it moves correctly and homes to the switch as expected. When I set HOME_USE_INDEX=yes the motion starts at an unreferenced value and homes to the switch and I momentarily see the expected HOME_OFFSET show on the display. Then it moves to the index latch at which time it reverts back to the unreferenced position it had immediately before it reached the limit switch. Then in continues on to the HOME position but it's messed up because it lost the HOME_OFFSET position. I expected it to latch at the index and start the move from HOME_OFFSET. 

I have y-index-enable connected.
net y-index-enable    <= joint.1.index-enable  =>  hm2_7i92.0.encoder.01.index-enable

Some of the other posts indicate this works in 2.9 when the loop is closed? Or in open loop with a Mesa fpga update.

I have been able to toggle my axis between open and closed loop using:
#
# In open loop,   -pos-fb goes directly from stepgen to joint.
# In closed loop, -pos-fb is provided by the encoder position.
#
net y-pos-fb     <= hm2_7i92.0.stepgen.01.position-fb  => joint.1.motor-pos-fb
#net y-pos-fb     <=  hm2_7i92.0.encoder.01.position  =>  joint.1.motor-pos-fb

Since, I changed out the 5um glass scale for the 1um magnetic scale with index I get joint following errors when I run closed loop. I don't understand this as the scale works correctly in open loop mode and worked with the 5um scale.  Any thoughts would be appreciated. If HOME_USE_INDEX does work with closed loop this may be the key to getting this working.
 
Attachments:

Please Log in or Create an account to join the conversation.

More
12 Apr 2023 06:29 #268869 by JPL
Replied by JPL on topic Install Advice

Are you sure 2.8.4 HOME_USE_INDEX works with the Mesa encoders?
 


YES.

 

Please Log in or Create an account to join the conversation.

More
12 Apr 2023 06:32 #268870 by JPL
Replied by JPL on topic Install Advice

 Any thoughts would be appreciated.
 


Humm, I see that for every single joint in your ini config you have "HOME_USE_INDEX = NO". That should be YES...

 

Please Log in or Create an account to join the conversation.

More
12 Apr 2023 12:09 #268892 by tommylight
Replied by tommylight on topic Install Advice
Closing the loop in LinuxCNC will probably require tuning the PID and FF values, hence joint errors.
To make it easier, make 2 configs, one for open loop so you can check that everything works, one for closed loop, do the tuning, then try to get homing right.
As a stab in the dark, try changing HOME and HOME_OFFSET values, see if that works for you.

Please Log in or Create an account to join the conversation.

More
12 Apr 2023 14:09 #268897 by PCW
Replied by PCW on topic Install Advice
Your P term (1000) seems way too high for a encoder feedback system.

A P term of 1000 works with local (stepgen position counter) feedback
because there is nearly 0 delay between velocity command and position
feedback. This is not the case with encoder feedback where there are delays
in the drive and mechanics

Please Log in or Create an account to join the conversation.

More
12 Apr 2023 17:37 #268913 by jtrantow
Replied by jtrantow on topic Install Advice
My error was the wrong sign for my encoder scale. All is working when that was fixed.

I only have an index signal on my Y axis with the new magnetic scale. I might have had that turned off in the file I attached, but it's true and working now.

Please Log in or Create an account to join the conversation.

More
12 Apr 2023 17:45 #268916 by jtrantow
Replied by jtrantow on topic Install Advice
I have been using those PID values with the glass scales and closed loop steppers on XYZ for quite a while. This is probably "working" because I opened up the errors? I haven't bothered going through the tune as it worked. Tuning is definitely on the todo list.

[JOINT_1]
TYPE = LINEAR
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 250.0

setp pid.y.maxerror 0.012700

Can you point me to the information for PID tuning a closed loop stepper with encoder feedback?

Please Log in or Create an account to join the conversation.

More
12 Apr 2023 21:08 #268936 by PCW
Replied by PCW on topic Install Advice
Its similar to tuning a analog velocity servo
I would think the main thing to tune is P
and perhaps adding a tiny bit of ff2

Please Log in or Create an account to join the conversation.

Time to create page: 0.089 seconds
Powered by Kunena Forum