Advanced Search

Search Results (Searched for: estop_latch)

  • h.hermes
  • h.hermes
14 Mar 2026 16:19
Replied by h.hermes on topic RPi and 7i90 via SPI, estop

RPi and 7i90 via SPI, estop

Category: Driver Boards

Oh, I did not realize that there is a pcnconf utility. I used stepconf for my old machine, so hopefully this will work as well.
Deleting all the estop latch stuff did not work.
I will give pncconf a try next week.
Thank you for your help so far!
  • PCW
  • PCW's Avatar
14 Mar 2026 16:08
Replied by PCW on topic RPi and 7i90 via SPI, estop

RPi and 7i90 via SPI, estop

Category: Driver Boards

Not sure but something about the estop latch is is not working.

I would probable delete all the estop latch stuff as it's really not
needed here.

You might also be better off starting with a pncconf configuration


 
  • h.hermes
  • h.hermes
13 Mar 2026 15:30
RPi and 7i90 via SPI, estop was created by h.hermes

RPi and 7i90 via SPI, estop

Category: Driver Boards

Hello everybody!
I am new to this forum, so first I want to thank everybody for all the information posted here.
I want to replace my old 32-bit computer running a 3-axis stepper cnc via a parallel port. 
What I succeeded in:
  1. I bought a Raspberry Pi 4 and a Mesa 7i90 card.
  2. I used my old computer with parallel port, connected to the 7i90 and programmed the 7i90_spi_svst4_8.bit firmware using mesaflash.
  3. I downloaded the LinuxCNC disk image for the RPi 4 and installed it.
  4. I connected the 7i90 to the Raspberry Pi (about 3 inch flat-cable, all ground lines connected). I can read the device configuration using mesaflash without problems (well after a new install of mesaflash from the git repository).
Now I want to start ``linuxcnc linuxcnc/configs/by_interface/mesa/hm2-stepper/7i90-rpi-spi.ini``. The GUI pops up and everything seems fine.
But when I press F1 to reset the estop latch nothing happens. Up to now I did not connect any drivers or switches to the 7i90.
I changed 'DEBUG = 0x7fffffff' in the ini-file and added a 'show' to the end of the ini-file. I attach the output when running the linuxcnc. I marked what happend when I pressed F1 by '******' in the text.
If you need more information (ini-file, hal-file) let me know.
Many thanks for any support, H. Hermes
  • AlessandroEmm
  • AlessandroEmm
24 Feb 2026 18:49 - 24 Feb 2026 19:06
Replied by AlessandroEmm on topic Remora - Cannot clear E-STOP, without error

Remora - Cannot clear E-STOP, without error

Category: Basic Configuration

Those lines were purely just for illustration of the states output by halcmd.

My HALfile
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
  • tuxcnc
  • tuxcnc
23 Feb 2026 19:03 - 23 Feb 2026 19:12
Replied by tuxcnc on topic Remora - Cannot clear E-STOP, without error

Remora - Cannot clear E-STOP, without error

Category: Basic Configuration

  • [b]Configuration is default remora:[/b]
  • [b][code]net user-enable-out <= iocontrol.0.user-enable-out => remora.SPI-enable
    [/code][/b]
  • [b][code]net user-request-enable <= iocontrol.0.user-request-enable => remora.SPI-reset
    [/code][/b]
  • [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:
# 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.
  • amanker
  • amanker
01 Feb 2026 11:48
Replied by amanker on topic Problem with estop_latch

Problem with estop_latch

Category: Basic Configuration

They are talking about user-request-enable pin behaviour.
But I noticed that even after all conditions met for estop_latch.ok-out, this output never becomes true.
  • meister
  • meister
  • amanker
  • amanker
31 Jan 2026 16:23 - 31 Jan 2026 16:25
Problem with estop_latch was created by amanker

Problem with estop_latch

Category: Basic Configuration

I have upgraded my linuxcnc 2.9.8 on rpi4 bookworm to 2.10pre. After installation estop_latch is not working. It was working as it is on 2.9.8. I can see estop_latch.ok-in = true, estop_latch.reset = true,  estop_latch.fault-in = false etc all good but estop_latch.ok-out never comes true.

My config for estop_latch

    loadrt estop_latch names=estop_latch
    addf estop_latch servo-thread
        
# estop loopback, SPI comms enable and feedback
    net user-enable-out     <= iocontrol.0.user-enable-out        => remora.SPI-enable 
    net remora-status      remora.SPI-status     => estop_latch.ok-in
    net estop-fault_in remora.input.09 => estop_latch.fault-in
    net user-request-enable <= iocontrol.0.user-request-enable    => remora.SPI-reset estop_latch.reset
    net estop-status estop_latch.ok-out => iocontrol.0.emc-enable-in    

But If I dont use estop_latch machine works.

    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

estop_latch was working in 2.9.8 with same config.
  • kello711
  • kello711's Avatar
06 Jan 2026 19:15
Replied by kello711 on topic 7i96S card arrived what setup is recomended

7i96S card arrived what setup is recomended

Category: Driver Boards

Yeah, I was already doing that with the other NC contact from the estop to the Mesa input and tied into the estop-latch logic in hal.
  • EdWorks
  • EdWorks's Avatar
19 Nov 2025 02:31

I would like to know how to connect GPIO to LinuxCNC’s E-Stop chain.

Category: Basic Configuration

If I use the following code which has the one missing dash error that I corrected:

# estop
loadrt estop_latch
addf estop-latch.0 servo-thread
net estop-loopout iocontrol.0.emc-enable-in <= estop-latch.0.ok-out
net estop-loopin iocontrol.0.user-enable-out => estop-latch.0.ok-in
net estop-reset iocontrol.0.user-request-enable => estop-latch.0.reset
net remote-estop estop-latch.0.fault-in <= parport.0.pin-in-10-not

The bug-a-boo for me is how do I tie the GPIO25 to the remote-estop. Do I change the last line to:
net remote-estop estop-latch.0.fault-in <= hal_gpio.GPIO25-in-10-not

?
  • unknown
  • unknown
19 Nov 2025 02:11

I would like to know how to connect GPIO to LinuxCNC’s E-Stop chain.

Category: Basic Configuration

Come here first.

Too many times users have received info from chatgpt that make absolutely no sense.

Google searching for "linuxcnc estop latch" gives the link above as the 4th result.
Or you could use the search function of the forum.
  • EdWorks
  • EdWorks's Avatar
19 Nov 2025 01:46

I would like to know how to connect GPIO to LinuxCNC’s E-Stop chain.

Category: Basic Configuration

My SetupRaspberry Pi 5 8GBByte2Bot Parallel Port Raspberry Pi HatByte2Bot 5 Axis CNC Interface Adapter Parallel Breakout Board For Stepper Motor DriversPicture 1My wiring is as follows:Picture2

The motors move, the home switches register as functioning, the probe is not hooked up and the eStop appears to do nothing.From LinuxCNC V2.9.7 Documentation PDF Page 1854.9.3.7 External ESTOP button The standard_pinout.hal file assumes no external ESTOP button. For more information on an external E-Stop see the estop_latch man page.Yet from 2 pages earlier in LinuxCNC V2.9.7 Documentation PDF Page 183 I see this line in the HAL file:# create a signal for the estop loopbacknet estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in I assume “man page” is a typo and this is unnecessary if I am trying to connect it to  GPIO25. A search of the document looking for “estop_latch” only reveals this on page 254Picture 3So my estop is on pin10, but that is GPIO25 on the Pi 5. I must refer to it as such.In my .Hal file I have the following lines:loadrt hal_gpio inputs=GPIO7,GPIO8,GPIO25,GPIO12,GPIO13 outputs=GPIO5,GPIO6,GPIO11,GPIO9,GPIO10,GPIO23,GPIO16,GPIO17,GPIO19,GPIO20,GPIO21,GPIO22,GPIO24,GPIO26net estop-out   <= hal_gpio.GPIO25-in  ornet estop-ext <= hal_gpio.GPIO25-in Using tools I can identify that all my limit switches are being read, but I have nothing to suggest the estop is being read.I have added“Addf gpio-input servo-thread” as recommended by ChatGPT, and that is not read by the programThe advice I am looking for is:
I would like to know how to connect GPIO25 to LinuxCNC’s E-Stop chain.I have tried:

net estop-out hal_GPIO.GPIO25.out => iocontrol.0.emc-enable-inand any variation thereof I could think of, failed.Eventually, I lost control of my servos and only when I removed all lines I gained control of F1, which controls the estop and F2, which powers the servos. 
  • jmp97
  • jmp97
26 Oct 2025 19:57 - 26 Oct 2025 19:59
Replied by jmp97 on topic LinuxCNC installation + 7I96S

LinuxCNC installation + 7I96S

Category: Installing LinuxCNC

No, it does not show an error at the beginning when the machine stops. The movement error occurs when you try to move the motors afterwards.

My INI

[EMC] # The version string for this INI file. VERSION = 1.1 # Name of machine, for use with display, etc. MACHINE = HM2-Stepper # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x00000003 #DEBUG = 0x00000007 DEBUG = 0 [DISPLAY] # Name of display program, e.g., tklinuxcnc #DISPLAY = tklinuxcnc DISPLAY = axis update_period = 0.05 show_trail = True # Cycle time, in seconds, that display will sleep between polls CYCLE_TIME = 0.0500 # Path to help file HELP_FILE = tklinuxcnc.txt # Initial display setting for position, RELATIVE or MACHINE POSITION_OFFSET = RELATIVE # Initial display setting for position, COMMANDED or ACTUAL POSITION_FEEDBACK = ACTUAL # Highest value that will be allowed for feed override, 1.0 = 100% MAX_FEED_OVERRIDE = 1.5 # Prefix to be used PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic INTRO_GRAPHIC = linuxcnc.gif INTRO_TIME = 5 [FILTER] PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image PROGRAM_EXTENSION = .py Python Script png = image-to-gcode gif = image-to-gcode jpg = image-to-gcode py = python3 [RS274NGC] # File containing interpreter variables PARAMETER_FILE = hm2-stepper.var [EMCMOT] EMCMOT = motmod # Timeout for comm to emcmot, in seconds COMM_TIMEOUT = 1.0 # Servo task period, in nanoseconds SERVO_PERIOD = 4000000 [TASK] # Name of task controller program, e.g., milltask TASK = milltask # Cycle time, in seconds, that task controller will sleep between polls CYCLE_TIME = 0.010 [HAL] # The run script first uses halcmd to execute any HALFILE # files, and then to execute any individual HALCMD commands. # list of hal config files to run through halcmd # files are executed in the order in which they appear HALFILE = hm2-stepper-eth.hal # list of halcmd commands to execute # commands are executed in the order in which they appear #HALCMD = save neta [HALUI] #No Content [TRAJ] COORDINATES = X Y Z LINEAR_UNITS = mm ANGULAR_UNITS = degree # Ajuste seguro de velocidad inicial MAX_LINEAR_VELOCITY = 20 [EMCIO] # Name of IO controller program, e.g., io EMCIO = io # cycle time, in seconds CYCLE_TIME = 0.100 # tool table file TOOL_TABLE = tool.tbl [KINS] KINEMATICS = trivkins JOINTS = 3 [AXIS_X] MIN_LIMIT = -10000.0 MAX_LIMIT = 10000.0 MAX_VELOCITY = 20 MAX_ACCELERATION = 100 [JOINT_0] # # Step timing is 40 us steplen + 40 us stepspace # That gives 80 us step period = 12.5 KHz step freq # # Bah, even software stepping can handle that, hm2 doesn't buy you much with # such slow steppers. # # Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch # # This gives a maxvel of 12.5/1 = 12.5 ips # TYPE = LINEAR MAX_VELOCITY = 20 MAX_ACCELERATION = 100 # Set Stepgen max 20% higher than the axis STEPGEN_MAX_VEL = 24 STEPGEN_MAX_ACC = 120 BACKLASH = 0.01 # scale is 200 steps/rev * 5 revs/inch SCALE = -400 MIN_LIMIT = -10000.0 MAX_LIMIT = 10000.0 FERROR = 0.050 MIN_FERROR = 0.005 #HOME = 0.000 #HOME_OFFSET = 0.10 #HOME_SEARCH_VEL = 0.10 #HOME_LATCH_VEL = -0.01 #HOME_USE_INDEX = YES #HOME_IGNORE_LIMITS = YES HOME_SEQUENCE = 0 # these are in nanoseconds DIRSETUP = 200 DIRHOLD = 200 STEPLEN = 8000 STEPSPACE = 8000 [AXIS_Y] MIN_LIMIT = -10000.0 MAX_LIMIT = 10000.0 MAX_VELOCITY = 20 MAX_ACCELERATION = 100 [JOINT_1] TYPE = LINEAR MAX_VELOCITY = 20 MAX_ACCELERATION = 100 # Set Stepgen max 20% higher than the axis STEPGEN_MAX_VEL = 24 STEPGEN_MAX_ACC = 120 BACKLASH = 0.005 SCALE = -400 MIN_LIMIT = -10000.0 MAX_LIMIT = 10000.0 FERROR = 0.050 MIN_FERROR = 0.005 #HOME = 0.000 #HOME_OFFSET = 0.10 #HOME_SEARCH_VEL = 0.10 #HOME_LATCH_VEL = -0.01 #HOME_USE_INDEX = YES #HOME_IGNORE_LIMITS = YES HOME_SEQUENCE = 0 # these are in nanoseconds DIRSETUP = 200 DIRHOLD = 200 STEPLEN = 8000 STEPSPACE = 8000 [AXIS_Z] MIN_LIMIT = -10000.0 MAX_LIMIT = 10000.0 MAX_VELOCITY = 20 MAX_ACCELERATION = 100 [JOINT_2] TYPE = LINEAR MAX_VELOCITY = 20 MAX_ACCELERATION = 100 # Set Stepgen max 20% higher than the axis STEPGEN_MAX_VEL = 24 STEPGEN_MAX_ACC = 120 BACKLASH = 0.004 SCALE = 400 MIN_LIMIT = -10000.0 MAX_LIMIT = 10000.0 FERROR = 0.050 MIN_FERROR = 0.005 #HOME = 0.000 #HOME_OFFSET = 0.10 #HOME_SEARCH_VEL = 0.10 #HOME_LATCH_VEL = -0.01 #HOME_USE_INDEX = YES #HOME_IGNORE_LIMITS = YES HOME_SEQUENCE = 0 # these are in nanoseconds DIRSETUP = 200 DIRHOLD = 200 STEPLEN = 8000 STEPSPACE = 8000 [HOSTMOT2] DRIVER=hm2_eth BOARD_IP=192.168.1.121 BOARD=7i96s CONFIG="num_encoders=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=0000"

My HAL:

# HAL file for HostMot2 with 3 steppers # # Derived from Ted Hyde's original hm2-servo config # # Based up work and discussion with Seb & Peter & Jeff # GNU license references - insert here. www.linuxcnc.org # # # ######################################## # Firmware files are in /lib/firmware/hm2/7i43/ # Must symlink the hostmot2 firmware directory of sanbox to # /lib/firmware before running EMC2... # sudo ln -s $HOME/emc2-sandbox/src/hal/drivers/mesa-hostmot2/firmware /lib/firmware/hm2 # # See also: # <www.linuxcnc.org/docs/devel/html/man/man...ml#config%20modparam> # and wiki.linuxcnc.org/cgi-bin/emcinfo.pl?HostMot2 # # ##################################################################### # ################################### # Core EMC/HAL Loads # ################################### # kinematics loadrt [KINS]KINEMATICS # motion controller, get name and thread periods from ini file loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS # hostmot2 driver loadrt hostmot2 # load low-level driver loadrt [HOSTMOT2](DRIVER) board_ip=[HOSTMOT2](BOARD_IP) config=[HOSTMOT2](CONFIG) # load estop latch component loadrt estop_latch # ################################################ # THREADS # ################################################ addf hm2_[HOSTMOT2](BOARD).0.read servo-thread addf motion-command-handler servo-thread addf motion-controller servo-thread # revel in the free time here from not having que run PID addf hm2_[HOSTMOT2](BOARD).0.write servo-thread addf estop-latch.0 servo-thread # ###################################################### # Axis-of-motion Specific Configs (not the GUI) # ###################################################### # ################ # X [0] Axis # ################ # axis enable chain newsig emcmot.00.enable bit sets emcmot.00.enable FALSE net emcmot.00.enable <= joint.0.amp-enable-out net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable # position command and feedback net emcmot.00.pos-cmd <= joint.0.motor-pos-cmd net emcmot.00.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-cmd net motor.00.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb net motor.00.pos-fb => joint.0.motor-pos-fb # timing parameters setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirsetup [JOINT_0]DIRSETUP setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirhold [JOINT_0]DIRHOLD setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.steplen [JOINT_0]STEPLEN setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.stepspace [JOINT_0]STEPSPACE setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-scale [JOINT_0]SCALE setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxvel [JOINT_0]STEPGEN_MAX_VEL setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAX_ACC setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.step_type 0 # ################ # Y [1] Axis # ################ # axis enable chain newsig emcmot.01.enable bit sets emcmot.01.enable FALSE net emcmot.01.enable <= joint.1.amp-enable-out net emcmot.01.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.01.enable # position command and feedback net emcmot.01.pos-cmd <= joint.1.motor-pos-cmd net emcmot.01.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-cmd net motor.01.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-fb net motor.01.pos-fb => joint.1.motor-pos-fb # timing parameters setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirsetup [JOINT_1]DIRSETUP setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirhold [JOINT_1]DIRHOLD setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.steplen [JOINT_1]STEPLEN setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.stepspace [JOINT_1]STEPSPACE setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-scale [JOINT_1]SCALE setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxvel [JOINT_1]STEPGEN_MAX_VEL setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAX_ACC setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.step_type 0 # ################ # Z [2] Axis # ################ # axis enable chain newsig emcmot.02.enable bit sets emcmot.02.enable FALSE net emcmot.02.enable <= joint.2.amp-enable-out net emcmot.02.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.02.enable # position command and feedback net emcmot.02.pos-cmd <= joint.2.motor-pos-cmd net emcmot.02.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-cmd net motor.02.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-fb net motor.02.pos-fb => joint.2.motor-pos-fb # timing parameters setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirsetup [JOINT_2]DIRSETUP setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirhold [JOINT_2]DIRHOLD setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.steplen [JOINT_2]STEPLEN setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.stepspace [JOINT_2]STEPSPACE setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-scale [JOINT_2]SCALE setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAX_VEL setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAX_ACC setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.step_type 0 # # The Mesa AnyIO output pins can be in open-drain mode (drive low, float # high) or push/pull mode (drive low, drive high). # # When a logical output is 1 in open-drain mode, the FPGA lets the pin # float and it gets pulled high to +5V via a 10K resistor. # # When a logical output is 1 in push/pull mode, the FPGA pushes the pin # high but only to +3.3V. This is problematic on some kinds of inputs. # #setp hm2_[HOSTMOT2](BOARD).0.gpio.048.is_opendrain 1 #setp hm2_[HOSTMOT2](BOARD).0.gpio.049.is_opendrain 1 #setp hm2_[HOSTMOT2](BOARD).0.gpio.054.is_opendrain 1 #setp hm2_[HOSTMOT2](BOARD).0.gpio.055.is_opendrain 1 #setp hm2_[HOSTMOT2](BOARD).0.gpio.060.is_opendrain 1 #setp hm2_[HOSTMOT2](BOARD).0.gpio.061.is_opendrain 1 # ################################################## # Standard I/O Block - EStop, Etc # ################################################## # A basic estop loop that only includes the hostmot watchdog. net user-enable iocontrol.0.user-request-enable => estop-latch.0.reset net enable-latch estop-latch.0.ok-out => iocontrol.0.emc-enable-in net watchdog hm2_[HOSTMOT2](BOARD).0.watchdog.has_bit => estop-latch.0.fault-in # create signals for tool loading loopback net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed

(Use CL57T stepper drivers)

Thanks
  • jmp97
  • jmp97
16 Oct 2025 19:11
Replied by jmp97 on topic LinuxCNC installation + 7I96S

LinuxCNC installation + 7I96S

Category: Installing LinuxCNC

Ok, i see this:

halcmd show all *.tmax
Loaded HAL Components:
ID Type Name PID State

Component Pins:
Owner Type Dir Value Name

Pin Aliases:
Alias Original Name

Signals:
Type Value Name (linked to)

Parameters:
Owner Type Dir Value Name
33 s32 RW 1642 estop-latch.0.tmax
30 s32 RW 0 hm2_7i96s.0.read-request.tmax
30 s32 RW 2042995 hm2_7i96s.0.read.tmax
30 s32 RW 27254 hm2_7i96s.0.write.tmax
23 s32 RW 4820 motion-command-handler.tmax
23 s32 RW 18868 motion-controller.tmax
24 s32 RW 2081134 servo-thread.tmax

Parameter Aliases:
Alias Original Name

Exported Functions:
Owner CodeAddr Arg FP Users Name

Realtime Threads:
Period FP Name ( Time, Max-Time )

As for the controller, how do I install it?
  • rodw
  • rodw's Avatar
03 Oct 2025 10:43
Replied by rodw on topic External E-Stop

External E-Stop

Category: HAL Examples

my recommendation is to get it working in axis and then convert to gmocappy cos it does some funny things. If your config breaks on conversion, raise it with  gmocappy.

This is how I did it with a safety relay and an external latch button attached to the relay that
sends a signal to pin lcec.0.3.in-01 when the relay is enabled
this is inverted and sent to  the drives estop input on all drives.
The estop button is attached to the safety relay

github.com/rodw-au/vmnmillqt/blob/main/VMNmillQT.hal#L146

In this case no estop-latch is used,
Displaying 1 - 15 out of 35 results.
Time to create page: 2.637 seconds
Powered by Kunena Forum