With the USB interface and sending line by line gcode what is the best practice for printing speed mm/s? 40,60, can it support 120mm/s etc. trying not to hit buffer max or have any stutter.
Hello @Idesignsgroup !
- The maximum speed depends on the printer.
- The speed you enter in the OctoPrint settings are just for the movmend done by the control tab in OctoPrint.
- This speed has nothing to do with the USB speed
- understood about printer itself max speed.
- i am inquiring more about a bottleneck than controlling the printer speed itself.
- same as 2. is there a bottleneck potentially created between the 2? if so what is the lowest common denominator for best practice. if one has totally no impact possible to the other then question answered thanks.
There is an upper limit to how fast OctoPrint can send gcode, but there is no definitive number. It depends a lot on
- The complexity of your gcode/model
- The speed of whatever you are running OctoPrint on
- The speed of your printer's mainboard.
You are much more likely to run into issues with an underpowered OctoPrint server, and likewise an 8 bit motherboard is more likely to have issues than a 32 bit one. It's also not as clear cut as 'Xmm/s is your limit', because straight lines require only one gcode line - so can be very quick - but complex shapes take more, and that's where you might run into stuttering.
It is really a case of increase the speed and test it. I've never found myself be limited by OctoPrint's gcode speed, I would say that (at least for most printers not targeted at 'high speed printing') that you are more likely to hit the machine limit first.
The USB speed has little to do with how fast a printer will print, 115kbps is about 11000 characters a second, the connection between Octoprint and the printer firmware uses handshakes to prevent buffer overruns. A single GCODE command [about 25 chars) can contain sufficient information to send the printer to any extremity of its axes.
An Ender 3 with a stock board prints the same model more slowly than an Ender 3 with a BTT SKR mini e3 - the clock speed of the ARM chip is considerably faster on the SKR. But the difference is minutes, not hours, for 'normal' models, i.e. nowhere near the maximum print volume.
In any end to end system, the bottleneck is the slowest element - which in my experience of 3D printing is the ability to extrude material through the hot end - there's no likelihood of Octoprint being the bottleneck, unless you insist on running Octoprint on a Gen1 Raspberry Pi zero, with a camera attached - BTW this is NOT a recommended configuration. A Pi 2B is fast enough - but you will notice a difference dragging files onto the UI - a Pi4 is much faster :-). Unfortunately supply chain issues with chips is still a problem - try https://rpilocator.com and you may catch a reseller with stock near you.
I have a pi4 2gb with usb camera attached to usb3 port so should be ok. Ender 5 s1 and sovol svo6. Just starting out in 3D printing and found Octoprint real quick. Want to add 2nd Octoprint instance and either share the camera between or get 2nd camera if pi4 can handle it. Trying to make sure I am doing best practice on Octoprint side since I am now introducing another layer of complexity and I am already a noob hitting basic 3D printing issues like layer shifting and lifting.
Thank you for explaining the shift in complexity on complex geometric shapes and curves vs regular straight lines. Need to read more on how gcode is rendered. Lots to dive into
Usually in IT I find most bottlenecks are not the individual devices but the communications between the two which is why I originally asked the question. Seems not the case here.
I kind of like send to sd card option to remove any possible communication issues and just free up pi resources for other things but from what I read the serial emulation is slow at best so not a good option there. For instance I had an Octoprint instance freeze the webpage and ssh access when I clicked print however it kept printing so it was still working. Could not access camera from raw stream url nothing yet still printed. I had the shift issue after halfway into the print so I wanted to make sure itβs me the noob and not something that happened with Octoprint and Comms. Thanks all.
I found this the best reference for gcode - https://marlinfw.org/meta/gcode/, its used universally for all sorts of CNC machine tools - TBH the only parts I use are those from Octoprint's terminal to reconfigure PID tuning after changing a hot end and to reset the Extruder steps. A pi4 2GB should be more than quick enough to run two instances - but that's a whole bag of pain I avoid - after 38 years working for IT service providers, I generally adhere to the KISS principle [even though I use Ansible to deploy Octoprint plugins....]
I put a camera on my first printer, an Anet A8, then never bothered - if you have a generic USB webcam, mount that high up where you can see both printers...sorted.
Agree. But this is Marlin only.
When it comes to additional Gcodes, I prefer this one:
I typically run my Ender3 Max at 200 mm/s, printing PLA comfortably. Of course the first few to several layers are slower in increments upward to max printing speed. I have had no complaints in the quality department. Not in a million years will you do the same with PETG, for example!