Advanced Search

Search Results (Searched for: )

  • Mecanix
  • Mecanix
02 Aug 2024 11:28 - 02 Aug 2024 11:29

LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)

Category: Computers and Hardware

Your consideration is much appreciated!! You're way too cool bud, thank you for what you've done for this community so far, no joke, it's EPIC <-- repost, take it.

Have a look and see if that's feasible. Problem on my side is not about keyboarding stuff but the Linuxcnc RTAI rather. I honestly wouldn't know where and how to test all that up, prolly would shave a month+ off my short life just to learn (min).

Side note; anyone telling you he/she's an expert in verilog and/or parallel-thinking is utterly lying to you. Bet there is only 5 persons on earth who master that brilliant e.e. mess of a codebase... (/rant_over lol)
  • meister
  • meister
02 Aug 2024 11:27

LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)

Category: Computers and Hardware

if we get rid of the errors in the w5500, i would of course always prefer this interface to the esp, as it is faster, reduces the parts and you don't have to program the esp as well.
Of course, the (r)mii interface would be even better, but the w5500 will do for now :)
  • meister
  • meister
02 Aug 2024 11:18

LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)

Category: Computers and Hardware

my knowledge of verilog is extremely limited and i would be happy to have someone with me who is more familiar with it.

I'm the last person who would complain about someone getting things to work in RIO that I'm too stupid for :)

i will test the new driver later at home, the integration into RIO is not so hard.

all what rio 'know' about the w5500 plugin is here:
riocore/plugins/w5500/

so, more or less, copy the new files into this folder and editing plugin.py:
changing list of verilog files:
self.VERILOGS = ["w5500.v", "SPI.v"]
and add the new pin:
self.PINDEFAULTS = {
....
            "w5500_rst": {
                "direction": "output",
                "invert": False,
                "pull": None,
            },
}

The only thing missing is this in the w5500.v:
         input [BUFFER_SIZE-1:0] tx_data,
         output [BUFFER_SIZE-1:0] rx_data,
         output reg sync = 0,
         output reg pkg_timeout = 0

sync: goes to 1 if a new package is received
pkg_timeout: goes to 1 if no package received for a while (parameter TIMEOUT)
tx_data: the data to send
rx_data: the received package

pkg_timeout is needed to trigger the error state of the CNC
sync is needed for multiplexed data
BUFFER_SIZE depends on the configuration and will be set while generating the rio.v
  • Sandro
  • Sandro
02 Aug 2024 10:51 - 02 Aug 2024 11:01

Homing with Absolute Encoders (Again)

Category: Advanced Configuration

Hello everyone

I am having issues setting up my homing sequence for absolute encoders on my Ethercat servo dirves. I have read trough a few topics here on the forum but did not find the solution to my problem.

Background: I have Lichuan Ethercat servo drives with 23bit absolute encoders. From testing I have found out, that the encoder tracks 512 turns (-256 to +256) which combined with my 5 mm pitch ballscrews gives me a effective range of -1280 to +1280 mm. I need a distance of 0 to 1000 mm on my machine. On startup of LCNC, my encoder reports the correct absolute position of my axis. I have setup the homing sequence as follows:
HOME_ABSOULTE_ENCODER = 2
HOME                    = 0
HOME_OFFSET                = 0
HOME_SEQUENCE            = 0
HOME_SEARCH_VEL            = 0
HOME_LATCH_VEL            = 0
HOME_IGNORE_LIMITS        = YES
#HOME_USE_INDEX          = NO

To the issue: Let's say on startup I am at some random position e.g. 833 mm. LCNC now requires me to press the home button before I am able to switch to teleop mode or issue MDI commands. What happens now, is that the position of the axis is set to 0 and my two soft limits of 0 mm and 1000 mm are applied. This however is in my opinion not correct since the soft limits are now actually at 833 mm and 1833mm. This would lead to a crash if I were to move the axis. I need the homing sequence to keep the 833 mm absolute position value and apply the soft limits at the effective 0 mm and 1000 mm. Basically I need it to just set the "homed" flag and be done with it.

Hope I was able to describe issue somewhat clearly. Any ideas?

Thank you and greetings
  • tommylight
  • tommylight's Avatar
02 Aug 2024 10:42
Replied by tommylight on topic Error at startup

Error at startup

Category: Configuration Tools

cannot gain I/O privileges - forgot 'sudo make setuid' or using secure boot? -parallel port access is not allowed
Why is there stuff for parallel port?
If not, start over, make a new config, do not fill info at random.
  • Grotius
  • Grotius's Avatar
02 Aug 2024 10:41
Replied by Grotius on topic Trajectory Planner using Ruckig Lib

Trajectory Planner using Ruckig Lib

Category: General LinuxCNC Questions

Hi Arciera,

The feedrate is set from -100 to 0 to 100 % in the gui. It's like adaptive feed.

I have to add a overide like up to 120%, but that's peanut's to do.
If the feedrate is set at 100% the gcode feedrate is exact that value. For jogging it takes the gui settings page feedrate.
So at -100% the motion goe's in reverse, also doing reverse with endvelocity. Taking the vo as endvel.

Testing a surface, this file is huge so i did a memory preview cleanup first :


Ok after testing a few gcode files, i have seen a few things in the optimizing algo. I will document these and report.
Displaying 24586 - 24591 out of 24591 results.
Time to create page: 0.413 seconds
Powered by Kunena Forum