Search Results (Searched for: estop_latch)
Configured offset in INI file not applied properly
Category: QtPyVCP
Removing the following lines from my custom.hal file:
loadrt estop_latch
loadrt oneshot count=2
addf estop-latch.0 servo-thread
addf oneshot.0 servo-thread
addf oneshot.1 servo-thread
setp oneshot.0.width 1
setp oneshot.1.width 1
#Automatically reset e-stop in UI and any fault codes on the drives
net reset-trig oneshot.0.in <= hm2_7i96s.0.7i84.0.0.input-00
net reset-ui oneshot.0.out => halui.estop.reset hm2_7i96s.0.7i84.0.0.output-11 hm2_7i96s.0.7i84.0.0.output-12 hm2_7i96s.0.7i84.0.0.output-13
#Latching e-stop function
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 <= hm2_7i96s.0.7i84.0.0.input-00-not
#When software e-stop is detected momentarily break e-stop circuit to trigger safety relay requiring external reset
net estop-relay-in oneshot.1.in <= estop-latch.0.fault-out
net estop-relay-out oneshot.1.out-not => hm2_7i96s.0.7i84.0.0.output-00
And restoring the following lines in my main configuration makes the error go away.
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
The big question now is how the e-stop code can break the initial initialization of the work coordinate offset.
I'll keep tracing this further down the chain, if anyone has any hints or ideas they are very welcome.
E-Stop ohne Meldung, Wie wird die Meldung aktiviert?
Category: Deutsch
Ich wollte noch einmal DANKE sagen und meinen aktuellen endgültigen Code dafür Pressenotizen.
# ################################################################################################ #
# Benachrichtigung bei Betätigung des Hardware-Notausschalters. #
# Beeinflusst nicht den Ablauf von LinuxCNC; dient ausschließlich der Benutzeranzeige. #
# ################################################################################################ #
loadrt message names=MSG_Notaus messages="Hardware: Not-Aus-Schalter wurde betätigt"
addf MSG_Notaus servo-thread
setp MSG_Notaus.edge 1
# Bedeutung:
# setp MSG_Notaus.edge 0 (aktiv wenn kein Signal)
# setp MSG_Notaus.edge 1 (aktiv wenn Signal)
net remote-estop0 estop-latch.0.fault-in <= hm2_7i95.0.inmux.00.input-00-not => MSG_Notaus.trigger
E-Stop ohne Meldung, Wie wird die Meldung aktiviert?
Category: Deutsch
Bedeutung:
setp MSG_Notaus.edge 0 (aktiv wenn kein Signal)
setp MSG_Notaus.edge 1 (aktiv wenn Signal)
HAL:
loadrt message names=MSG_Notaus messages="Achtung, Notaus wurde betätigt."
addf MSG_Notaus servo-thread
setp MSG_Notaus.edge 1
net remote-estop0 estop-latch.0.fault-in <= hm2_7i95.0.inmux.00.input-00-not => MSG_Notaus.trigger
E-Stop ohne Meldung, Wie wird die Meldung aktiviert?
Category: Deutsch
ja, du hast recht man siht es am Icon oben Links in der GUI, jedoch finde ich das sehr Klein und eine Meldung wie bei einem Referenzschalter würde sehr gut auffallen und wäre glaube ich für mich ganz gut.
Ich benutze die AXIS GUI.
Meine aktuelle HAL-Konfiguration
# E-Stop Chain
loadrt estop_latch count=1
addf estop-latch.0 servo-thread
# E-Stop Loop
net estop-loopin iocontrol.0.user-enable-out => estop-latch.0.ok-in
net estop-loopout estop-latch.0.ok-out => iocontrol.0.emc-enable-in
# E-Stop Reset
net estop-reset iocontrol.0.user-request-enable
net estop-reset => estop-latch.0.reset
net remote-estop0 estop-latch.0.fault-in <= hm2_7i95.0.inmux.00.input-00-not
Wenn ich das in der Dokumentation richtig verstanden habe: linuxcnc.org/docs/devel/html/man/man9/message.9.html
1) Muss ich eine PIN Message erstellen und dem die Nachricht mitgeben.
2) Die PIN Message in den Servo-Thread laden.
3) setp, ... ich verstehe nicht, was ich tun muss/soll.
4) PIN Message mit HAL PIN für Not-Aus verknüpfen
Im nicht-funktionalen Code würde das bei mir so aussehen.
loadrt message names=MSG_Notaus messages="Achtung, Notaus wurde betätigt."
addf MSG_Notaus servo-thread
step .... [keinen Plan, was ich da machen muss]
net ON_MSG_NOTAUS (hier muss ein Kabel vom Notaus hin, weiß aber nicht welches) MSG_Notaus.trigger
Ich komme mir etwas Hilflos vor, denn egal was ich bisher getestet habe ich bekomme immer nur Fehler.
Hat das schon mal jemand gemacht und weis, was ich da machen müsste?
Gruß Mücke
motion.digital-out-00 problem
Category: Advanced Configuration
The M64 goes to the input of an and2 plus feeds the oneshot/edge input and that output also goes to Estop_latch.N.reset input. Tie the Estop_latch.N.ok-in pin true in hal (or just leave it float).
Your actual Estop output goes to Estop_latch.N.fault-in pin assuming your Estop output is normally open or false when not-Estop. Estop_latch.ok-out goes to the other and2 input. The and2 output is goes to wherever your M64 output originally went.
In my head the way this works is that your Estop button will trip the Estop_latch and kill the final M64 output (after the and2). If you reset your actual Estop the latch will still be tripped and the final M64 output will not turn on again until it is turned off and on again which will pulse the oneshot output and reset the Estop latch.
Slightly convoluted approach but unless there's another latch component I think it's the best bet if the fix doesn't come soon enough.
Trajectory Planner using Ruckig Lib
Category: General LinuxCNC Questions
have you done any changes to break the standard /src build? i.e. does it work for you?
I have just spun up a net clean Debian12 VM, cloned the repo, covered all the dependencies and no joy per above.
Not sure what the issue really is. Appears to be trying to use a directory or open a file in a place it can't?
Reading 0/203 dependency files
Done reading dependencies
Reading 0/117 realtime dependency files
Done reading realtime dependencies
Creating mesa_uart.mak
Creating mesa_7i65.mak
Creating serport.mak
Creating xyzab_tdr_kins.mak
Creating xor2.mak
Creating xhc_hb04_util.mak
Creating wcomp.mak
Creating userkins.mak
Creating updown.mak
Creating tristate_float.mak
Creating tristate_bit.mak
Creating tp.mak
Creating ton.mak
Creating toggle2nist.mak
Creating toggle.mak
Creating tof.mak
Creating timedelta.mak
Creating timedelay.mak
Creating time.mak
Creating threadtest.mak
Creating thcud.mak
Creating thc.mak
Creating sum2.mak
Creating steptest.mak
Creating spindle_monitor.mak
Creating spindle.mak
Creating sphereprobe.mak
Creating simple_tp.mak
Creating sim_spindle.mak
Creating sim_parport.mak
Creating sim_matrix_kb.mak
Creating sim_home_switch.mak
Creating sim_axis_hardware.mak
Creating select8.mak
Creating scaled_s32_sums.mak
Creating scale.mak
Creating sample_hold.mak
Creating safety_latch.mak
Creating reset.mak
Creating raster.mak
Creating plasmac.mak
Creating orient.mak
Creating or2.mak
Creating oneshot.mak
Creating ohmic.mak
Creating offset.mak
Creating not.mak
Creating near.mak
Creating mux8.mak
Creating mux4.mak
Creating mux2.mak
Creating mux16.mak
Creating multiswitch.mak
Creating multiclick.mak
Creating mult2.mak
Creating moveoff.mak
Creating minmax.mak
Creating millturn.mak
Creating message.mak
Creating mesa_pktgyro_test.mak
Creating max31855.mak
Creating matrixkins.mak
Creating match8.mak
Creating maj3.mak
Creating lut5.mak
Creating lowpass.mak
Creating logic.mak
Creating lincurve.mak
Creating limit_axis.mak
Creating limit3.mak
Creating limit2.mak
Creating limit1.mak
Creating led_dim.mak
Creating latencybins.mak
Creating laserpower.mak
Creating knob2float.mak
Creating joyhandle.mak
Creating invert.mak
Creating integ.mak
Creating ilowpass.mak
Creating hypot.mak
Creating homecomp.mak
Creating histobins.mak
Creating gray2bin.mak
Creating gearchange.mak
Creating gantry.mak
Creating flipflop.mak
Creating filter_kalman.mak
Creating feedcomp.mak
Creating estop_latch.mak
Creating eoffset_per_angle.mak
Creating edge.mak
Creating div2.mak
Creating differential.mak
Creating demux.mak
Creating deadzone.mak
Creating ddt.mak
Creating dbounce.mak
Creating corexy_by_hal.mak
converting conv for conv_u64_u32.comp
Creating conv_u64_u32.mak
converting conv for conv_u64_s64.comp
Creating conv_u64_s64.mak
converting conv for conv_u64_s32.comp
Creating conv_u64_s32.mak
converting conv for conv_u64_float.comp
Creating conv_u64_float.mak
converting conv for conv_u64_bit.comp
Creating conv_u64_bit.mak
converting conv for conv_u32_u64.comp
Creating conv_u32_u64.mak
converting conv for conv_u32_s64.comp
Creating conv_u32_s64.mak
converting conv for conv_u32_s32.comp
Creating conv_u32_s32.mak
converting conv for conv_u32_float.comp
Creating conv_u32_float.mak
converting conv for conv_u32_bit.comp
Creating conv_u32_bit.mak
converting conv for conv_s64_u64.comp
Creating conv_s64_u64.mak
converting conv for conv_s64_u32.comp
Creating conv_s64_u32.mak
converting conv for conv_s64_s32.comp
Creating conv_s64_s32.mak
converting conv for conv_s64_float.comp
Creating conv_s64_float.mak
converting conv for conv_s64_bit.comp
Creating conv_s64_bit.mak
converting conv for conv_s32_u64.comp
Creating conv_s32_u64.mak
converting conv for conv_s32_u32.comp
Creating conv_s32_u32.mak
converting conv for conv_s32_s64.comp
Creating conv_s32_s64.mak
converting conv for conv_s32_float.comp
Creating conv_s32_float.mak
converting conv for conv_s32_bit.comp
Creating conv_s32_bit.mak
converting conv for conv_float_u64.comp
Creating conv_float_u64.mak
converting conv for conv_float_u32.comp
Creating conv_float_u32.mak
converting conv for conv_float_s64.comp
Creating conv_float_s64.mak
converting conv for conv_float_s32.comp
Creating conv_float_s32.mak
converting conv for conv_bit_u64.comp
Creating conv_bit_u64.mak
converting conv for conv_bit_u32.comp
Creating conv_bit_u32.mak
converting conv for conv_bit_s64.comp
Creating conv_bit_s64.mak
converting conv for conv_bit_s32.comp
Creating conv_bit_s32.mak
converting conv for conv_bit_float.comp
Creating conv_bit_float.mak
Creating constant.mak
Creating comp.mak
Creating clarkeinv.mak
Creating clarke3.mak
Creating clarke2.mak
Creating charge_pump.mak
Creating carousel.mak
Creating blend.mak
Creating bldc.mak
Creating bitwise.mak
Creating bitslice.mak
Creating biquad.mak
Creating bin2gray.mak
Creating axistest.mak
Creating anglejog.mak
Creating and2.mak
Creating abs_s64.mak
Creating abs_s32.mak
Creating abs.mak
Reading 0/203 dependency files
Done reading dependencies
Reading 0/264 realtime dependency files
Done reading realtime dependencies
Copying test input hal/components/lincurve.comp
Copying test input hal/components/logic.comp
Copying test input hal/components/bitslice.comp
sed hal/drivers/mesa_uart.comp -e "1 s/mesa_uart/mesa_uart_test/" > ../tests/halcompile/serial-out-of-tree/mesa_uart_test.comp
sed ../docs/src/hal/rand.comp -e "1 s/rand/rand_test/" > ../tests/halcompile/userspace/rand_test.comp
cp ../scripts/rtapi.conf ../tests/uspace/spawnv-root/rtapi.conf
Compiling libnml/inifile/inifile.cc
Creating shared library liblinuxcncini.so.0
ln -sf liblinuxcncini.so.0 ../lib/liblinuxcncini.so
Compiling libnml/inifile/inivar.cc
Linking inivar
/usr/bin/ld: cannot open output file ../bin/inivar: No such file or directory
collect2: error: ld returned 1 exit status
make: *** [libnml/inifile/Submakefile:24: ../bin/inivar] Error 1
The cmake issue is truely odd. The same gtk issue as before but the libgtk-3-dev is installed!
[ 68%] Built target halmeter
[ 70%] Built target halscope
[ 70%] Building C object classicladder/CMakeFiles/classicladder.dir/home/james/dev/grotius_linuxcnc/src/hal/classicladder/arrays.c.o
/home/james/dev/grotius_linuxcnc/src/hal/classicladder/arrays.c:52:10: fatal error: gtk/gtk.h: No such file or directory
52 | #include <gtk/gtk.h>
| ^~~~~~~~~~~
compilation terminated.
make[2]: *** [classicladder/CMakeFiles/classicladder.dir/build.make:90: classicladder/CMakeFiles/classicladder.dir/home/james/dev/grotius_linuxcnc/src/hal/classicladder/arrays.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2642: classicladder/CMakeFiles/classicladder.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
current folder:
/home/james/dev/grotius_linuxcnc
Optimum Optimill MH50V CNC conversion
Category: Milling Machines
Based on the feedback from PCW I reconfigured the servo drives and updated my INI file so that I now have 10000 steps per revolution of the servo drives and it really made things noticeable smoother which I had not expected.1000 steps per turn is 5u per step which is pretty crude
I would chose a number around 10x higher
Next up worked on the fault handling where I have wired up both the servo ready (SRDY) and alarm (ALRM) signals to inputs on the 7i84.
However I realized now that the servo ready signal is most likely redundant as the servo ready and alarm pins are essentially the same signal inverted. My thought here was that the alarm signal was active high which would mean that if the circuit breaker to the servo drive triggered I wouldn't get any fault. But it turned out that the alarm signal is actually active low so if the power is cut LinuxCNC triggers a fault anyway.
So in the end all I had to add to my custom.hal was the following three lines:
#Servo drive fault handling
net x-drive-fault => joint.0.amp-fault-in <= hm2_7i96s.0.7i84.0.0.input-16-not
net y-drive-fault => joint.1.amp-fault-in <= hm2_7i96s.0.7i84.0.0.input-17-not
net z-drive-fault => joint.2.amp-fault-in <= hm2_7i96s.0.7i84.0.0.input-18-not
After that I turned my attention to the alarm reset (ARST) signal from the Mesa 7i84 to the drives so that I can clear any fault codes on the drives without power cycling the whole control cabinet. I ended up just piggybacking the reset signal to the oneshot of the e-stop reset signal already resent in custom.hal file. So if there is a fault LinuxCNC stops and I can easily clear the codes by just triggering and resetting the e-stop. The parts in bold in snippet below is what I added to the HAL file.
With e-stop, steps and alarms sorted I became a little more confident in starting to push the servos a bit so I hooked up the physical buttons for jogging, run/step, pause/resume.loadrt estop_latch
loadrt oneshot count=2
addf estop-latch.0 servo-thread
addf oneshot.0 servo-thread
addf oneshot.1 servo-thread
setp oneshot.0.width 1
setp oneshot.1.width 1
#Automatically reset e-stop in UI and any fault codes on the drives
net reset-trig oneshot.0.in <= hm2_7i96s.0.7i84.0.0.input-00
net reset-ui oneshot.0.out => halui.estop.reset hm2_7i96s.0.7i84.0.0.output-11 hm2_7i96s.0.7i84.0.0.output-12 hm2_7i96s.0.7i84.0.0.output-13
#Latching e-stop function
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 <= hm2_7i96s.0.7i84.0.0.input-00-not
#When software e-stop is detected momentarily break e-stop circuit to trigger safety relay requiring external reset
net relay-in oneshot.1.in <= estop-latch.0.fault-out
net relayout oneshot.1.out-not => hm2_7i96s.0.7i84.0.0.output-00
It was at this time that I found the setting on the Dymo machine for font size allowing me to create much smaller heat shrink labels .
Getting the run/step, pause/resume to work using the HAL code provided by BigJohnT here was a breeze and worked on the first attempt. Big thanks to John for that code as it would have taken me a considerable amount of time to write it from scratch. In order to keep my custom.hal file as readable as possible I opted to put John's code in a separate run_pause.hal file which I then included in my custom.hal file using the below.
source run_pause.hal
The jogging however proved a little bit more tricky. I had the HAL pins set correctly and I could see the inputs and HAL pins being triggered but there was no movement of the servos when I pressed the buttons. I read that the halui.axis.X.plus/halui.axis.X.minus pins only worked after the machine had been homed but homing didn't help either. After a bit more reading and I found out that the jog speed and increment in the GUI is separate from the physical jog buttons (which makes sense for those with physical jog speed select switches) so setting the parameter below was required to get things moving.
I found a code example here on the forum by Nebur for synchronizing the physical jog speed with the setting in the Axis GUI. My plan is to use Probe Basic so I hope something similar can realized for the GUI too. If anyone has any input here it would be much appreciatedsetp halui.axis.jog-speed 100
Optimum Optimill MH50V CNC conversion
Category: Milling Machines
My setup now behaves as follows:
- If LinuxCNC is not running the safety relay is stuck in e-stop and cannot be reset
- E-stop on the safety relay can be triggered both using the physical buttons and using software
- The only way to reset the e-stop is using the physical button
Here is the HAL code is added to the custom.hal file:
loadrt estop_latch
loadrt oneshot count=2
addf estop-latch.0 servo-thread
addf oneshot.0 servo-thread
addf oneshot.1 servo-thread
setp oneshot.0.width 1
setp oneshot.1.width 1
#Automatic e-stop reset in UI
net reset-trig oneshot.0.in <= hm2_7i96s.0.7i84.0.0.input-00
net reset-ui oneshot.0.out => halui.estop.reset
#Latching e-stop function
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 <= hm2_7i96s.0.7i84.0.0.input-00-not
#When e-stop is detected momentarily break e-stop circuit to trigger safety relay requiring external reset
net relay-in oneshot.1.in <= estop-latch.0.fault-out
net relayout oneshot.1.out-not => hm2_7i96s.0.7i84.0.0.output-00
I removed the following lines from the HAL file generated by PNCconf:
# --- ESTOP-EXT ---
net estop-ext <= hm2_7i96s.0.7i84.0.0.input-00
The trick to make this work which took a while to figure out was to use an inverted output on the oneshot component (oneshot.x.out-not). That enables me to use an output on the Mesa 7i84 board to power the e-stop loop which goes to the safety relay. When an e-stop is triggered by LinuxCNC it momentarily breaks the e-stop loop causing the safety relay to trigger just as if I had pressed a physical button. It also has the added bonus of preventing the e-stop from being reset if LinuxCNC is not running.
dpkg-shlibdeps: Error: no dependency information found for /usr/lib/libmodbus.so
Category: Installing LinuxCNC
dpkg-shlibdeps: Error: no dependency information found for /usr/lib/libmodbus.so.5 (used by debian/linuxcnc-uspace/usr/bin/vfs11_vfd)
but not find any docs about libmodbus to install on mint 19.03 .... and if build a new version of libmodbus from libmodus git repo, not know where put it for make happy "dpkg-buildpackage -b -uc" command .... run in place install work perfect.
dpkg-shlibdeps: Avviso: package could avoid a useless dependency if debian/linuxcnc-uspace-xenomai/usr/lib/libuspace-xenomai.so.0 was not linked against libxenomai.so.0 (it uses none of the library's symbols)
dpkg-shlibdeps: Errore: no dependency information found for /usr/lib/libmodbus.so.5 (used by debian/linuxcnc-uspace/usr/bin/vfs11_vfd)
Hint: check if the library actually comes from a package.
dh_shlibdeps: dpkg-shlibdeps -Tdebian/linuxcnc-uspace.substvars -l/debian/linuxcnc-uspace/usr/lib debian/linuxcnc-uspace/usr/bin/halui debian/linuxcnc-uspace/usr/bin/halcmd debian/linuxcnc-uspace/usr/bin/linuxcnc_module_helper debian/linuxcnc-uspace/usr/bin/halmeter debian/linuxcnc-uspace/usr/bin/svd-ps_vfd debian/linuxcnc-uspace/usr/bin/panelui debian/linuxcnc-uspace/usr/bin/io debian/linuxcnc-uspace/usr/bin/vfdb_vfd debian/linuxcnc-uspace/usr/bin/thermistor debian/linuxcnc-uspace/usr/bin/mb2hal debian/linuxcnc-uspace/usr/bin/xhc-hb04 debian/linuxcnc-uspace/usr/bin/halscope debian/linuxcnc-uspace/usr/bin/schedrmt debian/linuxcnc-uspace/usr/bin/hy_gt_vfd debian/linuxcnc-uspace/usr/bin/linuxcncrsh debian/linuxcnc-uspace/usr/bin/halstreamer debian/linuxcnc-uspace/usr/bin/shuttle debian/linuxcnc-uspace/usr/bin/halsampler debian/linuxcnc-uspace/usr/bin/wj200_vfd debian/linuxcnc-uspace/usr/bin/linuxcncsvr debian/linuxcnc-uspace/usr/bin/hy_vfd debian/linuxcnc-uspace/usr/bin/rtapi_app debian/linuxcnc-uspace/usr/bin/genserkins debian/linuxcnc-uspace/usr/bin/linuxcnclcd debian/linuxcnc-uspace/usr/bin/gs2_vfd debian/linuxcnc-uspace/usr/bin/inivar debian/linuxcnc-uspace/usr/bin/milltask debian/linuxcnc-uspace/usr/bin/halrmt debian/linuxcnc-uspace/usr/bin/rs274 debian/linuxcnc-uspace/usr/bin/vfs11_vfd debian/linuxcnc-uspace/usr/bin/classicladder debian/linuxcnc-uspace/usr/bin/iov2 debian/linuxcnc-uspace/usr/bin/motion-logger debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/maj3.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/and2.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/hal_lib.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/hm2_7i43.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/toggle.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/debounce.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/lcd.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/streamer.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/near.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/weighted_sum.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/conv_bit_u32.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/scope_rt.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/modmath.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/orient.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/integ.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/abs_s32.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/simple_tp.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/hal_parport.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/corexy_by_hal.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/spindle_monitor.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/rotarydeltakins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/logic.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/gray2bin.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/hal_ppmc.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/match8.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/hm2_test.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/boss_plc.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/carousel.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/threads.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/mesa_pktgyro_test.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/thc.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/conv_u32_float.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/scarakins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/genhexkins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/hostmot2.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/flipflop.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/corexykins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/eoffset_per_angle.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/bldc.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/stepgen.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/moveoff.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/conv_bit_float.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/conv_float_u32.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/clarke3.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/threadtest.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/scarakins10.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/5axiskins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/biquad.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/bitslice.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/clarkeinv.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/sim_matrix_kb.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/lincurve.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/ilowpass.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/lut5.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/mux4.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/encoder.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/bldc_hall3.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/sum2.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/mesa_7i65.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/setsserial.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/ddt.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/scorbot-kins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/counter.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/edge.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/sampler.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/timedelta.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/multiswitch.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/minmax.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/rosekins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/toggle2nist.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/scarakins4.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/siggen.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/bitwise.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/joyhandle.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/at_pid.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/bin2gray.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/hal_pi_gpio.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/conv_float_s32.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/xyzac-trt-kins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/axistest.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/offset.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/not.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/lowpass.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/limit1.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/limit2.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/updown.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/hypot.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/conv_u32_bit.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/motmod.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/constant.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/knob2float.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/mux16.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/comp.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/hm2_7i90.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/thcud.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/tristate_float.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/classicladder_rt.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/pentakins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/hm2_spi.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/mult2.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/select8.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/watchdog.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/tripodkins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/abs.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/encoder_ratio.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/clarke2.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/timedelay.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/feedcomp.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/conv_s32_u32.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/differential.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/demux.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/estop_latch.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/sim_encoder.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/sim_axis_hardware.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/rotatekins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/scale.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/tristate_bit.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/mux2.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/charge_pump.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/pwmgen.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/serport.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/conv_s32_float.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/oneshot.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/sample_hold.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/conv_u32_s32.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/maxkins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/limit3.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/or2.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/xyzbc-trt-kins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/ohmic.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/matrix_kb.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/hm2_rpspi.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/gearchange.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/sim_home_switch.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/sim_parport.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/steptest.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/scarakins11.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/blend.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/max31855.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/invert.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/deadzone.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/mux_generic.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/conv_s32_bit.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/conv_bit_s32.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/multiclick.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/histobins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/hm2_eth.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/sphereprobe.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/wcomp.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/hal_gm.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/pumakins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/gantry.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/genserkins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/hal_bb_gpio.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/latencybins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/xhc_hb04_util.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/sim_spindle.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/supply.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/trivkins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/time.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/plasmac.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/lineardeltakins.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/hm2_pci.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/mux8.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/message.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/xor2.so debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/pid.so debian/linuxcnc-uspace/usr/lib/libpyplugin.so.0 debian/linuxcnc-uspace/usr/lib/libcanterp.so.0 debian/linuxcnc-uspace/usr/lib/liblinuxcnchal.so.0 debian/linuxcnc-uspace/usr/lib/tcltk/linuxcnc/hal.so debian/linuxcnc-uspace/usr/lib/tcltk/linuxcnc/linuxcnc.so debian/linuxcnc-uspace/usr/lib/librs274.so.0 debian/linuxcnc-uspace/usr/lib/libnml.so.0 debian/linuxcnc-uspace/usr/lib/liblinuxcncini.so.0 debian/linuxcnc-uspace/usr/lib/python2.7/dist-packages/gcode.x86_64-linux-gnu.so debian/linuxcnc-uspace/usr/lib/python2.7/dist-packages/_togl.x86_64-linux-gnu.so debian/linuxcnc-uspace/usr/lib/python2.7/dist-packages/minigl.x86_64-linux-gnu.so debian/linuxcnc-uspace/usr/lib/python2.7/dist-packages/linuxcnc.x86_64-linux-gnu.so debian/linuxcnc-uspace/usr/lib/python2.7/dist-packages/_hal.x86_64-linux-gnu.so debian/linuxcnc-uspace/usr/lib/python2.7/dist-packages/rotarydeltakins.x86_64-linux-gnu.so debian/linuxcnc-uspace/usr/lib/python2.7/dist-packages/lineardeltakins.x86_64-linux-gnu.so debian/linuxcnc-uspace/usr/lib/libposemath.so.0 returned exit code 255
dh_shlibdeps: Aborting due to earlier error
debian/rules:102: recipe for target 'binary-arch' failed
make: *** [binary-arch] Error 2
dpkg-buildpackage: Errore: fakeroot debian/rules binary subprocess returned exit status 2
[/spoiler]
How to trigger a specific behavior when E-stop is pressed?
Category: HAL
I have a problem with assigning specific behaviors to e-stops (perhaps it is due to the lack of knowledge of English).
It controls the actuators with an M code, e.g. M110 Extend the actuator M120 stop M130 retract the actuator.
for this purpose, the M110 files etc. contain commands that activate specific LPT pins, e.g.
#!/bin/sh halcmd setp parport.1.pin-04-out True exit 0
parport.1.pin-04-out False
How to do it?
I was advised to estop_latch linuxcnc.org/docs/html/man/man9/estop_latch.9.html but I have no idea how to connect it.
Does anyone have any example of using this function in a similar way? or maybe write how it should look like in HAL for it to work?
What Do I Need for ESTOP and Safety Circuitry?
Category: Basic Configuration
There is a component called estop-latch which can be used to build the estop chain in software by using multiple instances of it. Its not well documented but works well but its probably not compliant in a commercial sense. But it worked fine for me.
This video explains this in more detail.
forum.linuxcnc.org/24-hal-components/379...w-things-work-series
In a commercial setting, you should be using a standards compliant safety switch. They add a lot of complexity to the circuitry as each component in the circuit has dual redundancy.
7i92 and G540 combination?
Category: Basic Configuration
Yes the motors spin free with the estop latched and unlatched....
For the hmid i get:
and for the uname I get:
7i92 and G540 combination?
Category: Basic Configuration
In that time i have replaced the computer i have been using with a new NUC/Router from aliexpress...
I went with a N3050 NUC with dual Realtek NICs which has DDR3 ram and a mSata SSD.
I would prefer a newer one but I found the ones with NVME had intel NICs which were incompatible.
This swap has eradicated the errors I was having with an old lga775 motherboard which was having an Atheros NIC...
However I still have a problem with the charge-pump (which I can't seem to latch) and so I have disabled them, on both the g540 and breakout boards.
Also I can't seem to get the motors moving, There was a brief point in time in which a had a jog, but not on this computer.
The estop latches, and I can jog (but without motor movement)...
here are the hal and ini files... I hope you can pick something out...
Hostmot2 firmware
Category: PathPilot
########################################################################
#
# Tormach xsTECH router HAL config for Torstep control board
#
loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES num_dio=64 num_aio=64
loadrt hostmot2
loadrt [HOSTMOT2]DRIVER [HOSTMOT2]DRIVER_PARAMS
loadrt estop_latch
loadrt toggle count=1
loadrt not names=prog-not-idle
loadrt gearchange count=1
loadrt xor2 names=probe-active-hi-lo
loadrt debounce cfg=5
loadrt pid num_chan=4
loadrt tormachspindle names=tormachspindle
loadrt and2 names=enable-limit-z,probe-enable-input,door-limit-in,y-axis-lim-sw-and2,fake-door-lock,limit-x,limit-y,limit-z,fake-probe2
loadrt lut5 names=door-limit-x-lut,door-limit-y-lut
loadrt dspin
New project, litehm2: a hostmot2 port to linsn rv901t
Category: Driver Boards
The bit firmware can work normally, and the tool for modifying the circuit board is still on the way, so no further testing is possible
cnc@debian:~/linuxcnc/configs/litehm2_6040$ halrun -I -V HAL.hal
HAL: initializing hal_lib
HAL: initializing component 'halcmd2749'
smalloc_dn: shmem available 1048184
HAL: component 'halcmd2749' initialized, ID = 02
HAL: removing component 02
HAL: releasing RTAPI resources
HAL: component 02 removed, name = 'halcmd2749'
HAL: initializing hal_lib
/usr/bin/rtapi_app load hostmot2
HAL: initializing component 'halcmd2749'
smalloc_dn: shmem available 1048184
HAL: component 'halcmd2749' initialized, ID = 02
Note: Using POSIX realtime
hm2: loading Mesa HostMot2 driver version 0.15
HAL.hal:2: Component 'hostmot2' ready
HAL.hal:2: Program '/usr/bin/rtapi_app' started
smalloc_up: shmem available 1048071
HAL.hal:2: Realtime module 'hostmot2' loaded
HAL: removing component 02
HAL: releasing RTAPI resources
HAL: component 02 removed, name = 'halcmd2749'
HAL: initializing hal_lib
/usr/bin/rtapi_app load hm2_eth board_ip="10.10.10.10" config=" num_encoders=6 num_pwmgens=2 num_stepgens=6 sserial_port_0=0000xx"
HAL: initializing component 'halcmd2749'
HAL: component 'halcmd2749' initialized, ID = 06
hm2_eth: loading Mesa AnyIO HostMot2 ethernet driver version 0.2
hm2_eth: 10.10.10.10: INFO: Hardware address (MAC): 24:1f:83:30:66:de
hm2_eth: Unrecognized ethernet board found: litehm2 -- port names will be wrong
hm2_eth: discovered litehm2
hm2/hm2_lite.0: Low Level init 0.15
hm2/hm2_lite.0: 72 I/O Pins used:
hm2/hm2_lite.0: IO Pin 000 (??-01): IOPort
hm2/hm2_lite.0: IO Pin 001 (??-03): IOPort
hm2/hm2_lite.0: IO Pin 002 (??-05): IOPort
hm2/hm2_lite.0: IO Pin 003 (??-07): IOPort
hm2/hm2_lite.0: IO Pin 004 (??-09): IOPort
hm2/hm2_lite.0: IO Pin 005 (??-11): IOPort
hm2/hm2_lite.0: IO Pin 006 (??-13): IOPort
hm2/hm2_lite.0: IO Pin 007 (??-15): IOPort
hm2/hm2_lite.0: IO Pin 008 (??-17): IOPort
hm2/hm2_lite.0: IO Pin 009 (??-19): IOPort
hm2/hm2_lite.0: IO Pin 010 (??-21): IOPort
hm2/hm2_lite.0: IO Pin 011 (??-23): IOPort
hm2/hm2_lite.0: IO Pin 012 (??-25): IOPort
hm2/hm2_lite.0: IO Pin 013 (??-27): IOPort
hm2/hm2_lite.0: IO Pin 014 (??-29): IOPort
hm2/hm2_lite.0: IO Pin 015 (??-31): IOPort
hm2/hm2_lite.0: IO Pin 016 (??-33): IOPort
hm2/hm2_lite.0: IO Pin 017 (??-35): IOPort
hm2/hm2_lite.0: IO Pin 018 (??-37): IOPort
hm2/hm2_lite.0: IO Pin 019 (??-39): IOPort
hm2/hm2_lite.0: IO Pin 020 (??-41): IOPort
hm2/hm2_lite.0: IO Pin 021 (??-43): IOPort
hm2/hm2_lite.0: IO Pin 022 (??-45): IOPort
hm2/hm2_lite.0: IO Pin 023 (??-47): IOPort
hm2/hm2_lite.0: IO Pin 024 (??-01): IOPort
hm2/hm2_lite.0: IO Pin 025 (??-03): IOPort
hm2/hm2_lite.0: IO Pin 026 (??-05): StepGen #0, pin Step (Output)
hm2/hm2_lite.0: IO Pin 027 (??-07): StepGen #0, pin Step (Output)
hm2/hm2_lite.0: IO Pin 028 (??-09): StepGen #0, pin Direction (Output)
hm2/hm2_lite.0: IO Pin 029 (??-11): StepGen #0, pin Direction (Output)
hm2/hm2_lite.0: IO Pin 030 (??-13): StepGen #1, pin Step (Output)
hm2/hm2_lite.0: IO Pin 031 (??-15): StepGen #1, pin Step (Output)
hm2/hm2_lite.0: IO Pin 032 (??-17): StepGen #1, pin Direction (Output)
hm2/hm2_lite.0: IO Pin 033 (??-19): StepGen #1, pin Direction (Output)
hm2/hm2_lite.0: IO Pin 034 (??-21): StepGen #2, pin Step (Output)
hm2/hm2_lite.0: IO Pin 035 (??-23): StepGen #2, pin Step (Output)
hm2/hm2_lite.0: IO Pin 036 (??-25): StepGen #2, pin Direction (Output)
hm2/hm2_lite.0: IO Pin 037 (??-27): StepGen #2, pin Direction (Output)
hm2/hm2_lite.0: IO Pin 038 (??-29): StepGen #3, pin Step (Output)
hm2/hm2_lite.0: IO Pin 039 (??-31): StepGen #3, pin Step (Output)
hm2/hm2_lite.0: IO Pin 040 (??-33): StepGen #3, pin Direction (Output)
hm2/hm2_lite.0: IO Pin 041 (??-35): StepGen #3, pin Direction (Output)
hm2/hm2_lite.0: IO Pin 042 (??-37): StepGen #4, pin Step (Output)
hm2/hm2_lite.0: IO Pin 043 (??-39): StepGen #4, pin Step (Output)
hm2/hm2_lite.0: IO Pin 044 (??-41): StepGen #4, pin Direction (Output)
hm2/hm2_lite.0: IO Pin 045 (??-43): StepGen #4, pin Direction (Output)
hm2/hm2_lite.0: IO Pin 046 (??-45): StepGen #5, pin Step (Output)
hm2/hm2_lite.0: IO Pin 047 (??-47): StepGen #5, pin Step (Output)
hm2/hm2_lite.0: IO Pin 048 (??-01): StepGen #5, pin Direction (Output)
hm2/hm2_lite.0: IO Pin 049 (??-03): StepGen #5, pin Direction (Output)
hm2/hm2_lite.0: IO Pin 050 (??-05): PWMGen #0, pin Out0 (PWM or Up) (Output)
hm2/hm2_lite.0: IO Pin 051 (??-07): PWMGen #0, pin Out1 (Dir or Down) (Output)
hm2/hm2_lite.0: IO Pin 052 (??-09): PWMGen #1, pin Out0 (PWM or Up) (Output)
hm2/hm2_lite.0: IO Pin 053 (??-11): PWMGen #1, pin Out1 (Dir or Down) (Output)
hm2/hm2_lite.0: IO Pin 054 (??-13): Encoder #0, pin A (Input)
hm2/hm2_lite.0: IO Pin 055 (??-15): Encoder #0, pin B (Input)
hm2/hm2_lite.0: IO Pin 056 (??-17): Encoder #0, pin Index (Input)
hm2/hm2_lite.0: IO Pin 057 (??-19): Encoder #1, pin A (Input)
hm2/hm2_lite.0: IO Pin 058 (??-21): Encoder #1, pin B (Input)
hm2/hm2_lite.0: IO Pin 059 (??-23): Encoder #1, pin Index (Input)
hm2/hm2_lite.0: IO Pin 060 (??-25): Encoder #2, pin A (Input)
hm2/hm2_lite.0: IO Pin 061 (??-27): Encoder #2, pin B (Input)
hm2/hm2_lite.0: IO Pin 062 (??-29): Encoder #2, pin Index (Input)
hm2/hm2_lite.0: IO Pin 063 (??-31): Encoder #3, pin A (Input)
hm2/hm2_lite.0: IO Pin 064 (??-33): Encoder #3, pin B (Input)
hm2/hm2_lite.0: IO Pin 065 (??-35): Encoder #3, pin Index (Input)
hm2/hm2_lite.0: IO Pin 066 (??-37): Encoder #4, pin A (Input)
hm2/hm2_lite.0: IO Pin 067 (??-39): Encoder #4, pin B (Input)
hm2/hm2_lite.0: IO Pin 068 (??-41): Encoder #4, pin Index (Input)
hm2/hm2_lite.0: IO Pin 069 (??-43): Encoder #5, pin A (Input)
hm2/hm2_lite.0: IO Pin 070 (??-45): Encoder #5, pin B (Input)
hm2/hm2_lite.0: IO Pin 071 (??-47): Encoder #5, pin Index (Input)
hm2/hm2_lite.0: registered
HAL.hal:3: Component 'hm2_eth' ready
HAL.hal:3: Program '/usr/bin/rtapi_app' started
smalloc_up: shmem available 971164
HAL.hal:3: Realtime module 'hm2_eth' loaded
HAL.hal:4: setting parameter 'hm2_lite.0.watchdog.timeout_ns' to '5000000'
HAL.hal:4: Parameter 'hm2_lite.0.watchdog.timeout_ns' set to 5000000
HAL: removing component 06
HAL: releasing RTAPI resources
HAL: component 06 removed, name = 'halcmd2749'
HAL: initializing hal_lib
/usr/bin/rtapi_app load pid names=pid.x,pid.y,pid.z,pid.s
HAL: initializing component 'halcmd2749'
HAL: component 'halcmd2749' initialized, ID = 09
HAL.hal:5: Component 'pid' ready
HAL.hal:5: Program '/usr/bin/rtapi_app' started
smalloc_up: shmem available 952673
HAL.hal:5: Realtime module 'pid' loaded
HAL: removing component 09
HAL: releasing RTAPI resources
HAL: component 09 removed, name = 'halcmd2749'
HAL: initializing hal_lib
/usr/bin/rtapi_app load mux4
HAL: initializing component 'halcmd2749'
HAL: component 'halcmd2749' initialized, ID = 12
HAL.hal:6: Component 'mux4' ready
HAL.hal:6: Program '/usr/bin/rtapi_app' started
smalloc_up: shmem available 951295
HAL.hal:6: Realtime module 'mux4' loaded
HAL: removing component 12
HAL: releasing RTAPI resources
HAL: component 12 removed, name = 'halcmd2749'
HAL: initializing hal_lib
/usr/bin/rtapi_app load mult2
HAL: initializing component 'halcmd2749'
HAL: component 'halcmd2749' initialized, ID = 15
HAL.hal:7: Component 'mult2' ready
HAL.hal:7: Program '/usr/bin/rtapi_app' started
smalloc_up: shmem available 950383
HAL.hal:7: Realtime module 'mult2' loaded
HAL: removing component 15
HAL: releasing RTAPI resources
HAL: component 15 removed, name = 'halcmd2749'
HAL: initializing hal_lib
HAL: initializing component 'halcmd2749'
HAL: component 'halcmd2749' initialized, ID = 18
/usr/bin/rtapi_app load estop_latch
HAL.hal:8: Component 'estop_latch' ready
HAL.hal:8: Program '/usr/bin/rtapi_app' started
smalloc_up: shmem available 949099
HAL.hal:8: Realtime module 'estop_latch' loaded
HAL: removing component 18
HAL: releasing RTAPI resources
HAL: component 18 removed, name = 'halcmd2749'
HAL: initializing hal_lib
/usr/bin/rtapi_app load or2 count=3
HAL: initializing component 'halcmd2749'
HAL: component 'halcmd2749' initialized, ID = 21
HAL.hal:9: Component 'or2' ready
HAL.hal:9: Program '/usr/bin/rtapi_app' started
smalloc_up: shmem available 946615
HAL.hal:9: Realtime module 'or2' loaded
HAL: adding function 'hm2_lite.0.read' to thread 'servo-thread'
HAL: ERROR: thread 'servo-thread' not found
HAL.hal:11: addf failed
HAL: removing component 21
HAL: releasing RTAPI resources
HAL: component 21 removed, name = 'halcmd2749'