Minimize pauses in printing when connected to a computer

I run almost all of my print jobs from my attached computer.  I notice that I sometimes get short pauses of a few tenths of a second during a print, and it always leaves a blob where it stops.  It's an old computer, and not the fastest, running Win 8.1 and recently 10.  I try to make sure Repetier-host is the only app running and no network connection, but the OS is always doing something else and probably the cause of the pauses. 

In looking at the firmware settings, I notice there is a buffer size setting that defaults to 16, and another that defaults to 10 which is the number of moves before the FW starts slowing things down.  I assume the 16 is the number of moves that are available in the printer buffer. There is a statement that implies that the buffer can be increased to 32 (for mega 256 processors, I believe, which mine is). 

Is this the right setting to change to make the printer less sensitive to slowdowns in USB data from the computer?

I've tried setting the buffer to 32, and leaving the minimum-moves size at 10, and everything still works, but I don't know if I have solved anything, or just haven't run any print jobs that stressed it. 

Are there any downsides from increasing the buffer size?

Comments

  • Increasing that buffer to 32 has no downsize except that it takes longer to stop when you kill a job. It buffers more moves in advance so if windows just gets busy from some tasks it takes longer to run out of moves. Also having a old computer the 3d drawing speed can have an impact. If you disable filament/travel preview during print the host is also a bit faster.
  • Thanks for confirming my suspicions. I found out that it takes longer to kill a job, so now I just press the reset on my LCD panel to stop it. Also, raising the number of moves that remain before the FW starts to slow down the moves seems like a good thing to do at the same time.  Maybe it would be a good idea to change the default if the selected processor can handle a larger buffer.   

    I printed one of shapely vases that are available on thingiverse this AM, and noticed that Win 10 system tasks can still overwhelm the print process and cause significant pauses. I found the methods of increasing process priority, so I moved Repitier Host to High Priority. If that isn't adequate, I'll try REALTIME next (with caution). This machine has only one job in life and that's to run the printer.   

    You would be doing new users a favor if you added a priority selector (with a min of Normal) in a prominent position on the UI. There are more than enough things that you can get wrong without trying, and one less would be welcome.  I use Macrium reflect and it has a good example of a priority slider on the UI.  
  • Update:

    Since raising the priority of Repetier Host in the OS and increasing the cache sizes in Repitier FW, the momentary pauses, and resulting blobs on the surface of prints that I used to see have all but been eliminated. 

    I raised the priority of Repetier Host to High in Win 10.  This alone resulted in a significant improvement but system tasks would sometimes cause the cache of instructions to run out in areas where there were many small moves, resulting in very brief interruption. 

    The PrintLine Cache size in the firmware was increased from the default of 16 to 32, and also the Move Cache Low size was increased from 10 to 25. 

    With the computer I am using, it is possible that some combination of computer system activity and a high number of very short moves might still cause a pause, but for day-to-day routine print jobs, it is a non-issue.  Printing from an SD card would always be wise if the best results were required. 

    The computer I use with the printer has an Athlon X2 64 5000+ dual core processor, 2 G of RAM, a mechanical HD, and USB 2.0

  • Ok, I found how to set priority in C#. Now (with next release I mean) I set priority to high when we connect to a serial connection and go back to normal with closing connection. So we do not have to ask users and still get the benefit of higher priority when really required.

    Especially with very tiny segments we will always get problems. The fastest computer so far is a mac using repetier-server. That combination can send nearly 1000 lines per second, at least with repetier-firmware where the binary format allows faster writes.

    Will now use the priority also for the server. Maybe that gives better windows performance as well. For now even a raspberry pi sends faster then a 8 core windows machine. Windows has just the longest delays for serial conversion I guess.
  • That seems like the perfect way to handle the priority issue.  At the same time, it seems to me that it would be desirable to have the configurator set the cache sizes as high as the processor board selected  would permit, providing the selection can accurately predict the minimum that the processor can handle. 

    At the same time it would be very helpful to make sure that things like cache settings have enough comments that people with minimal knowledge about the hardware (like me) have an idea of what the settings actually affect, so they might have a clue if the configurator can't or doesn't increase the cache sizes. 

    I should have mentioned in the posting above that the processor usage for Repitier Host during a print (as shown in Windows Task manager) was typically under 5-7% on my machine.  System tasks could come along and boost the processer usage to over 80+  percent, and a brief slow down could happen. 
  • Most users leave values they do not understand. I've now also set default to 127 which is what all current firmware versions use. Only for a short while when Arduino reduced buffers to 63 we had the problem. So only old firmwares should need the lower value.
Sign In or Register to comment.