Advanced Search

Search Results (Searched for: raspberry pi 3)

  • rodw
  • rodw's Avatar
13 Jun 2025 22:51
Replied by rodw on topic WiFi Problem on Raspberry Pi

WiFi Problem on Raspberry Pi

Category: General LinuxCNC Questions

Brisbane here.

Personally, I would not use a wifi extender. Instead, I would install a Ubiquiti wireless link with a couple of these
www.computeralliance.com.au/ubiquiti-loc...nostation-cpe-airmax
I ran an 800m link with Ubiquiti Loco M5's which are about $10 more. It was a bulletproof 150 mb link for about 10 years. In the shed, attach to a switch and add a Wireless Access point. In the house, just attach it to your network. Run them on 5G where they can use frequencies still legal but outside of the congested? 5G space.

This would let you use a network port (even if a USB one) on your machine and would be much more robust.
  • unknown
  • unknown
12 Jun 2025 10:22 - 12 Jun 2025 10:24
Replied by unknown on topic WiFi Problem on Raspberry Pi

WiFi Problem on Raspberry Pi

Category: General LinuxCNC Questions

A grounded steel enclosure is not the best place to be emitting radio signals from.

Nowadays just about any wifi dongle will work, but it will need an external antennae.

Should a good starting point for usable wifi adapters, anything that works with Debian Bookworm will work.
github.com/morrownr/USB-WiFi

If you need extra help I'm located in Sydney as well.
  • electrosteam
  • electrosteam
12 Jun 2025 08:41 - 12 Jun 2025 08:44
Replied by electrosteam on topic WiFi Problem on Raspberry Pi

WiFi Problem on Raspberry Pi

Category: General LinuxCNC Questions

Steel, 400 x 600 x 190.
See attached (poor) photo showing RPi hanging in space:
Row 1: stepper drivers,
Row 2: RPi stacked on Mesa, I/O PSU,
Row 3: 12 Vdc relays, Mesa core PSU,
Row 4: Terminals,
Side: stepper sockets, hole for monitor+keyboard+mouse cables, GPO for monitor + RPi.
Terminals and cables as appropriate, much neater generally.

I have a virtually identical cubicle with some electrical equipment in it.
Stripping and testing should begin next week.

The RPi 4GB and L2.9.2 need to go back to their day job of cutting metal.
John.
  • unknown
  • unknown
12 Jun 2025 01:59
Replied by unknown on topic WiFi Problem on Raspberry Pi

WiFi Problem on Raspberry Pi

Category: General LinuxCNC Questions

What material is the enclosure ?
  • electrosteam
  • electrosteam
12 Jun 2025 00:21
Replied by electrosteam on topic WiFi Problem on Raspberry Pi

WiFi Problem on Raspberry Pi

Category: General LinuxCNC Questions

Thanks Rod, the external antenna was my next move.
I am in Sydney, any suggestion on model number that is known to work with LC2.9.4 ?

The Extender has been set up to use 2.4 GHz from the start.

The engineer in me wants to know why the failure in the cubicle.
I will do some more testing.
John.
  • rodw
  • rodw's Avatar
11 Jun 2025 12:10

Raspberry Pi Kernel recompile for waveshare 1Gbit Network interface

Category: Computers and Hardware

Seems the card uses a R8168 interface. The R8168 requires a DKMS driver to get acceptable RT  performance. Not sure how that goes with a Pi. I would not use it for ethercat but would be fine for general network use.
  • rodw
  • rodw's Avatar
11 Jun 2025 11:41
Replied by rodw on topic WiFi Problem on Raspberry Pi

WiFi Problem on Raspberry Pi

Category: General LinuxCNC Questions

Try 2.4 GHz. 5 GHz is not as reliable in an industrial setting and has much shorter range. I turned off all my 5G wifi

Failing that use a wifi USB dongle that has an external antenna and get a SMA bulkhead mount cable to extend it outside of the cabinet
  • electrosteam
  • electrosteam
11 Jun 2025 09:43
WiFi Problem on Raspberry Pi was created by electrosteam

WiFi Problem on Raspberry Pi

Category: General LinuxCNC Questions

Raspberry Pi 4B 4GB has operated a very conventional x,y,z mill with a Mesa 7i96 for a couple of years.
WiFi never worked and has been a back-burner issue for a year or more.

Two cubicles:
 - Power: VFD, stepper supply, general supplies, AC/DC relays,
 - Electronics: RPi, stepper drivers, DC relays, power supplies,
     - minimal 240VAC cabling for power supplies, monitor.
 Monitor, keyboard and mouse cabled.

WiFi-Extender for workshop 4m from RPi.
Test set-up on workshop bench 6m from Extender.
Bench desktop ethernet cabled to extender, has always had reliable WiFi.

I have two RPi; 4GB and 8GB.
The 4GB is currently LC2.9.2, and I downloaded LC2.9.4 recently to a separate SD card.

Investigated:
 - both 4GB and 8GB operate WiFi with either L2.9.2 or LC2.9.4 on the bench no problem,
 - confirmed linked to the Extender by switching it Off (house WiFi 5G is at -70dBm),
 - both operated with Mesa card Off,
 - both fail to launch WiFi in electronic cubicle when mounted or hung in free space.

Also:
 - both have identical (as close as I can tell) WiFi set-up,
 - both detect the Extender and show signal level at -40dBm,
 - both fail to scan for ssid using menu-config in LC2.9.4,
 - both respond to "iw dev wlan0 scan" with response for Extender at -40dBm.

Note: test in cubicle has all non-essential supplies Off: VFD, steppers, Mesa, general control,
nothing else in workshop energised, other than air conditioner and desktop.

Need suggestions on which stone to turn over next.
John.
  • unknown
  • unknown
10 Jun 2025 23:32

Raspberry Pi Kernel recompile for waveshare 1Gbit Network interface

Category: Computers and Hardware

Like I said the kernel in the image is the same as the RPi OS (with realtime added)

Driver is there:
cnc@raspberrypi:/boot$ ls /lib/modules/6.12.11/kernel/drivers/net/ethernet/realtek/
r8169.ko.xz
cnc@raspberrypi:/boot$ sudo modinfo r8169
filename:       /lib/modules/6.12.11/kernel/drivers/net/ethernet/realtek/r8169.ko.xz
firmware:       rtl_nic/rtl8126a-3.fw
firmware:       rtl_nic/rtl8126a-2.fw
firmware:       rtl_nic/rtl8125b-2.fw
firmware:       rtl_nic/rtl8125a-3.fw
firmware:       rtl_nic/rtl8107e-2.fw
firmware:       rtl_nic/rtl8168fp-3.fw
firmware:       rtl_nic/rtl8168h-2.fw
firmware:       rtl_nic/rtl8168g-3.fw
firmware:       rtl_nic/rtl8168g-2.fw
firmware:       rtl_nic/rtl8106e-2.fw
firmware:       rtl_nic/rtl8106e-1.fw
firmware:       rtl_nic/rtl8411-2.fw
firmware:       rtl_nic/rtl8411-1.fw
firmware:       rtl_nic/rtl8402-1.fw
firmware:       rtl_nic/rtl8168f-2.fw
firmware:       rtl_nic/rtl8168f-1.fw
firmware:       rtl_nic/rtl8105e-1.fw
firmware:       rtl_nic/rtl8168e-3.fw
firmware:       rtl_nic/rtl8168e-2.fw
firmware:       rtl_nic/rtl8168e-1.fw
firmware:       rtl_nic/rtl8168d-2.fw
firmware:       rtl_nic/rtl8168d-1.fw
license:        GPL
softdep:        pre: realtek
description:    RealTek RTL-8169 Gigabit Ethernet driver
author:         Realtek and the Linux r8169 crew <netdev@vger.kernel.org>
srcversion:     668EE5A1A5251AE4E5F0F08
alias:          pci:v000010ECd00003000sv*sd*bc*sc*i*
alias:          pci:v000010ECd00008126sv*sd*bc*sc*i*
alias:          pci:v000010ECd00008125sv*sd*bc*sc*i*
alias:          pci:v00000001d00008168sv*sd00002410bc*sc*i*
alias:          pci:v00001737d00001032sv*sd00000024bc*sc*i*
alias:          pci:v000016ECd00000116sv*sd*bc*sc*i*
alias:          pci:v00001259d0000C107sv*sd*bc*sc*i*
alias:          pci:v00001186d00004302sv*sd*bc*sc*i*
alias:          pci:v00001186d00004300sv*sd*bc*sc*i*
alias:          pci:v00001186d00004300sv00001186sd00004B10bc*sc*i*
alias:          pci:v000010ECd00008169sv*sd*bc*sc*i*
alias:          pci:v000010FFd00008168sv*sd*bc*sc*i*
alias:          pci:v000010ECd00008168sv*sd*bc*sc*i*
alias:          pci:v000010ECd00008167sv*sd*bc*sc*i*
alias:          pci:v000010ECd00008162sv*sd*bc*sc*i*
alias:          pci:v000010ECd00008161sv*sd*bc*sc*i*
alias:          pci:v000010ECd00008136sv*sd*bc*sc*i*
alias:          pci:v000010ECd00008129sv*sd*bc*sc*i*
alias:          pci:v000010ECd00002600sv*sd*bc*sc*i*
alias:          pci:v000010ECd00002502sv*sd*bc*sc*i*
depends:        
intree:         Y
name:           r8169
vermagic:       6.12.11 SMP preempt_rt mod_unload modversions aarch64
sig_id:         PKCS#7
signer:         Build time autogenerated kernel key
sig_key:        14:CE:12:BC:56:1A:45:BD:26:4B:22:D7:A5:0D:7A:06:44:B9:F4:69
sig_hashalgo:   sha1
signature:      4A:5E:4B:28:A7:ED:65:3D:C8:53:C3:E2:BD:07:40:04:C0:32:C0:8E:
		4E:C5:37:6A:AE:02:25:29:77:E4:6F:92:65:10:15:3D:2A:05:62:9C:
		13:B7:B5:8A:8F:CA:95:FF:A6:B6:73:E2:85:75:D2:FD:C1:1E:58:64:
		3D:B1:97:1A:DB:85:9D:30:5F:98:FB:B6:55:54:42:37:8E:33:C2:36:
		0A:D5:DF:96:4D:9E:C1:1E:FE:B3:33:B1:7F:B2:1B:B4:76:FD:16:2C:
		66:22:9C:02:B2:ED:32:99:47:6B:96:FB:4D:1F:0F:DF:BE:D2:D7:F2:
		4E:FB:DB:AF:70:ED:AD:91:22:3F:08:96:88:C3:C9:BB:7A:80:7F:E4:
		40:E7:4D:AA:25:E5:DD:0D:78:0D:7E:14:EB:98:05:36:31:D2:2F:FA:
		9E:55:3F:11:71:F6:3A:4C:A5:F2:A7:F7:D6:B3:84:31:27:88:0B:18:
		61:F6:68:F9:31:D6:C7:8D:E6:9C:17:2F:25:05:DF:3F:19:7F:69:95:
		5E:C4:1F:09:D1:31:CE:E2:77:A3:F2:63:F4:16:9D:EC:B8:5D:33:01:
		75:BB:59:6E:6D:70:93:92:4F:CF:45:9A:9C:AA:DB:F0:C3:CB:CD:54:
		14:EF:25:C3:61:5F:05:52:BB:57:9D:D4:DA:F6:72:F4:AC:56:1E:EC:
		5D:3D:79:EB:15:67:2A:80:CD:D8:2E:D1:AA:07:8F:C5:BB:E3:BD:32:
		A7:E8:32:F7:5E:CD:E0:42:C1:05:EB:28:41:C4:FE:34:E0:6D:7E:E1:
		4F:34:EF:C0:25:95:A3:4D:7F:AE:04:7A:9A:9E:17:91:5C:89:CF:F1:
		E7:27:B1:D9:E2:F5:9E:45:DE:C3:78:15:B9:35:29:3A:83:0E:54:EF:
		80:D6:A6:09:0D:9C:F0:18:4A:5C:00:89:88:10:B6:66:44:31:78:A9:
		C3:47:1D:73:C6:1C:0E:33:DE:01:13:A8:C1:7B:13:82:D9:CB:0F:E5:
		2C:AC:24:70:F1:4A:45:E9:67:0F:38:94:0A:51:72:A7:4A:3A:BA:05:
		89:D0:0D:13:A2:23:05:3A:1B:96:EE:5E:28:79:14:C9:20:F6:D4:94:
		F7:C0:20:FB:E3:B9:52:3D:BB:C5:BB:68:DE:F8:08:32:4E:A4:F2:F5:
		2C:98:87:E8:E5:23:3A:7A:7A:A7:4C:AA:97:04:07:3A:4A:FF:AD:EA:
		1C:52:C0:2D:20:73:F7:75:A1:94:92:4E:64:21:4A:0E:35:22:73:81:
		92:84:97:98:3A:C2:3E:06:99:42:86:1D:33:7E:8A:22:90:3F:66:8C:
		57:76:DE:B3:EC:D2:AA:DE:54:E4:C0:6E

You may have to check dmesg for any references to R8169. PCIe should be enabled, I used a NVMe boot drive. Remember that the location of config.txt is
/boot/broadcom/config.txt
I sure this is mentioned in the main image RPi5 thread.
  • mediocre_chloride
  • mediocre_chloride's Avatar
10 Jun 2025 22:43 - 10 Jun 2025 22:44

Raspberry Pi Kernel recompile for waveshare 1Gbit Network interface

Category: Computers and Hardware

Thanks for the fast reply

I Downloaded 2.94 Rpi 5 based OS from the official linuxcnc/download site.

The Waveshare user guide states that something in the lines of:
Device Drivers
> Network device support
    > Ethernet driver support
       > Realtek devices
          > Realtek 8169/8168/8101/8125 ethernet support

needs to be added if not using original rpi os.
i am pretty sure that is the problem, as i see the card with lspci as described in the user guide:

 

but not in ifconfig:

 

it is also stated, drivers could be installed manually but its not recommended.
Also, there are other rpi linuxcnc distros floating around, do you think its worth switching around?
 
  • unknown
  • unknown
10 Jun 2025 20:59

Raspberry Pi Kernel recompile for waveshare 1Gbit Network interface

Category: Computers and Hardware

Shouldn't need recompiling as, our images use a kernel built from the Raspberry Pi GitHub sources.
The only difference being is choosing the kernel config option for real time.
If the standard kernel doesn't work give me a yell and I'll build an update image, as there are a few minor things I would like to add.
  • mediocre_chloride
  • mediocre_chloride's Avatar
10 Jun 2025 14:54

Raspberry Pi Kernel recompile for waveshare 1Gbit Network interface

Category: Computers and Hardware

Hi all
My goal is to setup a raspberry pi with ethercat.

I have a raspberry Pi 5 with an additional network interface from waveshare ( here )
its planned to use this additional ethernet port for connecting the machine to the network, and the native Port on the Pi for Ethercat.
to use this additional Interface, the kernel needs to be recompiled with some additions to the config file.

I am not familiar with recompiling a kernel, thats why i am seeking help here. 

Has anyone encountered similar issues?
Is there maybe a fixed Kernel to download so i dont need to do the recompile?

greetings
Marc






 
  • farmer_mike
  • farmer_mike
07 Jun 2025 17:59
Replied by farmer_mike on topic Experimental XML config generator

Experimental XML config generator

Category: EtherCAT

Thanks for the help everyone. I decided to move my project to a Raspberry Pi 4, so I made sure to use the latest versions of LinuxCNC and Ethercat. I think I have the experimental XML config working now. I am a little unsure what to do with the output file. 

I'll paste two files below. The first file is the ethercat-conf.xml from my CNC project when I had a single axis using an Rtelligent ECT 60 stepper motor.The single axis worked, so I have since bought two Rtelligent RS750E AC Servo drives. All I have done with the RS750E drives is power them up and connect the Ethernet. I haven't done any onboard parameter programming yet.

The experimental XML config generator recognized all three drives in order.

Is the output from the experimental XML config generator meant to be used to create the ethercat-conf.xml file?
<masters>
  <master idx="0" appTimePeriod="1000000" refClockSyncCycles="1">
    <!-- Joint 0 -->
    <slave idx="0" type="generic" vid="00000a88" pid="0a880002" configPdos="true">
      <dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
      <sdoConfig idx="2000" subIdx="0"><sdoDataRaw data ="88 13"/></sdoConfig>  <!-- Max motor current (5.0) -->
      <sdoConfig idx="2007" subIdx="6"><sdoDataRaw data ="05"/></sdoConfig>     <!-- Input 6 - Emergency Stop -->
      <sdoConfig idx="2007" subIdx="5"><sdoDataRaw data ="05"/></sdoConfig>     <!-- Input 3 - Home Function -->
      <sdoConfig idx="2011" subIdx="0"><sdoDataRaw data ="01 00"/></sdoConfig>  <!-- Closed loop -->
      <sdoConfig idx="6098" subIdx="0"><sdoDataRaw data ="11 00"/></sdoConfig>  <!-- Home mode 17 -->
      <sdoConfig idx="607C" subIdx="0"><sdoDataRaw data ="00 00"/></sdoConfig>  <!-- Home offset 0  -->
      <sdoConfig idx="609A" subIdx="0"><sdoDataRaw data ="F4 01"/></sdoConfig>  <!-- Home accelleration 500 -->
      <sdoConfig idx="6099" subIdx="01"><sdoDataRaw data ="C4 09"/></sdoConfig>  <!-- Home fast speed 2500-->
      <sdoConfig idx="6099" subIdx="02"><sdoDataRaw data ="F4 01"/></sdoConfig>  <!-- Home slow speed 500 -->
      <syncManager idx="2" dir="out">
        <pdo idx="1600">
          <pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="cia-controlword" halType="u32"/>
          <pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="s32"/>
          <!-- Target Position -->
          <pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
          <!-- Target Velocity -->
          <pdoEntry idx="60FF" subIdx="00" bitLen="32" halPin="target-velocity" halType="s32"/>
          <!-- Digtial Outputs (manufacturer's extension ECT86/ECT60)-->
          <pdoEntry idx="204A" subIdx="0" bitLen="16" halType="complex">
            <complexEntry bitLen="1" halPin="out-1" halType="bit"/>
            <complexEntry bitLen="1" halPin="out-2" halType="bit"/>
            <complexEntry bitLen="14"/>
          </pdoEntry>
        </pdo>
      </syncManager>
      <syncManager idx="3" dir="in">
        <pdo idx="1a00">
          <pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="cia-statusword" halType="u32"/>
          <pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="opmode-display" halType="s32"/>
          <pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="actual-position" halType="s32"/>
          <pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="actual-velocity" halType="s32"/>
          <pdoEntry idx="6077" subIdx="00" bitLen="32" halPin="actual-torque" halType="s32"/>
          <!-- Digtial_inputs (cia402 compatible) -->
          <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>          
        </pdo>
      </syncManager>
    </slave>
 
    
   </master>
</masters>


<masters>
  <master idx="0">
    <slave idx="0" type="ECT60" name="D1">
      <!-- Enable support for Cyclic Synchronous Position mode. -->
      <modParam name="enableCSP" value="true"/>
      
      <!-- Enable support for Cyclic Synchronous Velocity mode. -->
      <modParam name="enableCSV" value="false"/>
      
      <!-- Maximum stepper Amps. -->
      <modParam name="peakCurrent_amps" value="6.0"/>
      
      <!-- Operation mode: openloop, closedloop, or foc. -->
      <modParam name="controlMode" value="closedloop"/>
      
      <!-- Number of encoder steps per revolution. -->
      <modParam name="encoderResolution" value="4000"/>
      
      <!-- Output 1 use: general, alarm, brake, in-place. -->
      <modParam name="output1Func" value="alarm"/>
      
      <!-- Output 2 use: general, alarm, brake, in-place. -->
      <modParam name="output2Func" value="brake"/>
      
      <!-- Input 3 use: general, cw-limit, ccw-limit, home, clear-fault, emergency-stop, motor-offline, probe1, probe2 -->
      <modParam name="input3Func" value="cw-limit"/>
      
      <!-- Input 4 use: general, cw-limit, ccw-limit, home, clear-fault, emergency-stop, motor-offline, probe1, probe2 -->
      <modParam name="input4Func" value="ccw-limit"/>
      
      <!-- Input 5 use: general, cw-limit, ccw-limit, home, clear-fault, emergency-stop, motor-offline, probe1, probe2 -->
      <modParam name="input5Func" value="home"/>
      
      <!-- Input 6 use: general, cw-limit, ccw-limit, home, clear-fault, emergency-stop, motor-offline, probe1, probe2 -->
      <modParam name="input6Func" value="motor-offline"/>
      
    </slave>
    <slave idx="1" type="basic_cia402" vid="0x00000a88" pid="0x0a880013" name="D2">
      <!--RS750E(COE)-->
      <modParam name="ciaRxPDOEntryLimit" value="9"/>
      <modParam name="ciaTxPDOEntryLimit" value="9"/>
      <modParam name="enablePP" value="true"/>
      <modParam name="enablePV" value="true"/>
      <modParam name="enableTQ" value="true"/>
      <modParam name="enableHM" value="true"/>
      <modParam name="enableCSP" value="true"/>
      <modParam name="enableCSV" value="true"/>
      <modParam name="enableCST" value="true"/>
      <modParam name="enableActualFollowingError" value="true"/>
      <modParam name="enableActualTorque" value="true"/>
      <modParam name="enableDigitalInput" value="true"/>
      <modParam name="digitalInChannels" value="16"/>
      <modParam name="enableDigitalOutput" value="true"/>
      <modParam name="digitalOutChannels" value="16"/>
      <modParam name="enableErrorCode" value="true"/>
      <modParam name="enableFollowingErrorTimeout" value="true"/>
      <modParam name="enableFollowingErrorWindow" value="true"/>
      <modParam name="enableHomeAccel" value="true"/>
      <modParam name="enableMaximumCurrent" value="true"/>
      <modParam name="enableMaximumTorque" value="true"/>
      <modParam name="enablePolarity" value="true"/>
      <modParam name="enablePositionDemand" value="true"/>
      <modParam name="enablePositioningTime" value="true"/>
      <modParam name="enablePositioningWindow" value="true"/>
      <modParam name="enableProbeStatus" value="true"/>
      <modParam name="enableProfileAccel" value="true"/>
      <modParam name="enableProfileDecel" value="true"/>
      <modParam name="enableProfileMaxVelocity" value="true"/>
      <modParam name="enableProfileVelocity" value="true"/>
      <modParam name="enableTargetTorque" value="true"/>
      <modParam name="enableTorqueDemand" value="true"/>
      <modParam name="enableTorqueSlope" value="true"/>
      <modParam name="enableVelocityErrorTime" value="true"/>
      <modParam name="enableVelocityErrorWindow" value="true"/>
    </slave>
    <slave idx="2" type="basic_cia402" vid="0x00000a88" pid="0x0a880013" name="D3">
      <!--RS750E(COE)-->
      <modParam name="ciaRxPDOEntryLimit" value="9"/>
      <modParam name="ciaTxPDOEntryLimit" value="9"/>
      <modParam name="enablePP" value="true"/>
      <modParam name="enablePV" value="true"/>
      <modParam name="enableTQ" value="true"/>
      <modParam name="enableHM" value="true"/>
      <modParam name="enableCSP" value="true"/>
      <modParam name="enableCSV" value="true"/>
      <modParam name="enableCST" value="true"/>
      <modParam name="enableActualFollowingError" value="true"/>
      <modParam name="enableActualTorque" value="true"/>
      <modParam name="enableDigitalInput" value="true"/>
      <modParam name="digitalInChannels" value="16"/>
      <modParam name="enableDigitalOutput" value="true"/>
      <modParam name="digitalOutChannels" value="16"/>
      <modParam name="enableErrorCode" value="true"/>
      <modParam name="enableFollowingErrorTimeout" value="true"/>
      <modParam name="enableFollowingErrorWindow" value="true"/>
      <modParam name="enableHomeAccel" value="true"/>
      <modParam name="enableMaximumCurrent" value="true"/>
      <modParam name="enableMaximumTorque" value="true"/>
      <modParam name="enablePolarity" value="true"/>
      <modParam name="enablePositionDemand" value="true"/>
      <modParam name="enablePositioningTime" value="true"/>
      <modParam name="enablePositioningWindow" value="true"/>
      <modParam name="enableProbeStatus" value="true"/>
      <modParam name="enableProfileAccel" value="true"/>
      <modParam name="enableProfileDecel" value="true"/>
      <modParam name="enableProfileMaxVelocity" value="true"/>
      <modParam name="enableProfileVelocity" value="true"/>
      <modParam name="enableTargetTorque" value="true"/>
      <modParam name="enableTorqueDemand" value="true"/>
      <modParam name="enableTorqueSlope" value="true"/>
      <modParam name="enableVelocityErrorTime" value="true"/>
      <modParam name="enableVelocityErrorWindow" value="true"/>
    </slave>
  </master>
</masters>

  • farmer_mike
  • farmer_mike
07 Jun 2025 17:55
test post was created by farmer_mike

test post

Category: Off Topic and Test Posts

Thanks for the help everyone. I decided to move my project to a Raspberry Pi 4, so I made sure to use the latest versions of LinuxCNC and Ethercat. I think I have the experimental XML config working now. I am a little unsure what to do with the output file. 

I'll paste two files below. The first file is the ethercat-conf.xml from my CNC project when I had a single axis using an Rtelligent ECT 60 stepper motor.The single axis worked, so I have since bought two Rtelligent RS750E AC Servo drives. All I have done with the RS750E drives is power them up and connect the Ethernet. I haven't done any onboard parameter programming yet.

The experimental XML config generator recognized all three drives in order.

Is the output from the experimental XML config generator meant to be used to create the ethercat-conf.xml file?
<masters>
  <master idx="0" appTimePeriod="1000000" refClockSyncCycles="1">
    <!-- Joint 0 -->
    <slave idx="0" type="generic" vid="00000a88" pid="0a880002" configPdos="true">
      <dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
      <sdoConfig idx="2000" subIdx="0"><sdoDataRaw data ="88 13"/></sdoConfig>  <!-- Max motor current (5.0) -->
      <sdoConfig idx="2007" subIdx="6"><sdoDataRaw data ="05"/></sdoConfig>     <!-- Input 6 - Emergency Stop -->
      <sdoConfig idx="2007" subIdx="5"><sdoDataRaw data ="05"/></sdoConfig>     <!-- Input 3 - Home Function -->
      <sdoConfig idx="2011" subIdx="0"><sdoDataRaw data ="01 00"/></sdoConfig>  <!-- Closed loop -->
      <sdoConfig idx="6098" subIdx="0"><sdoDataRaw data ="11 00"/></sdoConfig>  <!-- Home mode 17 -->
      <sdoConfig idx="607C" subIdx="0"><sdoDataRaw data ="00 00"/></sdoConfig>  <!-- Home offset 0  -->
      <sdoConfig idx="609A" subIdx="0"><sdoDataRaw data ="F4 01"/></sdoConfig>  <!-- Home accelleration 500 -->
      <sdoConfig idx="6099" subIdx="01"><sdoDataRaw data ="C4 09"/></sdoConfig>  <!-- Home fast speed 2500-->
      <sdoConfig idx="6099" subIdx="02"><sdoDataRaw data ="F4 01"/></sdoConfig>  <!-- Home slow speed 500 -->
      <syncManager idx="2" dir="out">
        <pdo idx="1600">
          <pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="cia-controlword" halType="u32"/>
          <pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="s32"/>
          <!-- Target Position -->
          <pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
          <!-- Target Velocity -->
          <pdoEntry idx="60FF" subIdx="00" bitLen="32" halPin="target-velocity" halType="s32"/>
          <!-- Digtial Outputs (manufacturer's extension ECT86/ECT60)-->
          <pdoEntry idx="204A" subIdx="0" bitLen="16" halType="complex">
            <complexEntry bitLen="1" halPin="out-1" halType="bit"/>
            <complexEntry bitLen="1" halPin="out-2" halType="bit"/>
            <complexEntry bitLen="14"/>
          </pdoEntry>
        </pdo>
      </syncManager>
      <syncManager idx="3" dir="in">
        <pdo idx="1a00">
          <pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="cia-statusword" halType="u32"/>
          <pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="opmode-display" halType="s32"/>
          <pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="actual-position" halType="s32"/>
          <pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="actual-velocity" halType="s32"/>
          <pdoEntry idx="6077" subIdx="00" bitLen="32" halPin="actual-torque" halType="s32"/>
          <!-- Digtial_inputs (cia402 compatible) -->
          <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>          
        </pdo>
      </syncManager>
    </slave>
 
    
   </master>
</masters>



<masters>
  <master idx="0">
    <slave idx="0" type="ECT60" name="D1">
      <!-- Enable support for Cyclic Synchronous Position mode. -->
      <modParam name="enableCSP" value="true"/>
      
      <!-- Enable support for Cyclic Synchronous Velocity mode. -->
      <modParam name="enableCSV" value="false"/>
      
      <!-- Maximum stepper Amps. -->
      <modParam name="peakCurrent_amps" value="6.0"/>
      
      <!-- Operation mode: openloop, closedloop, or foc. -->
      <modParam name="controlMode" value="closedloop"/>
      
      <!-- Number of encoder steps per revolution. -->
      <modParam name="encoderResolution" value="4000"/>
      
      <!-- Output 1 use: general, alarm, brake, in-place. -->
      <modParam name="output1Func" value="alarm"/>
      
      <!-- Output 2 use: general, alarm, brake, in-place. -->
      <modParam name="output2Func" value="brake"/>
      
      <!-- Input 3 use: general, cw-limit, ccw-limit, home, clear-fault, emergency-stop, motor-offline, probe1, probe2 -->
      <modParam name="input3Func" value="cw-limit"/>
      
      <!-- Input 4 use: general, cw-limit, ccw-limit, home, clear-fault, emergency-stop, motor-offline, probe1, probe2 -->
      <modParam name="input4Func" value="ccw-limit"/>
      
      <!-- Input 5 use: general, cw-limit, ccw-limit, home, clear-fault, emergency-stop, motor-offline, probe1, probe2 -->
      <modParam name="input5Func" value="home"/>
      
      <!-- Input 6 use: general, cw-limit, ccw-limit, home, clear-fault, emergency-stop, motor-offline, probe1, probe2 -->
      <modParam name="input6Func" value="motor-offline"/>
      
    </slave>
    <slave idx="1" type="basic_cia402" vid="0x00000a88" pid="0x0a880013" name="D2">
      <!--RS750E(COE)-->
      <modParam name="ciaRxPDOEntryLimit" value="9"/>
      <modParam name="ciaTxPDOEntryLimit" value="9"/>
      <modParam name="enablePP" value="true"/>
      <modParam name="enablePV" value="true"/>
      <modParam name="enableTQ" value="true"/>
      <modParam name="enableHM" value="true"/>
      <modParam name="enableCSP" value="true"/>
      <modParam name="enableCSV" value="true"/>
      <modParam name="enableCST" value="true"/>
      <modParam name="enableActualFollowingError" value="true"/>
      <modParam name="enableActualTorque" value="true"/>
      <modParam name="enableDigitalInput" value="true"/>
      <modParam name="digitalInChannels" value="16"/>
      <modParam name="enableDigitalOutput" value="true"/>
      <modParam name="digitalOutChannels" value="16"/>
      <modParam name="enableErrorCode" value="true"/>
      <modParam name="enableFollowingErrorTimeout" value="true"/>
      <modParam name="enableFollowingErrorWindow" value="true"/>
      <modParam name="enableHomeAccel" value="true"/>
      <modParam name="enableMaximumCurrent" value="true"/>
      <modParam name="enableMaximumTorque" value="true"/>
      <modParam name="enablePolarity" value="true"/>
      <modParam name="enablePositionDemand" value="true"/>
      <modParam name="enablePositioningTime" value="true"/>
      <modParam name="enablePositioningWindow" value="true"/>
      <modParam name="enableProbeStatus" value="true"/>
      <modParam name="enableProfileAccel" value="true"/>
      <modParam name="enableProfileDecel" value="true"/>
      <modParam name="enableProfileMaxVelocity" value="true"/>
      <modParam name="enableProfileVelocity" value="true"/>
      <modParam name="enableTargetTorque" value="true"/>
      <modParam name="enableTorqueDemand" value="true"/>
      <modParam name="enableTorqueSlope" value="true"/>
      <modParam name="enableVelocityErrorTime" value="true"/>
      <modParam name="enableVelocityErrorWindow" value="true"/>
    </slave>
    <slave idx="2" type="basic_cia402" vid="0x00000a88" pid="0x0a880013" name="D3">
      <!--RS750E(COE)-->
      <modParam name="ciaRxPDOEntryLimit" value="9"/>
      <modParam name="ciaTxPDOEntryLimit" value="9"/>
      <modParam name="enablePP" value="true"/>
      <modParam name="enablePV" value="true"/>
      <modParam name="enableTQ" value="true"/>
      <modParam name="enableHM" value="true"/>
      <modParam name="enableCSP" value="true"/>
      <modParam name="enableCSV" value="true"/>
      <modParam name="enableCST" value="true"/>
      <modParam name="enableActualFollowingError" value="true"/>
      <modParam name="enableActualTorque" value="true"/>
      <modParam name="enableDigitalInput" value="true"/>
      <modParam name="digitalInChannels" value="16"/>
      <modParam name="enableDigitalOutput" value="true"/>
      <modParam name="digitalOutChannels" value="16"/>
      <modParam name="enableErrorCode" value="true"/>
      <modParam name="enableFollowingErrorTimeout" value="true"/>
      <modParam name="enableFollowingErrorWindow" value="true"/>
      <modParam name="enableHomeAccel" value="true"/>
      <modParam name="enableMaximumCurrent" value="true"/>
      <modParam name="enableMaximumTorque" value="true"/>
      <modParam name="enablePolarity" value="true"/>
      <modParam name="enablePositionDemand" value="true"/>
      <modParam name="enablePositioningTime" value="true"/>
      <modParam name="enablePositioningWindow" value="true"/>
      <modParam name="enableProbeStatus" value="true"/>
      <modParam name="enableProfileAccel" value="true"/>
      <modParam name="enableProfileDecel" value="true"/>
      <modParam name="enableProfileMaxVelocity" value="true"/>
      <modParam name="enableProfileVelocity" value="true"/>
      <modParam name="enableTargetTorque" value="true"/>
      <modParam name="enableTorqueDemand" value="true"/>
      <modParam name="enableTorqueSlope" value="true"/>
      <modParam name="enableVelocityErrorTime" value="true"/>
      <modParam name="enableVelocityErrorWindow" value="true"/>
    </slave>
  </master>
</masters>

  • UweSauter
  • UweSauter
06 Jun 2025 16:29 - 06 Jun 2025 16:33

Umbau der Steuerung auf LinuxCNC + EtherCAT

Category: Deutsch

Hallo miteinander, 
 
ich habe mir vor einigen Jahren eine Portalfräse in XXYZ Konfiguration selbst gebaut. Damals hatte ich mich für eine Steuerung entschieden, die auf der Software Syntheos G2 [1] und CNCjs [2] aufbaut. Als Hardware dazu dient ein Arduino Due mit einer selbst entworfenen Platine, um an all die Ausgänge zu kommen.
Meine Achsen werden von JMC iHSV57-30-18-36 Servos angetrieben, meine Spindel ist eine Mafell FM1000PV. Außerdem ist ein Pilz PNOZ X3 Sicherheitsgerät verbaut, dass bei Nothalt u.a. die Spannungsversorgung von Spindel und Servos unterbricht.

Aus mehreren Gründen möchte ich jetzt meine Steuerung umbauen. Der wichtigste davon ist, dass die Steuerung manchmal ohne ersichtlichen Grund mitten im Programm stecken bleibt, die Spindel dann aber weiter läuft… keine gute Situation, da sie einem das Werkstück versauen kann.
 
Für meine neue Steuerung habe ich mich dazu entschieden, LinuxCNC einzusetzen und auf EtherCAT als etablierten Industriebus zu setzen. Seit einiger Zeit gibt es die JMC Servos auch in einer EtherCAT Variante, sodass ich auf Schnittstellenkarten zur Erzeugung von Schritt- und Richtungspulsen verzichten kann. Zusätzlich möchte ich meine Achsen noch mit einem zweiten Limit-Switch ausstatten und ein XHC WHB04b-6 Handrad hinzufügen.
Es steht allerdings noch die Entscheidung aus, ob ich einen Laptop (Thinkpad T400 oder T430) oder einen Raspberry Pi 4 oder 5 als Fräsrechner verwende.
 
Bevor ich jetzt allerdings meine funktionierende Fräse auseinander nehme möchte ich die neue Steuerung in einem Testaufbau in Betrieb nehmen.

Dank der guten Beschreibung hier im Forum hatte ich kein Problem, die grundsätzliche EtherCAT Funktionalität einzurichten. Ich sehe alle Schnittstellenkarten und Servos und kann den Status der Ein- und Ausgänge auslesen. Allerdings fehlt mir irgendwie noch ein kleines, aber entscheidendes Stück Verständnis, wie die INI und HAL Dateien aufzubauen sind… vielleicht wäre jemand so hilfsbereit und würde eine funktionierende Konfiguration veröffentlichen? Natürlich nur als Spickzettel, um daraus zu lernen.
 
Es folgt eine Detailübersicht über den aktuellen Aufbau der Steuerung:

 1 Laptop oder Raspi, mit USB Empfänger für das XHC WHB04b-6 Handrad, verbunden mit
 2 Beckhoff EK1100 Buskoppler
 3 Beckhoff EL1018 8-fach Digitaleingangskarte 10µs
 4 Beckhoff EL1018 8-fach Digitaleingangskarte 10µs
 5 Beckhoff EL2008 8-fach Digitalausgangskarte 0,5A 
 6 Beckhoff EL2008 8-fach Digitalausgangskarte 0,5A
 7 Beckhoff EL2024 4-fach Digitalausgangskarte 2,0A
 8 Beckhoff EL4104 4-fach Analogausgangskarte 0-10V
 9 Beckhoff EK1122 2-fach EtherCAT Abzweig
10 JMC iHSV57-30-18-36-EC für X1-Achse
11 JMC iHSV57-30-18-36-EC für X2-Achse
12 JMC iHSV57-30-18-36-EC für Y-Achse
13 JMC iHSV57-30-18-36-EC für Z-Achse

Die Ein- und Ausgänge sind wie folgt belegt:

 3.1 Limit-Switch X1 Min+Referenz
 3.2 Limit-Switch X1 Max
 3.3 Limit-Switch X2 Min+Referenz
 3.4 Limit-Switch X2 Max
 3.5 Limit-Switch Y Min+Referenz
 3.6 Limit-Switch Y Max
 3.7 Limit-Switch Z Min+Referenz
 3.8 Limit-Switch Z Max

 4.1 Werkzeuglängensensor
 4.2 Erkennung Nothalt (von Ausgang Sicherheitsgerät)
 4.3 Überwachung Spannungsversorgung Servos
 4.4 - 4.8 zur Zeit nicht belegt

 5.1 - 5.8 zur Zeit nicht belegt

 6.1 - 6.8 zur Zeit nicht belegt

 7.1 Ansteuerung Spannungsversorgung Frässpindel
 7.2 Ansteuerung Spannungsversorgung Absaugung
 7.3 - 7.4 zur Zeit nicht belegt

 8.1 Drehzahlsteuerung Frässpindel
 8.2 - 8.4 zur Zeit nicht belegt

Für die Konfiguration der Servos habe ich hier im Forum letztlich zwei unterschiedliche Möglichkeiten gefunden. Zum einen als "normales" CIA402 kompatibles Gerät oder, indem man die Konfiguration über PDOs selber macht. Gibt es dazu Empfehlungen? Ich hänge mal beide XML dazu an.

Ich würde mich über jeden Schubs in die richtige Richtung und über jede Hilfe freuen.
Da ich mir sicher bin, dass ich nicht alle notwendigen Informationen hier im ersten Post mitgeliefert habe, lasst mich wissen, was noch fehlt. Bei Interesse mache ich auch gerne Bilder von Fräse und Testaufbau.

Vielen Dank für die Unterstützung,

  Uwe

[1] github.com/synthetos/g2
[2] cnc.js.org/
Displaying 31 - 45 out of 891 results.
Time to create page: 1.181 seconds
Powered by Kunena Forum