Suggesting feature for Grbl, Marlin and similar firmware

Hi everyone.
Glad to finally jumped in the Github community.
A few years ago, I’ve been interested by CNC system and projected to build 3D printer, 3 & 5 axis milling machine. And for many reasons I can’t list here, my choices flight crached on Marlin for 3DP and Grbl for 3xMM experiences.
I do not yet build anything. I’m studying firmwares first. Then something retained my mind in configurations details (Please note that I’m just able to code “Hello World” in C langage, nothing else): I realized that moves are managed by counting motors steps. For me, this method brings a lot of matters regarding the precision’s efficiency. Below I list some of them:
=> every mecanism have its own errors tolerance: stepper motor’s steps tolerance ; screws, pulley-belt or gear-rack systems backlast etc.
=> theses errors tolerances grow up by time.
=> resistances due to needs of more forces than what the mecanism can offer cause blocking or sliding in transmission .
=> etc.
I don’t know how and why this method is choosen, but my matter is that the software ignore what happens really in the hardware, but it’ll continue computing as everything is going perfectly. As I said, I’ve not yet used CNC. Meaning I don’t what experienced peoples are facing practically.
But I think that it is possible to add a SM free moving controls option. That’s why I jumped here to suggest something to the developpement community.
I don’t have means to contribute otherwise .
I don’t if somebody have tried my idea before, but let me give it.


The idea consist of using optical distance sensors to send feedback to the software, base on wich it compute the moving state.
There are 3 wires optical distance sensors. I think they can be used, e.g, in place of min or max endstops pin of each axi for the data, the VCC and Gnd could be common for the among of axis sensors.
By this way:

the endstop can became optional, for indicating the global origin (assuming it is possible to configure this origin directly from the sensor and to use the decated pins for other purposes )

there is possibility to add local coordinate origin,

while the hardware does not move to the exact point, the motor will continue runing, no counting any hardware fault.

the machine control intelligence is closest to the human machiniste one.

#We could skip the backlast, slides and others faults that compromise efficiency.
It isn’t all. You’ll be more inspired ongoing, I believe.

Hope my siggestion brings something more to improve Grbl, Marlin and any Grbl based firmwares!!!