Advanced Search

Search Results (Searched for: )

  • Red_D85
  • Red_D85
Today 20:03
Maho MH-400 Retofit was created by Red_D85

Maho MH-400 Retofit

Category: Deutsch

Hallo zusammen

gibt es hier jemanden der vielleicht schon mal eine Streckensteuerung mit LinuxCNC umgesetzt hat. Das bedeutet die Maschine hat nur 1 Antriebsmotor für alle 3 Achsen und muss erst die entsprechende Achse einkuppeln und sie dann mit dem Servomotor auf die Position fahren. Es darf allerdings niemals eine andere Achse neben der angewählten Achse eingekuppelt werden da sonst ein Getriebeschaden droht.
hat jemand eine idee wie ich das im LinuxCNC anstellen kann?

freundliche Grüsse und schöne Abend
  • Hakan
  • Hakan
Today 19:36
Replied by Hakan on topic EtherCAT driver as simply positioner

EtherCAT driver as simply positioner

Category: EtherCAT

I think you want to use PP (Profile Position) mode.
It's a cia402 op-mode, with some  luck your drive supports it.
You need to set Profile Velocity and Profile Accelerations, from that
the drive will move to the position you set with for example halcmd setp pin position

dbraun1981's cia402 component doesn't support pp mode but you can easily add it.
WIthout any detail, these are the steps.
Set controlword to 6, 7, 15 (op-enabled)
Set op-mode to 1 (pp)
Set pp accelerations and velocity
Set pp position
wait (optional check target_reached)
Set new pp position
wait ...
and so on.
  • landoneilers
  • landoneilers
Today 19:31
Replied by landoneilers on topic 403 Forbidden

403 Forbidden

Category: Forum Questions

The issue is the topic got deleted.

So you couldn't view it (because it was gone).

A page saying "post deleted" would be more helpful than a weird, unexpected 403 error without any explanation.
  • tuxcnc
  • tuxcnc
Today 18:52
EtherCAT driver as simply positioner was created by tuxcnc

EtherCAT driver as simply positioner

Category: EtherCAT

Hi.
I need configure closed loop EtherCAT driver as simply positioner (tools magazine).
There is no problem to use this as rotary axis, but i don't want waste resources.
I need only internally homing and go to some position. 
Theoretically I need only some bash scripts with "halcmd setp somepin" running as custom M-codes, but this doesn't work.
My driver not responds for any controlwords.
I must do something wrong, because this same driver works properly as axis.
Can somebody help me ?
  • andrax
  • andrax's Avatar
Today 18:43

Technical questions about CIA402 and homecomp.comp on A6

Category: EtherCAT

@rodw I'm sorry. You're doing a great job.
I understand PLC programming, control technology, and sensor technology myself. But when it comes to high-level languages like C, my brain says noooo, you're too stupid.
Nevertheless, I am still thinking about how to solve the problem and trying to contribute something. So I simply fed chatgpt with parameters and this is what came out. I don't think this code is usable, but maybe it will help someone come up with ideas.
component cia402_homecomp "CIA402 homing module with safety watchdog + estop";

pin out bit is_module = 1;
pin out bit cia_estop_out;   // GLOBAL EMERGENCY STOP OUTPUT

license "GPL";
option homemod;

#include "motion.h"
#include "homing.h"

/* ---------------- SAFETY PARAMETERS ---------------- */

param rw float start_timeout_s = 2.0;
param rw float run_timeout_s   = 20.0;

/* ---------------- LOCAL DATA ---------------- */

typedef struct
{
    bool request;
    bool start;
    bool homed;
    bool error;
    bool active;
} cia_local_t;

static cia_local_t ciaH[EMCMOT_MAX_JOINTS];

static double servo_dt;

/* ---------------- HAL PINS ---------------- */

typedef struct
{
    hal_bit_t *request;
    hal_bit_t *is_active;
    hal_bit_t *start;

    hal_bit_t *homed;
    hal_bit_t *error;

} pins_t;

static pins_t *pins;

/* ---------------- PIN CREATION ---------------- */

static int cia_makepins(int id, int njoints)
{
    int r = 0;

    pins = hal_malloc(sizeof(pins_t) * njoints);
    if (!pins) return -1;

    for(int j=0;j<njoints;j++)
    {
        r += hal_pin_bit_newf(HAL_IN , &pins[j].request, id,
                             "joint.%d.request-cia-homing", j);

        r += hal_pin_bit_newf(HAL_OUT, &pins[j].is_active, id,
                             "joint.%d.is-cia-homing", j);

        r += hal_pin_bit_newf(HAL_OUT, &pins[j].start, id,
                             "joint.%d.start-cia-homing", j);

        r += hal_pin_bit_newf(HAL_IN , &pins[j].homed, id,
                             "joint.%d.cia-homed", j);

        r += hal_pin_bit_newf(HAL_IN , &pins[j].error, id,
                             "joint.%d.cia-error", j);
    }

    return r;
}

/* ---------------- IO ---------------- */

static void read_pins(int njoints)
{
    for(int j=0;j<njoints;j++)
    {
        ciaH[j].request = *pins[j].request;
        ciaH[j].homed   = *pins[j].homed;
        ciaH[j].error   = *pins[j].error;
    }
}

static void write_pins(int njoints)
{
    for(int j=0;j<njoints;j++)
    {
        *pins[j].is_active = ciaH[j].active;
        *pins[j].start     = ciaH[j].start;
    }
}

/* ---------------- GLOBAL ESTOP ---------------- */

static void global_estop(int njoints)
{
    cia_estop_out = 1;

    for(int j=0;j<njoints;j++)
    {
        ciaH[j].start  = 0;
        ciaH[j].active = 0;

        H[j].homing = 0;
        H[j].home_state = HOME_IDLE;
    }
}

/* ---------------- SAFETY STATE MACHINE ---------------- */

static int cia_1joint_sm(int j)
{
    typedef enum { IDLE, WAIT_START, RUN } st_t;

    static st_t st[EMCMOT_MAX_JOINTS];
    static double start_t[EMCMOT_MAX_JOINTS];
    static double run_t[EMCMOT_MAX_JOINTS];

    switch(st[j])
    {
        case IDLE:

            if (H[j].home_state == HOME_START && ciaH[j].request)
            {
                ciaH[j].start  = 1;
                ciaH[j].active = 1;

                H[j].homing = 1;
                H[j].homed  = 0;

                start_t[j]=0;
                run_t[j]=0;

                st[j]=WAIT_START;
            }
            break;

        case WAIT_START:

            start_t[j]+=servo_dt;

            if (ciaH[j].error)
            {
                rtapi_print_msg(RTAPI_MSG_ERR,"CIA start error joint %d\n",j);
                return -1;
            }

            if (start_t[j] > start_timeout_s)
            {
                rtapi_print_msg(RTAPI_MSG_ERR,"CIA start timeout joint %d\n",j);
                return -1;
            }

            if (!ciaH[j].request)
                st[j]=RUN;

            break;

        case RUN:

            run_t[j]+=servo_dt;

            if (ciaH[j].error)
                return -1;

            if (ciaH[j].homed)
            {
                ciaH[j].start=0;
                ciaH[j].active=0;

                H[j].homing=0;
                H[j].homed=1;
                H[j].home_state=HOME_IDLE;

                st[j]=IDLE;
                return 0;
            }

            if (run_t[j] > run_timeout_s)
            {
                rtapi_print_msg(RTAPI_MSG_ERR,"CIA run timeout joint %d\n",j);
                return -1;
            }
            break;
    }

    return 1;
}

/* ---------------- API ---------------- */

int homing_init(int id,
                double servo_period,
                int n_joints,
                int n_extrajoints,
                emcmot_joint_t *pjoints)
{
    servo_dt = servo_period;

    int r = base_homing_init(id, servo_period, n_joints, n_extrajoints, pjoints);
    r += cia_makepins(id, n_joints);

    return r;
}

void read_homing_in_pins(int njoints)
{
    base_read_homing_in_pins(njoints);
    read_pins(njoints);
}

void write_homing_out_pins(int njoints)
{
    base_write_homing_out_pins(njoints);
    write_pins(njoints);
}

bool do_homing(void)
{
    int busy=0;
    int fault=0;

    do_homing_sequence();

    for(int j=0;j<all_joints;j++)
    {
        if(!ciaH[j].request)
            busy+=base_1joint_state_machine(j);
        else
        {
            int r=cia_1joint_sm(j);

            if(r<0) fault=1;
            else busy+=r;
        }
    }

    if(fault)
    {
        global_estop(all_joints);
        return 0;
    }

    homing_active=(busy>0);
    return 0;
}
  • ClarkSavage
  • ClarkSavage
Today 18:22
Replied by ClarkSavage on topic 7i92T and mx3660 request for help

7i92T and mx3660 request for help

Category: PnCConf Wizard

MESA files attached for previous message

File Attachment:

File Name: 7i92Treadh...2-16.txt
File Size:5 KB
  • ClarkSavage
  • ClarkSavage
Today 18:20
7i92T and mx3660 request for help was created by ClarkSavage

7i92T and mx3660 request for help

Category: PnCConf Wizard

I hope this is not a double post - tried earlier, reported only 8 files attached so I cancelled, will try here and then follow with the other files


Below tells what I have and have done - what I could use some help with.What I am trying to do is simply hook the 7i92T to my mx3660 without moving anything - just wish to replace my parallel port with the MESA, so keep all my parallel stuff - limits and other as is just need to get the 7i92T to be the faux parallel port and work in LinuxCNC.
  1. Had a working 2.9.8 with an MX3660 controlling steppers VIA parallel port
  2. Have new install of LinuxCNC 2.9.8, a MESA 7i92tm with P2 being a parallel DB25.
  3. I did learn that the 7i92tm and 7i92T are both named in configs as 7i92T with no M or other.
  4. Have everything wired, network works, network can see the MESA and a parallel cable out of P2 on the card to my MX3660.
  5. Finally flashed the 7i92 with the bin file:  7i92t_mx3660d.bin
  6. 7i92 reported successful flash.
  7. Shut everything down and rebooted all.
  8. The 7i92 gets red and green lights then the red goes out and the green is on like I understand it should be.
  9. Proceeded to Pncconfig figuring this will be easy.
  10. When I go into pncconfig I do not see in the "hardware" select able anything like "mx3660" but I do see such as "7i92 internal" and "Geckoxxxxxx" [x where I do not remember] and so on, tried several. Wondering if the flash did not give me the mx3660 - thought it would just show up as mx3660d in the list.
  11. Also, after reading the manual, the forum search, everything including youtube videos the pages do not look like the ones in those shown. I can get to the card setup and after accepting the changes - including 10.10.10.10 for the card I do get the P1 and P2 pages for the card.Anyway, stumped. Tried several manual configs of the card, tried setting the X axis and testing - when I actually do "test axis" for calibrate the red light on the 7i92 lights. I have to power cycle to get it off, as soon as I test the axis it red lights. So I am attaching what I see others have - the output of the card from a terminal, along with my old ini and hal files - whatever may be of use. Please note the name of my ini and hal files reference 2.8.4 but that's just the names I gave the last working configs I did update but left the bookworm file name in the configs.I appreciate anything to get on track I can get. FYI - the 7i92 is connected to the MX3660, what I really could use is what the pins or setup should be. Why I went to the 7i95 is to offload some from the computer port since I would get occasional errors if trying to run faster than 180ipm. I do not mind 180ipm it's just that the computer port appeared to choke on the data stream once in a while.If I can get this to work I intend to write it all up and post it for others as a complete - including that the bin file needs to be in the home usr directory to flash. Instructions were to put the file in the same directory as "mesaflash" but that isn't true, unless I am seriously missing something and I may be.Thanks

    File Attachment:

    File Name: 2-8v4-Book...2-16.hal
    File Size:4 KB

    File Attachment:

    File Name: 2-8v4-Book...2-16.ini
    File Size:5 KB

    File Attachment:

    File Name: custom_2026-02-16.hal
    File Size:0 KB
  • landoneilers
  • landoneilers
Today 18:17

Why are the forum and homepage on separate servers (from 2 different companies)?

Category: Forum Questions

The forum is on DigitalOcean, while the homepage and wiki are on DreamHost.

Wouldn't it make more sense for both sites to be served from the same NGINX server or whatever?

I suppose the SQL and PHP (or whatever the backend is) could remain on the separate DigitalOcean while the core HTTP server could be shared by the forum and main site.

Related question:
Why is the www.linuxcnc.org homepage even on DreamHost in the first place?
Using GitHub Pages would be easier and also slightly reduce the load on the dreamhost server.
  • ClarkSavage
  • ClarkSavage
Today 18:15

7i95T and leadshine mx3660 new setup issues asking for help

Category: PnCConf Wizard

Below tells what I have and have done - what I could use some help with.

What I am trying to do is simply hook the 7i92T to my mx3660 without moving anything - just wish to replace my parallel port with the MESA, so keep all my parallel stuff - limits and other as is just need to get the 7i92T to be the faux parallel port and work in LinuxCNC.
  1. Had a working 2.9.8 with an MX3660 controlling steppers VIA parallel port
  2. Have new install of LinuxCNC 2.9.8, a MESA 7i92tm with P2 being a parallel DB25.
  3. I did learn that the 7i92tm and 7i92T are both named in configs as 7i92T with no M or other.
  4. Have everything wired, network works, network can see the MESA and a parallel cable out of P2 on the card to my MX3660.
  5. Finally flashed the 7i92 with the bin file:  7i92t_mx3660d.bin
  6. 7i92 reported successful flash.
  7. Shut everything down and rebooted all.
  8. The 7i92 gets red and green lights then the red goes out and the green is on like I understand it should be.
  9. Proceeded to Pncconfig figuring this will be easy.
  10. When I go into pncconfig I do not see in the "hardware" select able anything like "mx3660" but I do see such as "7i92 internal" and "Geckoxxxxxx" [x where I do not remember] and so on, tried several. Wondering if the flash did not give me the mx3660 - thought it would just show up as mx3660d in the list.
  11. Also, after reading the manual, the forum search, everything including youtube videos the pages do not look like the ones in those shown. I can get to the card setup and after accepting the changes - including 10.10.10.10 for the card I do get the P1 and P2 pages for the card.Anyway, stumped. Tried several manual configs of the card, tried setting the X axis and testing - when I actually do "test axis" for calibrate the red light on the 7i92 lights. I have to power cycle to get it off, as soon as I test the axis it red lights.

     So I am attaching what I see others have - the output of the card from a terminal, along with my old ini and hal files - whatever may be of use. Please note the name of my ini and hal files reference 2.8.4 but that's just the names I gave the last working configs I did update but left the bookworm file name in the configs.

    I appreciate anything to get on track I can get. FYI - the 7i92 is connected to the MX3660, what I really could use is what the pins or setup should be. Why I went to the 7i95 is to offload some from the computer port since I would get occasional errors if trying to run faster than 180ipm. I do not mind 180ipm it's just that the computer port appeared to choke on the data stream once in a while.If I can get this to work I intend to write it all up and post it for others as a complete - including that the bin file needs to be in the home usr directory to flash. Instructions were to put the file in the same directory as "mesaflash" but that isn't true, unless I am seriously missing something and I may be.
    Thanks

    Attachment not found

    Attachment not found

    Attachment not found

    File Attachment:

    File Name: 7i92Treadhmid.txt
    File Size:5 KB

    File Attachment:

    File Name: 2-8v4-Bookworm.hal
    File Size:4 KB

    File Attachment:

    File Name: 2-8v4-Bookworm.ini
    File Size:5 KB

    File Attachment:

    File Name: custom.hal
    File Size:0 KB

    File Attachment:

    File Name: custom_postgui.hal
    File Size:1 KB
  • Finngineering
  • Finngineering
Today 17:25 - Today 17:28
Replied by Finngineering on topic XHC WHB04B development?

XHC WHB04B development?

Category: General LinuxCNC Questions

Yes, the output stops for some 10 seconds after operating the pendant (I think any action, not only the wheel). If you press a button during that time, it still comes through. But the regular updates resumes only after about 10 seconds.

At first I thought this 10 second delay was because I somehow polled the dongle in a wrong way. But I later tried it with the Mach3 driver, and found it to exhibit the same behavior. So I would say this is again pointing to not so high quality dongle firmware.

The idea was the program was partly to investigate the issue, partly to maybe create a new driver for LinuxCNC. Like I have mentioned, I'm not fully happy with xhc-whb04b-6 component functionality nor with how its coded (too many layers of abstraction for my liking/understanding). And the "blocking calls" are basically a fundamental issue with it. But don't get me wrong. I do appreciate and praise all the work done by the guys/gals who has made and updated the component. Evidently it works fine in many situations, just not (all the time) for me.
  • Hakan
  • Hakan
Today 17:03
Replied by Hakan on topic XHC WHB04B development?

XHC WHB04B development?

Category: General LinuxCNC Questions

I was just thinking that I was able to work with the pendant for hours, despite disconnects.
You are of course right, it's not correct. The component seems to try to adapt to the situation
and succeeds to 99.5%.

Tried your code. Had to replace libusb_init_context with libusb_init, after that it ran.
You have some skills there for sure.
Yeah, it kept the pendant busy. There were no disconnects while running.
The polling stopped, or maybe the output stopped, for some ten seconds
after turning the wheel, then it started again. I guess that was intentional.

What's your idea with the code? Just for test or should it replace the usb code
in the whb04b component or ?

I should be able to downgrade my usb to usb 2.0 on wednesday.

 
  • Finngineering
  • Finngineering
Today 16:58
Replied by Finngineering on topic XHC WHB04B development?

XHC WHB04B development?

Category: General LinuxCNC Questions

Here are a few photos of my pendant that I took in the summer. Sorry, but I do not currently have any photos with the cards inside the housing. And just for info... I tried to read out the firmware from the STM32, but unfortunately it is read-out protected.
 
 
 
 
  • Finngineering
  • Finngineering
Today 16:35
Replied by Finngineering on topic XHC WHB04B development?

XHC WHB04B development?

Category: General LinuxCNC Questions

Attached is the "test driver" I made, which repeatedly polls the pendant and displays the data received. It can also update the display if you uncomment the last line in usb_interrupt_callback(). Just unzip the file into a folder and running from the terminal you should get something like:
$ make && ./whb04b
gcc -Wall -Wextra -pedantic -c -o main.o main.c
gcc -o whb04b main.o -lusb-1.0 -lm
1771265676.388 info: usb->devh: 0x564516f1abe0
1771265676.491 info: IN data: 04 10 00 00 10 11 00 10 
1771265676.509 info: IN data: 04 10 00 00 10 11 00 10 
1771265676.951 info: IN data: 04 10 00 00 10 11 00 10 
1771265677.395 info: IN data: 04 10 00 00 10 11 00 10
You need to have libusb-1.0-0-dev installed for this to compile it. But if you already compiled LinuxCNC from source, I think you should already have it.

And regarding repeated disconnects... It may be normal behavior in as far as that is what happens. But it is for sure not correct behavior.

I would also prefer a wired pendant over this wireless one. But when I bought it this seemed like the best option for me for a relatively low cost. And I do not think that the issues we see are caused by the RF link failing.
  • MRx
  • MRx
Today 16:10
Replied by MRx on topic XHC WHB04B development?

XHC WHB04B development?

Category: General LinuxCNC Questions

I'm using the hardwired version for years without any problems - no disconnects.
Can you open your pendant and take some photos of the PCBs so I can compare it with mine?
  • mr_huxley
  • mr_huxley
Today 16:08

IndraDrive + LinuxCNC – PDO configuration problems

Category: EtherCAT

To clear an "amplifier fault" (drive error) I can do it using the halshow and then via cia402.0.fault-reset but I read somewhere that the fault should also be cleareable when clicking the enable/power on button. It works but only sometimes if I keep pressing the button it will clear the error and the time after that allow to power on. Should the enable button clear the error reliably? Maybe there is something wrong with my setup. Probably latency issues as I'm using a RPI4...

Also, with ethercat there is no way to use the UI emergency button, correct?
Displaying 1 - 15 out of 282793 results.
Time to create page: 2.501 seconds
Powered by Kunena Forum