Remora - Cannot clear E-STOP, without error

More
8 months 1 week ago #343346 by AlessandroEmm
Setup:
  • LinuxCNC with Remora SPI controller
  • 4-axis gantry configuration (XYYZ - dual Y motors)
My System is stuck in E-STOP state and cannot be cleared with F1 or any other method in Axis. F2 (Machine On) is greyed out all the time. The HAL states look fine from Remora side, thus i'm pretty certain that my issue is with some state/config that is LinuxCNC core. I tried other Frontends like gmoccapy and they behave pretty much the same except that they seem to have some timeout on e-stop blockage and claims that something external is blocking it while axis is keeping at it and never times out, but nothing ever changes even after minutes.

I have endstops configured too, but still tried no_force_homing to ensure its not a problem with endstops.

Some Infos about my setup:HAL Pin States:
Code:
iocontrol.0.emc-enable-in = TRUE (from remora.SPI-status) iocontrol.0.user-enable-out = TRUE iocontrol.0.user-request-enable = FALSE (never changes) remora.SPI-status = TRUE remora.SPI-enable = TRUE motion.enable = TRUE motion.motion-enabled = FALSE
HAL Configuration is default remora:
Code:
net user-enable-out <= iocontrol.0.user-enable-out => remora.SPI-enable net user-request-enable <= iocontrol.0.user-request-enable => remora.SPI-reset net remora-status <= remora.SPI-status => iocontrol.0.emc-enable-in

INI Configuration:
Code:
[TRAJ] JOINTS = 4 NO_FORCE_HOMING = 1 COORDINATES = XYYZ [KINS] JOINTS = 4 KINEMATICS = trivkins coordinates=XYYZ kinstype=BOTH [EMCMOT] SERVO_PERIOD = 5000000 TRAJ_PERIOD = 5000000 BASE_PERIOD = 0 [TASK] TASK = milltask CYCLE_TIME = 0.010
 What is interesting is that noticed on click of e-stop the previously greyed out box of override limits becomes clickable.

Thanks for any help,
Alessandro

Please Log in to join the conversation.

More
8 months 1 week ago #343351 by andrax
Hi,

I think you have a syntax error.
setp iocontrol.0.emc-enable-in 1

Please Log in to join the conversation.

More
8 months 1 week ago #343355 by tuxcnc

  • Code:
    [b]Configuration is default remora:[/b]
  • Code:
    [b][code]net user-enable-out <= iocontrol.0.user-enable-out => remora.SPI-enable
    [/code][/b]
  • Code:
    [b][code]net user-request-enable <= iocontrol.0.user-request-enable => remora.SPI-reset
    [/code][/b]
  • Code:
    [b][code]net remora-status <= remora.SPI-status => iocontrol.0.emc-enable-in
    [/code][/b]
I did it a long time ago and unfortunately I don't remember...
But I think I had the same problem.
My configuration looks like this:
Code:
# estop and SPI comms enable and feedback #  net user-enable-out     <= iocontrol.0.user-enable-out          => remora.enable #  net user-request-enable <= iocontrol.0.user-request-enable      => remora.reset #  net remora-status       <= remora.status            => iocontrol.0.emc-enable-in loadrt estop_latch addf estop-latch.0 servo-thread net estop-loopout       iocontrol.0.emc-enable-in  <= estop-latch.0.ok-out net user-enable-out     iocontrol.0.user-enable-out  => remora.enable net estop-loopin        remora.status  => estop-latch.0.ok-in => estop-latch.0.reset net estop-reset         iocontrol.0.user-request-enable => remora.reset net remote-estp         estop-latch.0.fault-in  <= remora.input.12.not
This is Remora via Ethernet, but the differences are probably cosmetic.

Please Log in to join the conversation.

More
8 months 1 week ago #343368 by AlessandroEmm
Thanks Tuxcnc - I tried to replicate this with the SPI-fields of remora-spi. (minus the external pin) Unfortunately the behaviour stays the same. Besides looping in the external e-stop does it do something different in terms of iocontrol states?

Please Log in to join the conversation.

More
8 months 1 week ago #343372 by AlessandroEmm
Sorry, I dont follow, what Syntax error are you referring to?

Please Log in to join the conversation.

More
8 months 1 week ago #343382 by andrax
You write, 
iocontrol.0.emc-enable-in = TRUE (from remora.SPI-status)
The correct form is 
setp iocontrol.0.emc-enable-in = TRUE (from remora.SPI-status)
or 
iocontrol.0.emc-enable-in = 1

To pinpoint the error, you would need to provide your configuration.

Please Log in to join the conversation.

More
8 months 6 days ago #343421 by AlessandroEmm
Those lines were purely just for illustration of the states output by halcmd.

My HALfile
Code:
loadrt remora SPI_clk_div=32 PRU_base_freq=40000 loadrt [KINS]KINEMATICS loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS addf remora.read servo-thread addf motion-command-handler servo-thread addf motion-controller servo-thread addf remora.update-freq servo-thread addf remora.write servo-thread loadrt estop_latch addf estop-latch.0 servo-thread net estop-loopout       iocontrol.0.emc-enable-in  <= estop-latch.0.ok-out net user-enable-out     iocontrol.0.user-enable-out  => remora.SPI-enable net estop-loopin        remora.SPI-status  => estop-latch.0.ok-in => estop-latch.0.reset net estop-reset         iocontrol.0.user-request-enable => remora.SPI-reset setp remora.joint.0.scale       [JOINT_0]STEPGEN_SCALE setp remora.joint.0.maxaccel    [JOINT_0]MAX_ACCELERATION net xpos-cmd            <= joint.0.motor-pos-cmd        => remora.joint.0.pos-cmd net j0pos-fb            <= remora.joint.0.pos-fb        => joint.0.motor-pos-fb net j0enable            <= joint.0.amp-enable-out       => remora.joint.0.enable setp remora.joint.1.scale               [JOINT_1]STEPGEN_SCALE net y1-pos-cmd   <= joint.1.motor-pos-cmd => remora.joint.1.pos-cmd net y1-pos-fb    <= remora.joint.1.pos-fb  => joint.1.motor-pos-fb net y1-enable    <= joint.1.amp-enable-out => remora.joint.1.enable net y2-pos-cmd   <= joint.2.motor-pos-cmd => remora.joint.2.pos-cmd net y2-pos-fb    <= remora.joint.2.pos-fb  => joint.2.motor-pos-fb net y2-enable    <= joint.2.amp-enable-out => remora.joint.2.enable net z-pos-cmd    <= joint.3.motor-pos-cmd => remora.joint.3.pos-cmd net z-pos-fb     <= remora.joint.3.pos-fb  => joint.3.motor-pos-fb net z-enable     <= joint.3.amp-enable-out => remora.joint.3.enable net X-min       remora.input.1         => joint.0.home-sw-in joint.0.neg-lim-sw-in net Y-min       remora.input.2         => joint.1.home-sw-in joint.1.neg-lim-sw-in net Z-min       remora.input.4         => joint.2.home-sw-in joint.2.neg-lim-sw-in

Please Log in to join the conversation.

More
8 months 6 days ago #343434 by tommylight
Changed the subject tittle to reflect use of Remora, is that OK?

Please Log in to join the conversation.

More
8 months 6 days ago #343443 by AlessandroEmm
Hey guys

I figured it out, as far as I can tell. I didnt put Remora in the title because the states/signals that trigger iocontrol from remora side were, as far as I was able to tell working correctly.
That said all it took was to make it explicit that my linuxcnc instance that it should run with iocontrol v2, which I did by adding
Code:
IO = iov2

to the EMCIO section. From reading the docs I had assumed that in newer versions of LinuxCNC that it would be the default anyway, hence i never bothered. Also I never had errors.

Now to close this, whats the default today for a standard version of iocontrol in a deb-install of linux-cnc?

Thanks,
Alessandro 

Please Log in to join the conversation.

Time to create page: 0.361 seconds
Powered by Kunena Forum