repetier / Repetier-Firmware

Firmware for Arduino based RepRap 3D printer.
811 stars 734 forks source link

Advance + bowden pressure + high speed change #232

Open llluis opened 10 years ago

llluis commented 10 years ago

Hi,

I've been successfully using the Advance algorithm feature since version 0.60 and it's great (thanks!).

Now I have a delta printer with a bowden setup and am still using advance. However I have a situation which I would like your help. I believe the advance should cover this situation, but it seems it doesn't.

When going from slow perimeters at 30mm/s to high speed infill at 100mm/s, the bowden takes a few moments to build pressure for the new speed and then a few lines come out too thin and I have a failed infill. After that brief moment, everything continues great. Wasn't the advance supposed to compensate that? No matter what values I use (I'm using the quadratic term, but tested with the linear only too), there are no changes in this behavior.

photo

I tried to use the M232 routine, but the values it gave me weren't good. It suggested L=10 (which is OK!) and K=59. However this is way too high for K, causing a lot of missing plastic in the extrusion. K=8 gives me great results. The weird part also was the speed indicated, which was only 2.5. What that means?

I have also enabled the old test-case generator, but the coordinates are hard coded and the part came out the print area of the delta printer.

I looked at the code to understand the implementation, but cannot change it without your advice. I am willing to help and make changes and tests myself. Just point me to the right direction.

Thanks in advance :-)

repetier commented 10 years ago

Hi,

you missunderstand M232. It is no autotuning tool. It is a debugging fuction and shows the highest linear/quadratic steps values reached since the last call. That has nothing to do with K/L values you should set.

I'm not sure it can work with bowden at all. You try to compensate pressure and with direct extruders the part between drive and nozzle is short - perhaps 5-8cm acting as a spring. With bowden this distance is 50-100cm so you need to advance 10 times the distance in the same time plus that position of filament inside bowden may change during that. So it is not exact and much harder for the extruder. Most likely you would see retractions during slowdown to compensate for this. I'm not totally sure I'm 100% right on this but at least it is much harder with bowden to get the same result.

From guessing I would say you need 8xL value and 3 times K value of non bowden extruders. If you reduce acceleration you may be able to compensate fast enough as this reduces the extruder speed needed. But the idea of bowden is to have fast accelerations/moves, so you get a little contradiction here.

Yours Roland Littwin

Am 21.01.14 00:57, schrieb Luís Andrade:

Hi,

I've been successfully using the Advance algorithm feature since version 0.60 and it's great (thanks!).

Now I have a delta printer with a bowden setup and am still using advance. However I have a situation which I would like your help. I believe the advance should cover this situation, but it seems it doesn't.

When going from slow perimeters at 30mm/s to high speed infill at 100mm/s, the bowden takes a few moments to build pressure for the new speed and then a few lines come out too thin and I have a failed infill. After that brief moment, everything continues great. Wasn't the advance supposed to compensate that? No matter what values I use (I'm using the quadratic term, but tested with the linear only too), there are no changes in this behavior.

photo https://f.cloud.github.com/assets/708868/1959395/00deb126-822d-11e3-9791-23c3392fdeff.JPG

I tried to use the M232 routine, but the values it gave me weren't good. It suggested L=10 (which is OK!) and K=59. However this is way too high for K, causing a lot of missing plastic in the extrusion. K=8 gives me great results. The weird part also was the speed indicated, which was only 2.5. What that means?

I have also enabled the old test-case generator, but the coordinates are hard coded and the part came out the print area of the delta printer.

I looked at the code to understand the implementation, but cannot change it without your advice. I am willing to help and make changes and tests myself. Just point me to the right direction.

Thanks in advance :-)

— Reply to this email directly or view it on GitHub https://github.com/repetier/Repetier-Firmware/issues/232.

Mit freundlichen Grüßen/Yours

Roland Littwin


Hot-World GmbH & Co. KG Knickelsdorf 42 47877 Willich Deutschland

Tel.: 02154-606518 Fax: 02154-606519

Geschäftsführer: Marcus Littwin Handelsregister: Amtsgericht Krefeld HRA 5325 Umsatzsteuer-Identifikationsnummer: DE213748632 Persönlich haftender Gesellschafter: Hot-World Medien GmbH mit Sitz in Willich Handelsregister: Amtsgericht Krefeld HRB 10800

llluis commented 10 years ago

Yes, it seems I misunderstood the M232. How one would use the output of the M232? Just for debugging the firmware implementation? As per this page https://github.com/repetier/Repetier-Firmware/wiki/Hardware-settings-and-print-quality, it would be used to fine tune K and L constants.

The advance works really well with bowden also. Mainly during infill, where the direction changes (avoiding blobs touching the perimeter) and transitions from high area to small area infill. It's just this transition from slow to fast extrusions that still persists.

I can't use L values greater than ~90 and K greater than ~20, otherwise the extruder retracts too much and there will be missing plastic everywhere. My eSteps are 470 (3mm filament, E3D hotend 0.40mm, ~50cm bowden). Currently I'm using 10 for L and 5 for K.

Changing acceleration doesn't change the behavior. Only if lower the max infill speed. This way the extruder compensates faster.

repetier commented 10 years ago

You can use M232 in that you see how much the extruder has to do extra during the fastest speeds printing. Values are in steps so you can easily compute how much mm it compensates at max speed, which is the infill in your case.

Your problems with high L and K are exactly what I meant when I said bowden is difficult. You need more compensation then with direct extruders and that causes problems.

Slower acceleration gives the extruder more time to compensate, but will not change the distance.

Higher speed requires more compensation as it is a function of the speed. You need to reduce K if you go much higher with infill then perimeter. Quadratic increase kills you otherwise.

You can also increase jerk, which reduces speed differences and with bowden you head is light weightes, so heigher jerks should be possible. More jerk = less to compensate.

llluis commented 10 years ago

Thank you for your input. I've been using Repetier's advance for a while now, since version 0.6 I believe. While it works great improving solid infill quality, it seems to me that it works only releasing pressure in the extruder, not increasing it.

For instance, when doing solid infill, I can see the extruder retracting during direction inversions, avoiding blobs in the corners touching the perimeter. Also, when infilling small areas, it gives a much smoother surface. In this case, there is a deceleration, direction inversion, re-acceleration. This case works great.

But when there is just speed increase from speed A to B, without deceleration and re-acceleration, the advance seems not to act. One segment is at speed A, the next segment will be at speed B, there's no acceleration unless my jerk is too low. And that is my case.

I've already played with jerk and accelerations, none helped my case.

I have implemented a test in my Slic3r which detects the speed increase and inject extra filament to increase tube pressure. For instance, going from 30mm/s to 100mm/s requires 2mm extra filament. It works great. That's why I believe the advance had to help.

Do you know the Sailfish firmware? It seems to implement a different version of the advance algorithm (not the one from Matt Roberts).

jamesarm97 commented 10 years ago

Sailfish has implemented this well with what they called JKN. I had to use it to fine tune my flow rate as the extruder would de-accelerate. The fill was perfect in the main body of a layer but as the extruder reached the end of a path and would de-accelerate it was putting down too much plastic. The JKN allowed my to tell it to put down a little less as it de-accelerates. http://www.makerbot.com/sailfish/tuning/#5

kyrreaa commented 10 years ago

I think maybe the speed issue we are seeing on high rez printers are affecting extruder accell/decell/speed too as I am getting a lot of high pitch squealing from my extruder if i enable advance...

llluis commented 10 years ago

I've been working on a modified Slic3r version with pressure control based on the advance algorithm. Please take a look at https://github.com/llluis/Slic3r

cicettir commented 10 years ago

I'll be sure to post my impressions as soon as I can get off a practice print.

kyrreaa commented 10 years ago

I think this is related to tuning of advance and bugs in advance. #107 It's still not good after the accelleration/speed fix. In fact I can hear growling like it skips steps on every advance extrastep.