-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Altered GCode Prints slower #6
Comments
What firmware are you using? I'd like to see the arc configuration (configuration_adv.h). Perhaps mm_per_arc_segment is too low (should be 1mm)? I'm working on a patch for the prusa firmware right now, as a matter of fact. You can download my firmware modification if you want to try that: https://github.com/FormerLurker/Prusa-Firmware You will have to compile it for now. I could send you a binary, but I'm fully occupied for today unfortunately trying to get Octolapse rc2 out and fix some issues with the arcwelder plugin. I haven't gotten a chance to look at your gcode, but I will soon. I can't believe how many messages I've gotten today about Arc welder and Octolapse! It's a bit overwhelming, lol! Thanks for filing your issue. I will definitely get to this in a more thorough way soon. |
Hey, thank you for the fast reply! =) Besides the Issue: Looking forward to see RC2 of Octolapse. I still need to get the camera directly hooked up on the RPi4 so there is no bandwidth limitation caused by the hardware anymore.. It's still connected via the RPi Zero W sitting on the Einsy Board. |
I tried your modified Prusa firmware (3.9.0-RC1-3272). From the bottom up |
Answer: It is definitely firmware related. Can you try turning linear advance off by changing this: to this: I'm guessing the MK3 has more features enabled than my MK2S, so maybe this will alleviate some of the extra calculations (I've been leaving linear advance enabled, but it's caused issues for me before). You could also try editing these lines configuration_adv.h within the firmware here:
Try setting I plan to do more firmware testing when I have a chance. |
Alright, I'll try first without linear advance and afterwards I'll try with those firmware settings. Thank you so far for your help. 👍 |
It took a little longer.. sorry for that. Here are the Results:
Used Gcode: I would say turning Lin Adv off turns out to be the best solution. Maybe I soon can print a Benchy to be more comparable with others. |
Awesome report, thanks!!! I have added some new features to my fork, and I will see if I can pull the n your changes. I have been doing some investigating regarding the slow downs, and I am pretty sure it is some bug I haven't discovered yet. Running the same points the g2/g3 create in marlin (using my inverse processor found in the ArcWelderLib repo to create the inverse gcode) I don't get any slowdowns. That should not be the case. There is less overhead within the segment interpolation (much less serial traffic, far fewer gcodes to parse), so if anything the g1 based code should stutter and not the g2/g3 code. |
Hi there, I have checked with manual commands on terminal and confirmed it's not firmware issue I'll try to pick up relevant gcode fragment from both files so will attach later. |
@marekorok, do you have a link to your marlin source? If it's 2.0, I saw a recent issue discussing this exact problem, along with a commit to fix it. Let me know and I will take a look. |
Marlin is the bugfix-2.0.x, most recent possible this one? Solution mentioned there either change source code or:
Interesting, seems the patch haven't been applied yet, let me try. |
Here is the exact issue: MarlinFirmware/Marlin#17348 I believe the solution was to edit G2_G3.cpp and change the call to planner.buffer_line on line 239 from this:
to this
See this commit. |
ok, did few tests. Changing MM_PER_ARC_SEGMENT only to 0 was a disaster, SKR board become overloaded, unresponsive and slowed down completely, but still moving, verrrry slowly. Then checked G2_G3.cpp, seems something changed in file cause line numbers not quite matching but not too far: so looks like the second was already modified, meaning it still does not work or not for this case. But modifying line 216 from: btw, I'm also printing for medics, but adapter for snorkeling mask for filters, lot of arcs. Thank you @FormerLurker for the tool and your help! |
O is not a good setting for mm per arc segment. It may cause an infinite number of segments to be used, or would fall back to 0.001 mm (would need to verify). You mat want to adjust min_arc_segments too. Not sure what your current value us. Something between 16 and 32 should create good looking small arcs. Im using 20 in my modified firmware and it works well. Regarding the arc g2_g3 issue, would you post your findings in that Marlin thread (or create a new issue)? I guarantee they want to know about the second change ASAP. Feel free to link back to this issue. I probably run more arcs on my printer than anyone else since it is difficult at the moment to create gcode that includes these commands. Perhaps they will be interested in using my tools to help improve segment interpolation performance. They have massively boosted performance in 2.0 already, so it can only get better! |
I left default as per configuration file for my board (SKR E3 Mini 1.2) and printer (Ender 3), so it is 24
|
I added a comment to that issue as well. If it doesn't get noticed, I'll open a new issue. Thank you for contributing there! Regarding the other settings, if you are getting good results it's probably best not to mess with them. However, I find the new ARC_SEGMENTS_PER_SEC setting quite interesting. I've done some testing with it, and while it's a bit harder to configure, it should provide excellent results at all print speeds if configured correctly. I have implemented that setting in my firmware fork. I've also been playing around with a new gcode command I implemented (M214) for adjusting the arc settings on the fly. If I can get it working well enough (so far so good) I'll see if I can work it into Marlin 2.0. It sure makes determining the correct arc settings much faster! |
I'm sorry about this, but could someone please spoon feed me what to do? I've read through this thread and the Marlin thread and can't figure out what I need to change in which file before compiling. Could you please just tell me which lines I need to edit? |
@simpat1zq, I will post one file you will need to replace, and some decent arc settings in the AM, and i will leave a link here. |
@simpat1zq, here is a gist I created that contains one file and one partial file. The first, G2_G3.cpp can be found at Marlin/src/gcode/motion/G2_G3.cpp. Just replace the file there with the G2_G3.cpp file in the gist. The other section is basically the default arc configuration. It should work fine, but if you still experience stuttering in tight curves, drop MIN_ARC_SEGMENTS to 16, which should be plenty for tight curves. I'm not sure how compatible that code is with versions of marlin 2.0 in general, but if you are using the most recent release, it should work fine. I'm going to work on fixing the seg_length calculation at some point as soon as I can figure out how to run Marlin 2 on my printer (Mk2.5 W mmu 2.0) if it is even possible. |
Ive installed the plugin and run a file through it .. printer is now slower on the print and quality isnt as high as before .. I will update with min_arc_segments 16 after this print .. and test on a smaller print than the one Im testing on right now. |
@hamselvdk, definitely check out G2_G3.cpp and check file lines 216 and 233. Make sure seg_length is replaced with 0 (zero). See the gist I posted in my previous comment. |
@FormerLurker So I did and it didnt change the behaviour of the printer - it still stutters just really really slowly - as with a gcode not processed by the plugin stutters fast in the exact same locations. |
@hamselvdk, what do you have in your configuration_adv.h file for your arc interpolation settings? Also, you might try disabling linear advance (M900 K0) if it is enabled (or remove support in configuration_adv.h) to see if that helps. |
These are my settings in configuration_adv.h
Linear advance is already disabled. . |
Hey, you might want to check out the newest version of Marlin. Lots of arc fixes for both speed and accuracy! Let me know if that helps and sorry about the huge delay in responding! |
Hello FormerLurker,
first of all, thank you for your effort!
I tried the Plugin and with a modell (Prusa Face Shield) that I'm currently printing a lot.
The normal gcode prints in around 03:07 hours and the altered gcode prints in 03:39.
Filesize of the altered gcode is significantly smaller (3005kbytes instead 9725kbytes) as the originial one.
I'm not really expecting that it's faster because it still has to lay down the same amount of filament but it shouldn't be that much longer?!
Maybe the model I'm printing isn't the best fit for the ArcWelder right now but I guess your goal is that it fits every model it gets thrown at someday.
I'll test it printing from SD-Card soon.
Printed with OctoPrint 1.4.0 on a RaspBerry Pi 4 via sending directly to the MK3S (FW: 3.8.1).
Used Prusa Slicer to slice the STL.
Kind regards,
Sebastian
gcode.zip
plugin_pluginmanager_console.log
Lower: ArcWelder Upper: Original
The text was updated successfully, but these errors were encountered: