Hackster is hosting Hackster Holidays, Ep. 6: Livestream & Giveaway Drawing. Watch previous episodes or stream live on Monday!Stream Hackster Holidays, Ep. 6 on Monday!
Jiří Praus
Published © CC BY-NC-SA

Spring Making / Wire Bending Machine

Wire bending CNC machine with precision to make springs!

IntermediateFull instructions provided2 days5,792
Spring Making / Wire Bending Machine

Story

Read more

Schematics

Project repository with all the resources

Code

spring.gcode

Arduino
Spring making code
; 1 degree = X0.1
$100=40
$101=400
; 10 mm = Z10
$102=34
$110=1600
$111=600
$112=1000
$120=500
$121=350
$122=350

G90
G1 F2000
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

; x20

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

; x20

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

; x20

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

; x20

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

; x20

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

G91
G1 Z1
G90
G1 X2
G1 X-6

; x20

G91
G1 Z20

; $0=10 (Step pulse time, microseconds)
; $1=25 (Step idle delay, milliseconds)
; $2=0 (Step pulse invert, mask)
; $3=0 (Step direction invert, mask)
; $4=0 (Invert step enable pin, boolean)
; $5=0 (Invert limit pins, boolean)
; $6=0 (Invert probe pin, boolean)
; $10=1 (Status report options, mask)
; $11=0.010 (Junction deviation, millimeters)
; $12=0.002 (Arc tolerance, millimeters)
; $13=0 (Report in inches, boolean)
; $20=0 (Soft limits enable, boolean)
; $21=0 (Hard limits enable, boolean)
; $22=0 (Homing cycle enable, boolean)
; $23=0 (Homing direction invert, mask)
; $24=25.000 (Homing locate feed rate, mm/min)
; $25=500.000 (Homing search seek rate, mm/min)
; $26=250 (Homing switch debounce delay, milliseconds)
; $27=400.000 (Homing switch pull-off distance, millimeters)
; $30=1000 (Maximum spindle speed, RPM)
; $31=0 (Minimum spindle speed, RPM)
; $32=0 (Laser-mode enable, boolean)
; $100=400.000 (X-axis travel resolution, step/mm)
; $101=400.000 (Y-axis travel resolution, step/mm)
; $102=400.000 (Z-axis travel resolution, step/mm)
; $110=500.000 (X-axis maximum rate, mm/min)
; $111=500.000 (Y-axis maximum rate, mm/min)
; $112=500.000 (Z-axis maximum rate, mm/min)
; $120=500.000 (X-axis acceleration, mm/sec^2)
; $121=200.000 (Y-axis acceleration, mm/sec^2)
; $122=10.000 (Z-axis acceleration, mm/sec^2)
; $130=200.000 (X-axis maximum travel, millimeters)
; $131=200.000 (Y-axis maximum travel, millimeters)
; $132=200.000 (Z-axis maximum travel, millimeters)

hex-outer.gcode

Arduino
Hex bending code
; 1 degree = X0.1
$100=40
$101=400
; 10 mm = Z10
$102=34
$110=1600
$111=600
$112=1000
$120=500
$121=350
$122=350

G90
G1 F2000
G1 X-6

G91
G1 Z13.3
G90
G1 X3
G1 X-6

G91
G1 Z13.3
G90
G1 X3
G1 X-6

G91
G1 Z13.3
G90
G1 X3
G1 X-6

G91
G1 Z13.3
G90
G1 X3
G1 X-6

G91
G1 Z13.3
G90
G1 X3
G1 X-6

G91
G1 Z13.3
G90
G1 X3
G1 X-6

;G91
;G0 Z20


; $0=10 (Step pulse time, microseconds)
; $1=25 (Step idle delay, milliseconds)
; $2=0 (Step pulse invert, mask)
; $3=0 (Step direction invert, mask)
; $4=0 (Invert step enable pin, boolean)
; $5=0 (Invert limit pins, boolean)
; $6=0 (Invert probe pin, boolean)
; $10=1 (Status report options, mask)
; $11=0.010 (Junction deviation, millimeters)
; $12=0.002 (Arc tolerance, millimeters)
; $13=0 (Report in inches, boolean)
; $20=0 (Soft limits enable, boolean)
; $21=0 (Hard limits enable, boolean)
; $22=0 (Homing cycle enable, boolean)
; $23=0 (Homing direction invert, mask)
; $24=25.000 (Homing locate feed rate, mm/min)
; $25=500.000 (Homing search seek rate, mm/min)
; $26=250 (Homing switch debounce delay, milliseconds)
; $27=400.000 (Homing switch pull-off distance, millimeters)
; $30=1000 (Maximum spindle speed, RPM)
; $31=0 (Minimum spindle speed, RPM)
; $32=0 (Laser-mode enable, boolean)
; $100=400.000 (X-axis travel resolution, step/mm)
; $101=400.000 (Y-axis travel resolution, step/mm)
; $102=400.000 (Z-axis travel resolution, step/mm)
; $110=500.000 (X-axis maximum rate, mm/min)
; $111=500.000 (Y-axis maximum rate, mm/min)
; $112=500.000 (Z-axis maximum rate, mm/min)
; $120=500.000 (X-axis acceleration, mm/sec^2)
; $121=200.000 (Y-axis acceleration, mm/sec^2)
; $122=10.000 (Z-axis acceleration, mm/sec^2)
; $130=200.000 (X-axis maximum travel, millimeters)
; $131=200.000 (Y-axis maximum travel, millimeters)
; $132=200.000 (Z-axis maximum travel, millimeters)

Credits

Jiří Praus

Jiří Praus

10 projects • 204 followers
Developer for Samepage.io and hardware maker. I started with a simple Arduino kit two years ago and I fell in love with the platform.

Comments