The IOs could be accessed, but the issue will the grbl code. I think you could grab the serial data to have a DRO of what grbl is reporting. That’d still be pretty cool without the closed loop feedback.
There are stepper drivers which can compensate for missed steps.
excellent point, which instantly kills my idea
Back to my backup plan: using two DRO scales to at least automate the mapping & calibration of the belts across the work area (another one of my shapeoko fantasies right now)
Commentary on how small Grbl compiles down to in an image:
Its 2kb of memory laughable even by early 80s standards. Here you go, a picture of the Arduino with enough bits of 80s phenomenon Billy Idol to completely fill its working memory:
I have a slight (or glaring) issue, when y’all suggest the Stepoko as a compareable alternative. It only has 3 stepper drivers, compared to the Carbide 3D motion controller, so you can’t drive the slave Y-Axis motor.
There will be a new version of grbl “soon” that will be based on a more capable board. That said, I think writing the code to adjust motion based on feedback would not be a trivial task.
Probably better off putting time, effort, and money into a machine where loss of position isn’t a concern. The goal should be that the machine moves the way you tell it to.
There’s already precedence for this ---- bCNC for example has code to probe a surface, then import a G-Code file, and adjust it so that it conforms to the surface as it is cut.
The downside is that this converts any G2/G3 arcs into an approximation of straight-line segments.
this thread keeps on giving me fresh ideas, thanks. So new proposal:
map the entire work area for local inaccuracies/calibration factors. A set of two DRO scales would help automate/speed-up the process for collecting this data.
then implement an offline compensation of the G-code files, that parses the files and adjusts the displacement distances depending on X/Y position.
run the modified G-code file on the unmodified shapeoko.
Not as good as actual positional feedback, does nothing against lost steps in the motors, but much easier and no need to mess with GRBL.
This is a common technique in large or custom machines, where obtaining tight tolerances on the mounting surfaces for things like linear rails is not viable. I’ve seen it done with a Faro laser tracker inside a gantry mill (20’x80’+x12’). Mount the balls on the spindle and move it in various positions throughout the work envelope and use that to build an offset table. Siemens has a built in option for implementing this in their 840D controllers.
So, I bought two 12" DRO scales, and while waiting for them to arrive, I had a look at how to collect the data automatically, and it turns out it’s very easy, I soldered 4 wires on my (cheap) caliper as a preliminary test, connected them to an arduino, and grabbed the serial data that the caliper spits out several times per second, and voila.
I can’t wait for the actual DROs to arrive to start mapping the X/Y work area. My plan is to use the two DROs to hack a simple X/Y mechanism, move the sliders to a specific position using the shapeoko, do a readout, move to some other position, readout, etc…many times over and covering the whole work area. A reverse CNC if you will
And it’s probably going to end up as “well, that was worthless, but quite fun!”