Retraction

Mixed extrusion has one problem from the beginning: when retracting and undo retraction the speed is divided by the number of extruders used. What is necessary for extrusion is bad for retraction, because the speed gets either to slow or to fast when swiching the number of extruders with the weight feature. Using retraction must drive the motors always with the full predefined speed to avoid blobbing or losing steps. A quite easy approach to handle this retraction with full speed could be matching values for the speed received from the printer with the commands (e.g. G1 e-XX S903) and the speed predefined in RETRACTION_SPEED and RETRACTION_UNDO_SPEED in the firmware. If both values are the same then the retraction is handled with full speed by every extruder, in any other case it's just the given speed divided by the number of extruders. The autoretraction should have full speed for retraction anyway. It would be great if you could change this in the firmware.

Thanks in advance.

Comments

  • That is a very difficult problem. One thing is as you already saw that it is not easy to decide if we have a retraction move or not. The only safe way is to use only internal retraction with G10/G11. Everything else could be misinterpretted and needs many special cases to be included. The other problem is implementing such a complex solution without testing equipment. A vendor promised me one a printer when development is finished. Until then I will not risk breaking a thing that more or less works. Anyhow I put it on my todo for once I can also test it.
  • Would it help if I borrow you my old Felix? It will have a due board/radds board and a double mixing extruder. I will need about two weeks to equip it properly. Willich is only 60k from cologne, so I can bring you the printer and fetch it later on, when you don't need it anymore.
  • I'm awaiting a my own felix printer pro with double extruder. I guess I could fake a mixing extruder with it. But I still need an idea how to solve the problem in general. I can only control one extruder at a time from the complete firmware logic. So I need to move the logic into the single extruder step routine that then executes it for all under some conditions. So I guess I need a flag that gets set if retract/undo retract is detected. So G10/G11 solution looks solvable for me. Only the other case it not detectable. Replacing filament with a big retract would then retract all filaments. On the other side you could say you can not expect a single retract anyway (also with 100% weight it would just do that). So maybe I should write a special load/unload command for that problem.
  • I have updated to 0.92.6. It now retracts with all motors in mixed mode if you use G10/G11. please check if it works and helps solving the problem. With a faked 2 extruder setup it seems to work at least.
  • Successfully tested with 0.92.8 using a Diamond Hotend
    Works like a charm
Sign In or Register to comment.