-
Notifications
You must be signed in to change notification settings - Fork 143
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
fix mmu_eject and mmu_recovery command #414
base: main
Are you sure you want to change the base?
Conversation
add capability to check if filament is in extruder 1. added new function retract_from_extruder_until_mmu_can_freely_pull() to reliably pull filament out of extruder 2. make _unload_sequence() work reliably with tension sensor setup 3. added helper function with_tension_sensor_check_is_filament_in_extruder_by_weak_move() to test filament is in extruder by weak pull 4. modified _test_filament_in_extruder_by_retracting() to make it work with tension sensor setup 5 can test and output a help message to suggest user adjust toolhead_extruder_to_nozzle value in parameter.cfg file like this had to unload extra 11.0mm to unload from extruder, suggest adjust toolhead_extruder_to_nozzle in config Test: * load filament in extruder, can load * mmu_recover can detect correctly * load 50mm more filament into extruder, and run mmu_eject, can eject correctly * put filament in encoder only, unloaded from extruder, MMU_TEST_MOVE MOVE=50, mmu_recover can recovery correctly * set a obviously shorter value for toolhead_extruder_to_nozzle * in parameter.cfg file, filament still can be pulled up by MMU_EJECT command
There is a lot of logic to parse here. Few things to be aware of:
Other thoughts. I haven't studied many devices in detail but they really need a spring that attempts to hold them at a fixed point until pressure becomes too great. This "natural home" would help with consistent move lengths. |
Just a questions regards "I haven't studied many devices in detail but they really need a spring that attempts to hold them at a fixed point until pressure becomes too great. This "natural home" would help with consistent move lengths." As I have thought about that myself in regards to the belay and other compression/tension sensors as they do not have a neutral position only a compression and tension position. Is the coding already if a third position in the sensor to add as a neutral? Knowing full well it will add significant length to the sensor(I am currently using a Hall effect switch) so need that to provide a gap between the switchs. Not an expert but can certainly modify to test this out. |
H! Indeed the first batch of devices like Belay had only a "filament tension" sensor and so the software (and Happy Hare) had to adjust rotation distance so that we keep bumping on and off the sensor ... not a perfect solution... Note that the switches really need to be slightly short of full travel of the sync-feedback device. Some newer designs that switches at both ends. This type is supported by Happy Hare which will attempt to keep between the two sensors. Again it has to bounce from one to the other.. better but not perfect... Happy Hare also supports a proportional feedback device that can provide a signal from -1.0 (filament under tension) to 1.0 (filament under compression). This could be implemented with a hall effect (gap detection), inductance in a compressed spring or linear potentiometer. To make this flexible it is necessary to send HH period klipper events with the single scaled from -1 to 1. This can also be done with hidden |
fix mmu_eject and mmu_recovery command make it work with tension sensor free move distance
add capability to check if filament is in extruder with tension sensor device
added new function retract_from_extruder_until_mmu_can_freely_pull() to reliably pull filament out of extruder
make _unload_sequence() work reliably with tension sensor setup
added helper function with_tension_sensor_check_is_filament_in_extruder_by_weak_move() to test filament is in extruder by weak pull
modified _test_filament_in_extruder_by_retracting() to make it work with tension sensor setup
5 can test and output a help message to suggest user adjust toolhead_extruder_to_nozzle value in parameter.cfg file like this had to unload extra 11.0mm to unload from extruder, suggest adjust toolhead_extruder_to_nozzle in config
6 added a sanity check if unload from extruder, the unloaded length must not be too far off from the bowden length, so to detect a true unload failure, so to avoid EREC servo cutter to cut in the middle of the filament while it's still loaded in extruder, what a disaster
Test: