Introduction: Building the OpenKnit Machine

About: Waag operates at the intersection of science, technology and the arts, focusing on technology as an instrument of social change, and guided by the values of fairness, openness and inclusivity.

The OpenKnit machine is an open-source, low cost, digital fabrication tool developed by Gerard Rubio. The machine affords the user the opportunity to create his own clothing from digital files. Designing, producing and wearing clothes can now happen in the very same place, allowing the user to make decisions regarding creativity and responsibility.

This instructable shows you how to build the OpenKnit machine step-by-step. The machine is work-in-progress: anyone is allowed and encouraged to reproduce it and help to improve it.

This instructable has been developed for the OpenKnit machine workshop organized by Gerard Rubio, Waag Society and TU/E within the CRISP Smart Textile Services project. We would like to thank the people at WeMake maker space for reviewing and adjusting this instructable. All additional comments and suggestions on both the design of the machine and the Instructable are very welcome!

Also see this video:

Print Your Own Beanie (Wally120 OpenKnit machine release) from Gerard Rubio on Vimeo.

Step 1: About Building This Machine

The process from start to scarf can be divided in three steps:

  • building the machine
  • connecting the machine
  • using the machine

This instructable shows you all the steps to build the structural part of the machine.

Step 2: Shopping List

Bill of materials (updates) available at:

805x604 mm acrylic sheet:

3D printed parts:

  • Two 800x3 mm aluminum strips
  • Two 800x2 mm aluminum strips
  • Two 30x30x162 mm aluminum bars
  • Two 30x30x300 mm aluminum bars
  • Two 20x20x800 mm aluminum bars
  • Two 30x30x800 mm aluminum bars
  • Two 15x15x800 mm aluminum T-profile
  • One Arduino Leonardo
  • One micro interruptor
  • One rotary encoder
  • One axial bearing
  • One stepper motor
  • One timing pulley
  • Six threaded rods, sizes: 2x16 2x17 and 2x22 mm
  • 120 Knitmaster empisal silver knitting machine needles
  • Four servo motors
  • Four servo motor driver
  • One timing belt
  • 16 v-groove bearings
  • One block of paraffine
  • One bag Molex c-grid plastic holders: 4-pin, 3-pin and 2-pin
  • One bag Molex c-grid female pins
  • Phone cable on a reel (5 meter minimum)
  • 120 paperclips 32 mm type N.2
  • One piano hinge 510 mm
  • Two wooden strips: flat on one side, a hole every 60 mm
  • One rass rod 1.5 mm
  • A bag of pin headers, male and female
  • One terminal block
  • One switching power supply
  • One cross-shaped bead

Bolts and nuts, in generous amounts

  • M3 tapered 7 mm
  • M3 tapered 10 mm
  • M3 tapered 12 mm
  • M3 tapered 16 mm
  • M3 tapered 20 mm
  • M3 tapered 30 mm
  • M3 flat head 8 mm
  • M3 flat head 10 mm
  • M3 flat head 12 mm
  • M3 flat head 16 mm
  • M3 flat head 20 mm
  • M3 flat head 30 mm
  • M3 regular nuts
  • M3 nylock
  • M3 washers
  • M8 nuts and bolts (only a few)
  • M8 washers (only a few)

Step 3: List of Tools

  • flat screwdriver medium size
  • phillips screwdriver medium size
  • allen key M3
  • pliers
  • tweezers
  • wrench M6 and M8
  • small flat file
  • small circular file
  • hammer
  • small zip ties
  • grease lubricant
  • spray or liquid lubricant

Step 4: Thread the Aluminum Profiles

You'll need to thread:

  • two 20x20x800 mm bars: 6 mm tool on both sides.
  • two 30x30x800 mm bars: 8 mm tool on both sides.
  • two 30x30x162 mm bars: 8 mm tool on ONE side, plus one 8 mm hole on the top (see image).

Step 5: Prepare the Aluminum Strips and T-bars

Make holes, and sink them with a countersink tool so the bolts will not stick out.

Flat strips

Make a hole at 50, 225, 400, 575, 750 mm.

(this doesn’t have to be very precise)

T-shaped bar:

Make holes at 14, 142, 271, 392, 410, 529, 657, 787 mm.

Place profile next to the acrylic to mark the exact place where the holes are going to be, this MUST be precise.

Step 6: Assemble the Structural Bars

You need:

  • 20 x 20 profiles
  • 20 mm aluminum strips
  • 3D printed squares (8x8 mm): '2020 nuts'
  • threaded nuts
  • M3 x 7 bolts

Prepare the 2020 nuts:
You need the 3D printed squares (8x8 mm) and threaded nuts, five per strip. Place the nuts into the 3D printed parts.

Slide the nuts into the profile bar

See picture. Align the nuts with the holes in the aluminum strip.

Close the top of the bar

Using the M3 bolts.

Repeat on the bottom

Slide in five 2020 nuts, close the assembly with an aluminum strip.

Repeat this procedure with the other 2020 profile bar

Step 7: Bend the Paperclips

Bend the paperclips as indicated in the image. The 'hook' on the right is the end result. You'll need 60 of them, have fun bending!

Step 8: Prepare the Wooden Strips

The wooden strips will be part of the comb. For this part you need:

  • Two half -rounded wooden strips, a hole every 60 mm and lines every 15 mm
  • 60 paperclips
  • Long flat hinge
  • M3 bolts and nuts, 12 mm


File small slide at the indicated lines.

Place the clips inside the slids. 30 per bar.

Take a look at the pictures how to position the 'hooks'.

Step 9: Assemble the Comb

Attach the hinge to the flat sides of the wooden pieces as indicated in the images. When the hinge opens, the hooks cross each other.

Step 10: Prepare the Acrylic Parts

Place the acrylic parts in front of you on a table as indicated.

Make four piles of three layers each: see following step.

Step 11: Prepare Layer (A)2

Start with pile A. Take layer A1 off

In layer A2, sink three holes, indicated in RED. Then later, the bolts will not stick out.

Step 12: Assemble the Acrylic Layers - 1

Place nuts into the 4 pockets in A2.

Place 120 needles in the openings.

Repeat for pile B, C and D.

Step 13: Assemble the Acrylic Layers - 2

Place layers (A, B, C, D )1 back on top, get 8 rounded bolts M3 x 12.

Screw the layers together.

Step 14: Attach the T-shaped Bar

Attach the T-shape profile to the bottoms of A 1-3 and B1-3.

First loosely, if it al fits thighten all bolts.

Step 15: Align '2020nuts' With Holes in Acrylic

(in the NON threaded 2020 profiles).

Step 16: Fix the Acrylic on Top of the Structural Bar

Sink holes, and place bolts & nuts through acrylic into the nuts.

Use 8 x M3x14 countersink bolts.

Also fix piles B, C and D to the T shape and structural bar.

Step 17: Placing the 'encoder Rack'

First place the ‘encoder_rack’ pieces along the bar.

Leave 50 mm on each side.

Press the piece into the bar.

Step 18: Assemble the “top_plate_bearings” Part

Take the “top_plate_bearings” part + 4 bearings and attach them as indicated.

Step 19: Prepare the Top of the Carriage Part

Take the “top_plate” part.

Place a nut into the hole.

Catch the nut with the screw.

Pull the nut down, take screw out.

Now the nut is 'seeded'.

Step 20: Place the Rotary Encoder

Place the rotary encoder with the pins straight, cut the legs.

Slide it in, careful with the pins.

Step 21: Assemble “top_plate_bearings” Part With “top_plate” Part

Take five long M3x12 countersink bolts.

Attach the two parts firmly.

Step 22: Add the Gear

Once the screws are all attached, place the “encoder_pinion” on the rotary encoder.

Step 23: Prepare a Servomotor

Use the “top_plate_servo_mount”, place the servo in - be careful not to loose the tiny servo bolt that comes with the motor.

Make sure the arm does the movement indicated in green.

Attach the tiny screw.

Put M3 x 16 bolts through holder and motor to fixate them.

Step 24: Place the Servo on the Top Plate

Attach the servo on top with 3 bolts.

Step 25: Prepare the Main Carriage

These are the parts you need.

Each hole corresponds to a letter.

Step 26: Attach the N-mount Part

Place M8 nut into the “N_mount”.

Position it with the “carriage” part and a bearing.

Attach the long end with a bolt.

Step 27: Add Another Bearing

Use M3x16 30mm countersink bolt and nylock nut to attach the bearing.

Step 28: Place “servo_mount_carriage” Parts

You'll need 2 x M3x30 countersink bolts to place the servo mount carriage parts.

Step 29: Prepare the Servo Motor

Position the ‘wings’ of the servo motor like this and fix with the tiny screw from the package. File its holes on both sides of the black plastic, they need to be a bit wider. Make sure the arm moves as indicated in green.

Step 30: Make the 'servo Beam Mount'

Take the 3D printed 'servo beam mount' part.

Bend the pin.

Slide the pin into the part.

Position it over the servo motor wings.

Tie the pieces together.

Step 31: Attach the Motor to the Carriage

Using long M3 bolts and nuts.

Step 32: Assemble the Slider Part

Take the white acrylic 'slider' square.

Position it on the pin.

Place it in the slid as indicated in the image. Now it should be able to slide.

Attach the 3D printed 'slider guide' on top with M3 cross bolts.

Step 33: Prepare the SLED Mechanism

Use two M3 x 12 bolts.

To place the 'sled mount' on the carriage.

Take 'sled', 'sled arms' and a servo motor, plus a bended paperclip.

Make sure the arm of the servo can move as indicated with the green arrow in the picture.

Step 34: Attach the Motor

Screw the motor to the sled mechanism using an M3 x 16 bolt.

Slide the long M3x35 bolt through the hole.

Step 35: Add Arms

Now slide two of the arms over the 35mm bolt towards the motor. Finish it with a nut with nylon, allowing the arms to turn freely.

Step 36: Almost Done With the Carriage...

At the top side of the arms, attach the bright green part, using a nut with nylon again. The sled should move freely.

Pull the paper clip though the wing of the motor and the bright green part and bend it to fix it, as shown in the picture.

Now you have finished your first carriage piece! There is two of them, so one more to go...

Step 37: Make the 'legs' of the Machine

Take the four leg parts, place the nut with the help of the bolt.

Place them underneath the acrylic assembly.

Slide in the 'space invader'.

Step 38: Place the 3030 Profiles

Take the 30 x 30 x 800 mm aluminum bars. Carefully slide the '3030' in, holding the 'leg' parts straight.

Do it really slowly slowly while holding the other 'leg' parts straight.

Step 39: Place the Short Aluminum Profiles

You need the 320 mm long profiles, 4 M8 washers and M8 x 50 bolts.

Place the profiles carefully on the side of the machine, don't tighten them all the way.

Then get the clamps. It is recommended to have 2 people for this task: clamping the machine on the table.

Step 40: Place the Vertical Short Bars

You'll need the 164 mm short aluminum bars, 2 M8 x 50 bolts and M8 washers.

Place the bar as indicated in the picture. Put it so the holes on the side are at the top on the outside.

Step 41: Prepare the Yarn Carrier

You need the yarn carrier part, 4 M3 nylon nuts, 4 M3x12 countersink bolts and 4 bearings, a cross shaped bead and a tie wrap.

Narrow the tie if yours is too thick.

Tighten the nut without blocking the bearing.

Smooth the cross shaped beads so the thread can move through easily.

Snap the cross in, and use the zip tie carefully.

Step 42: Bring the Yarn Carrier in Position

You'll need the 30x30 structural bar 'sandwich', the yarn carrier, two M6 wide washers, and two M6x50 bolts.

Slide the yarn carrier over the length of the bar. Attach the bar horizontally between the vertical short aluminum profiles. Put the bolts all the way in but do not tighten them yet.

Step 43: Place the 'L_2020-3030' Parts

Take the two parts called L_2020-3030. Slide them carefully down into both the vertical profiles.

Step 44: Bring the Encoder Rack Into Position

You'll need the 20x20x800 mm bar with the encoder rack inside, two of the 'L_2020-3030' parts, two M6 wide washers and two M6x50 bolts.

Place the orange part inside between the profile and the rail and slide it into the 3030 profile 164 mm from both sides simultaneously.

Put the bolts through but do not tighten yet.

Step 45: Place the Carriages

Take the carriage and prepare the bolt with the bearing for later.

Insert the carriage into the rail carefully and put it in place. Carefully insert the M3x20 bolt as indicated in the third image. The bolt should go all the way in.

Step 46: Place the Top Carriage

You'll need the six threaded rods, 22 x M8 nuts, 18 x M8 washers, and the top carriage.

Insert the top carriage assembly, the bearings of the top carriage fit on the bottom of the rail.

Step 47: Place Nuts for the Rods

Insert the nuts in the carriage holes, lifting the carriage a little bit. Place one nut in both sides of each carriage.

Step 48: Place the Rods

Start on the left. Then put the middle one (165mm), and finally the right one (155mm). Tighten the three rods in the bottom trapped nuts.

Step 49: Place Nuts on Top of the Rods

Do not tighten them all the way yet.

Step 50: Insert the 'teeth'

Insert each set of “teeth” from the bottom. You can snap them in place.

Then you'll need 18 x M3x8 bolts and 18 M3 nuts. First insert all the bolts, then fix them with the nuts.

Step 51: Prepare the Bearing for the Motor

Take “bearing608_mount” and fit a 608 bearing in. Take “3030nut” and place a nut inside. Put all the parts together as indicated in the image, then slide it into the vertical (short) profile).

Step 52: Assemble the Stepper Motor Holder

Take “stepper_mount” and the stepper motor. Tight the stepper mount on top of the motor. Take the pulley and 2 M3 x 8 bolts. Insert the bolts as indicated in the third image. Take two “3030nut” and place the nuts in. You'll need this for the next step.

Step 53: Place the Stepper Motor

First insert the nuts in the profile and then catch them with the bolt.

Step 54: Attach the Back Side of the Motor.

Take “stepper_mount_back” and two “3030nut” parts, with nuts inserted. Repeat the process on the other side.

Step 55: Attach the Arduino

Use the part 'Arduino_mount', and two “3030nut” in which you insert nuts.

On the horizontal bar that is attached to the table, attach the Arduino mount. Place the Arduino with a couple of bolts.

Step 56: Build the Arduino Shield

Solder all the parts as indicated.

Step 57: Place the Arduino Shield

Plug it on top of the Arduino. Connect the 4 cables from the power supply: GND, 5V, 12V, and GND.

Step 58: Connect the Arduino Shield

Connect the rest of the cables as in the image: 4 servomotors, 1 encoder, 1 endstop and 1 stepper.

Step 59: Prepare the Tensor - Side 1

Bend a wire like in the picture and fix it with the two “tensor_head” parts on one side of the tensor. You need two M3x16 bolts and nuts.

Step 60: Prepare the Tensor - Side 2

On the other side of the tensor, use 2 x M3x12 bolts and M3 nuts, the 'tensor_table_Top' and the 'tensor_table_wax'. Put them together as shown in the images.

Then add the 'wax_holder' with M3x12 bolts and nuts.

Step 61: Prepare the Paraffin Block

You'll need a block of paraffin (or wax), the assembly you just made and a tie-wrap.

Pull the tie-wrap around the paraffin block.

Take the piece called “tensor_table_bottom” and place it at the end of the tensor.

Step 62: Clamp the Paraffin Block

Put the table in between the two flat pieces. Clamp the assembly to the table close to the knitting machine.

Step 63: Thread the Machine - Part 1

Well done, we can finally start threading!

Place the yarn on the floor, the first step is to pull it up through the paraffin donut. Then it goes through the carrier. Use a wire to pull the thread through the cross shaped bead.

Then, pass the yarn carrier in between the threaded rods. (image 4) and place the yarn carrier in the rail. Unscrew the top 2 bolts if needed (image 5). It should look like image 6.

Pass the thread through the two needle beds. Pull it carefully downwards. Attach it somewhere, for example at the clamps that hold the machine to the table.

Step 64: Thread the Machine - Part 2

Pull the wire up through the eye of the top part of the tensor.

Cut a piece of wire of 200 mm. Bend it to make an 'eye', use an M8 rod to help you get it in the right shape.

Unscrew the nut of the left threaded rod and place the bended wire. Put the nut back in place and tighten it.

Pull the thread of yarn up, and bend the tip of the wire into an 'eye' as shown in the picture.

Pass the thread through the eye. The threading is done, and you have finished the building part of making the Open Knit Machine!!!

Step 65: Wiring the Motors

The motors have to be connected to the Arduino board. Wire them up as shown in the schedule and the images.

For this and following steps: it is wise to bundle the wires together in tubes.

Step 66: Connecting the Power Supply

The images show how to connect the cables coming from power supply to the Arduino.

For powering the machine we are using a regular computer power supply, cheap and easy to find. In order to turn it on we have to cut and connect the green and a black cable together from the 20 pin Molex connector.

Then grab any 4 pin Molex connector with red, black, black and yellow cables (5V, ground, ground, 12V) and cut them and connect them to the shield like in the image.

Step 67: Organizing the Wires

Make sure the wires will not be in the way when the carriage is moving

Step 68: Calibrating the Servo Motors

First you need to calibrate the servos.

If you haven’t worked with Arduino yet, install the drivers from the Arduino website. [ ]

Paste the following code in an Arduino sketch:

//call the Servo library


//In this first block of code you are giving each servo a name.

//It is recommended to refer to their position, like front (F), back(B), //bottom(B) or top (T). The front – top motor is then called servoFT.

Servo servoFB;

Servo servoFT;

Servo servoBB;

Servo servoBT;

//Here we create variables (integers) and assign them a number,

//all the numbers that follows will change for each machine and servo.

//Two variables per servo, that means two positions: in and out.

//”in” means the arm's servo moves into working position and

//”out” means the arm is not in working position.

//the number refers to the angle position of the arm.

int servoFB_in = 119;

int servoFB_out = 92;

int servoFT_in = 54;

int servoFT_out = 160;

int servoBB_in = 67;

int servoBB_out = 100;

int servoBT_in = 88;

int servoBT_out = 150;

void setup()


//here we indicate in which pin is connected each servo.

servoFB.attach(7); //this means that servoFB is connected to pin 7





void loop()


//we use the variables created before so we don't have to be using numbers here

//this way we just work on the above part of the code making it easier.





//we use a delay of 3 seconds to see what the motor does,

//the delay allow us to see what the motor does before it starts moving again

delay (3000);





//a delay of 1 second allows us to know if we are in working position or not

delay (1000);


Step 69: Running the Code for Knitting

In the Arduino software, under Tools > Board, select board: Leonardo.

And select the usb port in Tools > Port

First check for errors. Sometimes the Leonardo board gives troubles uploading and gives errors, but anyway it works. Just try to go ahead (in Arduino 1.5.8 this problem is solved).

When you have uploaded the code, it's running but the motors won't move. They will move only when you switch on the power supply.

With the power supply switched on, check if the arms are going up and down to the proper position. Check the images for the right positions. Test and if they are not ok then type another angle and upload again.

Check the images for the position “servoXB_in”, “servoXB_out”, “servoXT_in” and “servoXT_out”

X stands for Front (F) or Back (B), same position in the front and the back needle bed for both bottom and top servos.

Step 70: Preparing for Knitting

Use a fine wax coated yarn on a cone for machine knitting. Usually the the lighter the colour of the yarn, the smoother it is.

Pass the yarn through every other needle in the front needle bed first. Then do the same in the back needle bed untill you get something like in the picture. Here is where you decide the width of the garment, by picking the desired amount of needles.

Place the comb like in the picture, make sure that every hook/paper clip is grabing the thread in the spaces between two needles. The hook doesn't have to grab the thread that is not in between needles.

Step 71: Knitting

Download the file from GitHub:

Once we have the comb in place the machine is ready to knit automatically. To let the machine now the width we have to uncomment the following line to print the encoder value on the Serial Monitor:


Then we introduce the value in both conditionals in the front bed (needleBed = 1) and the back needle bed (needleBed = 2)

The variable numberRows indicates the length of the garment. A row is equal to the movement of the carriage back and forth from homing position once

The machine is now ready to knit by itself.

In case the carriage gets stuck it could be the wire tension is not good. Tension of the thread is crucial. A lot depends on the material of the tensor. A real piano string works well and can be bought at a piano shop or hardware store, in this case a carbon fiber stick was used.