On the rendered Image some parts are hidden, however, I did build it, and it did pass the first tests.
But I currently have a problem with my filament load and unload scripts.
For helping you with helping me, I will describe how my load script works:
Hold the filament into the extruder input
Select Load Filament in the Custom Menu
The extruder will move very few mm to engage the filament ← Problem
The User can go away
The hotend heats up
The Extruder will now move a longer distance to load the filament into the bowden tube
Purging
The User can start printer task remotely
The Problem is that in step 3 normally the hotend is cold, and therefore I use the FORCE_MOVE command to move the extruder anyway.
This is a low level command not designed for this purpose. It will ignore any condition and also ignore steppers that should be synchronized.
My script did work for more than 1 year now, but now it has reached its demise and I need to learn how it should be handled as intended.
This is my current configuration for syncronization:
Change the min extrusion temperature to 0 while loading.
Hardware step dir bridge hack.
Let the user wait for hotend warmup.
On 1st and 2nd I have no idea how to do this. Maybe you could help me. 3 and 4 are easy, but I would like to avoid this. Sadly m302 seems not to be implemented ( M302 feature request )
If somebody is interested in my hardware design, I can share it after some tests are done. Sadly the support from my side will be minimal.
There are no invasive gears which are damaging the filament, instead there is are 2 gt2 timing belts that grabs the filament carefully over a large area
If 1 motor is used there is need for a gear which would introduce backlash (if common dual drive extruder), this makes the extruder less precise and causes problems on direction changes.
This dual Motor extruder can transfer more movement power with less force on the filament
Ok, this kinda other usecase (direct extruder agains bowden extruder).
Additionally, the extruder here addresses some problems that the extruder in the video does not address.
The dual motor extruder has a mechanism that allows to control the pressure on the filament
The dual motor extruder absolutely avoids gears that transfer power. Specially plastic gears
This solves backlash problem (as mentioned before)
This solves problems of durability caused by transferring power from one gear to another gear with plastic gears (have bad experience with this)
The dual motor extruder has much longer area to grab the filament → more precision and less slip (as mentioned before)
The dual motor extruder build is possible with less precise parts
The dual motor extruder build is possible with cheap standard part
Sadly the dual motor extruder cover plates needs to be produced with a CNC (but this was at least no problem for me)
However, all in all the TPU beast would not match my requirements. But what I really like is the option to pull the filament by hand. Maybe I will include this into the next revision if i have a good idea how to do
Thanks for this, I’m already working on my own fork so merging it with another could be annoying ^^ Can you maybe start a pull request for this, so it comes into the master? I already tried with my features, but it was rejected. I think you have better change with M302 as this is a small modification.
It could be really nice to have this functionality directly in klipper!
Really a nice design.
Personally, I would never exchange a direct extruder for a bowden one. IMO, the design inherent drawbacks (in fact the bowden itself) just cannot be overcome, regardless how good the extruder is.
I run into this issue. What is what I expected as the motor step firmware part needs a good performance at this place, so this can not be implemented for motors.
Kevin answered this once on a similar issue here:
I have encountered a second problem:
[extruder_stepper extruder_sync]
Will not sync the settings as pressure advanced. This also means the motors are not completely in sync as move instructions will be calculated twice. This can wear out the timing belts, similar to a car with all-wheel drive and differential lock in curves, would wear out the wheels.
Somebody with a new idea?
Currently, I’m close to solve this by a hardware step/dir bridge hack, as I’m running out of ideas.
The branch I linked there is a clean copy of the klipper master with just the M302 feature added so merging it into your fork wouldnt be different than merging a change to master.
However I probably will make a pr
Thanks
The question about bowden or not is political/religion, and not solvable in my opinion. As both has advantages and disadvantages. The personal weighting of the arguments determines which method is preferred.
But for making the solution more simple (for my case) I measure on the hotend with a super light weight and ultra precice sensor that gives realtime compensation instructions to the extruder. With this method I solved the disadvantages of a bowden setup (at least these one I’m interested in), as the precision of a direct drive extruder can be reached with a bowden setup without having the weight of a direct drive extruder.
I can even reach much better precision as a direct extruder as also problems like slip can be compensated…
However, it’s a complicated setup and still needs development, what also is a disadvantage ^^ But one I can handle.
I guess with the currently available tool-set you are out of luck. This sounds like something very similar to duplication / replication mode on IDEX printers, but on the same extruder. There was a PR (https://github.com/Klipper3d/klipper/pull/4464) that never made it into mainline.
Thanks a lot, I will be looking forward to it and wait for it!
I want to keep the customizations in the software I use at low at possible to keep it maintainability and specially for being able to merge main line with as few conflicts as possible.
Maybe I’m totally on the wrong track, since I never used it: The Enraged Rabbit Carrot Feeder (ERCF) should probably also need some means to synchronize their “feeding stepper” to the “extrusion stepper”.
Maybe worth checking how they solved it.
Really, really nice design, I think I can learn a lot from that, but sadly I don’t think they have a solution for the problem.
As I did hear some expert opinions on that, I will wait one more day for an upcoming solution and if this can not be solved with software I will just apply a Hardware hack.
If I’m lucky there will be a way, but in every case many thanks @all
Generally speaking, I never had such an issue, so I would not consider myself the authority here.
I do not think so, since on an extruder a lot more functionality is included compared to a “simple” axis
I would have pointed to this in the first place but due to my lack of experience in this, I assumed that you already tested it and came to the following conclusion:
Whereas, I’m a bit surprised by this, since this would somehow contradict the idea of “synchronized” extruder steppers as per the documentation here: Configuration reference - Klipper documentation
I agree, but it is proved, I can set different settings for both extruder. I’m setting PA value by a script, and it is clearly visible that one motor uses pa and the other don’t. The motor movement looks the same if copy all settings to both drivers, but as mentioned, my conclusion is that both drivers makes the same calculations and there is no guarantee on that they really are in sync on step level
If this is unintended, it could be nice to get this fixed. But maybe some needs this functionality to have a bowden extruder and a direct extruder, but I think even in this case a real sync would at least not be wrong… But ok if some wants same pressure on the filament on all places this different PA values could be correct. I don’t know
The maximum time has been used on trying a software solution, so I solved it with solution 3. hw step/dir/enable bridge.
The second motor is still declared as [extruder_stepper extruder_sync] just for the case Klipper is doing some inits on the driver while enable the stepper. But i no longer care about settings like PA, as they get the step dir signal from the other stepper.
Ofc I respected conflicting signals and step, dir and enable is no longer directly connected to the mainboard on the second driver.
The hack is decent. Addional i set the shaft register in the TMC Gconf register for inverse direction for one motor
Now both motor runs perfectly on sync on step level.
If somebody has a good idea I’m still interested.
We will start testing durability for these timing belts, hopefully they can do the job for at least 2 years
Everything else got a fast test and is working well and as intended. Very, very nice!