Semi-automatic Spoke Threading Machine




Introduction: Semi-automatic Spoke Threading Machine

About: I like figuring out how things work and learning new skills. I am a software engineer and so making things is an outlet for me.
Threading spokes with a cyclo spoke threading machine is fun and easy.  The cyclo spoke thread rolling die rolls the threads by way of cold forging.  I find two passes works well, with the second pass set for a deeper thread.  However, threading 60 spokes as for a highwheel of a Penny Farthing is a repetitive task.  With the possibility of building a few wheels, I gave some thought to automating the process.
My solution uses a cordless screwdriver, a microcontroller, and an H-bridge driver,   How many threads get rolled is easily configured by modifying the timing on the software running on the microcontroller and the speed setting on the screwdriver.
I have read about other (very expensive) machines that thread spokes very quickly at the pull of a lever.   My solution, threads spokes at the touch of a button.

Step 1: How It Works

Bill of materials:
Cordless screwdriver
microcontroller, H-bridge
Bracket hardware

The idea is to automatically turn the crank handle on the threading machine clockwise
for a period of time and then turn it  counterclockwise by controlling the screwdriver.
As the handle is turned clockwise, the die "grabs" the spoke and advances. 
Rather than have the screwdriver advance along with the handle, a 90 degree crank bit
is built for the screwdriver.  This crank bit gets a washer at the tip which accepts the 
handle.  The handle freely slides in and out through the washer.  
Finally, a spring is loaded on the handle.   Now when the spoke is inserted and
pushed against the die, the spring causes the die to slightly force itself onto the spoke,
allowing the die to "grab" and advance.

Step 2: Electronics

Controlling a motor to turn clockwise/counter clockwise at the touch of a button requires an H-bridge.
The microcontroller interfaces to the H-bridge which in turn controls the motor.
I used bridge A of the L298N dual full-bridge driver ( 
It includes a pin, ENABLE A, which when low, it turns the motor off.
You set high/low INPUT 1/INPUT 2 to prepare for clockwise turning. and low/high for counter clockwise.  The button is tied to a pull-up resistor and grounded when pressed.  Setting ENABLE A high gets the motor running, looking for adventure.
A PIC16F88 microcontroller was used but most any other would do equally.
Pictured is the simplified schematic.  Software is written in JAL which follows in its entirety..

-- This program is for controlling the cyclo spoke threading machine
-- for the Semi-automatic spoke threading machine project on instructables
-- by Carlitos
-- B2 is input button tied to pullup resistor.  Button being used is normally on
-- so normally it is grounded.  Pressing button causes input to go high.
--  which will trigger motor control cycle
-- B4 is motor enable (high is enabled)
-- B6, B7 is motor direction where high/low is clockwise and low/high is counterclockwise
-- motor control cycle:
--    1. enable motor set to run clockwise
--    2. run clockwise for x seconds
--    3. run counterclockwise for x+delta seconds
--    4. disable motor

include 16f88

-- set all IO as digital

pragma target clock  8_000_000
pragma target OSC  INTOSC_NOCLKOUT
OSCCON_IRCF = 0b_111
pragma target WDT  disabled

-- Output pins
pin_b4_direction = output  -- motor enable
pin_b6_direction = output  -- motor i1
pin_b7_direction = output  -- motor i2

-- Input pins
pin_b2_direction = input  -- button with pullup resistor used to trigger motor

include delay
var word delayclockwise = 90
var word delaycounterclockwise = 100

pin_b4 = low  -- disable motor
pin_b6 = high -- set for clockwise
pin_b7 = low  -- set for clockwise

forever loop
      if pin_b2 == high then  -- button pressed

         pin_b4 = high -- enable motor
         pin_b4 = low -- disable motor

         pin_b6 = low  -- set for counterclockwise
         pin_b7 = high -- set for counterclockwise

         pin_b4 = high -- enable motor
         pin_b4 = low -- disable motor

         pin_b6 = high -- set for clockwise
         pin_b7 = low  -- set for clockwise
      end if

      delay_100ms(1) -- wait a little before polling button
end loop

Step 3: Hardware

A bracket was welded up using angle iron.  It bolts on securely to the spoke threading machine and supports the screwdriver's geared motor with electrical tie wraps. 
The crank bit was welded with 3/8" rod and a washer.  A compression spring was cut to size.  The threading machine conveniently accepts a vise.

Instructables Design Competition

Participated in the
Instructables Design Competition

Be the First to Share


    • Mason Jar Speed Challenge

      Mason Jar Speed Challenge
    • Bikes Challenge

      Bikes Challenge
    • Remix Contest

      Remix Contest

    4 Discussions


    7 years ago on Introduction

    Like a lot of things I find on this site, this instructable is not something that I will ever use. That being said, it is an impressively creative solution to the problem you were facing, and extremely well written.

    NIcely Done


    Reply 7 years ago on Introduction

    Very unrelated hobbies have crossed on this one so I know what you mean. Thanks for the kind comments!