Well this is promising…
Marlin 1.0.2.1 has the following change from the version Zeepro used:
Zeepro version:
#define BLOCK_BUFFER_SIZE 4 // SD,LCD,Buttons take more memory, block buffer
Marlin 1.0.2.1:
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block
According to the reprap link here “BLOCK_BUFFER_SIZE is the size of the movement block queue “block_buffer””. Sounds intriguing. A theory I had was that is was not OctoPrint pausing, but the Zim board not handling the number of commands being sent causing the periodic pauses. Apparently the Marlin firmware blocks until space is available in this queue. A series of rapid commands, like very short moves, could fill it I suppose, causing a pause.
I bumped up my version of BLOCK_BUFFER_SIZE to 16 to match the latest Marlin. I also removed any references to RFID in the code. I don’t think this was causing any issue, but somehow it was satisfying to rip it out.
So far it is working great! It appears to have resolved my pausing issues on short rapid moves generated by simplify3d, and I can now bump my print speeds from 40mm/s to 80mm/s without seeing any pauses and blobs (not that I would recommend this speed on a Zim, but it was my test for the pausing issue). This set of mods is not thoroughly tested however… And it certainly is no longer compatible with stock zeepro software (I removed some custom gcodes… OctoPrint only please). This has been pushed to my Marlin github fork (version 1.1.0.17).
Good luck, happy printing!