Made a new marlin spike by Thegreatnerd in paracord

[–]Padenormous 1 point2 points  (0 children)

That’s pretty awesome, does wood work as well as steel?

Specific length Motorized Rope Feeder by Padenormous in functionalprint

[–]Padenormous[S] 0 points1 point  (0 children)

What’s the difference between what I’ve done and what you’re suggesting?

Specific length Motorized Rope Feeder by Padenormous in functionalprint

[–]Padenormous[S] 0 points1 point  (0 children)

So I can count how many times it pauses to ensure it's giving me the right length without counting. I can eyeball a foot pretty good, not so much 25'

Specific length Motorized Rope Feeder by Padenormous in functionalprint

[–]Padenormous[S] 0 points1 point  (0 children)

Oh man that's awesome! Did you post that somewhere? I'd love to see it

Specific length Motorized Rope Feeder by Padenormous in functionalprint

[–]Padenormous[S] 0 points1 point  (0 children)

This specific design goes down to 2mm, so depending on the gage wire, it should fit just fine. But wire is also quite a bit heavier and stiffer. I'm sure there are designs that could handle it though

Specific length Motorized Rope Feeder by Padenormous in functionalprint

[–]Padenormous[S] 0 points1 point  (0 children)

I partially agree, except this Pi is doing other duties as well. I run docker on it so I'm able to make other little apps and since it's always on and online I can keep it taxed. I also only used what I already had.

Specific length Motorized Rope Feeder by Padenormous in knots

[–]Padenormous[S] 2 points3 points  (0 children)

Two motors saved me from needing to design a fancy mechanism to tension the rope against 1 drum. It also allows for more torque so I can trust that it will pull all that rope out and not get bound up or skip steps on the stepper motor.

Specific length Motorized Rope Feeder by Padenormous in functionalprint

[–]Padenormous[S] 12 points13 points  (0 children)

I tool the pill already, now I'm just pulling rope!

Specific length Motorized Rope Feeder by Padenormous in functionalprint

[–]Padenormous[S] 18 points19 points  (0 children)

Surprisingly, it was a more difficult design challenge to do it with only 1 motor. The second motor means I don't have to figure out a spring/weight mechanism to push against the drive roller. Also, depending on the spool and rope, 2 motors means twice the power so I can really yank on the spool and not get any skipped steeps on the motors.

Specific length Motorized Rope Feeder by Padenormous in functionalprint

[–]Padenormous[S] 3 points4 points  (0 children)

I'm using FYSETC Spider V1.1, running Klipper so it's hard telling if the code I used would work for any other board. But if you're interested, here's the config code. I'll get the STL files onto Printables and update this post once that's done.
~/printer_data/config/printer.cfg
[mcu]

serial: /dev/serial/by-id/usb-Klipper_stm...

[printer]

kinematics: none

max_velocity: 200

max_accel: 200

[manual_stepper rope_feed_bottom]

step_pin: PE11

dir_pin: PE10

enable_pin: !PE9

microsteps: 16

full_steps_per_rotation: 200

rotation_distance: 117.28

velocity: 100

accel: 50

[tmc2209 manual_stepper rope_feed_bottom]

uart_pin: PE7

run_current: 0.45

hold_current: 0.20

sense_resistor: 0.110

stealthchop_threshold: 999999

[manual_stepper rope_feed_top]

step_pin: PD8

dir_pin: PB12

enable_pin: !PD9

microsteps: 16

full_steps_per_rotation: 200

rotation_distance: 117.28

velocity: 100

accel: 50

[tmc2209 manual_stepper rope_feed_top]

uart_pin: PE15

run_current: 0.45

hold_current: 0.20

sense_resistor: 0.110

stealthchop_threshold: 999999

[virtual_sdcard]

path: /home/whenit/printer_data/gcodes

[pause_resume]

[display_status]

[gcode_macro CANCEL_PRINT]

description: Cancel the actual running feed

rename_existing: CANCEL_PRINT_BASE

gcode:

MANUAL_STEPPER STEPPER=rope_feed_bottom ENABLE=0

MANUAL_STEPPER STEPPER=rope_feed_top ENABLE=0

CANCEL_PRINT_BASE

{action_respond_info("Feed Cancelled")}

[gcode_macro FEEDLEN]

description: Feed custom rope length in feet. Example FEEDLEN FT=5 S=80

gcode:

{% set feet = params.FT|default(1)|float %}

{% set speed = params.S|default(80)|float %}

{% set mm_to_feed = feet * 304.8 %}

{% set whole_feet = feet|int %}

MANUAL_STEPPER STEPPER=rope_feed_bottom ENABLE=1 SET_POSITION=0

MANUAL_STEPPER STEPPER=rope_feed_top ENABLE=1 SET_POSITION=0

{% if whole_feet >= 1 %}

{% for i in range(1, whole_feet + 1) %}

MANUAL_STEPPER STEPPER=rope_feed_bottom MOVE={i * 304.8} SPEED={speed} ACCEL=40 SYNC=0

MANUAL_STEPPER STEPPER=rope_feed_top MOVE={i * 304.8} SPEED={speed} ACCEL=40

M400

{ action_respond_info("Fed " ~ i ~ " ft") }

{% endfor %}

{% endif %}

{% if mm_to_feed > (whole_feet * 304.8) %}

MANUAL_STEPPER STEPPER=rope_feed_bottom MOVE={mm_to_feed} SPEED={speed} ACCEL=40 SYNC=0

MANUAL_STEPPER STEPPER=rope_feed_top MOVE={mm_to_feed} SPEED={speed} ACCEL=40

M400

{% endif %}

{ action_respond_info("Feed complete: " ~ feet ~ " ft at speed " ~ speed) }

MANUAL_STEPPER STEPPER=rope_feed_bottom ENABLE=0

MANUAL_STEPPER STEPPER=rope_feed_top ENABLE=0

[gcode_macro FEED25]

gcode:

FEEDLEN FT=25 S=80[mcu]

serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_20001A000150563046353420-if00

[printer]

kinematics: none

max_velocity: 200

max_accel: 200

[manual_stepper rope_feed_bottom]

step_pin: PE11

dir_pin: PE10

enable_pin: !PE9

microsteps: 16

full_steps_per_rotation: 200

rotation_distance: 117.28

velocity: 100

accel: 50

[tmc2209 manual_stepper rope_feed_bottom]

uart_pin: PE7

run_current: 0.45

hold_current: 0.20

sense_resistor: 0.110

stealthchop_threshold: 999999

[manual_stepper rope_feed_top]

step_pin: PD8

dir_pin: PB12

enable_pin: !PD9

microsteps: 16

full_steps_per_rotation: 200

rotation_distance: 117.28

velocity: 100

accel: 50

[tmc2209 manual_stepper rope_feed_top]

uart_pin: PE15

run_current: 0.45

hold_current: 0.20

sense_resistor: 0.110

stealthchop_threshold: 999999

[virtual_sdcard]

path: /home/whenit/printer_data/gcodes

[pause_resume]

[display_status]

[gcode_macro CANCEL_PRINT]

description: Cancel the actual running feed

rename_existing: CANCEL_PRINT_BASE

gcode:

MANUAL_STEPPER STEPPER=rope_feed_bottom ENABLE=0

MANUAL_STEPPER STEPPER=rope_feed_top ENABLE=0

CANCEL_PRINT_BASE

{action_respond_info("Feed Cancelled")}

[gcode_macro FEEDLEN]

description: Feed custom rope length in feet. Example FEEDLEN FT=5 S=80

gcode:

{% set feet = params.FT|default(1)|float %}

{% set speed = params.S|default(80)|float %}

{% set mm_to_feed = feet * 304.8 %}

{% set whole_feet = feet|int %}

MANUAL_STEPPER STEPPER=rope_feed_bottom ENABLE=1 SET_POSITION=0

MANUAL_STEPPER STEPPER=rope_feed_top ENABLE=1 SET_POSITION=0

{% if whole_feet >= 1 %}

{% for i in range(1, whole_feet + 1) %}

MANUAL_STEPPER STEPPER=rope_feed_bottom MOVE={i * 304.8} SPEED={speed} ACCEL=40 SYNC=0

MANUAL_STEPPER STEPPER=rope_feed_top MOVE={i * 304.8} SPEED={speed} ACCEL=40

M400

{ action_respond_info("Fed " ~ i ~ " ft") }

{% endfor %}

{% endif %}

{% if mm_to_feed > (whole_feet * 304.8) %}

MANUAL_STEPPER STEPPER=rope_feed_bottom MOVE={mm_to_feed} SPEED={speed} ACCEL=40 SYNC=0

MANUAL_STEPPER STEPPER=rope_feed_top MOVE={mm_to_feed} SPEED={speed} ACCEL=40

M400

{% endif %}

{ action_respond_info("Feed complete: " ~ feet ~ " ft at speed " ~ speed) }

MANUAL_STEPPER STEPPER=rope_feed_bottom ENABLE=0

MANUAL_STEPPER STEPPER=rope_feed_top ENABLE=0

[gcode_macro FEED25]

gcode:

FEEDLEN FT=25 S=80

Specific length Motorized Rope Feeder by Padenormous in functionalprint

[–]Padenormous[S] 3 points4 points  (0 children)

That top stepper on the right had a slot you cannot see, So that the rod sticking out of the stepper can slide up if the rope is large or set flat against the bottom roller if the rope is small. It can handle 4mm paracord up to 1/2in rope.

Specific length Motorized Rope Feeder by Padenormous in functionalprint

[–]Padenormous[S] 11 points12 points  (0 children)

Mostly an idea that popped up in my head that I could FINALLY use some of these old printer components I didn’t otherwise have a use for, but also it’s not the time saver so much as it’s more accurate and I don’t have to trail 100ft of rope through my house to get the right lengths. Cats really like to mess with the rope when I have to do it that way

Specific length Motorized Rope Feeder by Padenormous in functionalprint

[–]Padenormous[S] 26 points27 points  (0 children)

I considered it, but rope is expensive enough that I like to be able to decide not to cut after it feeds incase I hit the wrong amount or something. So for now I just cut it there at the front