Description
(Note: skip or read all the way to my third reply before replying.)
When I create a ff_creatorx-2560 build from the current master, it works, but exhibits very noticeable stuttering every time an M70, M71, or M300 command occurs inside the code.
With the official FlashForge firmware and the r1591 build that can be installed through the Sailfish ReplicatorG, those commands also often cause a pause, but much shorter and often unnoticeable.
I build inside the (64-bit) VM available here, using the instructions from the README.markdown file. I have a FlashForge Creator Pro, therefore I build with scons platform=ff_creatorx-2560
(that's basically my workflow, I didn't change anything else). I've tried it with an avr-gcc 7.3.0 toolchain as well, and those builds exhibit the same problem.
Attached are a Gcode and X3G file that demonstrate the problem. Make sure to unload filament before trying this, because it will perform extrusion moves but won't activate any heaters.
Stutter-forklift-trunc.zip (a simpler test file that is less useful: StutterTest.zip)
The ‘forklift’ file is a cannibalized real print with some LCD display messages and beeps thrown in. On the older firmwares, I notice no delays whatsoever when those commands are activated, on my master build there are very obvious pauses.
The other file is a simpler synthetic test and curiously, it exhibits much shorter pauses on both firmwares.
r1519 was from 2015-07-10, and the newest FlashForge build was from 2016/05/23 according to its version screen, but I have no idea what commit it is based on.
I have tried to rebuild the r1519 release to check whether the problem has anything to do with my build workflow, or is actually inside the code. Compilation of those older checkouts fails with many errors however. The earliest commit I can build is from 2015-08-07. Some of those builds make jerky movements all the time, but the ones that don't, already exhibit the very noticeable pauses.
Could anything introduced after r1519 have caused the extra delays, or is some additional build magic required to end up with a smoother-running firmware?