Giter VIP home page Giter VIP logo

enragedrabbitproject's Introduction

EnragedRabbitProject

Welcome to the Enraged Rabbit Project Github page!

This project aims to bring multimaterial capabilities to 3D printers using a single Direct Drive toolhead. While this project is mainly dedicated to be used on VORON printers, it can also be used (or adapted) on any 3D printer that runs Klipper, and potentially RRF.

You like this project? You want to support me and my work, help me bring new cool stuff to the community? Well you can tip me here : paypal

Table of Content

Changelog

  • April 4th 2022 : Minor fixes and updates, check the new last page of the manual for tuning the last check of the load sequence
  • March 23th 2022 : Revamp of ERCF unload sequence during a print, possibility to use stallguard capabilities to detect selector blockages, new encoder cart and much more
  • October 23th 2021 : Update of the ERCF Macros and python module and added first part of manual Slicer setting section.
  • October 15th 2021 : Added AfterBurner Clockwork toolhead sensor and associated manual sections.
  • October 7th 2021 : Updated SwitchWire mount, LGX on AfterBurner toolhead sensor and associated manual sections.
  • October 1st 2021 : Update including VORON SwitchWire mount, new Galileo Clockwork Toolhead sensor, additions to the manual and a few others things!
  • September 24th 2021 : The ERCF V1.1 macros and python module are out! Also an updated manual (with the setup and calibration steps) and additionnal stuff for EASY BRD users! Have fun!
  • September 17th 2021 : The ERCF V1.1 assembly manual, STL files and the STEP file are now released! You'll find the manual in the "Documentation" section now, and the manual will keep growing with setup, tuning and slicer guides. A non-exhaustive patch note can be found in the Carrot_Feeder folder. Finally, note that the new software part of the ERCF V1.1 is not out yet, and the ERCF V1.1 hardware cannot be used with the ERCF V1.0 macros. V1.1 software will be released in a few days. Happy printing and assembly!
  • September 14th 2021 : Updated the BOM to ERCF V1.1 (release coming soon! tm) and added the new, incoming Toolhead Sensor BOM (bottom tabs)
  • June 4th 2021 : TopHatLockers and related (servo arm, TopGearHat, macros) have been released to the main branch, from the EarlyDevAccess branch. If you're already running EarlyDevAccess stuff, that won't change anything for you
  • June 2nd 2021 : Release of Carrot Patch V1.1
    • Increased handles section near the threaded insert for more robustness
    • Removed useless chamfer on feet bottom screw holes and increased hole depth (one can now properly use M3X8 SHCS to secure the Carrot Patch on 2020 extrusions)
    • Fixed several parts lengths//size that impacted the buffer wheel installation. Now the wheel should slightly touch both side walls (to avoid any possible gaps) while being able to turn (but not freely, which is on purpose)
    • Buffer Cross bottom arm is now secured using a M3X20 SHCS screw that comes from the bottom (that is also securing the left feet of the Carrot Patch)
    • Buffer Cross ECAS insert has been tuned, reinforced and a "bridge" shape has been added. Inserting the ECAS will no longer crack the plastic
    • Increased the size of the Buffer Cross "pillar" that sits between the two PTFE paths (some users previously reported fragilities due to the lack of matter for this pillar)
    • Updated the assembly manual, BOM and the CAD accordingly
    • Only parts that did not change are : [a]_Buffer_Wheel, [a]_Latch, [a]_Sliding_Arm, Buffer_Axis, Ptfe_Entry_ECAS and Ptfe_Entry_M10

Showroom

SpidermansNoS_printsBnE_PrintsVoron Logo TPU9_colors_test

Videos

Here are videos of the system in action. I need to release more videos...

https://streamable.com/3lo192

https://streamable.com/cjl2iz

Details

There are 4 components so far :

  • The Enraged Rabbit Carrot Feeder (ERCF). The Carrot Feeder allows to use a high number of different filaments (tested up to 9 channels so far) and feed them, one at a time, into the printer toolhead. The ERCF gear motion system (i.e. what is used to push and pull the filament) is based on the Voron Design M4 extruder. The ERCF was inspired by the Prusa MMU2 and the Smuff.

Carrot FeederCarrot Feeder 2

  • The Enraged Rabbit Carrot Patch (ERCP). It is a light spool-holder and buffer combo to help you deal with the filament
    management issue associated with multimaterial systems.

Carrot PatchCarrot Patch 2

  • The Enraged Rabbit King's Seat (ERKS). The King’s Seat is a pellet-purge system to remove the need for a wipe-tower and make faster filament purges. This system is designed for Voron V2s only so far.
  • The filament sensor : a filament sensor system located below the extruder gears to check proper loading and unloading of filament.

Note that this is a work in progress !!

Only the King's Seat is yet to be released !

BOM

The BOM for those components can be found here.

Acknowledgements

Thanks to the VORON Design devs and VORON discord members for the discussions and support, with a special thanks to the #honhonhonbaguette-FR members and @Tircown#8715!!

Thanks to Fabreeko, DeepFriedHero (DFH), Blurolls and many others for supporting this project!

Ette

enragedrabbitproject's People

Contributors

alchemyengine avatar arkeet avatar arron-green avatar baelfirenightshd avatar claytono avatar cmroche avatar cpiercedev avatar dannyquist avatar darkjador avatar drachenkaetzchen avatar durahl avatar eamars avatar electroleon avatar ettegit avatar flisherofatale avatar fsironman avatar garthsnyder avatar majarspeed avatar phil65 avatar pixeltrace-ger avatar romvnooco avatar simon-adriaanse avatar sttts avatar th3fallen avatar thebelin avatar thewarolf avatar todwulff avatar twmiv avatar vertigo235 avatar weiserlord avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

enragedrabbitproject's Issues

MCU 'ercf' shutdown: Timer too close

ok - got this a couple of times now
MCU 'ercf' shutdown: Timer too close
This often indicates the host computer is overloaded. Check
for other processes consuming excessive CPU time, high swap
usage, disk errors, overheating, unstable voltage, or
similar system problems on the host computer.
Once the underlying issue is corrected, use the
"FIRMWARE_RESTART" command to reset the firmware, reload the
config, and restart the host software.
Printer is shutdown

ECAS vs. PC4-M10 on Carrot_Patch/STLs/Buffer_Cross.stl

Hello Ette - more of a question than an issue but thought the response might help others.

Between all the different fittings (ECAS, Pressfit, UM2, PC4-M10, PC4-M6, Straight-through, etc.) I'm trying to understand if there is a particular benefit of using ECAS over say PC4-M10?

I happen to have a number of PC4-M10 fittings on-hand and wondered if I could adapt the step files (my CAD skills permitting) and change the Buffer Cross to use a PC4-M10 fitting instead of ECAS?

Could you share some insight of why ECAS might be better? Also, when is the straight through connecter better (or even why does it exist)?

PS: I'm going down the proverbial "rabbit hole" 🐰 with ERCF (waiting on parts) & ERCP (using Ikea 365+ 10l drybox) and enjoying it very much. Thank you (and all that helped) for creating and sharing something amazing!

pin_override

i've noticed a problem that is possible in the klipper config.

The pin_override can only be onced in a config, the second one will be ignored.

On the Documentation should be a part that if somebody noticed that klipper says error pin pa6.. that you should look into your config that pin override is probably in use and the second will be ignored.

Will this work with pulltruded filament?

Hello,

I am writing with unusual use case for MMU which is pulltruded filament so I wanted to confirm if my idea is even worth considering.

I am in a middle of perfecting my machine and trying to automate some of the processes. One of them is continuing print when one roll finishes.

Biggest issue printing with PET filament is that usually individual rolls are just around 20g, my current solution is to have filament runout sensor next to print head:

https://cdn.discordapp.com/attachments/167661427862142976/992228984425304165/1656636212134.jpg

Obviously this is kinda tedious process to manually change filaments so I had the idea to employ MMU unit to automate that process for me.

However PET filament is not easy to operate, not only its very stiff but also hollow inside, that introduces several challenges when trying to print it, one of them is to have strong gears that are able to even pull it, I had to change my print head in order to achieve this (currently biqu h2 v2). Second issue is that tip is usually very very sharp and has some troubles coming thru holes that are not chamfered/smooth.

So my question is, will this project be suited for this use case or should i just forget it?

This is how machine currently looks like (prototype):
https://cdn.discordapp.com/attachments/167661427862142976/990493613622427738/1656222475328.jpg

This is how it prints (manual change):
https://cdn.discordapp.com/attachments/167661427862142976/992282494143561818/VID_20220701_061547.mp4

Unfortunately filament welding is even more troublesome than manually changing it:
https://cdn.discordapp.com/attachments/167661427862142976/990882047713239040/1656315085257.jpg

My initial videos about building machine (there are parts with my machine).
https://www.youtube.com/watch?v=Pu34ndoL9wI
https://www.youtube.com/watch?v=5Hv6GIz_-6I

Manual suggestion for identifying Easy BRD device id

For flashing the Easy BRD SEEEDUINO, a better method of finding out the exact device would be to use
ls -l /dev/serial/by-id/

Which should output devices as well as what the device is linked to, e.g. ../../ttyACM0.

This can help identify the seeeduino and also verify it has been flashed successfully.

Num moves

I think #113 is missing so parts to be fully effective. MOVES=... is not applied to all ERCF_LOAD/UNLOAD calls

What about overloading the ERCF_LOAD and ERCF_UNLOAD macro instead ?

Like so:

[gcode_macro ERCF_LOAD]
rename_existing: _ERCF_LOAD_ORIG
gcode:
  _ERCF_LOAD_ORIG {rawparams} MOVES={printer["gcode_macro _ERCF_VAR"].num_moves}

Same for ERCF_UNLOAD ?

Should I open a PR?

Mistakes in the BOM

Hi,

I have found that BOM contains incorrect quantity for some fasteners.
It should be 28 instead of 26 for the M3 threaded inserts and 22 instead of 20 for the M3x8 SHCS.

When the gear motor is on hold when the selector motor is turned on, the kliper goes into error.

When the gear motor is on hold when the selector motor is turned on, the kliper goes into error.
image

Already changed the driver, still the same error, with the _ERCF_TEST_MOVE_GEAR command, the motor spins normally, what could be the reason? Kliper log attached
klippy.log
Send: DUMP_TMC STEPPER=gear_stepper
Recv: // ========== Write-only registers ==========
Recv: // SLAVECONF: 00000200 senddelay=2
Recv: // IHOLD_IRUN: 00081102 ihold=2 irun=17 iholddelay=8
Recv: // TPOWERDOWN: 00000014 tpowerdown=20
Recv: // SGTHRS: 00000000
Recv: // ========== Queried registers ==========
Recv: // GCONF: 000001c4 en_spreadcycle=1 pdn_disable=1 mstep_reg_select=1 multistep_filt=1
Recv: // GSTAT: 00000001 reset=1(Reset)
Recv: // IFCNT: 0000000f ifcnt=15
Recv: // OTP_READ: 0000000e otp_fclktrim=14
Recv: // IOIN: 21000041 enn=1 pdn_uart=1 version=0x21
Recv: // FACTORY_CONF: 0000000e fclktrim=14
Recv: // TSTEP: 000fffff tstep=1048575
Recv: // MSCNT: 00000028 mscnt=40
Recv: // MSCURACT: 00ef003c cur_a=60 cur_b=239
Recv: // CHOPCONF: 34030053 toff=3 hstrt=5 tbl=2 vsense=1 mres=4(16usteps) intpol=1 dedge=1
Recv: // DRV_STATUS: 80020000 cs_actual=2 stst=1
Recv: // PWMCONF: c80d0e24 pwm_ofs=36 pwm_grad=14 pwm_freq=1 pwm_autoscale=1 pwm_autograd=1 pwm_reg=8 pwm_lim=12
Recv: // PWM_SCALE: 00000003 pwm_scale_sum=3
Recv: // PWM_AUTO: 000e0024 pwm_ofs_auto=36 pwm_grad_auto=14
Recv: // SG_RESULT: 00000000

sensor für SB und g2

hallo würde gerne den voron stealthburner nutzen aber leider habt ihr dafür keinen sensor halter für den galileo 2 extruder
ist da was in planung ????

m.f.g

CAD files out of date for encoder cart

Hi, the encoder cart is great! The adjustable height with the screw made it so much easier to calibrate and improve the accuracy of the encoder. Would it be possible to share the CAD files for the updated design? Thanks!

Use ERCF as bowden extruder?

Heyho,
Id like to use the design in my bowden printer.
Do you think it will be possible to use the ercf as the bowden extruder or will i have to reinforce the gear/servo assembly to have more pressure?

can anybody give a full example of print end?

I noticed that there is an "UPDATE_DELAYED_GCODE ID=nevermore_stop_delayed DURATION=900" in ERCF_Manual.pdf. Could anybody help me to find the full example? I can't find the delayed_gcode macro -> "nevermore_stop_delayed" .

Filament_sensor

Hello, I wanted to ask if it was for the EnragedRabbitProject
there will be a filament sensor for the SB with cw1 or cw2 and dragonhotend ???

M.F.G

Speed factor more than 120% cause loading fail with MCU 'ercf' shutdown: Timer too close

I've encountered a MCU 'ercf' shutdown: Timer too close while using SuperSlicer2.4, after some investigation this error seem to be repeatable by setting speed factor with M220 S200 (or anything above S120) follow by T0 or ERCF_EJECT command.

Also with ERCF_EJECT there was a message "Too much slippage detected during the unload, requested = 1136.6, measured = 0.7 - calling _ERCF_PAUSE..." right before MCU shutdown. (never has loading failure with speed factor at 100%)

I'm using mainsail v2.2.0, klipper v0.10.0-494-gd3c4ba48 on Voron v2.4R2 350 with FYSETC Easy-BRD (based on RP2040) and BTT Octopus 1.1 with Raspberry Pi Zero 2w running mainsail v2.2.0, klipper v0.10.0-494-gd3c4ba48 on Voron v2.4R2 connect through a USB hub, Not sure if it probably a hardware specific problem anyway.

Procedure are:

  • Heat extruder
  • Set speed factor to 200 (or anything > 120)
  • Change tool (T0/T1/T2)

My proposed temporary solution would be something like:

[gcode_macro _ERCF_CHANGE_TOOL]
description: Perform a tool swap
gcode:
    {% set speed_factor = printer.gcode_move.speed_factor %} ;Save previous speed factor
    M220 S100 ;Clear Speed factor
    ...........
    
    M220 S{speed_factor * 100.0} ;Restore Speed factor

Thank you.
klippy.log

ERCF Overloaded?

Greetings,

I have been getting an excessive amount of 'Timer too close - Shutting Down' issues when I am doing toolhead swaps during a print and when I am just manually cycling the tools for testing.

This is one of the latest logs after a crash.

klippy (11).log
.

[Question] Tolerances on printed parts

Sorry to contact you here, I read parts are expected to be printed in abs, is there any possibility to see in the future a petg printable version?
I tryed to print something in petg but 0.1mm (filament top cap) is a problem (maybe my printer but in petg i'm used with 0.2 tolerances)

Please redirect me to a better place to be updated about this project.
Thanks

ERCP High Friction

Greetings!

Been using the ERCF / ERCP for I think like 9 months or so and the StealthBurner / ClockWorkd2 on my Voron 2.4 since it was released to the Public with my own MODs to make the CW2 ERCF compatible.

Two exhaustive printing weeks must have worn down my Beta 0/1 CW2 Toolhead Parts down to the point where - I assume - The Guidler and/or Latch may have gotten bent out of shape just enough for the Gears to not be digging in enough anymore to overcome the always present friction in the ERCP > ERCF > CW2 Filament Path thus resulting in frequent Filament Grindings and failed Prints - With the necessity of printing new parts I decided to give the recent CW2 Beta 7-11 Parts a try which turned out to be even worse but while I was it I went ahead and traced the cause of the friction back to the off tangential Filament Exit Port of the ERCP:
IMG
Basically... Whenever the Filament was stuck and ground to an Hourglass shape in the Toolhead I checked where it may have been stuck by pushing it back but couldn't feel any resistance but pulling it beyond the point where it became stuck was almost impossible.
Taking the Buffer Zone out of the equation would mostly solve this so the issue must be there ( my wheels are spinning freely and the Spools too have been placed on bearings.
For the time being I've resorted to not be winding the Filament onto the wheel and instead just use two PTFE Tubes with one connected to the ERCP PTFE Entry Block and the other to the ERCF Filament Block causing them to split apart if the Filament is being retracted and butt together when the FIlamen is being Extruded.

I'll probably do a DIY MOD of the ERCP to see if this can be solved by printing a Buffer Cross with the Entrance / Exit ports pointing perpendicular towards the Wheels Inner Diameter and thus not introducing that kink in the Screenshot.

I've also noticed certain Filament having a tendency of liking to get pushed out between the rear and bottom Cross sections thus spilling outside instead of coiling up inside - Maybe a wall connecting/closing those two could help with this? 🤔

Ptfe tube from hotend cant enter the cw1

The ptfe tube of the hotend cant enter the ercf ab cw1 extruder. Therefor Its pressed against the hole that sometimes lead to failed loads. The filament is sometimes pushed against the ptfe tube instead of inside the ptfe tube. Any fixes for this?

CW2 Dragon

Hi,
its possible for CW2 Dragon ?
Thanks

Selector not homing

While running through the documentation with initial setup I am having issues with the selector not homing. I ran the ERCF_CALIB_SELECTOR TOOL=0 in the docs it states the selector will home. However the homing move will no happen. If I buzz the stepper motor the stepper moves. If I use the macro to home the selector. The servo buzzes then I only get a small movement of a few mms. of the stepper motor. Then nothing else. I have gone through and checked the hardware configuration. The gear stepper works just fine. In my setup I am using Stepper online NEMA 17 for both steppers.
When I issue the ERCF_CALIB_SELECTOR TOOL=0
I just get action on the servo and zero movement of the stepper. I have included my hardware config and the klipper log

Enraged Rabbit : Carrot Feeder config file for ERCF EASY BRD v1.1

This config sample assume you set the two J6 jumpers on 1-2 and 4-5, i.e. [..].[..]

[mcu ercf]
serial: /dev/serial/by-id/usb-Klipper_samd21g18a_351491C24134555020312E30302C11FF-if00

Carrot Feeder 5mm D-cut shaft

[manual_stepper gear_stepper]
step_pin: ercf:PA4
dir_pin: ercf:PA10
enable_pin: !ercf:PA2
rotation_distance: 22.6789511
gear_ratio: 80:20
velocity: 35
accel: 150
endstop_pin: PC2
microsteps:16
full_steps_per_rotation: 200

[tmc2209 manual_stepper gear_stepper]

Adapt accordingly to your setup and desires

The default values are tested with the BOM NEMA14 motor

uart_pin: ercf:PA8
uart_address: 0
interpolate: True
run_current: 1.0
hold_current: 0.5
sense_resistor: 0.110
stealthchop_threshold: 500

[manual_stepper selector_stepper]
step_pin: ercf:PA9
dir_pin: !ercf:PB8
enable_pin: !ercf:PA11
rotation_distance: 40 #0.0125
velocity: 200
accel: 600
endstop_pin: ^!ercf:PB9
microsteps: 16
full_steps_per_rotation:200

[tmc2209 manual_stepper selector_stepper]
uart_pin: ercf:PA8
uart_address: 1
run_current: 0.8
hold_current: 0.3
interpolate: True
sense_resistor: 0.110
stealthchop_threshold: 5000

Values are for the SAVOX servo

[servo ercf_servo]
pin: ercf:PA5
maximum_servo_angle: 180
minimum_pulse_width: 0.00075
maximum_pulse_width: 0.00225

[duplicate_pin_override]
pins: ercf:PA6

Put there the pin used by the encoder and the filament_motion_sensor

It has to be the same pin for those 3

[filament_motion_sensor encoder_sensor]
switch_pin: ^ercf:PA6
pause_on_runout: False
detection_length: 3.0
extruder: extruder

runout_gcode: ERCF_ENCODER_MOTION_ISSUE

[filament_switch_sensor toolhead_sensor]
pause_on_runout: False
#filament sensor wired to the printer MCU
switch_pin: ^ercf:PA7

klippy (2).log

Servo not engaging sometimes

I have been using the ERFC for a few weeks now, and have gotten most of the things worked out. I have an issue with the servo (MG90S) not engaging sometimes. It is wired directly into my Octopus v1.1 board 5V pin. It happens during feeding and unloading. I have tried all servo angles and top hat lockers, and have tried multiple cables with different lengths. Sometimes it just doesnt make the full swing for contact. The servo arm doesnt pass the bump. It will also do it randomly when homing ERCF or testing the grip. The only thing I havent changed was the servo.

Any ideas?

Newest Version of klipper breaking extras module

After Updating to the newest version of klipper I am presented with this error.

Internal error on command:"ERCF_HOME"
Internal Error on WebRequest: gcode/script
Traceback (most recent call last):
File "/home/pi/klipper/klippy/webhooks.py", line 245, in _process_request
func(web_request)
File "/home/pi/klipper/klippy/webhooks.py", line 415, in _handle_script
self.gcode.run_script(web_request.get_str('script'))
File "/home/pi/klipper/klippy/gcode.py", line 216, in run_script
self._process_commands(script.split('\n'), need_ack=False)
File "/home/pi/klipper/klippy/gcode.py", line 198, in _process_commands
handler(gcmd)
File "/home/pi/klipper/klippy/gcode.py", line 135, in
func = lambda params: origfunc(self._get_extended_params(params))
File "/home/pi/klipper/klippy/extras/gcode_macro.py", line 186, in cmd
self.template.run_gcode_from_command(kwparams)
File "/home/pi/klipper/klippy/extras/gcode_macro.py", line 68, in run_gcode_from_command
self.gcode.run_script_from_command(self.render(context))
File "/home/pi/klipper/klippy/gcode.py", line 213, in run_script_from_command
self._process_commands(script.split('\n'), need_ack=False)
File "/home/pi/klipper/klippy/gcode.py", line 198, in _process_commands
handler(gcmd)
File "/home/pi/klipper/klippy/gcode.py", line 135, in
func = lambda params: origfunc(self._get_extended_params(params))
File "/home/pi/klipper/klippy/extras/gcode_macro.py", line 186, in cmd
self.template.run_gcode_from_command(kwparams)
File "/home/pi/klipper/klippy/extras/gcode_macro.py", line 68, in run_gcode_from_command
self.gcode.run_script_from_command(self.render(context))
File "/home/pi/klipper/klippy/gcode.py", line 213, in run_script_from_command
self._process_commands(script.split('\n'), need_ack=False)
File "/home/pi/klipper/klippy/gcode.py", line 198, in _process_commands
handler(gcmd)
File "/home/pi/klipper/klippy/gcode.py", line 135, in
func = lambda params: origfunc(self._get_extended_params(params))
File "/home/pi/klipper/klippy/extras/ercf.py", line 394, in cmd_ERCF_SET_STEPS
self.gear_stepper.rail.steppers[0].set_step_dist(new_step_dist)
AttributeError: MCU_stepper instance has no attribute 'set_step_dist'
Dumping stepper 'manual_stepper selector_stepper' (ercf) 2 queue_step:
queue_step 0: t=984515532 p=393 i=59994 c=-1187 a=0
queue_step 1: t=1007956721 p=3 i=0 c=0 a=0

Divide by zero error within CALIBRATE_ENCODER

I caused this by forgetting to perform the required ERCF_SELECT_TOOL TOOL=0 resulting in nothing being measured. This lead to a fault causing the printer to shutdown.

I understand that this was my fault for not following the manual but this happened to me a couple of times while debugging my encoder resolution.

Internal error on command:"ERCF_CALIBRATE_ENCODER"
Traceback (most recent call last):
  File "/home/pi/klipper/klippy/gcode.py", line 182, in _process_commands
    handler(gcmd)
  File "/home/pi/klipper/klippy/gcode.py", line 120, in <lambda>
    func = lambda params: origfunc(self._get_extended_params(params))
  File "/home/pi/klipper/klippy/extras/ercf.py", line 194, in cmd_ERCF_CALIBRATE_ENCODER
    resolution = dist / half_mean
ZeroDivisionError: float division by zero
Transition to shutdown state: Internal error on command:"ERCF_CALIBRATE_ENCODER"

Steps to reproduce

ECRF_HOME
ERCF_CALIBRATE_ENCODER

ERCF feet dont sit flush on 2020 rail

The mounting holes for the feet on the ERCF are offset so far to the edge when screwing them down on the rails they dip intowards the rails, this throws off the alignment causing things to be very bowed, it seems the way they feet are designed the holes are just way to far towards the edge, the feet need to be leangthed by a few millimeters so the holes will sit in the middle directly about the 2020 rail then when you screw them it they can lay flat on either side of the rail instead of dipping in like they do
20220305_211626
20220305_211559

Disable gear stepper during print

Hey! Could we disable the gear stepper after a toolchange? That would safe some power and give more thermal headroom for the small nema14 steppers.

Pause command causing "Move out of range:" issue

I am running ercf on a custom Delta printer. When a clog is detected, or there is no filament in the cart, I will get a "Move out of range" error when the printer goes into the pause state. I have tried reducing my delta radius by half, to see if there was an issue with the probe offset, but I still get the same error.

Any ideas what the issue might be?

Error from the Octoprint terminal when sending "pause" right after homing / moving down

Recv: // Klipper state: Ready
[...]
Send: G28 // homes all axis
Recv: ok
Send: G91 // set absolute move
Recv: ok
Send: G0 Z-50 F1000 // move down 50mm
Recv: ok
Send: G90 // set relative move
Recv: ok
Send: G91
Recv: ok
Send: G0 Z-100 F1000
Recv: ok
Send: G90
Recv: ok
[...]
Send: pause
Recv: // action:paused
Printer signalled that it paused, switching state...
Recv: !! Move out of range: -145.000 145.000 245.085 [-1.000]
Recv: !! Move out of range: -145.000 145.000 245.085 [-1.000]
Recv: ok

printer.cfg

# This file contains common pin mappings for the BigTreeTech Octopus.
# To use this config, the firmware should be compiled for the
# STM32F446 with a "32KiB bootloader" and a "12MHz crystal" clock reference.

# See docs/Config_Reference.md for a description of parameters.

[include ./ercf_hardware.cfg] # ERCF settings
[include ./ercf_software.cfg] # ERCF settings

# Driver0
[stepper_a] # StepperOnline 17HS19-2004S1, 1.8 degree, 2A
step_pin: PF13
dir_pin: !PF12
enable_pin: !PF14
microsteps: 16
rotation_distance: 40
endstop_pin: PG6
#position_endstop: 385
homing_speed: 80
homing_retract_dist: 5.0
second_homing_speed: 3
#arm_length: 400

# Driver1
[stepper_b] # StepperOnline 17HS19-2004S1, 1.8 degree, 2A
step_pin: PG0
dir_pin: !PG1
enable_pin: !PF15
microsteps: 16
rotation_distance: 40
endstop_pin: PG9

# Driver2
[stepper_c] # StepperOnline 17HS19-2004S1, 1.8 degree, 2A
step_pin: PF11
dir_pin: !PG3
enable_pin: !PG5
microsteps: 16
rotation_distance: 40
endstop_pin: PG10


# Driver3
# The Octopus only has 4 heater outputs which leaves an extra stepper
# This can be used for a second Z stepper, dual_carriage, extruder co-stepper,
# or other accesory such as an MMU
#[stepper_]
#step_pin: PG4
#dir_pin: PC1
#enable_pin: PA0
#endstop_pin: PG11
#...

# Driver4
[extruder] # Bondtech LGX, 1A, 400 steps/mm
step_pin: PF9
dir_pin: !PF10
enable_pin: !PG2
microsteps: 16
rotation_distance: 7.84 # Bondtech LGX 400 steps/mm
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA2 # HE0
sensor_pin:  PF4 # T0
sensor_type: EPCOS 100K B57560G104F
#control: pid
#pid_Kp: 22.2
#pid_Ki: 1.08
#pid_Kd: 114
min_temp: 0
max_temp: 250
min_extrude_temp: 0 # enables cold extrudes for calibration
max_extrude_only_distance: 200 # ERCF settings
max_extrude_cross_section: 50.0 # ERCF settings
pressure_advance = 0.190 # lower the value for more rounded corners 0.192 default

[probe]
pin: PG12 # ! to invert pressure probe
x_offset: -15.0 # pinda=-15.0
y_offset: 14.0 # pinda =14.0
#z_offset: 0.0
speed: 2.0
samples: 3
sample_retract_dist: 3.0

#[filament_switch_sensor material_0]
#switch_pin: PG12

# Driver5
#[extruder1]
#step_pin: PC13
#dir_pin: PF0
#enable_pin: !PF1
#heater_pin: PA3 # HE1
#sensor_pin: PF5 # T1
#...

#[filament_switch_sensor material_1]
#switch_pin: PG13

# Driver6
#[extruder2]
#step_pin: PE2
#dir_pin: PE3
#enable_pin: !PD4
#heater_pin: PB10 # HE2
#sensor_pin: PF6 # T2
#...

#[filament_switch_sensor material_2]
#switch_pin: PG14

# Driver7
#[extruder3]
#step_pin: PE6
#dir_pin: PA14
#enable_pin: !PE0
#heater_pin: PB11 # HE3
#sensor_pin: PF7 # T3
#...

#[filament_switch_sensor material_3]
#switch_pin: PG15

[heater_bed]
heater_pin: PA1
sensor_pin: PF3 # TB
sensor_type: ATC Semitec 104GT-2
#control: pid
#pid_Kp: 22.2
#pid_Ki: 1.08
#pid_Kd: 114
min_temp: 0
max_temp: 130

[fan]
pin: PA8

[heater_fan fan1]
pin: PE5
heater: extruder
heater_temp: 40.0

#[heater_fan fan2]
#pin: PD12

#[heater_fan fan3]
#pin: PD13

#[heater_fan fan4]
#pin: PD14

#[controller_fan fan5]
#pin: PD15

[display]
lcd_type: uc1701
cs_pin: EXP1_3
a0_pin: EXP1_4
rst_pin: EXP1_5
contrast: 63
encoder_pins: ^EXP2_5, ^EXP2_3
click_pin: ^!EXP1_2
## Some micro-controller boards may require an spi bus to be specified:
#spi_bus: spi
## Alternatively, some micro-controller boards may work with software spi:
spi_software_miso_pin: EXP2_1
spi_software_mosi_pin: EXP2_6
spi_software_sclk_pin: EXP2_2

[output_pin beeper]
pin: EXP1_1

[neopixel fysetc_mini12864]
pin: EXP1_6
chain_count: 3
color_order: RGB
initial_RED: 0.4
initial_GREEN: 0.4
initial_BLUE: 0.4

[mcu] # Rasp Pi USB
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_350034000750534E4E313120-if00
# CAN bus is also available on this board

[mcu rpi] # Rasp Pi local mcu for ADXL345 Accel.
serial: /tmp/klipper_host_mcu

[adxl345] # Acelerometer
cs_pin: rpi:None

[resonance_tester]
accel_chip: adxl345
probe_points:
    0, 0, 340  # toolhead x y z location during test
    
[input_shaper]
#shaper_freq_x: 59.4
#shaper_type_x: mzv
#shaper_freq_y: 59.0
#shaper_type_y: mzv

[printer]
kinematics: delta
max_velocity: 300 # default 300
max_accel: 3000 # default 3000
max_z_velocity: 200 # default 150
square_corner_velocity: 3.0 # default 5
#delta_radius: 201.027
print_radius: 150
minimum_z_position: -10.0 # used for initial calibration

[delta_calibrate]
speed: 200
radius: 140
horizontal_move_z: 2

[bed_mesh]
speed: 200
horizontal_move_z: 2
mesh_radius: 130
mesh_origin: 0, 0
round_probe_count: 9
mesh_pps: 4
algorithm: bicubic
bicubic_tension: 0.2
move_check_distance: 5
split_delta_z: .025
#fade_start: 0
#fade_end: 10
#fade_target: 0

[endstop_phase]

[pause_resume] # ERCF settings
recover_velocity: 300.0

########################################
# TMC2209 configuration
########################################

[tmc2209 stepper_a]
uart_pin: PC4
##diag_pin: PG6
run_current: 1.4
hold_current: 0.800
stealthchop_threshold: 0

[tmc2209 stepper_b]
uart_pin: PD11
##diag_pin: PG9
run_current: 1.4
hold_current: 0.800
stealthchop_threshold: 0

[tmc2209 stepper_c]
uart_pin: PC6
##diag_pin: PG10
run_current: 1.4
hold_current: 0.800
stealthchop_threshold: 0

#[tmc2209 stepper_]
#uart_pin: PC7
##diag_pin: PG11
#run_current: 0.650
#stealthchop_threshold: 999999

[tmc2209 extruder]
uart_pin: PF2
run_current: 0.60 # 0.5-0.7 recommended for Bondtech LGX
hold_current: 0.300
stealthchop_threshold: 0

#[tmc2209 extruder1]
#uart_pin: PE4
#run_current: 0.800
#stealthchop_threshold: 999999

#[tmc2209 extruder2]
#uart_pin: PE1
#run_current: 0.800
#stealthchop_threshold: 999999

#[tmc2209 extruder3]
#uart_pin: PD3
#run_current: 0.800
#stealthchop_threshold: 999999

[board_pins]
aliases:
    # EXP1 header
    EXP1_1=PE8, EXP1_2=PE7,
    EXP1_3=PE9, EXP1_4=PE10,
    EXP1_5=PE12, EXP1_6=PE13,    # Slot in the socket on this side
    EXP1_7=PE14, EXP1_8=PE15,
    EXP1_9=<GND>, EXP1_10=<5V>,

    # EXP2 header
    EXP2_1=PA6, EXP2_2=PA5,
    EXP2_3=PB1, EXP2_4=PA4,
    EXP2_5=PB2, EXP2_6=PA7,      # Slot in the socket on this side
    EXP2_7=PC15, EXP2_8=<RST>,
    EXP2_9=<GND>, EXP2_10=PC5

# See the sample-lcd.cfg file for definitions of common LCD displays.

# A [probe] section can be defined instead with a pin: setting identical
# to the sensor_pin: for a bltouch
#[bltouch]
#sensor_pin: PB7
#control_pin: PB6
#z_offset: 0

#[neopixel my_neopixel]
#pin: PB0

## Custom Menus
[menu __main __test]
type: list
name: Tester

# ERCF Client Macros
[gcode_macro PRINT_START]
gcode:
    {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %}
    {% set BED_TEMP = params.BED_TEMP|default(60)|float %}
    SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=0 # added line for clog detection mode. Turns off sensor
    M104 S{EXTRUDER_TEMP * 0.80}        # set extruder temperature to 75%
    M140 S{BED_TEMP}                    # set bed temprature
    BED_MESH_PROFILE LOAD=default #loads Klipper default mesh
    G21 # Set Units to Millimeters
    G90 # Set to Absolute Positioning
    M83 # Set extruder to relative mode
    M220 S100 # Set Feedrate percent back to 100
    M106 S0 #Fan Off
    M117 Homing
    G28 # Home All
    G92 E0 # Reset Extruder
    G1 Z15.0 F3000
    M109 S{EXTRUDER_TEMP}   # Wait for nozzle to finish heating
    M106 S0                 # Done waiting, part cooling off and back to slicer control
    #M117 Probing
    #PROBE
    SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=1 # added line for clog detection mode. Turns on sensor
    M117 Printing

[gcode_macro PRINT_END]
gcode:
    M140 S0 # Turn-off bed
    M106 S0 # Fan Off
    G91 # Relative positioning
    G1 E-0.5 F2500 # Retract filament
    G1 Z30 F3000 # Move effector up
    M220 S100 # Set Feedrate percent back to 100
    G90 # Absolute positioning
    G1 X0 Y30 F3000 # Move effector center / back
    {% set unload = params.UNLOAD_AT_END|default(0)|int %}
    M400    # wait for buffer to clear
    {% if unload|int == 1%}
        ERCF_EJECT
    {% endif %}
    M104 S0 # Turn-off hotend
    SET_STEPPER_ENABLE STEPPER=extruder ENABLE=0 # Disable extruder

[gcode_macro CANCEL_PRINT]
rename_existing: BASE_CANCEL_PRINT
gcode:
  TURN_OFF_HEATERS
  CLEAR_PAUSE
  SDCARD_RESET_FILE
  {% set x_park = printer.toolhead.axis_minimum.x|float + 5.0 %}
  {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
  {% set max_z = printer.toolhead.axis_maximum.z|float %}
  {% set act_z = printer.toolhead.position.z|float %}
  {% if act_z < (max_z - 20.0) %}
      {% set z_safe = 20.0 %}
  {% else %}
      {% set z_safe = max_z - act_z %}
  {% endif %}
  SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=0
  G91
  G1 Z{z_safe} F900
  G90
  G0 X{x_park} Y{y_park} F6000
  BASE_CANCEL_PRINT

[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
gcode:
  {% set x_park = printer.toolhead.axis_minimum.x|float + 5.0 %}
  {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
  {% set max_z = printer.toolhead.axis_maximum.z|float %}
  {% set act_z = printer.toolhead.position.z|float %}
  {% if act_z < (max_z - 5.0) %}
      {% set z_safe = 5.0 %}
  {% else %}
      {% set z_safe = max_z - act_z %}
  {% endif %}
  G92 E0
  G1 E-1.0 F1500.0
  G90
  SAVE_GCODE_STATE NAME=PAUSE_state
  BASE_PAUSE
  G91
  G1 Z{z_safe} F900
  G90
  G0 X{x_park} Y{y_park} F6000

[gcode_macro RESUME]
rename_existing: BASE_RESUME
gcode:
    {% if printer["gcode_macro ERCF_PAUSE"].is_paused|int != 0 %}
        M118 You can't resume the print without unlocking the ERCF first.
        M118 Run ERCF_UNLOCK and solve any issue before hitting Resume again
    {% else %}
        RESTORE_GCODE_STATE NAME=PAUSE_state
        G90
        {% if printer["gcode_macro ERCF_VAR"].clog_detection|int == 1 %}
            SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=1
        {% endif %}
        BASE_RESUME
    {% endif %}

#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [probe]
#*# z_offset = 0.453
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 14.505
#*# pid_ki = 0.440
#*# pid_kd = 119.662
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 55.157
#*# pid_ki = 0.636
#*# pid_kd = 1195.521
#*#
#*# [endstop_phase stepper_a]
#*# trigger_phase = 59/64
#*#
#*# [endstop_phase stepper_b]
#*# trigger_phase = 44/64
#*#
#*# [endstop_phase stepper_c]
#*# trigger_phase = 18/64
#*#
#*# [input_shaper]
#*# shaper_type_x = 3hump_ei
#*# shaper_freq_x = 82.0
#*# shaper_type_y = mzv
#*# shaper_freq_y = 60.0
#*#
#*# [printer]
#*# delta_radius = 203.975048
#*#
#*# [stepper_a]
#*# angle = 209.691248
#*# arm_length = 402.423731
#*# position_endstop = 390.915052
#*#
#*# [stepper_b]
#*# angle = 329.578808
#*# arm_length = 405.437482
#*# position_endstop = 388.767988
#*#
#*# [stepper_c]
#*# angle = 90.000000
#*# arm_length = 403.866956
#*# position_endstop = 390.668581
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 	  -0.156093, -0.156093, -0.156093, -0.156093, -0.156093, -0.156093, -0.156093, -0.156093, -0.156093
#*# 	  -0.051219, -0.051219, -0.051219, -0.101586, -0.137468, -0.164767, -0.033983, -0.033983, -0.033983
#*# 	  -0.019383, -0.019383, -0.033281, -0.020074, -0.022258, -0.013818, 0.012413, 0.100851, 0.100851
#*# 	  -0.004334, -0.004334, 0.027696, 0.015139, -0.003518, -0.015928, -0.046685, 0.014538, 0.014538
#*# 	  -0.039046, -0.025214, 0.041022, 0.066368, 0.078945, 0.096209, 0.073397, 0.064159, 0.130159
#*# 	  0.014118, 0.014118, 0.042400, 0.061551, 0.051162, 0.024311, -0.006972, -0.068517, -0.068517
#*# 	  -0.025675, -0.025675, 0.024664, 0.049281, 0.039570, 0.027039, -0.008427, -0.040542, -0.040542
#*# 	  0.003335, 0.003335, 0.003335, 0.023118, -0.002773, -0.052553, -0.106721, -0.106721, -0.106721
#*# 	  0.013421, 0.013421, 0.013421, 0.013421, 0.013421, 0.013421, 0.013421, 0.013421, 0.013421
#*# tension = 0.2
#*# min_x = -130.0
#*# algo = bicubic
#*# y_count = 9
#*# mesh_y_pps = 4
#*# min_y = -130.0
#*# x_count = 9
#*# max_y = 130.0
#*# mesh_x_pps = 4
#*# max_x = 130.0
#*#
#*# [delta_calibrate]
#*# height0 = 0.453
#*# height0_pos = 31228.000,31060.000,31214.667
#*# height1 = 0.453
#*# height1_pos = 36957.000,36802.667,27293.333
#*# height2 = 0.453
#*# height2_pos = 30101.000,40255.000,30118.667
#*# height3 = 0.453
#*# height3_pos = 27519.333,35823.667,36050.667
#*# height4 = 0.453
#*# height4_pos = 30086.000,29881.333,37657.667
#*# height5 = 0.453
#*# height5_pos = 35290.333,27640.667,35230.000
#*# height6 = 0.453
#*# height6_pos = 39050.667,29948.000,30066.000
#*# distance0 = 116.85
#*# distance0_pos1 = 30869.409,31328.693,31443.720
#*# distance0_pos2 = 27427.602,36291.432,36446.159
#*# distance1 = 116.96
#*# distance1_pos1 = 31057.886,30950.542,31635.150
#*# distance1_pos2 = 30128.825,30000.528,40379.958
#*# distance2 = 116.68
#*# distance2_pos1 = 31438.007,30764.840,31443.720
#*# distance2_pos2 = 36465.543,27338.345,36446.159
#*# distance3 = 116.99
#*# distance3_pos1 = 31629.694,30953.530,31064.766
#*# distance3_pos2 = 40414.982,30045.199,30133.731
#*# distance4 = 116.92
#*# distance4_pos1 = 31437.324,31331.721,30877.190
#*# distance4_pos2 = 36452.654,36348.423,27444.518
#*# distance5 = 116.89
#*# distance5_pos1 = 31057.212,31521.233,31064.766
#*# distance5_pos2 = 30118.752,40238.954,30133.731
#*# distance6 = 117.08
#*# distance6_pos1 = 27642.962,35225.118,36049.904
#*# distance6_pos2 = 30390.832,29717.629,39942.649
#*# distance7 = 116.9
#*# distance7_pos1 = 30363.754,29692.952,39096.539
#*# distance7_pos2 = 36565.297,27410.911,35855.203
#*# distance8 = 117.04
#*# distance8_pos1 = 36066.550,27553.877,35373.634
#*# distance8_pos2 = 39974.274,30306.112,29848.646
#*# distance9 = 116.73
#*# distance9_pos1 = 39122.926,30278.013,29822.474
#*# distance9_pos2 = 35859.192,36446.060,27515.873
#*# distance10 = 116.95
#*# distance10_pos1 = 35376.072,35949.256,27659.066
#*# distance10_pos2 = 29833.240,39801.402,30394.945
#*# distance11 = 116.9
#*# distance11_pos1 = 29807.322,38958.887,30368.277
#*# distance11_pos2 = 27499.425,35702.979,36545.839

Implement slaved extruder using gear motor to improve filament feed performance

High friction filament paths (particularly when using ERCP) plague many ERCF setups. Klipper offers a feature which allows additional stepper motors to be slaved to the extruder during printing.

Implementing this method using the gear selector motor to provide additional filament pushing force would mitigate filament drag issues, however it could also introduce issues with filament bunching or being stretched if the stepper calibration between the two motors is not 100% accurate. To overcome this, I suggest adding a periodic 'SERVO UP' command to remove tension and allow the filament path to balance. This could be done iteratively and in theory should not have any affect on the print GCode.

As not all users will need or benefit from this type of setup (or be able to achieve the close calibration tolerances necessary), I suggest using a configurable parameter in ecrf_software.cfg to enable or disable this behavior. In addition, a configuration field allowing user-specified intervals between servo cycles may be beneficial (alternatively, it may be better to just call a servo cycle for every 'x' mm3 of extruded filament, if such a thing is possible).

Usage of ERCF with flex filament

Not so much an issue as a question and challenge I guess. I did some investigating online but was not able to find any relevant information on this topic. I have been trying to use the ERCF with flex filament (specifically Ninjatek's Cheeta). Given the appropriate top hat, the filament indeed loads to the extruder, but then prompts an error:

14:19:38
An issue with the ERCF has been detected and the ERCF has been PAUSED
14:19:37
idle_timeout: Timeout set to 72000.00 s
14:19:37
Filament seems blocked between the extruder and the nozzle, calling _ERCF_PAUSE...

even though it seems to be properly loaded (I can extrude, and the toolhead sensor is triggered). When ejecting, the filament frequently is not unloaded enough in the extruder and stays stuck between the extruder gears when the ERCF is trying to unload. Loading ABS and PLA works fine, so I am sure that it is related to the stretch that is inherent in flexible filaments. Anyway, I am curious if others have tried the ERCF with flexible filaments and also if there are steps to take to maybe get it to work. I know that flexible filaments are difficult to work with loading systems like the ERCF (I also have a Prusa MK3S with MMU2S, which just doesn't allow you to use flexible filaments).

AH3364Q-P-B Hall Effect sensor (SIP)

Hello, I apologize for my English, because. I use a translator, tell me how you can replace the AH3364Q-P-B Hall Effect sensor (SIP), is there a more common analogue of this hall sensor?

ERCP: Buffer_Wheel does not "fit" into Buffer_Cross cavity

Hi There,

i have been assembling the ERCP. While doing so, i have experienced, that the buffer_wheel does not spin freely as i would like to have it spinning. I spotted a friction between Buffer_Wheel and Buffer_Cross. With a closer look it seems for me that there is a cavity in which the buffer_wheel shoult spin but it is not big enought. As marked on the screenshot.
ERCP_Buffer_Cross_Wheel_1

ERCP_Buffer_Cross_Wheel_2

For my understanding the fix would be to have a cylinder, slightly bigger than the buffer_wheel substracted from the buffer_cross.
I did that and it looks good for me for now but i want to ask if i do not understand my right.
The next picture shows a fix, which would be to have a cylinder, slightly bigger than the buffer_wheel substracted from the buffer_cross.
I did that and it looks good for me.
Pink: old buffer_cross
Grey: new buffer_cross
ERCP_Buffer_Cross_Wheel_3

Do we have the slightly smaller cavity for the buffer_wheel by intention or is my fix doing his job?

Greetings

default_parameter_ being removed from klipper

It has come to my attention that klipper is dropping the default_parameter_* method of passing variables, it seems that ERCF still uses it.

ercf_software.cfg:default_parameter_LENGTH: 0.0
ercf_software.cfg:default_parameter_LENGTH: 200.0
ercf_software.cfg:default_parameter_SPEED: 50.0
ercf_software.cfg:default_parameter_ACCEL: 200.0
ercf_software.cfg:default_parameter_LOOP: 10
ercf_software.cfg:default_parameter_RAND: 0

LGX filament sensor is not aligned with Afterburner/stealthburner

LGX mount in the filament sensor folder needs the spacer which is buried in the voron mods folder. Either include the spacer here or edit the STL so it wont need the spacer.

This is the image of the user mod with ball and microswitch (left) as compared to the official ERCF LGX mount (right)
image

ERCF_LOAD_FILAMENT_IN_EXTRUDER detect slow?

Greetings!
Is there any way to add some buffer time to the detection of load into the nozzle? I find it causing a ercf_pause just before the filament detection sometimes.

ERCF calibrate failing

I have successful run all my calibrations and I am on the step to calibrate the ercf when I run the calibration I have set the bowden length in config 5 cm shorter than length when I run the ERCF_CALIBRATE command when I get to the part where the filament feeds to the filament to the extruder I have klipper shutting down every time.

image

image

I reran the encoder calibration and I get exact 200 mm measurements multiple times during encoder calbration step. I'm at a lose as to what I am doing incorrectly. I have also replaced the usb cable because I had found some users where having issues with poor quality usb cables. What should I be looking for?

[Request] Please include *.f3d Fusion 360 CAD models if possible (as well as the STEP files)

I know you've included STEP files for all the CAD models, which is great. It allows easy import into Fusion 360 for viewing the model.

However, the problem with STEP files is that they do not capture the design history, so you end up with an object with no access to the sketches, features and operations that went into creating it. Don't get me wrong, that's better than a poke in the eye, but it does make modding much more difficult than it strictly needs to be. It is so much easier if you can go back and tweak a sketch or edit a feature, or insert new operations in the timeline to modify existing features. All this is lost when exporting as a STEP file.

I don't know that you were working in Fusion 360 of course, but it's an educated guess that you likely were.

So my request is - if possible - and if you are willing - please include the *.f3d Fusion 360 files as well as the step files.

Reducing change time

The ERCF is amazing, great work.
If you did not consider it, I may have an idea to speed up change:

  • Add a filament cutting mechanism
  • Cut the current filament when the calculated material needed is in the length of the bowden (some custom code)
  • Push new filament
  • The new one will push the old one
  • Purge the new one

This way the machine will keep printing while swapping, with a minimum time to optimize to spend on purging

One downside is that if the swap need to happen every n < length of bowden you either will have to purge and waste filament or restrict the minimum amount of swap

Another downside is in flexibles, you will need to push the new one while the extruder pull the old one

Calibration not possible

Greetings,

I've concluded most of my ERCF build but I'm now struggling with the ERCF_CALIBRATE process on page 116 of the Build Manual.

Maybe some details about the Printer - It is a 350 sized Voron 2.4 with the ERCF attached to its side and with the OD=4mm / ID=3mm PTFE Tube still going through a ( side feed ) Exhaust Port Filter - The total length of that PTFE Tube was measured at 1110mm:
Image
Mounting the ERCF to either the back or top of the Voron to shorten the Tube is not an option because of the limited space in my closet leaving only a Slot Cut at the top as a last resort option. The Afterburner Toolhead uses the Poor man's SmartWatch MOD.

The issue I'm having are best described in the following 3 pictures:
Image
There appears to be an issue with the Unloading stdev being high despite the moves being relatively consistent?
The Gap between the "Wall" of the IR-Sensor and the BMG Idler ( mentioned on page 107 ) is probably less than 1mm after filing down the Sensor supporting plastic.

Image
When subtracting 50mm from the 1100mm measured PFTE Tube the Filament stops like 10cm before reaching the Toolhead, keeps creeping forwards and then times out in Octoprint.

Image
After significantly increasing the PTFE Tubes reported length in ercf_software.cfg to reach the Toolhead Sensor before the Timeout happens it now stops with the Filament remaining in contact with the Sensor without the supposed retraction happening and thus also no other Tools other than T0 being calibrated.

What is causing the problem?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.