Advanced Search

Search Results (Searched for: )

  • tuxcnc
  • tuxcnc
19 Jun 2025 16:08 - 19 Jun 2025 16:29

Remora - ethernet NVEM / EC300 / EC500 cnc board

Category: Computers and Hardware

I can't drive EC500 spindle encoder to work.
(The counter works properly, but index not. I can use encoder's index output as ordinary I/O, but this not satisfied me due to delays)
I suspect, this never will work, because the used code is wrong way.
I'm developing similar project (but only spindle support) on STM32F103, and my code seems works properly.
Here you are most important fragments:
[code]//********************************************************
This is a fragment of code from other project
Not for copy/paste, only for explanation
//********************************************************

// EC500 side
// fb. prefix means variables will send from EC500 to hal component

struct fbPacket {
    float raw_encoder;
    float encoder_latched;
} fb = { 0.0, 0.0 };

fb.raw_encoder = encoder.getCount();
void index_ISR1() {        // interrupt handler
  fb.encoder_latched  = encoder.getCount();
}

//********************************************************

// Hal component side
// fb. prefix means variables received from EC500
// index_ena is i/o hal pin for connect to spindle.0.index_enable
// pos_scale is hal input pin
// period is LinuxCNC global variable
// pos and vel are hal output pins
// Not need anything else for synchronising spindle

float old_pos;
float latched_enc;
float encoder_latched_old;
float delta_pos;
float delta_time;
struct FB {
    float raw_encoder;
    float encoder_latched;
} fb = { 0.0, 0.0 };

            if  ((encoder_latched_old != fb.encoder_latched) && (index_ena)) {
            latched_enc = fb.encoder_latched;
        old_pos = (fb.raw_encoder - latched_enc);
            index_ena = false;
            }
            encoder_latched_old = fb.encoder_latched;

   pos = (fb.raw_encoder - latched_enc) / pos_scale;
   delta_pos = pos - old_pos;
   old_pos = pos;
   delta_time = period * 1e-9;
   vel = delta_pos / delta_time;
   
//******************************************************** 
[/code]
 
  • PCW
  • PCW's Avatar
19 Jun 2025 15:45

Using Mesa 7i95T for laser + galvo (xy2-100) control

Category: Driver Boards

The differential input is because the full XY2-100 interface has a status channel
but its not required for operation.

Yes, a configuration could be made using the sserial tx channels and one stepgen.

The serial TXEna pins would end up as GPIO pins and have to be set into the enabled
state in the hal file.
 

 
  • kubes
  • kubes
19 Jun 2025 15:42 - 19 Jun 2025 16:08
Replied by kubes on topic How to jog when beyond soft limits

How to jog when beyond soft limits

Category: EtherCAT

@pippin88, Thanks for the move on the shutdown workaround! It will help with the symptom.

Thinking about this more and doing some more testing. Adding more limits will not address the root issue, as any we could be at that new limit and this could still exceed it.

I believe it's a limit resolution issue. Note, I do not know how the code works in comparing and testing for limits. I should be able to specify the resolution of the comparison. In the current case it looks like is doing the comparison at 10ths (.0001) and that scale is just too small. One should be able to set limits at the granularity required for their hardware. My max machine limit is 0.3 absolute in this case. I tried changing my limits to 0.3, 0.30, 0.300, etc. But is seem to compare .3 to the current position of 0.3007 (example). Again, in my case, the axis can shift by 0.0005 +/- .0002. So I would like my limit to be 0.300 (truncated (not rounded) at thou) thus 0.3007 would not be beyond the limit. Think 0.30007 > 3.000 vs 0.300 > 0.300.  Another means would be to add a VARIANCE ini setting to use to calculate the amount of variability in the limit comparison.

Also, this could be a issue for anyone with limits, but maybe due to off_set on the hard limit people don't see it. Or I am completely wrong in my limited understanding of limits work....

In addition, I am more sure the JOINT vs AXIS limit works as documented. (more on that later)
Displaying 15001 - 15003 out of 15003 results.
Time to create page: 1.059 seconds
Powered by Kunena Forum