Search Results (Searched for: )

  • MirkoCNC
30 Oct 2026 06:43
Thanks a lot for your immediate help! That has solved the problem and I can go ahead with the rest of the project.
By the way, I have changed a bit the PID parameters, which has improved the situation, but did not solved it.
FF1 = 1
FF=0.02
MAXOUTPUT=30000
(1000 rpm and high acceleration of 5500 works now)
  • rodw
30 Oct 2026 00:19
Replied by rodw on topic Lenovo T490 Laptop Tuning issues
16 usec is fine but 2067 usec isn't. I would use a different PC but try the -nobase switch Tommy and I shared first.
  • rodw
30 Oct 2026 00:10
Replied by rodw on topic AMSAMOTION IO module
Great. Looks like you could break this up with a complex entry for each input
          <pdoEntry idx="6000" subIdx="01" bitLen="16" halPin="DI-bit" halType="bit"/>

eg
Code:
<pdoEntry idx="60FD" subIdx="0" bitLen="32" halType="complex"> <complexEntry bitLen="1" halPin="CW-limit" halType="bit"/> <complexEntry bitLen="1" halPin="CCW-limit" halType="bit"/> <complexEntry bitLen="1" halPin="in-home" halType="bit"/> <complexEntry bitLen="13"/> <complexEntry bitLen="1" halPin="in-1" halType="bit"/> <complexEntry bitLen="1" halPin="in-2" halType="bit"/> <complexEntry bitLen="1" halPin="in-3" halType="bit"/> <complexEntry bitLen="1" halPin="in-4" halType="bit"/> <complexEntry bitLen="1" halPin="in-5" halType="bit"/> <complexEntry bitLen="1" halPin="in-6" halType="bit"/> <complexEntry bitLen="10"/> </pdoEntry>
 
  • rodw
30 Oct 2026 00:05
Replied by rodw on topic Ethercat drive configuration woes

So tried lcec.activate, but that results in an error that activate isn't a valid command.
 
Should be:
Code:
initf lcec.activate servo-thread
YOu need to have the latest ethercat driver installed together with ethercat from that repo not from iGh
  • rodw
30 Oct 2026 00:02
Replied by rodw on topic Ethercat drive configuration woes
Here you go
ethercat_conf.xml = my known good config for Lichuan 4 axis open loop drive. Yours should be the same, just one less axis
ethercat_gen.xml is the lcec_configgen generated file. nice and short. When you get your xml working, raise an issue at  github.com/linuxcnc-ethercat

Reference this earlier issue #474  github.com/linuxcnc-ethercat/linuxcnc-ethercat/issues/474

install just your Drive on the ethercat bus and share these files:
ethercat pdos > pdos.txt
ethercat sdos > sdos.txt
ethercat slaves -v > lichuan.txt

Hopefully grandixximo will add support for your drive too. I think it probbaly just needs a tweak to the driver to support < 4 axes
  • tommylight
29 Oct 2026 21:27
Replied by tommylight on topic Lenovo T490 Laptop Tuning issues
Code:
latency-histogram --nobase --sbinsize 1000 --show
  • CNCJIM
29 Oct 2026 20:55
Replied by CNCJIM on topic Remora with STM32H753ZI
I was just getting an urge to buy a Flexi-Hal Expatria Technologies card but this might be a better choice over a STM32F446. BigTreeTech Scyllia V.1 - correct - is there a github for the software?
  • FabLabRacing
29 Oct 2026 20:50
I would expect FabScan to run on a Pi 5 with 8GB RAM without any major performance issues.

FabScan is written primarily in Python and uses OpenCV for camera processing. LinuxCNC handles the actual motion control, so FabScan itself doesn't have any hard real-time requirements.

That said, I haven't tested it on ARM hardware yet. All my development and physical testing has been on a Dell OptiPlex running LinuxCNC with Mesa Ethernet hardware.

There may be some minor adjustments needed for Python dependencies and CPU affinity, since my current launch configuration is tuned specifically for that machine.

If you're interested in trying it, I'd be happy to help work through any compatibility issues. It would actually be very useful to have someone testing on different hardware.
  • CNCJIM
29 Oct 2026 20:30
Replied by CNCJIM on topic Lenovo T490 Laptop Tuning issues
I have documented most of my prior setup. I will look for the live ISO images on the dowload page - I have a ventoy drive - its an easy thing to do.
so 2.8.4 first then.
  • mwc
29 Oct 2026 20:29
Replied by mwc on topic Ethercat drive configuration woes
Yes.

The only thing I changed to test that XML snippet, was to remove the Z-axis stuff from the hal file, then paste that snippet in to replace the existing Z slave (slave 2) information.
The names used in my handcoded XML vary from the lcec_configgen names, so I can't do a straightforward copy and paste, but just running the XML with no hal parameter linking is enough to establish if the XML is good.

Ultimately if the XML is good, the ethercat slaves should be configured, even if hal makes no use of them.

It seems to be an error with how the ethercat PDOs are defined, but I've so far not found any kind of definitive guide about syncmanagers/PDOs, and what is expected.
  • CNCJIM
29 Oct 2026 20:22
Replied by CNCJIM on topic Lenovo T490 Laptop Tuning issues
The latency-histogram is not a good one -   It is from today after I turned on the wifi adapter and Thunderbird driver.   I had those shut off and the Ethernet as well in the Bios along with SD card io  -   I will recapture and start again with the drivers disabled -  root@t490:/home/mylinux# lspci -nnk | grep -iE "Ethernet|WiFi"
    Kernel driver in use: iwlwifi
    Kernel modules: iwlwifi
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (6) I219-LM [8086:15bd] (rev 30)
root@t490:/home/mylinux# 
So those are the controllers - but the Intel Ethernet module is not loaded.  

The power has been throttled back on each boot via a service .  root@t490:/home/mylinux# cat /usr/local/bin/cnc-bench-init.sh 
#!/bin/bash
# Enable thinkpad_acpi fan control and lock to Level 7
echo "level 7" > /proc/acpi/ibm/fan

# Lock Intel RAPL sustained power limit to 15W (15,000,000 uW)
echo 15000000 > /sys/class/powercap/intel-rapl/intel-rapl:0/constraint_0_power_limit_uw

---  Where the default power is 25W   or 25000000  
The /etc/systemd/system/cnc-bench-init.service   -has to be created to get a systemctl  enable cnc-bench-init-service
to start at run time.      
oot@t490:/home/mylinux# systemctl status cnc-bench-init.service
○ cnc-bench-init.service - LinuxCNC Test Bench Power & Thermal Initialization
     Loaded: loaded (/etc/systemd/system/cnc-bench-init.service; enabled; preset: enabled)
     Active: inactive (dead) since Thu 2026-10-29 13:03:28 MDT; 1h 3min ago
 Invocation: e7cfed2c425b41528e32b456cbcf7ef6
   Main PID: 1019 (code=exited, status=0/SUCCESS)
   Mem peak: 1.8M
        CPU: 7ms

Oct 29 13:03:28 t490 systemd[1]: Starting cnc-bench-init.service - LinuxCNC Test Bench Power & Thermal Initialization...
Oct 29 13:03:28 t490 systemd[1]: cnc-bench-init.service: Deactivated successfully.
Oct 29 13:03:28 t490 systemd[1]: Finished cnc-bench-init.service - LinuxCNC Test Bench Power & Thermal Initialization.
root@t490:/home/mylinux# cat /etc/systemd/system/cnc-bench-init.service
[Unit]
Description=LinuxCNC Test Bench Power & Thermal Initialization
After=multi-user.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/cnc-bench-init.sh

[Install]
WantedBy=multi-user.target
root@t490:/home/mylinux# -
Summary - I did what I could - from my  Mesa 7i96 settup  there is a watchdog timer that defaults to 5ms -   And I do not know if this watchdog will cover my 1430000ns  servo thread jitter  and the 2500000ns base thread jitter.   
This is after all a laptop -and it has overhead and SMI's that are not completely managed. 
I have a PI400 that is politely running 65us servo thread jitter  and 125us base jitter.  And a Gigabyte B250-4E3 that has an i5-gen 10 with 4 cores/4 threads -  getting 16us servo thread jitter and 97us base thread.  So I have systems I can use with Mesa cards.  So my simple question-  can I run production jobs with this T490 and its 1.4ms and 2.5ms Jitter.  If the answer is no-  so be it.
    
 



 
  • mwc
29 Oct 2026 20:13
Replied by mwc on topic AMSAMOTION IO module
Well that was far less painful than I thought it would be.
AO0 looped back to AI0 gives comparable readings.
 

All it took was a bit copying and pasting, a few minor value edits, and I have the Analogue and Digital IO working with the following code-
<slave idx="3" type="generic" vid="0x00000b96" pid="0x00001400" name="D4">
      <!--EC1A-CORE1-->
      <syncManager idx="0" dir="in"/>
      <syncManager idx="1" dir="out"/>
      <syncManager idx="2" dir="out">
        <pdo idx="1601">
          <!--Digital Output process data mapping-->
          <pdoEntry idx="7010" subIdx="01" bitLen="16" halPin="DO-bit" halType="bit"/>
        </pdo>
        <pdo idx="1603">
          <!--Analog Output process data mapping-->
          <pdoEntry idx="7030" subIdx="01" bitLen="16" halPin="AO0" halType="u32"/>
          <pdoEntry idx="7030" subIdx="02" bitLen="16" halPin="AO1" halType="u32"/>
        </pdo>
      </syncManager>
      <syncManager idx="3" dir="in">
        <pdo idx="1a00">
          <!--Digital Input process data mapping-->
          <pdoEntry idx="6000" subIdx="01" bitLen="16" halPin="DI-bit" halType="bit"/>
        </pdo>
        <pdo idx="1a02">
          <!--Analog Input process data mapping-->
          <pdoEntry idx="6020" subIdx="01" bitLen="16" halPin="AI0" halType="u32"/>
          <pdoEntry idx="6020" subIdx="02" bitLen="16" halPin="AI1" halType="u32"/>
          <pdoEntry idx="6020" subIdx="03" bitLen="16" halPin="AI2" halType="u32"/>
          <pdoEntry idx="6020" subIdx="04" bitLen="16" halPin="AI3" halType="u32"/>
        </pdo>
        </syncManager>
    </slave>

Obviously doesn't include the ModBus stuff, but I have no use for that.
The lcec_configgen halPin naming did use duplicate names, and the unknown halTypes ( !!type 002e!! ) can be set to either bit or u32 depending on your own preferred usage. I've used bit for now.
  • tommylight
29 Oct 2026 19:50
Replied by tommylight on topic Ethercat drive configuration woes
Code:
lcec: rtapi_app_main: Invalid argument (-22)
Is there a
loadrt lcec
line in the hal file?
If yes, there is something not right in that line.
-
This is just an educated guess from the error as i have no experience with EtherCat.
  • mwc
29 Oct 2026 19:21
Replied by mwc on topic Ethercat drive configuration woes
To follow up with the lcec_configgen output, this is what it generated -

<slave idx="2" type="generic" vid="0x00000a79" pid="0x00001000" name="D3">
      <!--CL3-E57H-->
      <syncManager idx="0" dir="out">
        <pdo idx="1a01">
          <!--TxPDO 2-->
          <pdoEntry idx="603f" subIdx="00" bitLen="16" halPin="errorcode" halType="u32"/>
          <pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="2-statusword" halType="u32"/>
          <pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="position-actual-value" halType="s32"/>
          <pdoEntry idx="60fd" subIdx="00" bitLen="32" halPin="digital-inputs" halType="u32"/>
          <pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="modes-of-operation-display" halType="s32"/>
        </pdo>
        <pdo idx="1601">
          <!--RxPDO 2-->
          <pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="2-controlword" halType="u32"/>
          <pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="modes-of-operation" halType="s32"/>
          <pdoEntry idx="607a" subIdx="00" bitLen="32" halPin="2-target-position" halType="s32"/>
          <pdoEntry idx="6081" subIdx="00" bitLen="32" halPin="profile-velocity" halType="u32"/>
          <pdoEntry idx="6099" subIdx="01" bitLen="32" halPin="search-switch" halType="u32"/>
          <pdoEntry idx="6099" subIdx="02" bitLen="32" halPin="search-zero" halType="u32"/>
        </pdo>
      </syncManager>
      <syncManager idx="1" dir="out"/>
      <syncManager idx="2" dir="out">
        <pdo idx="1600">
          <pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="out-controlword" halType="u32"/>
          <pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="mode-of-operation" halType="s32"/>
          <pdoEntry idx="607a" subIdx="00" bitLen="32" halPin="out-target-position" halType="s32"/>
          <pdoEntry idx="60ff" subIdx="00" bitLen="32" halPin="target-velocity" halType="s32"/>
        </pdo>
      </syncManager>
      <syncManager idx="3" dir="in">
        <pdo idx="1a00">
          <pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="in-statusword" halType="u32"/>
          <pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="mode-of-operation-display" halType="s32"/>
          <pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="position-actual" halType="s32"/>
          <pdoEntry idx="606c" subIdx="00" bitLen="32" halPin="velocity-actual" halType="s32"/>
          <pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="torque-actual" halType="s32"/>
        </pdo>
      </syncManager>
    </slave>


Which without editting results in this error -

Debug file information:
Note: Using POSIX realtime
Failed to register PDO entry: No such file or directory
LCEC: master 0 syncUnit default PDO entry registration failed
LCEC: failure, clearing config
LCEC: exiting
LCEC: returning -EINVAL
lcec: rtapi_app_main: Invalid argument (-22)
./my_EtherCAT.hal:10: waitpid failed /usr/bin/rtapi_app lcec
./my_EtherCAT.hal:10: /usr/bin/rtapi_app exited without becoming ready
./my_EtherCAT.hal:10: insmod for lcec failed, returned -1
1740
Stopping realtime threads
Unloading hal components
Note: Using POSIX realtime


Is there any kind of documentation about syncmanagers anywhere that explains what is required/how they work?
  • tuxcnc
29 Oct 2026 18:30
G0 is rapid, and not uses F value.
Use G1 F3.
Displaying 76 - 90 out of 11363 results.
Time to create page: 0.239 seconds
Powered by Kunena Forum