Universal-G-Code-Sender
Universal-G-Code-Sender copied to clipboard
Skew Correction
Problem: Squaring a DIY Machine perfectly can be quite difficult depending on it's configuration. Larger, heavier machines have their own challenges here. For example, a large, heavy vertical CNC table has it's X and Y axes out of square by a fraction of a degree. Dialing this in can be difficult to impossible.
Possible Solution: Software skew compensation. A number of commercial solutions have software skew compensation. 1 or 2 open source solutions (Marlin for example) have it. Print a test pattern. Make a few measurements. Calculate a skew correction value. Enter it into software. Software pre-calculates all corrections before running the job. Visualizer displays updated g-code and there are no discrepancies to be handled between sender and / or controller firmware.
Other possible solutions: 1.) Fix machine mechanics. Very much preferred solution. Unfortunately, some situations are quite challenging. Machines shift/come out of adjustment over time. Some linear motion components have limitation here. DIY systems tend to have some mechanical fab inaccuracies that can be compensated for with software / firmware. 2.) 3rd party Gcode post processor compensation. Run a g-code file through a skew correction utility. Have found one example. 3.) Realtime firmware compensation. Run a test pattern. Measure and calculate a skew correction factor. Enter as a firmware setting. Firmware adjusts g-code on the fly. Creates machine position discrepancy between g-code instructions sent by sender and actual machine position after correction by controller firmware. Is platform specific and computationally expensive for smaller embedded controllers (Acorn boards and a few others offer this.) 4.) Compensate in CAD geometry before generating g-code. (The worst and most confusing solution in my opinion.)