Wiring encoder to LinuxCNC + Mesa vs motor controller

More
13 Aug 2025 15:21 #333340 by phino
How should (linear optical scale, 0.1 micron resolution) encoders be wired to a system using a LinuxCNC + Mesa 7i95T and ODrive Pro motor controllers for each axis? 
  • Encoder wired in parallel to both Mesa and ODrive motor controller? (ground loop issues, etc?)
  • Encoder wired only to Mesa with ODrive motor controller in open loop? (not recommended by ODrive)
  • Encoder wired only to ODrive motor controller with LinuxCNC + Mesa in open loop? (loses the whole point of LinuxCNC and coordinated motion)
  • Two encoders, one for each? (added cost and complexity)
  • Something else?
ODrive recommends wiring the encoder to the ODrive as it is claimed to have much higher bandwidth and fidelity (8kHz) than the LinuxCNC system: discourse.odriverobotics.com/t/connectin...sa-vs-odrive/13208/9

In the future it may be possible for the ODrive to pass through / re-output the encoder readings via GPIO pins. This would seem to be an interesting option, but it is not currently implemented and it's not clear if there could be potential latency issues.

What is the recommendation from the LinuxCNC + Mesa perspective, and are there any pitfalls to watch out for?

Please Log in or Create an account to join the conversation.

More
13 Aug 2025 15:48 #333343 by PCW
In general I would not use a step/dir drive with encoder feedback to LinuxCNC unless
this is a dual feedback system, that is for example a step/dir drive with local rotary
encoder and a separate linear encoder fed back to LinuxCNC. This way the high bandwidth
motor control loop is run locally and the lower bandwidth but higher high accuracy control
loop is run in LinuxCNC.

There are also noise issues when feeding drive connected encoders to LinuxCNC as the ground
reference of those encoders is often the negative motor power line. (At least in small DC powered drives)
The following user(s) said Thank You: phino

Please Log in or Create an account to join the conversation.

More
13 Aug 2025 16:22 #333348 by phino
Do you mean you would not use step/dir drives with a single encoder at all with LinuxCNC, or that you do not recommend wiring a single encoder to both the motor control and LinuxCNC?

In this case, the drive is a linear forcer, so there is no rotary encoder and just one separate linear encoder. I am trying to decide how to wire it up.

Please Log in or Create an account to join the conversation.

More
13 Aug 2025 16:34 #333349 by PCW
I do not recommend using the drives local rotary encoder as direct feedback to LinuxCNC.
It's possible but does not really confer any advantages. 

A system with a step/dir servo drive and an independent linear scale does have some advantages
in improving accuracy.

 

Please Log in or Create an account to join the conversation.

More
13 Aug 2025 16:49 #333350 by phino
Ok, good to know about the recommendation on drives with local rotary encoders.

For linear forcers or brushless DC motors without local encoders, how should the independent linear encoder be wired, with respect to the motor controller and/or LinuxCNC+Mesa?

Please Log in or Create an account to join the conversation.

More
13 Aug 2025 16:56 #333352 by PCW
Unless the scale was absolute or had commutation signals it's unlikely to be supported by most drives

Please Log in or Create an account to join the conversation.

More
13 Aug 2025 17:26 #333353 by phino
The encoder (Ditron DC13), linear forcer (Parker ML18), and motor controller (ODrive Pro) were tested to work together for one axis.

The question is how to then integrate these components with LinuxCNC and Mesa 7i95T, specifically the wiring of the encoder?

The ODrive Pro drives the linear forcer and requires encoder feedback for proper control. The intention is to control the ODrive Pro with step/dir from the 7i95T. But it is unclear how to connect the encoder to satisfy the feedback requirements for both the ODrive Pro and the LinuxCNC coordinated motion and DRO.

Please Log in or Create an account to join the conversation.

More
13 Aug 2025 17:33 #333354 by PCW
In that case I would run it open loop from LinuxCNC
(local closed loop to the drive)
 

Please Log in or Create an account to join the conversation.

More
13 Aug 2025 18:06 #333355 by phino
Is there some way to also provide encoder feedback to LinuxCNC to have coordinated motion? This is an important functionality for the application.

The machine will have multiple axes: 4 linear (3 + 1 redundant for gantry), 2 rotary, and 2 for a galvo (XY2-100) for a laser.

Please Log in or Create an account to join the conversation.

More
13 Aug 2025 18:09 #333356 by PCW
You still have coordinated motion even without position feedback to LinuxCNC
 

Please Log in or Create an account to join the conversation.

Moderators: PCWjmelson
Time to create page: 0.077 seconds
Powered by Kunena Forum