Advanced Search

Search Results (Searched for: )

  • Unlogic
  • Unlogic
19 Sep 2024 13:42
Replied by Unlogic on topic Probe Basic / Touch Probe

Probe Basic / Touch Probe

Category: General LinuxCNC Questions

Big thanks Lcvette!

I think that guide will much appreciated by people setting up Probe Basic for the first time.
  • Aciera
  • Aciera's Avatar
19 Sep 2024 13:26

SCARA Vismach - Gcode error "exceed C's positive limit"

Category: General LinuxCNC Questions

Try starting your config through a terminal
$ linuxcnc

and see if you get any errors in the terminal output when the tk window freezes.
  • Lcvette
  • Lcvette's Avatar
19 Sep 2024 13:12
Replied by Lcvette on topic Probe Basic / Touch Probe

Probe Basic / Touch Probe

Category: General LinuxCNC Questions

i just updated the documentation for probe basic it now coveres several key areas including installation (of several methods), machine configuration building and setup, including making an easy to copy over file bundle placed in the config folder during installation, and an easy to follow guide on editing the ini and hal files. it will be much easier to keep current as the forum was difficult to edit or make changes to without utterly destroying the original formatting of the post. all doc updates will be directly on the probe basic website now and will be maintained and update with any major releases.

kcjengr.github.io/probe_basic/index.html
  • DPFlex
  • DPFlex
19 Sep 2024 12:46

SCARA Vismach - Gcode error "exceed C's positive limit"

Category: General LinuxCNC Questions

Hi Aciera,
You are correct. I added joint-3 and it worked :)

I see another issue of "tk window".
As my testing, I test moving from position-A to position-B in 200 times.
Normally after 50th time, the "tk window" is freezing, although G-code and real motors are still running.

Have you faced this issue ?.
Thank you.
  • Todd Zuercher
  • Todd Zuercher's Avatar
19 Sep 2024 12:35
Replied by Todd Zuercher on topic Make arc in W axis

Make arc in W axis

Category: General LinuxCNC Questions

To add to that, if you are wanting simultaneous synchronized motion of both your roughing and finish heads, you are not going to be able to use arcs at all. You will probably have to use a cam program to output sudo arcs made up of small line segments. This is really the only way to have two heads doing different synchronous movements. You may also need to use G93 inverse time feed commands (especially if you will also be using a rotary axis to control the finish head's angle.)

Imagine each line of g-code as a frame of a movie film, with each new line of g-code as an image of each axis' position at the frame rate's time interval. The difference being, unlike in a film the size of your time interval can be variable. For all linear moves you would only need a frame at the beginning and end. But for anything else the interval can be as small as you need to achieve your desired resolution.
  • meister
  • meister
19 Sep 2024 12:08

ideas-collection-tread for a new rio board

Category: Computers and Hardware

Hi,
i would like to design a new fpga board and am still looking for ideas.
Or if I can find someone, my knowledge of KICAD is limited...

My idea:

using KiCAD
should fit into a DIN-Rail housing (3D-Printed)
IO's preferably with indicator LED's
Optocouplers at the inputs
uln2003 at the outputs or better also isolated !?!?
1 power input up to at least 24V
FPGA power via isolated DC->DC converter
modbus onboard
expansion port (isolated ?)
onboard W5500 Ethernet
Optional SPI (with Flash-programming support)
Plugable terminals

I am not sure about the FPGA:

TangNano9K (devboard):
    + cheap
    - cannot be programmed directly via SPI (flash pins)
    - 1.8V on some pins
    - nextpnr is buggy / gowin ide is commercial and does not run directly on the RPI4

ICE40UP5K (no devboard):
    + nextpnr runs perfectly and also on the RPI4
    + programmable via SPI from an RPI4
    + cheap
    - few IO's and logic cells

ECP5 (no devboard)
    + nextpnr runs perfectly and also on the RPI4
    + programmable via SPI from an RPI4
    + price is ok
    + very many IO's and logic cells
    - BallGridArray (I'm afraid of this and I can't really solder it by hand)
    - I am afraid that you need 4 layer PCB's

I would be delighted if we could do this as a joint project

greetings
 Olli
  • Nathan40
  • Nathan40
19 Sep 2024 11:37
Replied by Nathan40 on topic Configuration for Lathe Tool on 7i95t boards

Configuration for Lathe Tool on 7i95t boards

Category: AXIS

Dear All

Thanks for your replies. Spindle sync just keeps failing as the G76 command just keeps running the thread cuts at rapid speed.
For the spindle, I have tried with another INI and HAL with a BOB but failed. Please help!
Does spindle sync actually work in 7i95T? LEDs are switching off and on correctly in config. Have checked that.
Files attached!
  • Moutomation
  • Moutomation
19 Sep 2024 11:30
Replied by Moutomation on topic ethercat gantry

ethercat gantry

Category: Advanced Configuration

I will try
  • Aciera
  • Aciera's Avatar
19 Sep 2024 11:20
Replied by Aciera on topic Kinematics file Configuration

Kinematics file Configuration

Category: Advanced Configuration

One solution that comes to mind is to use a python remap and write the value directly to the kinematic component:
import hal
hal.set_p("yourkinematic.yourpin",str(yourvalue))
  • jurod
  • jurod's Avatar
19 Sep 2024 11:01

Remap 3D Cubic Spline Interpolation code by Python

Category: O Codes (subroutines) and NGCGUI

Hi, I don't know how to create something functional. My idea is as follows:
Create a Gcod remap for example G5.4/5.5 (start and end of block in gcode)
Using the project from BigJohnT from this page forum.linuxcnc.org/21-axis/30986-axis-position-logger?start=100
After creating the gcode, I would like to easily edit this code to spline using the remap code.
Original from position Logger:
G40  G80 G98 
M6  T1  G43            
S 20000 M3 


G1 Z-100.0 F5000
G1  X583.8160   Y2785.3929   Z-80.0100  B-0.0060   C-180.6420   
G1   X569.5160   Y2551.3630   Z-20.8590  B-0.0060  C-180.6420    
G1   X569.5160   Y2551.3630   Z-534.4340  B-0.0060 C-180.6420   
G1   X569.5160   Y2551.3630   Z-563.0960  B-0.0060 C-180.6420   
G1   X587.9240   Y2551.3630   Z-562.6310  B-0.0060 C-180.6420   
G1   X602.8020   Y2531.2934   Z-547.8260  B-0.0060 C-180.6420   
G1   X616.4620   Y2550.4623   Z-563.0180  B-0.0060 C-180.6420   
G1   X630.8120   Y2550.4623   Z-563.9780  B-0.0060 C-180.6420   
G1   X601.7700   Y1631.0440   Z-563.0410  B-0.0060 C-180.6420   
G1   X586.6920   Y1633.2648   Z-561.9940  B-0.0060 C-180.6420   
G1   X574.5840   Y1656.0775   Z-546.8950  B-0.0060 C-180.6420   
G1   X560.3560   Y1634.1061   Z-561.9290  B-0.0060 C-180.6420   
G1   X545.8120   Y1634.7045   Z-562.6420  B-0.0060 C-180.6420   
G1   X575.0200   Y2556.2819   Z-563.3090  B-0.0060 C-180.6420   
G1   X575.0200   Y2556.2819   Z-543.9050  B-0.0060 C-180.6420   
;
G1 Z-100.0 F20000
G1   X583.8160   Y2785.3929   Z-80.0100  B-0.0060 C-180.6420   

M2
Edited:
G40  G80 G98 
M6  T1  G43            
S 20000 M3 


G1 Z-100.0 F5000
G5.4    X583.8160   Y2785.3929   Z-80.0100  B-0.0060  C-180.6420   
    X569.5160   Y2551.3630   Z-20.8590  B-0.0060  C-180.6420        
    X569.5160   Y2551.3630   Z-534.4340  B-0.0060 C-180.6420   
    X569.5160   Y2551.3630   Z-563.0960  B-0.0060 C-180.6420   
    X587.9240   Y2551.3630   Z-562.6310  B-0.0060 C-180.6420   
    X602.8020   Y2531.2934   Z-547.8260  B-0.0060 C-180.6420   
    X616.4620   Y2550.4623   Z-563.0180  B-0.0060 C-180.6420   
    X630.8120   Y2550.4623   Z-563.9780  B-0.0060 C-180.6420   
    X601.7700   Y1631.0440   Z-563.0410  B-0.0060 C-180.6420   
    X586.6920   Y1633.2648   Z-561.9940  B-0.0060 C-180.6420   
    X574.5840   Y1656.0775   Z-546.8950  B-0.0060 C-180.6420   
    X560.3560   Y1634.1061   Z-561.9290  B-0.0060 C-180.6420   
    X545.8120   Y1634.7045   Z-562.6420  B-0.0060 C-180.6420   
    X575.0200   Y2556.2819   Z-563.3090  B-0.0060 C-180.6420   
G5.5    X575.0200   Y2556.2819   Z-543.9050  B-0.0060 C-180.6420   
;
G1 Z-100.0 F20000
G1   X583.8160   Y2785.3929   Z-80.0100  B-0.0060 C-180.6420   

M2
From site stackoverflow.com/questions/31543775/how...on/48085583#48085583
Example Python cede:
[code]def my_cubic_interp1d(x0, x, y):
    """
    Interpolate a 1-D function using cubic splines.
      x0 : a 1d-array of floats to interpolate at
      x : a 1-D array of floats sorted in increasing order
      y : A 1-D array of floats. The length of y along the
          interpolation axis must be equal to the length of x.

    Implement a trick to generate at first step the cholesky matrice L of
    the tridiagonal matrice A (thus L is a bidiagonal matrice that
    can be solved in two distinct loops).

    additional ref: www.math.uh.edu/~jingqiu/math4364/spline.pdf 
    # original function code at: https://stackoverflow.com/a/48085583/36061
    
    
    This function is licenced under: Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
    https://creativecommons.org/licenses/by-sa/3.0/
    Original Author raphael valentin
    Date 3 Jan 2018
    
    
    Modifications made to remove numpy dependencies:
        -all sub-functions by MR
        
    This function, and all sub-functions, are licenced under: Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)        
        
    Mod author: Matthew Rowles
    Date 3 May 2021
    
    """
    def diff(lst):
        """
        numpy.diff with default settings
        """
        size = len(lst)-1
        r = [0]*size
        for i in range(size):
            r[i] = lst[i+1] - lst[i] 
        return r
    
    def list_searchsorted(listToInsert, insertInto):
        """
        numpy.searchsorted with default settings
        """
        def float_searchsorted(floatToInsert, insertInto):
            for i in range(len(insertInto)):
                if floatToInsert <= insertInto[i]:
                    return i
            return len(insertInto)
        return [float_searchsorted(i, insertInto) for i in listToInsert]
    
    def clip(lst, min_val, max_val, inPlace = False):    
        """
        numpy.clip
        """
        if not inPlace:
            lst = lst[:]  
        for i in range(len(lst)):
            if lst[i] < min_val:
                lst[i] = min_val
            elif lst[i] > max_val:
                lst[i] = max_val  
        return lst
    
    def subtract(a,b):
        """
        returns a - b
        """
        return a - b
    
    size = len(x)

    xdiff = diff(x)
    ydiff = diff(y)

    # allocate buffer matrices
    Li   = [0]*size
    Li_1 = [0]*(size-1)
    z    = [0]*(size)

    # fill diagonals Li and Li-1 and solve [L][y] = [B]
    Li[0]   = sqrt(2*xdiff[0])
    Li_1[0] = 0.0
    B0      = 0.0 # natural boundary
    z[0]    = B0 / Li[0]

    for i in range(1, size-1, 1):
        Li_1[i] = xdiff[i-1] / Li[i-1]
        Li[i] = sqrt(2*(xdiff[i-1]+xdiff[i]) - Li_1[i-1] * Li_1[i-1])
        Bi = 6*(ydiff[i]/xdiff[i] - ydiff[i-1]/xdiff[i-1])
        z[i] = (Bi - Li_1[i-1]*z[i-1])/Li[i]

    i = size - 1
    Li_1[i-1] = xdiff[-1] / Li[i-1]
    Li[i]     = sqrt(2*xdiff[-1] - Li_1[i-1] * Li_1[i-1])
    Bi        = 0.0 # natural boundary
    z[i]      = (Bi - Li_1[i-1]*z[i-1])/Li[i]

    # solve [L.T][x] = [y]
    i = size-1
    z[i] = z[i] / Li[i]
    for i in range(size-2, -1, -1):
        z[i] = (z[i] - Li_1[i-1]*z[i+1])/Li[i]

    # find index
    index = list_searchsorted(x0,x)
    index = clip(index, 1, size-1)

    xi1 = [x[num]   for num in index]
    xi0 = [x[num-1] for num in index]
    yi1 = [y[num]   for num in index]
    yi0 = [y[num-1] for num in index]
    zi1 = [z[num]   for num in index]
    zi0 = [z[num-1] for num in index]
    hi1 = list( map(subtract, xi1, xi0) )

    # calculate cubic - all element-wise multiplication
    f0 = [0]*len(hi1)
    for j in range(len(f0)):
        f0[j] = zi0[j]/(6*hi1[j])*(xi1[j]-x0[j])**3 + \
                zi1[j]/(6*hi1[j])*(x0[j]-xi0[j])**3 + \
                (yi1[j]/hi1[j] - zi1[j]*hi1[j]/6)*(x0[j]-xi0[j]) + \
                (yi0[j]/hi1[j] - zi0[j]*hi1[j]/6)*(xi1[j]-x0[j])        
    
    return f0
[/code]

I'm not a python programmer. Is it possible to make something similar work?
  • Ahmed.emara
  • Ahmed.emara
19 Sep 2024 11:01
Kinematics file Configuration was created by Ahmed.emara

Kinematics file Configuration

Category: Advanced Configuration

hello guys,
i am working on developing kinematics comp file and i have a question
is there is a way to pass a parameter in the VAR file to kinematics File ( C file ).
the parameter in the VAR file is computed based on remaping  O code i did before and save the value i want as #1001,#1002,#1003, i also looked for a way to save this parameter in a hal pin inside the O code and didnt reach to a solution
  • Aciera
  • Aciera's Avatar
19 Sep 2024 10:57
Replied by Aciera on topic ethercat gantry

ethercat gantry

Category: Advanced Configuration

1. Have you tried setting the 'HOME_OFFSET' value to automatically compensate for position difference during homing?

2. You cannot change Homing related settings in gcode you need to setup homing in the ini file. For more complex situations there is the possibility to choose between a standard homing procedure and a custom homing procedure using a hal pin but I would certainly try the HOME_OFFSET feature mentioned above first.
  • Moutomation
  • Moutomation
19 Sep 2024 10:55
Replied by Moutomation on topic ethercat gantry

ethercat gantry

Category: Advanced Configuration

I think I found a way. If I send the y1 axis to the y2 axis position before pressing the home all button and then press the home all button, there will be no problem. I will try.
Displaying 21886 - 21900 out of 24137 results.
Time to create page: 0.971 seconds
Powered by Kunena Forum