Dual ballscrew router with 2.8 problems
You have it cold. The place to get warm is nearby for you.
You know Guy Martin?
I think when you do stepconf wizard, and choose different name, i think you can pick up a limit switch configuration,Although unsure on how I set the homing actually up for the Y.
without overwriting your working system. If not, there is work to do.
For info : Only P code gives following error :
P word with no G2 G3 G4 G10 G64 G5 G5.2 G76 G82 G86 G88 G89 or M50 M51 M52 M53 M62 M63 M64 M65 M66 or user M code to use it
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Away
- Platinum Member
- Posts: 5007
- Thank you received: 1441
It's too cold in UK today I had to come home but will wrap up better tomorrow, hard to work on an aluminium router when it's cold you're fingers freeze lol.
Speaking of cold, I had a flat tire on the way to work this morning. 6°F changing tire in the snow and ice along the road kind of sucked.
Please Log in or Create an account to join the conversation.
My microsteps are set to 8 and my screw pitch is correct for all axis but when it's readind 1200, it's more like 850mm.
Not sure why will investigate tomorrow.
Please Log in or Create an account to join the conversation.
@Desertboy,
You have it cold. The place to get warm is nearby for you.
You know Guy Martin?
Not into racing but my dad loves it when I was a kid got dragged round F1 tracks in europe met Senna, Prost, Mansell and a fair few other 80's stars when I was between 5 and 12 years old.
Please Log in or Create an account to join the conversation.
from my .ini (I posted what I think is relevant)
[KINS]
JOINTS = 4
KINEMATICS = trivkins coordinates=XYYZ
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 36.00
MAX_LINEAR_VELOCITY = 75.00
[AXIS_X]
MAX_VELOCITY = 18.5546875
MAX_ACCELERATION = 750.0
MIN_LIMIT = 0.0
MAX_LIMIT = 1200.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = 0.0
MAX_LIMIT = 1200.0
MAX_VELOCITY = 18.5546875
MAX_ACCELERATION = 750.0
STEPGEN_MAXACCEL = 937.5
SCALE = 640.0
FERROR = 1
MIN_FERROR = .25
HOME_OFFSET = 50.000000
HOME_SEARCH_VEL = 36.000000
HOME_LATCH_VEL = 0.781250
HOME_SEQUENCE = 1
[AXIS_Y]
MAX_VELOCITY = 14.84375
MAX_ACCELERATION = 750.0
MIN_LIMIT = 0.0
MAX_LIMIT = 700.0
[JOINT_1]
TYPE = LINEAR
HOME = 0
MIN_LIMIT = 0.0
MAX_LIMIT = 700.0
MAX_VELOCITY = 14.84375
MAX_ACCELERATION = 750.0
STEPGEN_MAXACCEL = 937.5
SCALE = 800.0
FERROR = 1
MIN_FERROR = .25
HOME_OFFSET = 650.000000
HOME_SEARCH_VEL = 36.000000
HOME_LATCH_VEL = 0.625000
HOME_SEQUENCE = -1
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = 0.0
MAX_LIMIT = 700.0
MAX_VELOCITY = 14.84375
MAX_ACCELERATION = 750.0
STEPGEN_MAXACCEL = 937.5
SCALE = 800.0
FERROR = 1
MIN_FERROR = .25
HOME_OFFSET = 650.000000
HOME_SEARCH_VEL = 36.000000
HOME_LATCH_VEL = 0.625000
HOME_SEQUENCE = -1
[AXIS_Z]
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
MIN_LIMIT = -100.0
MAX_LIMIT = 0.001
[JOINT_3]
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = -100.0
MAX_LIMIT = 0.001
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
STEPGEN_MAXACCEL = 937.5
SCALE = 80.0
FERROR = 1
MIN_FERROR = .25
HOME_OFFSET = 0.0
and my .hal file
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadrt hal_parport cfg="0 out"
loadrt stepgen step_type=0,0,0,0
loadrt pwmgen output_type=1
addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf pwmgen.make-pulses base-thread
addf parport.0.write base-thread
addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf pwmgen.update servo-thread
net spindle-cmd-rpm => pwmgen.0.value
net spindle-on <= motion.spindle-on => pwmgen.0.enable
net spindle-pwm <= pwmgen.0.pwm
setp pwmgen.0.pwm-freq 100.0
setp pwmgen.0.scale 1166.66666667
setp pwmgen.0.offset 0.114285714286
setp pwmgen.0.dither-pwm true
net spindle-cmd-rpm <= motion.spindle-speed-out
net spindle-cmd-rpm-abs <= motion.spindle-speed-out-abs
net spindle-cmd-rps <= motion.spindle-speed-out-rps
net spindle-cmd-rps-abs <= motion.spindle-speed-out-rps-abs
net spindle-at-speed => motion.spindle-at-speed
net spindle-cw <= motion.spindle-forward
net estop-out => parport.0.pin-01-out
net xstep => parport.0.pin-02-out
net xdir => parport.0.pin-03-out
net ystep => parport.0.pin-04-out
net ydir => parport.0.pin-05-out
net zstep => parport.0.pin-06-out
net zdir => parport.0.pin-07-out
net ystep => parport.0.pin-08-out
net ydir => parport.0.pin-09-out
net spindle-cw => parport.0.pin-14-out
net spindle-pwm => parport.0.pin-16-out
net xenable => parport.0.pin-17-out
net estop-ext <= parport.0.pin-10-in
net home-x <= parport.0.pin-12-in
net home-y1 <= parport.0.pin-13-in
net home-y <= parport.0.pin-15-in
setp stepgen.0.position-scale [JOINT_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 1
setp stepgen.0.dirhold 35000
setp stepgen.0.dirsetup 35000
setp stepgen.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL
net xpos-cmd joint.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => joint.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable joint.0.amp-enable-out => stepgen.0.enable
net home-x => joint.0.home-sw-in
setp stepgen.1.position-scale [JOINT_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 1
setp stepgen.1.dirhold 35000
setp stepgen.1.dirsetup 35000
setp stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
net ypos-cmd joint.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => joint.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable joint.1.amp-enable-out => stepgen.1.enable
net home-y => joint.1.home-sw-in
setp stepgen.2.position-scale [JOINT_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 1
setp stepgen.2.dirhold 35000
setp stepgen.2.dirsetup 35000
setp stepgen.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL
net y1pos-cmd joint.2.motor-pos-cmd => stepgen.2.position-cmd
net y1pos-fb stepgen.2.position-fb => joint.2.motor-pos-fb
net y1step <= stepgen.2.step
net y1dir <= stepgen.2.dir
net y1enable joint.2.amp-enable-out => stepgen.2.enable
net home-y1 => joint.2.home-sw-in
setp stepgen.3.position-scale [JOINT_3]SCALE
setp stepgen.3.steplen 1
setp stepgen.3.stepspace 1
setp stepgen.3.dirhold 35000
setp stepgen.3.dirsetup 35000
setp stepgen.3.maxaccel [JOINT_3]STEPGEN_MAXACCEL
net zpos-cmd joint.3.motor-pos-cmd => stepgen.3.position-cmd
net zpos-fb stepgen.3.position-fb => joint.3.motor-pos-fb
net zstep <= stepgen.3.step
net zdir <= stepgen.3.dir
net zenable joint.3.amp-enable-out => stepgen.3.enable
net estop-out <= iocontrol.0.user-enable-out
net estop-ext => iocontrol.0.emc-enable-in
loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
I tried to edit it best I could, now when I home Y both motors turn and it travels untils clicks the Y home (Pin 15) then both axis stop but I can see in linuxcnc it thinks it's moving the Y axis which is counting (I think it was down into -) but the motors do not move. When it gets to -1400 it fires an error.
With this .ini before I edited the .hal I had full control of machine could home X & Y and run code ok with 4 joints but of course no dual homing.
I'm sure I'm very close, I've included my .hal and .ini as attachments as well.
Thanks
Desertboy
Please Log in or Create an account to join the conversation.
[KINS]
JOINTS = 4
KINEMATICS = trivkins coordinates=XYYZ
But using
HOME_SEQUENCE = -1
Make this change to Joint 0
[JOINT_0]
HOME_SEQUENCE = 1
And add this to joint 3
[code
[JOINT_3]
HOME_SEQUENCE = 0
[/code]
So now you should have your Z home first to get it up out of the road, then X, then your joint Axis Y should home
Please Log in or Create an account to join the conversation.
I have no Z home switch I do it manually.
I still have same problem
2 switches on the Y axis, Y and Y1 when it touchs Y (One you can see in video) then both motors stop but the Y keeps counting.
After they touch the Y I then want them to move in sync to touch Y1 then adjust 1 motor only on the same axis as Y1 to square the gantry (I neccesary).
I have no idea why youtube mirrored my video the one I uploaded isn't mirrored.
Please Log in or Create an account to join the conversation.
You know Guy Martin?
I have met Guy Martin. He came to one of our Track Days at Cadwell Park. We ended up talking about diesel SCR catalysts and the use of AdBlu. He really is more interested in being a truck mechanic than anything else.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.