We did some more investigation with one of our own Printrbots and were able to track down the problem. The issue will be fixed in the next version of MatterControl, or you can get it now by downloading an experimental release.

Here is what was going wrong. While the printer was busy doing the G29 command, MatterControl would keep sending commands repeatedly because it didn't get a response yet. After a while, the serial buffer would fill up with all the unprocessed commands, blocking MatterControl from sending any more. The serial driver would throw an IO error. MatterControl was interpreting every IO error as a disconnection, when in fact that is not the case.

Now MatterControl only disconnects if there is an error while reading from the serial port. If there is an error while writing (due to the buffer being full) MatterControl will print a message to the terminal and continue trying to print. This also takes care of the semaphore timeout issue mentioned in the other thread.

MatterControl will also now print more information to the terminal whenever a disconnection happens for any reason.