Ok, so a few more questions as we continue to dig into this.
1) I looks like everyone who is having issues is using Win7 64-bit. Has anyone has this issue on another OS or does it appear to be isolated there?
2) Pretty sure I've already seen this from the log, but the position and the exact command where the build stops is not consistent, correct? So it isn't stopping at the same line every time?
3) Have you tried slicing with 1.0.5 and printing with 1.0.5? Some of the changes affect the actual G-Code file so I want to make sure we aren't still printing a 1.0.4 .gcode file through the 1.0.5 GUI.
4) Has anyone had this issue pop up with temperature monitoring turned off in 1.0.5?
This has been a tough one for us to fix since we haven't been able to reproduce it on our Win7 x64 machines despite numerous multi-hour prints. We can attempt to make fixes, but if we can't reproduce the error it's hard to verify if the fix actually worked, that's why we need you guys!
To give you an update on what we're thinking right now, the problem is definitely caused by the fact that the software does not receive a response back from the firmware. It sends a command and doesn't get an "ok" back so it assumes the firmware is still processing one of the commands in its buffer. It is typically not a good idea to send without receiving the confirmation since that can create buffer overflows or lost data. I have done some investigating into the methods used by other programs and several of them just use tons of sleep() commands, which seems like a bad avenue to pursue. In essence, a lot of them send a command and wait for a specified time (say 500ms) and then send the next command. That doesn't give you any assurance that the individual command you just sent is not a 5.0 second slow move and thus you can end up sending commands before the firmware is ready. We have a few other ideas we are going to test that seem like a better approach.
Can one of you guys post an example .gcode file that keeps pausing on your M2? Ideally one that isn't too big so we can test is repeatedly without wasting too much time.
And if you're seeing this issue, I would suggest printing through the SD card while we work out a fix.