CoreXY translation for TrivKins

More
22 Mar 2021 15:07 #203248 by +Jan+
Understood, thanks!
Are there equivalents for a mesa board configuration?

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

More
22 Mar 2021 15:14 #203249 by PCW
Replied by PCW on topic CoreXY translation for TrivKins
I think if you globally replace "spiPRU.joint."
with "hm2_5i25.0.stepgen.0"

You should be a lot closer

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

More
22 Mar 2021 20:39 - 22 Mar 2021 20:49 #203291 by +Jan+
Thanks, i replaced now "spiPRU.0.pos" with "hm2_5i25.0.stepgen.00.position" and commented out some hal links till linuxcnc starts.
If i try to move the Axis now I get a following error. What can I do to solve this?

NOTE: Instead of
setp spiPRU.joint.0.scale [JOINT_0]SCALE
I use
setp   hm2_5i25.0.stepgen.00.position-scale  [JOINT_0]STEP_SCALE
Is that correct?

Here ist the HAL part for the X Axis
# Step Gen signals/setup

setp   hm2_5i25.0.stepgen.00.dirsetup        [JOINT_0]DIRSETUP
setp   hm2_5i25.0.stepgen.00.dirhold         [JOINT_0]DIRHOLD
setp   hm2_5i25.0.stepgen.00.steplen         [JOINT_0]STEPLEN
setp   hm2_5i25.0.stepgen.00.stepspace       [JOINT_0]STEPSPACE
# setp   hm2_5i25.0.stepgen.00.position-scale  [JOINT_0]STEP_SCALE
setp   hm2_5i25.0.stepgen.00.step_type        0
setp   hm2_5i25.0.stepgen.00.control-type     1
# setp   hm2_5i25.0.stepgen.00.maxaccel         [JOINT_0]STEPGEN_MAXACCEL
setp   hm2_5i25.0.stepgen.00.maxvel           [JOINT_0]STEPGEN_MAXVEL

# ---closedloop stepper signals---

# net x-pos-cmd    <= joint.0.motor-pos-cmd
net x-vel-cmd    <= joint.0.vel-cmd
net x-output     <= hm2_5i25.0.stepgen.00.velocity-cmd
# net x-pos-fb     <= hm2_5i25.0.stepgen.00.position-fb
# net x-pos-fb     => joint.0.motor-pos-fb
net x-enable     <= joint.0.amp-enable-out
net x-enable     => hm2_5i25.0.stepgen.00.enable

# COREXY

setp   hm2_5i25.0.stepgen.00.position-scale  [JOINT_0]STEP_SCALE
setp   hm2_5i25.0.stepgen.00.maxaccel         [JOINT_0]STEPGEN_MAXACCEL
net xpos-cmd joint.0.motor-pos-cmd => corexy.xpos-cmd 
net m0pos-cmd corexy.m0pos-cmd => hm2_5i25.0.stepgen.00.position-cmd 
net m0pos-fb hm2_5i25.0.stepgen.00.position-fb => corexy.m0pos-fb
net xpos-fb corexy.xpos-fb => joint.0.motor-pos-fb

INI part for X
#******************************************
[AXIS_X]
MAX_VELOCITY = 8.33333333333
MAX_ACCELERATION = 200.0
MIN_LIMIT = -0.01
MAX_LIMIT = 40.0

[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 8.33333333333
MAX_ACCELERATION = 200.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 10.42
STEPGEN_MAXACCEL = 250.00
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP   = 5000
DIRHOLD    = 10000
STEPLEN    = 2500
STEPSPACE  = 2500
STEP_SCALE = 3200.0
MIN_LIMIT = -0.01
MAX_LIMIT = 40.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = -0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_SEQUENCE = 1

And here for the Y Axis
# Step Gen signals/setup

setp   hm2_5i25.0.stepgen.01.dirsetup        [JOINT_1]DIRSETUP
setp   hm2_5i25.0.stepgen.01.dirhold         [JOINT_1]DIRHOLD
setp   hm2_5i25.0.stepgen.01.steplen         [JOINT_1]STEPLEN
setp   hm2_5i25.0.stepgen.01.stepspace       [JOINT_1]STEPSPACE
# setp   hm2_5i25.0.stepgen.01.position-scale  [JOINT_1]STEP_SCALE
setp   hm2_5i25.0.stepgen.01.step_type        0
setp   hm2_5i25.0.stepgen.01.control-type     1
# setp   hm2_5i25.0.stepgen.01.maxaccel         [JOINT_1]STEPGEN_MAXACCEL
setp   hm2_5i25.0.stepgen.01.maxvel           [JOINT_1]STEPGEN_MAXVEL

# ---closedloop stepper signals---

# net y-pos-cmd    <= joint.1.motor-pos-cmd
net y-vel-cmd    <= joint.1.vel-cmd
net y-output     <= hm2_5i25.0.stepgen.01.velocity-cmd
# net y-pos-fb     <= hm2_5i25.0.stepgen.01.position-fb
# net y-pos-fb     => joint.1.motor-pos-fb
net y-enable     <= joint.1.amp-enable-out
net y-enable     => hm2_5i25.0.stepgen.01.enable

# COREXY (WHOLE BLOCK)
setp   hm2_5i25.0.stepgen.01.position-scale  [JOINT_0]STEP_SCALE
setp   hm2_5i25.0.stepgen.01.maxaccel         [JOINT_0]STEPGEN_MAXACCEL
net ypos-cmd joint.1.motor-pos-cmd => corexy.ypos-cmd 
net m1pos-cmd corexy.m1pos-cmd => hm2_5i25.0.stepgen.01.position-cmd 
net m1pos-fb hm2_5i25.0.stepgen.01.position-fb => corexy.m1pos-fb
net ypos-fb corexy.ypos-fb => joint.1.motor-pos-fb

INI for Y
#******************************************
[AXIS_Y]
MAX_VELOCITY = 11.6666666667
MAX_ACCELERATION = 200.0
MIN_LIMIT = -0.01
MAX_LIMIT = 50.0

[JOINT_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 11.6666666667
MAX_ACCELERATION = 200.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 14.58
STEPGEN_MAXACCEL = 250.00
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP   = 5000
DIRHOLD    = 10000
STEPLEN    = 2500
STEPSPACE  = 2500
STEP_SCALE = 3200.0
MIN_LIMIT = -0.01
MAX_LIMIT = 50.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = -0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_SEQUENCE = 2
#******************************************


Thanks in advance

Jan
Last edit: 22 Mar 2021 20:49 by +Jan+.

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

More
22 Mar 2021 21:00 #203294 by PCW
Replied by PCW on topic CoreXY translation for TrivKins
This is wrong for the velocity mode:

net m0pos-cmd corexy.m0pos-cmd => hm2_5i25.0.stepgen.00.position-cmd

corexy.m0pos-cmd should instead connect to pid.x.command

There are also critical hal setup lines commented out like:

# setp hm2_5i25.0.stepgen.00.position-scale [JOINT_0]STEP_SCALE

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

More
22 Mar 2021 23:02 - 22 Mar 2021 23:03 #203318 by +Jan+
As you probably noticed, my knowledge doesn't really go beyond the configuration via PNCCONF and some other small config adjustments. So please understand that I have to ask again. Is this what you meant? In the configuration below I still get the following error.
The entry "# setp hm2_5i25.0.stepgen.00.position-scale [JOINT_0]STEP_SCALE" and a few others was duplicated, so I just commented it out. Now they are only single present.

Thanks a lot
Jan
#*******************
#  AXIS X JOINT 0
#*******************




setp   pid.x.Pgain     [JOINT_0]P
setp   pid.x.Igain     [JOINT_0]I
setp   pid.x.Dgain     [JOINT_0]D
setp   pid.x.bias      [JOINT_0]BIAS
setp   pid.x.FF0       [JOINT_0]FF0
setp   pid.x.FF1       [JOINT_0]FF1
setp   pid.x.FF2       [JOINT_0]FF2
setp   pid.x.deadband  [JOINT_0]DEADBAND
setp   pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp   pid.x.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp   pid.x.maxerror 0.012700

net x-index-enable  <=> pid.x.index-enable
net x-enable        =>  pid.x.enable
net x-pos-cmd corexy.m0pos-cmd =>  pid.x.command
net x-pos-fb        =>  pid.x.feedback
net x-output        <=  pid.x.output

# Step Gen signals/setup

setp   hm2_5i25.0.stepgen.00.dirsetup        [JOINT_0]DIRSETUP
setp   hm2_5i25.0.stepgen.00.dirhold         [JOINT_0]DIRHOLD
setp   hm2_5i25.0.stepgen.00.steplen         [JOINT_0]STEPLEN
setp   hm2_5i25.0.stepgen.00.stepspace       [JOINT_0]STEPSPACE
setp   hm2_5i25.0.stepgen.00.position-scale  [JOINT_0]STEP_SCALE
setp   hm2_5i25.0.stepgen.00.step_type        0
setp   hm2_5i25.0.stepgen.00.control-type     1
setp   hm2_5i25.0.stepgen.00.maxaccel         [JOINT_0]STEPGEN_MAXACCEL
setp   hm2_5i25.0.stepgen.00.maxvel           [JOINT_0]STEPGEN_MAXVEL

# ---closedloop stepper signals---

# net x-pos-cmd    <= joint.0.motor-pos-cmd
net x-vel-cmd    <= joint.0.vel-cmd
net x-output     <= hm2_5i25.0.stepgen.00.velocity-cmd
# net x-pos-fb     <= hm2_5i25.0.stepgen.00.position-fb
# net x-pos-fb     => joint.0.motor-pos-fb
net x-enable     <= joint.0.amp-enable-out
net x-enable     => hm2_5i25.0.stepgen.00.enable

# COREXY
net xpos-cmd joint.0.motor-pos-cmd => corexy.xpos-cmd 
net m0pos-cmd => hm2_5i25.0.stepgen.00.position-cmd
net m0pos-fb hm2_5i25.0.stepgen.00.position-fb => corexy.m0pos-fb
net xpos-fb corexy.xpos-fb => joint.0.motor-pos-fb
Last edit: 22 Mar 2021 23:03 by +Jan+.

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

More
23 Mar 2021 05:54 #203353 by scotta
I'm now using the corexy component that is included in LinuxCNC, corexy_by_hal

linuxcnc.org/docs/html/man/man9/corexy_by_hal.9.html

spiPRU is now called Remora and is for Raspberry Pi not Beagle Bone.

BR

Scott

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

More
28 Mar 2021 22:11 - 28 Mar 2021 22:19 #203954 by +Jan+
Good evening, thank you for the tip. Despite some research, I only found a sample configuration for the COREXY_BY_HAL component. Here is the link to github.

github antonchromjak /
corexy_by_hal-with-mesa-7i96-config


I have adapted the configuration for the Mesa 7i76 I am using and so far everything is behaving as expected. I was not able to perform a complete homing sequence due to the lack of mounted reference switches. However, the axes are moved as desired when the homing is started. Many thanks to all developers. To make it easier for the next beginners, below I attach my configuration that works with Mesa 5i25 and 7i76.

File Attachment:

File Name: corexy_mesa_7i76.zip
File Size:6 KB


Best regards

Jan
Attachments:
Last edit: 28 Mar 2021 22:19 by +Jan+.

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

Time to create page: 0.119 seconds
Powered by Kunena Forum