Creating a Custom Configuration
You can generate custom builds of fender bender by modifying a file in the build-configs directory, and running build.py from the root of the project. The yaml files are somewhat self-documenting, and would allow you to generate say, a 12 filament buffer, support a new tube or connector type.
The reference configuration is fairly self-documenting, with plenty of comments to guide you through what each value means.
As of the time of writing the reference BenderConfig is
## SEE BOTTOM FOR NOTES
######### Default Configuration #########
BenderConfig:
## MOST LIKELY preferences to adjust
# output path for generated STL files
stl_folder: ../stl/reference
# control how many filament brackets can be loaded into the system
# for the Prusa MMU3, set to 5
filament_count: 5
# thickness of the walls separating the filament chambers
wall_thickness: 3
# the method of locking the frame together, can be CLIP, PIN, BOTH, or NONE
frame_lock_style: BOTH
## General specifications
# thickness for parts bearing structural elements
minimum_structural_thickness: 4
# thickness for parts bearing no structural elements
minimum_thickness: 1
# if you need to enforce a certain bracket depth so you can use multiple configuration brackets
# in the same frame, you can set this to the largest number required
# set to -1 to ignore
minimum_bracket_depth: -1
# higher numbers result in a smaller rounding radius for edges
fillet_ratio: 4
# extra gap allowance between parts, adjust as needed for your printer
tolerance: 0.2
## wheel specifications
wheel:
# diameter of the wheel, increasing will add to the size of the bracket,
# but may work better with certain materials
diameter: 70
# number of spokes on the wheel, can be adjusted to increase strength or change appearance
spoke_count: 5
# how much "wiggle" the wheel has. increasing to mach may result in filament getting stuck between the wheel and the bracket
lateral_tolerance: 0.6
# how much of a gap to allow between the radius of the wheel and the bracket, adjust if needed for your printer (unlikely)
radial_tolerance: 0.2
## bearing details
bearing:
diameter: 12.1
inner_diameter: 6.1
shelf_diameter: 8.5
depth: 4
## Information about the filament tube connectors
connectors:
## default connector details
- name: "3mmx6mm tube connector"
threaded: False
# file_prefix: "prefix"
# file_suffix: "suffix"
thread_pitch: 1
thread_angle: 30
thread_interference: 0.4
diameter: 6.5
length: 6.7
## filament tube details
tube:
inner_diameter: 3.6
outer_diameter: 6.5
## alternative connector details
- name: "3mmx6mm PC6-01"
threaded: True
file_prefix: "alt/"
file_suffix: "-3mmx6mm-pc6-01"
thread_pitch: 1
thread_angle: 30
thread_interference: 0.4
diameter: 10.3
length: 6.7
## alternative filament tube details
tube:
inner_diameter: 3.6
outer_diameter: 6.5
## alternative connector details
- name: "2.5mmx4mm no connector"
threaded: False
file_prefix: "alt/"
file_suffix: "-2_5mmx4mm-no-connector"
thread_pitch: 1
thread_angle: 30
thread_interference: 0.2
diameter: 4.1
length: 6.7
## alternative filament tube details
tube:
inner_diameter: 2.6
outer_diameter: 4.1
## alternative connector details
- name: "2.5mmx4mm PC4-M10"
threaded: True
file_prefix: "alt/"
file_suffix: "-2_5mmx4mm-pc4-m10"
thread_pitch: 1
thread_angle: 30
thread_interference: 0.2
diameter: 10
length: 6.7
## alternative filament tube details
tube:
inner_diameter: 2.6
outer_diameter: 4.1
## alternative connector details
- name: "2mmx4mm no connector"
threaded: False
file_prefix: "alt/"
file_suffix: "-2mmx4mm-no-connector"
thread_pitch: 1
thread_angle: 30
thread_interference: 0.2
diameter: 4.1
length: 6.7
## alternative filament tube details
tube:
inner_diameter: 2.1
outer_diameter: 4.1
## alternative connector details
- name: "2mmx4mm PC4-M10"
threaded: True
file_prefix: "alt/"
file_suffix: "-2mmx4mm-pc4-m10"
thread_pitch: 1
thread_angle: 30
thread_interference: 0.2
diameter: 10
length: 6.7
## alternative filament tube details
tube:
inner_diameter: 2.1
outer_diameter: 4.1
#how deep you want the overall assembled frame to be (needs to be large enough to fully contain the buffered filament)
frame_chamber_depth: 370
# the sizing for the empty space of the hexagon pattern, larger numbers increase visibility and decrease the strength of the walls
wall_window_apothem: 8
# the sizing for the bars of, larger numbers decrease visibility but increase the strength of the walls
wall_window_bar_thickness: 1.5
frame_tongue_depth: 4
# you may want to make the locking pin a little more loose (larger number here) to make the pin
# easier to insert and remove
frame_lock_pin_tolerance: 0.6
# the base radius of the click lock spheres
frame_click_sphere_radius: 1
# how far up the filament bracket to place the frame clip with the "CLIP style" frame lock
frame_clip_depth_offset: 10
## detals for the wall bracket
wall_bracket_screw_radius: 2.25
wall_bracket_screw_head_radius: 4.5
wall_bracket_screw_head_sink: 1.4
## how many interlocking elements to add to the wall bracket
wall_bracket_post_count: 3
# m4 bolt details (for the desk bracket)
m4_heatsink_radius: 3
m4_heatsink_depth: 5
m4_nut_radius: 4.3
m4_nut_depth: 5
m4_shaft_radius: 2.15
#### Notes ####
# generally the first four elements should be the most likely things you may wish to adjust
# I've worked to minimize the number of things directly controlled in the configuration file
# many other settings are derived from these values; calculations are in bank_config.py
# adjusting these settings with care and reason *should* result in a working part, but
# there are no guarantees. If you encounter issues, please open an issue on the github page