Filament buffer custom macros

Hello I created small project that modifies Filament buffer motor and sync it to extruder.

First issue was that stepper motor gets really hot when is in sync with extruder, that’s why I used custom casing. So far no issues with filament length offset.


For next futures I will try to implement clog detection that works when stepper is in sync (but PTFE tube is needed), runout sensor works out of the box already.

The whole idea came to my mind when I used filament that is to rough for PTFE, so now I can use buffer with 2 configurations with and without PTFE. I will update this thread with project status

What do you think about this?

1 Like

Ok I can already tell that filament buffer’s stepper has wrong default config

[buffer_stepper filament_buffer]
step_pin: buffer_mcu: PA8           
dir_pin: buffer_mcu: PA9           
enable_pin: !buffer_mcu: PA11       
microsteps: 16                      
rotation_distance: 9.75               
velocity: 150                        
accel: 5000                         
push_length: 25                  
full_steps_per_rotation: 200   
push_pin: ^buffer_mcu: PB11

[tmc2209 buffer_stepper filament_buffer]
uart_pin: buffer_mcu: PA12
interpolate: True
run_current: 0.9
hold_current: 0.4
sense_resistor: 0.150          
uart_address: 3

After sync with toolhead extruder, filament buffer pushing about 10% to 15% more filament.

You can adjust the “rotation distance”.

A HIGHER distance will result in fewer steps for any move distance.

For example if you want 8% less filament then DIVIDE 9.75 by 0.92 (1.00 - 0.08) and enter 10.5978 into the cfg file.

Thank you will try that, but concerning is that I tried to calibrate and both motors are calibrated, it seems that stepper from toolhead extruder extrude less during printing.

The rotation distance for your toolhead extruder should be measured while extruding.

Keeping 2 extruders synchronized over several meters of filament is nearly impossible. If you manage to get it done a different filament will probably not be the same. The TRUE rotation distance for both extruders changes with how deeply the teeth on the feed rollers bite into the filament.

I don’t have a Max but l’ve studied the CAD model. The solution Sovol came up with is good in theory but the execution is POOR.

Take your pusher apart and polish the areas where sliding occurs. Put a spacer on the spring or add weight by putting a few M8 nuts around the PTFE tube and let them slide down against the pusher. Make sure there is nothing touching the PTFE tube that would prevent it moving fully down as filament is used.

Another 2 issues

  1. Why this macro does not turn off blue LED? Green LED works as intended but blue one stays always on.

  1. There are 3 sensors on feeder board


2.1 is [filament_switch_sensor filament_sensor]
2.2 is ?
2.3 is [gcode_button stall_push_stop]

My question is how to access 2, which mcu pin is this sensor hook to.

Have you looked at the Demon Klipper Essentials macros, as they have a lot for the feed unit. GitHub - 3DPrintDemon/Demon_Klipper_Essentials_Unified: Devilishly Good Klipper Macros!

1 Like

Not yet. I bought SV08 MAX to learn Klipper and Voron, so I want to develop something by myself.

Update: I created top shelf mount with spool, in that orientation filament will use gravity instead of fighting it, also this shorten the PTFE path.


Right now extruder stepper is in sync with this additional stepper, as I said for some reason external feeder feed a little to much even if it is exact the same as the extruder one. My idea is that for next upgrade I will create macro that will force move stepper from external feeder a little bit in opposite direction when one of sensors from feeder detect movement.

Question for now is: Could someone provide some theory behind this moving tension sensor? I would like to now how it detect tension and what principles are behind it.

@sovol3d About my previous post. Maybe you guys why this macro does not work as it should. Filament buffer custom macros - #6 by KoizumiChineko

The pusher shoves extra filament into the tube, which causes the slide joint to extend, until the tab inside the pusher blocks the IR light beam of the upper switch. Then as filament is used the spring and gravity cause the tab to move down until it blocks the IR light of the lower switch. Goto start.

Meanwhile a counter adds up every extruder move. If too much filament is used before the lower switch triggers it sets an error. The counter resets every time the upper switch triggers.

Study the macros. All the logic is right there.

I wasn’t asking about the software I’m FW engineer outside hobby so I do understand code and how it works(with issues I hate python :D). I was curious about mechanical/physical principles of this extender, but i wrote sketch with force vectors and understood how it works.

Btw length correction was easier to implement that expected

.

1 Like

Update:

I will create github repo for this mod with stls for custom mounts and updated macros, because it works perfectly (at least for now).

I created algorithm that automatically recalculates rotation_distance for external feeder to make length correction as rare as possible. So yea @cardoc I don’t need to keep them synchronized, they will synchronize themselves :smiley:

1 Like

You should post at Configs - Klipper

Your methods could have use much wider than the SV08Max

1 Like

Further improving air exchange and centering macro demonstration.

Interested to know when you post to GitHub.

I’m tired of the super-loud quack from this thing, and I don’t really want to install an entire Demon Macros setup.

I think my mod is more complicated because you need at least custom feeder case due to stepper overheating.

I did promise but I do not think this is top notch work, but you can try it if you want.

I currently trying to develop V0.2 with better solution for recentering the buffer.

Ok I published V0.2 with better recalculation mechanism.

Here is video presenting features:

Should there be any audio on the video?