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.
I have some other observations that maybe belong in the README.md;
;
anywhere on the line, the whole line is ignored.M106
extruder fan-on cmd does not support aS<0-255>
fan speed argument. The fan can only be on or off.M106
andM107
fan-on and fan-off cmds are executed as the gcode is parsed and are not injected into the "execution buffer". This means they will execute in advance of the print commands that come before them. You can notice this with the "fan on after first layer" option in flashforge, where the fan will turn on well before the first layer has finished printing, even though theM106
cmd is in the gcode at the start of the second layer, and the fan always turns off before printing has finished even though theM107
cmd is at the very end.There are some other things I've noticed that I'm unsure about;
start.gcode
andend.gcode
fragments.M900
pressure-advance cmd doesn't seem to do anything, and probably the Adv3 doesn't actually support pressure advance. I did a heap of tests to try and calibrate pressure advance and although I could see definite signs it would help improve prints, changing the pressure advance setting with theK<value>
argument didn't seem to make any difference. However, in retrospect it might have been because my testing made some mistakes;M900
cmd is executed at parse-time likeM106
andM107
are, in which case my tests which tried printing accelerating/decelerating lines with different Kf values would have probably whipped through all the different Kf settings, leaving it at the last set value before any of the lines even started printing.advance_steps / delta_extrusion_speed
, not the newer V1.5 Linear Advance where kfactor isadvance mm / speed mm/s
. This means my tests using new-style0.0 <= kfactor <=2.0
values would be using a value too small to make a difference. The old-style values would need to be0.0 <= kfactor <= 200.0
.EXTRA_LIN_ADVANCE_K
and the setting only becomes active after executingM900 S0
.M900
cmd only kicks in after one of the otherstart.gcode
cmds are executed, likeG28
orM108 T0
orM132 X Y Z A B
. My tests were just puttingM900
cmds between printing each line.I will one-day try and re-test the
M900
cmd taking those possible mistakes into account.