CNC controller with encoder feedback?


I am planning to build a plotter and I’d like to use odrive. Trying to work out how to go about controlling it. I want the positional feedback from the encoders to update the controller’s state so that manually moving the carriage doesn’t require re-homing (actually update the tool position, not just have the closed loop return to the point before you moved it). Is that possible, in particular with core xy kinematics?

I know I could just use it in step/dir mode with my GRBL board or a 3D printer board. But then obviously I don’t get any of the fancy features of the odrive.

I’ve scoured the forum and there’s a number of conversations about Klipper but it seems there’s no working implementations of that yet. That’s beyond my coding skills to work on.

I was also wondering about linux cnc, but can’t find much about odrive with that.

Or is it possible to handle everything in python and talk to odrive directly over usb? Don’t really need gcode - I have an SVG parser in python - can I just use that to stream coordinates to the odrive? I guess that will not benefit from the proper motion planning that those controllers provide.

Thanks for any help!

If you move the axes with the ODrive in AXIS_STATE_IDLE, it will keep track of where it is.