The firmware of the Flashforge Adventurer 3 seems to understand only a subset of typical marlin gcode:
- no G0 support (use G1 instead)
- if XYZ coordinates are combined within G1, the bed leveling mesh seems to be ignored (use two G1 (one for Z and one for XY) instead)
- M140 does not support decimal point numbers (only e.g. S50 instead of S50.0)
- M104 does not support decimal point numbers (only e.g. S50 instead of S50.0)
- no relative E value support (cura produces absolute E values either way)
- a Z-Offset needs to be included in each Z coordinate if required (use cura Z-Offset plugin and tick "extensive z-offset processing")
-> I've created a bash script to convert cura gcode to flashforge gcode. I'm not sure I've covered all edge cases, but it seems to work.
After playing with this, it seems
M118 X<xx.xx> Y<yy.yy> Z<zz.zz> TO
actually gives the printer a print-volume boundary within-xx.xx <= X <= xx.xx
,-yy.yy <= Y <= yy.yy
, and0.00 <= Z <= zz.zz
for the following gcode. If this exceeds the printer's build volume, or any of the gcode instructions after that go outside those boundaries, the file will fail validation and be rejected by the printer. Flashprint gives an error about going out of bounds, cannot be printed by this printer.So it definitely doesn't do what the docs at https://marlinfw.org/docs/gcode/M118.html say.