Updated linuxcnc 2.7 -> 2.9, now parallel port card not working with sherline

More
04 Jul 2024 18:22 - 04 Jul 2024 18:40 #304408 by ffffrf
So... I recently got a sherline lathe, and opted to download linuxcnc 2.7 to my dell optiplex 7010. I used a startech pcie to parallel port card and followed the instructions but kept getting errors, however, towards the end, I realized the computer did detect it via lspci -v, and set up stepconf with the lathe and got everything to work.

Now, I eventually plan to use a mesa ethernet board with the lathe so I thought in the meantime to upgrade to the newest linuxcnc version and set up the lathe the same way.

However, it is not working. In stepconf when I test my axis they work, but when I compile, the software no longer moves the axis. When I do sudo lspci -v I do see my parallel port at the address e010 just as i did on linux 2.7. However, when I open up linuxcnc and type in a g code like g01 Z5 F100, I get "no parport registered at e010 (or 0xe010)" and nothing happens. I do not always get "no parport registered at e010 (or 0xe010)" when I restart linuxcnc but regardless the axis do not move.

I am at a loss on what to do as this is the exact same hardware I have been using. I tried clicking on the sherline pins in stepconf as I think that inverts them but nothing has worked. 

In stepconf the axis works, and the steppers are energized. If I change the parport address to anything other than e010 or 0xe010, the axis no longer work in stepconf, so I know it is the right address


SHERLINE INI, HAL and terminal
# Generated by stepconf 1.1 at Thu Jul  4 12:14:30 2024
# If you make changes to this file, they will be
# overwritten when you run stepconf again

[EMC]
MACHINE = sherline
DEBUG = 0
VERSION = 1.1

[DISPLAY]
DISPLAY = axis
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
ARCDIVISION = 64
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in
MAX_FEED_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = 0.5
MAX_SPINDLE_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 2.50
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 25.00
CYCLE_TIME = 0.100
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/maksym/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
LATHE = 1

[KINS]
JOINTS = 2
KINEMATICS = trivkins coordinates=XZ

[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
PROGRAM_EXTENSION = .nc,.tap G-Code File
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python

[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[RS274NGC]
PARAMETER_FILE = linuxcnc.var

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 100000
SERVO_PERIOD = 1000000

[HAL]
HALFILE = sherline.hal
HALFILE = custom.hal
POSTGUI_HALFILE = postgui_call_list.hal

[TRAJ]
COORDINATES =  X Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 2.50
MAX_LINEAR_VELOCITY = 25.00

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl

#*** AXIS_X *******************************
[AXIS_X]
MAX_VELOCITY = 23.75
MAX_ACCELERATION = 750.0
MIN_LIMIT = -0.001
MAX_LIMIT = 200.0

[JOINT_0]
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = -0.001
MAX_LIMIT = 200.0
MAX_VELOCITY = 23.75
MAX_ACCELERATION = 750.0
STEPGEN_MAXACCEL = 937.5
SCALE = 400.0
FERROR = 1
MIN_FERROR = .25
HOME_OFFSET = 0.0
#******************************************

#*** AXIS_Z *******************************
[AXIS_Z]
MAX_VELOCITY = 23.75
MAX_ACCELERATION = 750.0
MIN_LIMIT = -100.0
MAX_LIMIT = 0.001

[JOINT_1]
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = -100.0
MAX_LIMIT = 0.001
MAX_VELOCITY = 23.75
MAX_ACCELERATION = 750.0
STEPGEN_MAXACCEL = 937.5
SCALE = 400.0
FERROR = 1
MIN_FERROR = .25
HOME_OFFSET = 0.0
#******************************************



SHERLINE HAL:

[code]# Generated by stepconf 1.1 at Thu Jul  4 12:14:30 2024
# If you make changes to this file, they will be
# overwritten when you run stepconf again
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="0xe010 out"
setp parport.0.reset-time 5000
loadrt stepgen step_type=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 parport.0.reset 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 <= spindle.0.on => pwmgen.0.enable
net spindle-pwm <= pwmgen.0.pwm
setp pwmgen.0.pwm-freq 100.0
setp pwmgen.0.scale 1166.6666666666665
setp pwmgen.0.offset 0.11428571428571428
setp pwmgen.0.dither-pwm true
net spindle-cmd-rpm     <= spindle.0.speed-out
net spindle-cmd-rpm-abs <= spindle.0.speed-out-abs
net spindle-cmd-rps     <= spindle.0.speed-out-rps
net spindle-cmd-rps-abs <= spindle.0.speed-out-rps-abs
net spindle-at-speed    => spindle.0.at-speed
net spindle-cw <= spindle.0.forward

net estop-out       => parport.0.pin-01-out
net xstep           => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
net xdir            => parport.0.pin-03-out
net ystep           => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
net ydir            => parport.0.pin-05-out
net zstep           => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
net zdir            => parport.0.pin-07-out
net astep           => parport.0.pin-08-out
setp parport.0.pin-08-out-reset 1
net adir            => 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

setp stepgen.0.position-scale [JOINT_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
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

setp stepgen.1.position-scale [JOINT_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 35000
setp stepgen.1.dirsetup 35000
setp stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
net zpos-cmd joint.1.motor-pos-cmd => stepgen.1.position-cmd
net zpos-fb stepgen.1.position-fb => joint.1.motor-pos-fb
net zstep <= stepgen.1.step
net zdir <= stepgen.1.dir
net zenable joint.1.amp-enable-out => stepgen.1.enable

net estop-out <= iocontrol.0.user-enable-out
net estop-out => 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




TERMINAL:

[code]02:00.0 Serial controller: Asix Electronics Corporation Device 9105 (prog-if 02 [16550])
    Subsystem: Asix Electronics Corporation (Wrong ID) Device 1000
    Flags: fast devsel, IRQ 16, IOMMU group 10
    I/O ports at e020
[size=8]    Memory at f7c03000 (32-bit, non-prefetchable)
=4K%    Memory at f7c02000 (32-bit, non-prefetchable)
=4K%    Capabilities: [50] MSI: Enable- Count=1/8 Maskable- 64bit+
    Capabilities: [78] Power Management version 3
    Capabilities: [80] Express Legacy Endpoint, MSI 00
    Capabilities: [100] Virtual Channel
    Capabilities: [800] Advanced Error Reporting

02:00.2 Parallel controller: Asix Electronics Corporation AX99100 PCIe to Multi I/O Controller (prog-if 03 [IEEE1284])
    Subsystem: Asix Electronics Corporation (Wrong ID) Parallel Port
    Flags: bus master, fast devsel, latency 0, IRQ 3, IOMMU group 10
    I/O ports at e010
[size=8]    I/O ports at e000
[size=8]    Memory at f7c01000 (32-bit, non-prefetchable)
=4K%    Memory at f7c00000 (32-bit, non-prefetchable)
=4K%    Capabilities: [50] MSI: Enable- Count=1/8 Maskable- 64bit+
    Capabilities: [78] Power Management version 3
    Capabilities: [80] Express Legacy Endpoint, MSI 00
    Capabilities: [100] Advanced Error Reporting




 [/size][/size][/size]
[/code][/code]
Last edit: 04 Jul 2024 18:40 by ffffrf.

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

More
07 Jul 2024 18:18 #304589 by andypugh
What does it actually say? One of the messages includes "this is not ncessarily an error"

If it works in stepconf then it ought to work in LinuxCNC. The most common cause for not doing is that the linuxcnc config drives the stepper driver enable pins and stepconf never does. And many stepper drivers have high-to-disable inputs. If you defined drive enable pins, suspect this.

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

More
07 Jul 2024 20:28 #304605 by PCW
Does lspci show the parallel port I/O  addresses as enabled?
(there is a possibly identical issue is a recent thread)

forum.linuxcnc.org/9-installing-linuxcnc...rallel-port?start=10

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

Time to create page: 0.083 seconds
Powered by Kunena Forum