This the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Documentation

What is Index?

Index is an open source Pick and Place (PnP) machine being developed by Stephen Hawes. The Index is designed to be low cost and be controlled by OpenPnP.

What you’ll build

This tutorial will take you through the build of the Index Pick and Place machine from parts to an assembled frame with the electronics installed.

Your final Index will be ready for connection to OpenPnP. It will look similar to the following:

A completed index

What you’ll learn

  • How to prepare and assemble the frame and gantries of the Index
  • How to assemble the motion system of the Index
  • How to connect and install the electronic components of the Index
  • How to connect Index to OpenPnP

This guide is focused on assembling an Index and getting to being able to run your first job. Certain configuration details may be glossed over and simply provided to copy and paste.

1 - Mechanical Assembly

Assembling the frame of the Index PNP

What you’ll need

Parts

To build your own index you will need to acquire the items listed on the BOM. This includes various mechanical components along with a significant number of 3D printed parts. When printing the 3d parts, be sure to print them with the recommended settings.

Tools

The following tools are needed to build the Index.

  • 2mm Allen Key
  • 2.5mm Allen Key
  • 3mm Allen Key
  • 4mm Allen Key
  • Fine Tip Tweezers (for positioning T-Nuts)
  • Pliers / Vice Grips
  • Utility Knife / Precision Blade

Tips & Tricks

When assembling the Index, the following tips will help the process go more smoothly.

  • Clean up your 3D prints well. Make sure that you have removed any support material, and have cleaned up the edges of any holes. Test that you can fit the V-Slot or machine screw for a specific part into the hole.
  • Deburr the aluminum profile at the ends. Then it’s easier to put parts together.
  • Slot Nuts come in two different formats. One form can be inserted into the slot through the slot. The other form must be inserted from the end. Watch for notes in the about when to insert based on which type you’re using.
  • Positioning Slot Nuts can be a bit of a challenge. A simple way to get them into the right place is to use gravity to get them close, and then use either the long end an allen key or a pair of fine tipped tweezers to push or pull them to the exact position.
  • Inserting Belts can be easier if you move the gantry you’re inserting the belt into to the middle of the rail it is on and then as you insert the belt, move it away from the side you want the belt to come out from. The v-slot will catch the belt and once you’ve moved the gantry a little bit, you will be able to catch the belt. Passing a belt through a belt slot from the inner side can be easier if you place an exacto knife blade at the back side of the slot and butt the belt against that while drawing it up through the slot.
  • Press Fit Nuts are used in several places. If your printer tolerances make it so these nuts don’t stay in you can use a piece of tape over the back to hold them in temporarily.

1.1 - Left Side

The left side provides the rails on which the Y gantry runs. In addition, most of the cables are routed to the front left of the machine as that is where the controller ultimately lives.

Necessary Components & Tools

Collect the necessary items to build the left side of the frame. These are:

  • 1x Left Front Leg (FDM-0001-00_front-left-leg)
  • 1x Left Back Leg (FDM-0003-00_back-left-leg)
  • 2x 20mm x 20mm Aluminum V-Slot - 600mm
  • 6x M5x10mm Machine Screw
  • 8x M5 Slot Nuts
  • 1x M5x40mm Machine Screw
  • 1x M5x25mm Machine Screw
  • 2x M5 Hex Nut
  • 1x M3x16mm Machine Screw
  • 1x M3 Hex Nut
  • 1x M3 Hex Cap
  • 1x GT2 Idler Pulley (5mm Bore, 20 teeth, 6mm belt width)
  • 3mm Allen Key or Hex Screwdriver
  • 2mm Allen Key or Hex Screwdriver
Necessary Parts and Tools for Left Side Assembly

Belt Tension Arm

Belt Tension Arm Parts
  1. Insert an M3 Hex Nut into the back of the Belt Tension Arm.
Inserted M3 Hex Nut
  1. Insert the M3x16mm Machine Screw through the front hole in the Belt Tension Arm and then tighten.
  2. Thread an M3 Cap Nut on the end of the M3x16mm Machine Screw.
M3 Screw, M3 Nut, and M3 Cap Nut installed
  1. Insert the M5x25mm Machine Screw through the hole in the top of the Belt Tension Arm so that it passes through the GT2 Pulley Idler.
  2. Add an M5 Hex Nut on the bottom of the Belt Tension Arm and tighten.
M5 Screw, GT2 Idler Pulley, and M5 Nut installed
  1. Insert the M5 Hex Nut into the slot for the hex nut on the bottom of the Idler Mount on the leg.
  2. Insert completed Belt Tension Arm assembly into belt tensioning slot on Leg.
  3. Insert the M5x40mm Machine Screw through the hole in the top so that it passes through the Belt Tension Arm and tighten into the M5 Hex Nut.
Idler and Belt Tension Arm installed on Leg

Assembly

  1. Take the Left Back Leg and insert the v-slot extrusions into the two square holes designed to take this part. Ensure that the extrusion comes to the end of the hole into which it is inserted.
  1. If using slot nuts which must be inserted from the end of the extrusion, take the assembly and turn it so that you are looking directly at the ends of the v-slot opposite to the attached Left Back Leg. Otherwise, continue to step 11 and note if a step says you must insert slot nuts.
  • Insert two slot nuts into the top slot of the top rail (label A) from the open end.
  • Insert two slot nuts into the top slot on the bottom rail (label E) from the open end. Note: These will be used later when joining the two side assemblies.
  • Insert one slot nut into the right slot on the bottom rail (label F) from the open end.
  • Insert three slot nuts into the left slot of the bottom rail (label H) from the open end.
  1. Take the Left Front Leg and place it onto two v-slot extrusions at the end opposite the Left Back Leg. Your progress should look like the image below.
  1. On the top rail, position a slot nut underneath the hole in the top of each leg and screw a M5x10mm machine screw into the nut. If using slot nuts which can be inserted into the slot, you will need to insert two nuts during this step.
  1. On the bottom rail, the outer side (shown above) has three exposed holes for machine screws (one on the back leg, two on the front leg). For each, position a slot nut under it and screw a M5x10mm machine screw into it. If using slot nuts which can be inserted into the slot, you will need to insert three nuts during this step.
  1. On the bottom rail, the inner side has one exposed hole for a machine screw on the back leg. Position a slot nut under it and screw a M5x10mm machine screw into it. If using slot nuts which can be inserted into the slot, you will need to insert one nut during this step.

1.2 - Right Side

Assembly instructions for the right side of the frame.

Necessary Components & Tools

Collect the necessary items to build the right side of the frame. These are:

  • 1x Right Front Leg (FDM-0002-00_front-right-leg)
  • 1x Right Back Leg (FDM-0004-00_back-right-leg)
  • 2x 20mm x 20mm Aluminum V-Slot - 600mm
  • 6x M5x10mm Machine Screw
  • 8x M5 Slot Nuts
  • 1x M5x40mm Machine Screw
  • 1x M5x25mm Machine Screw
  • 2x M5 Hex Nut
  • 1x M3x16mm Machine Screw
  • 1x M3 Hex Nut
  • 1x M3 Hex Cap
  • 1x GT2 Idler Pulley (5mm Bore, 20 teeth, 6mm belt width)
  • 3mm Allen Key or Hex Screwdriver
  • 2mm Allen Key or Hex Screwdriver
Necessary Parts and Tools for Right Side Assembly

Belt Tension Arm

Belt Tension Arm Parts
  1. Insert an M3 Hex Nut into the back of the Belt Tension Arm.
Inserted M3 Hex Nut
  1. Insert the M3x16mm Machine Screw through the front hole in the Belt Tension Arm and then tighten.
  2. Thread an M3 Cap Nut on the end of the M3x16mm Machine Screw.
M3 Screw, M3 Nut, and M3 Cap Nut installed
  1. Insert the M5x25mm Machine Screw through the hole in the top of the Belt Tension Arm so that it passes through the GT2 Pulley Idler.
  2. Add an M5 Hex Nut on the bottom of the Belt Tension Arm and tighten.
M5 Screw, GT2 Idler Pulley, and M5 Nut installed
  1. Insert the M5 Hex Nut into the slot for the hex nut on the bottom of the Idler Mount on the leg.
  2. Insert completed Belt Tension Arm assembly into belt tensioning slot on Leg.
  3. Insert the M5x40mm Machine Screw through the hole in the top so that it passes through the Belt Tension Arm and tighten into the M5 Hex Nut.
Idler and Belt Tension Arm installed on Leg

Assembly

  1. Take the Right Back Leg and insert the v-slot extrusions into the two square holes designed to take this part. Ensure that the extrusion comes to the end of the hole into which it is inserted (See Left Side Assembly Step 1 for an example).
  2. If using slot nuts which must be inserted from the end of the extrusion, take the assembly and turn it so that you are looking directly at the ends of the v-slot opposite the attached Right Back Leg. Otherwise, continue to step three and note if a step says you must insert slot nuts.
Reference Image For The Slots
  • Insert two slot nuts into the top slot of the top rail (label A) from the open end.
    Two slots nuts are inserted into the top slot of the top rail
  • Insert two slot nuts into the top slot on the bottom rail (label E) from the open end. Note: These will be used later when joining the two side assemblies.
    Two slot nuts are inserted into the top slot of the bottom rail
  • Insert three slot nuts into the right slot of the bottom rail (label F) from the open end.
    Three slot nuts are inserted into the right slot of the bottom rail from the open end.
  • Insert one slot nut into the left slot on the bottom rail (label H) from the open end.
    One slot nut is inserted into the left slot on the bottom rail from the open end.
  1. Take the Right Front Leg and place it onto two v-slot extrusions at the end opposite the Right Back Leg.
Before screws are inserted
  1. On the top rail, position a slot nut underneath the hole in the top of each leg and screw a M5x10mm machine screw into the nut. If using slot nuts which can be inserted into the slot, you will need to insert two nuts during this step.
Location for the top screws
  1. On the bottom rail, the outer side has three exposed holes for machine screws (one on the back leg, two on the front leg). For each, position a slot nut under it and screw a M5x10mm machine screw into it. If using slot nuts which can be inserted into the slot, you will need to insert three nuts during this step.
Location for screws on the outer side
  1. On the bottom rail, the inner side has one exposed hole for a machine screw on the back leg. Position a slot nut under it and screw a M5x10mm machine screw into it. If using slot nuts which can be inserted into the slot, you will need to insert one nut during this step.
Location for the inner screw

1.3 - Staging Plate

Assembly of the staging plate.

The staging plate is a part which can be sourced locally or via the Index Machines Shop.

If you choose to build your own staging plate, please refer to the CSM-0001_staging-plate.FCStd file.

The plate is assumed to be 3mm thick steel in the standard index design. While it is possible to build the plate out of materials such as plastic or wood, the thickness of these materials will need to be adjusted to ensure the staging plate does not sag or flex.

1.4 - Frame Assembly

The Left and Right side assemblies that were completed in the previous steps are next connected together by two 600mm v-slot extrusions.

One is installed near the front, while the second is installed adjacent to the back legs.

Necessary Components & Tools

Collect the necessary items to complete the main frame. These are:

  • 1x Left Side Assembly
  • 1x Right Side Assembly
  • 1x Body Umbilical Guide (FDM-0022-00_umbilical-guide)
  • 1x Staging Plate
  • 2x 20mm x 20mm Aluminum V-Slot - 600mm
  • 4x M5x10mm Machine Screw
  • 12x M5x8mm Machine Screw
  • 16x M5 Slot Nuts
  • 6x 2020 Corner Bracket
  • 3mm Allen Key or Hex Screwdriver

Assembly

  1. Take a new v-slot extrusion and insert two slot nuts into one of the slots from the end.
Insert two slot nuts into a 600mm Aluminum V-Slot
  1. Place two slot nuts into the opposite side from the two inserted in step 1.

  2. With a slot containing slot nuts facing the front of the machine, insert the v-slot extrusion (in green below) into the left front leg underneath the bottom rail.

Insert V-Slot Into Frame
  1. Position a slot nut underneath the hole and use a M5x10mm machine screw to fasten the v-slot extrusion to the left leg.
Use a M5x10mm screw to attach the cross piece to the left leg
  1. Place a slot nut underneath the hole and use a M5x10mm machine screw to fasten the v-slot extrusion to the right leg.
Use a M5x10mm screw the attach the cross piece to the right leg.
  1. Attach a 2020 corner bracket to the 20x20 V-Slot on the left side using a nut from step 2 and a M5x8mm screw.
Attach a 2020 corner bracket
  1. Place a slot nut into the left leg assembly via the cutout in the back left leg.
Insert a T-nut on the left back leg
  1. Using the slot nut inserted in the previous step, use a M5x8mm screw to fasten the 2020 corner bracket to the left side V-Slot extrusion.
Attach the other side of the 2020 corner bracket
  1. Attach a 2020 corner bracket to the 20x20 V-Slot on the right side using a nut from step 2 and a M5x8mm screw.
Attach a 2020 corner bracket on the right side
  1. Place a slot nut into the right leg assembly via the cutout in the back right leg.
Insert a T-nut on the right back leg
  1. Using the slot nut inserted in the previous step, use a M5x8mm screw to fasten the 2020 corner bracket to the right side V-Slot extrusion.
Attach a 2020 corner bracket on the right side
  1. Place two slot nuts into the left leg assembly via the cutout in the back left leg.
Insert two T-nuts on the left back leg
  1. These will be for the umbilical guide and should be positioned near the front.
Position the t-nuts for the umbilical guide near the front
  1. Position the umbilical guide in place with the T-Nuts under the screw holes.
Position the umbilical guide
  1. Fasten the umbilical guide in place using two M5x10mm screws.
Fasten the umbilical guide with M5x10mm screws
  1. Take a V-slot extrusion and insert a T-nut into one end.
Insert A T-Nut
  1. Affix a 2020 corner bracket to the end of the V-slot using the T-Nut inserted in the previous step.
Attach The Bracket
  1. Repeat the previous two steps three times to install three more braces.
Attach three more braces
  1. Insert two T-Nuts into the left side
Insert two T-nuts on the left back leg
  1. Position the two T-Nuts to match with the braces installed in the previous 4 steps.
Position the T-Nuts
  1. Using two M5x8mm screws, fasten the left side of the rear brace (from steps 17-19) to the left side using the T-Nuts installed and positioned in the previous two steps.
Fasten the rear brace using two M5x8mm screws
  1. Insert two T-Nuts into the right side
Insert two t-nuts into the right back leg
  1. Position the two T-Nuts to match with the braces installed in steps 17-19.
Position the t-nuts
  1. Using two M5x8mm screws, fasten the right side of the rear brace (from steps 17-19) to the right side using the T-Nuts installed and positioned in the previous two steps.
Fasten the rear brace using two M5x8mm screws
  1. Place the staging plate onto the frame and adjust the T-Nuts. This uses the nuts installed in the left and right side assembly stage. If using slot nuts which can be inserted into the slot, you will need to insert four nuts during this step.
  1. Fasten the staging plate using a four M5x8mm machine screws, one in each corner.

1.5 - X Idler Mount

Assembly for the X Idler Mount

Necessary Components & Tools

Collect the necessary items to complete the X idler mount. These are:

  • 1x X Idler Mount (FDM-0013-00_x-idler-mount)
  • 1x Belt Tension Arm (FDM-0037-00_belt-tension-arm)
  • 1x M5x40mm Machine Screw
  • 1x M5x25mm Machine Screw
  • 2x M5 Hex Nut
  • 1x M3x16mm Machine Screw
  • 1x M3 Cap Nut
  • 1x M3 Hex Nut
  • 1x GT2 Idler Pulley (5mm Bore, 20 teeth, 6mm belt width)
  • 3mm Allen Key or Hex Screwdriver
  • 2mm Allen Key or Hex Screwdriver
Necessary Tools and Parts to assemble the X Idler Mount

Assembly

  1. Insert the M3 Hex Nut into the slot for the hex nut on the back of the Belt Tension Arm ([FDM-0037_belt-tension-arm]).

  2. Insert the M3x16mm Machine Screw through the front hole in the Belt Tension Arm and then tighten the M3x16mm Machine Screw.

  3. Thread an M3 Cap Nut on the end of the M3x16mm Machine Screw.

M3 Screw, M3 Nut, and M3 Cap Nut installed
  1. Insert the GT2 Idler Pulley into the center slot of the Belt Tension Arm.

  2. Insert the M5x25mm Machine Screw through the top of the Belt Tension Arm and GT2 Idler Pulley.

  3. Add an M5 Hex Nut on the bottom of the Belt Tension Arm and tighten.

M5 Screw, GT2 Idler Pulley, and M5 Nut installed
  1. Insert the M5 Hex Nut into the slot for the hex nut on the bottom of the Idler Mount (FDM-0013-00_x-idler-mount).

  2. Insert completed Belt Tension Arm assembly into slot.

Belt Tension Arm inserted into Idler Mount
  1. Insert the M5x25mm Machine Screw through the hole in the top so that it passes through the Belt Tension Arm and tighten into the M5 Hex Nut.
Completed Belt Tension Arm installed in Idler Mount
Completed Belt Tension Arm installed in Idler Mount

1.6 - X Motor Mount

Assembly for the X Motor Mount

Necessary Components & Tools

Collect the necessary items to complete the X motor mount. These are:

  • 1x X Motor Mount (FDM-0006-00_x-motor-mount)
  • 1x NEMA 17 Stepper Motor
  • 1x GT2 Drive Pulley (5mm Bore, 20 teeth, 6mm belt width)
  • 4x M3x12mm Machine Screw
  • 2 mm Allen Key or Hex Screwdriver
  • 2.5mm Allen Key or Hex Screwdriver

Assembly

  1. Install the GT2 pulley onto the motor shaft. The set screw side of the pulley should be nearest the motor. Tighten the set screws to lock the pulley into place. It should be at the tip of the shaft.
  1. Place the motor onto the X motor mount with the wires exiting the motor on the left side of the bracket.
  1. Insert a M3x12mm machine screw into each of the 4 holes in the bracket and tighten to secure the motor to the mount.

1.7 - Y Gantry

Assembly for the Y Gantry

Necessary Components & Tools

Collect the necessary items to complete the Y gantry. These are:

Assembly

  1. Insert a M5 Hex Nut into one of the hex nut locations on the Y gantry body and push into the 3d print.
  1. Pull the hex nut fully into location by screwing a M5x10mm machine screw into it from the opposite side of the Y gantry body. Then unscrew the M5x10mm machine screw.
  2. Repeat steps 1-2 for the remaining seven M5 nut locations.
  3. Insert a M3 Hex Nut vertically into the slot near the adjustment slot on the Y Gantry Body.
  1. Tighten an M3 x 16mm screw into the Hex Nut installed in the previous step.
  2. Insert a M3 Hex Nut vertically into the slot near the adjustment slot on the Y Gantry Support.
  1. Tighten an M3 x 16mm screw into the Hex Nut installed in the previous step.
  2. Insert a M5x40mm machine screw into the Y Gantry Body through each of the two positions for the top rollers.
  1. Place a V-Slot roller onto the two M5x40mm machine screws.
  1. Insert M5 Hex Nuts into back side of Y Gantry Support and then place the Y gantry support onto the two M5x40mm machine screws.

  1. Repeat steps 1-10 for the second Y gantry body & support
  2. Insert two slot nuts into one slot of the v-slot extrusion.
  1. Place a gantry body assembly (steps 1-10 x 2) on each end of the extrusion so that the holes for the machine screws are above the slot into which the slot nuts were placed.
  2. Ensure the extrusion is butted up to the body of each gantry assembly.
  1. Position a nut under the machine screw hole on the top of each gantry side and tighten a M5x10mm machine screw into each of the nuts.
  1. Place the entire structure on top of the top rails of the frame
  1. On both sides, below the rail, insert a v-slot roller with a roller spacer on each side. Then push a M5x40mm machine screw through the gantry and roller assembly.
  1. Adjust the bottom rollers up so they snug against the extrusion and ensure that the v-slot rollers run well in the slots. This adjustment should be done with the M3x16mm screws in the bottom of theY Gantry Body and Y Gantry Support.
  2. If necessary, loosen the machine screws connecting the extrusion to the left and right side Y gantries and adjust so that the v-slot rollers ride well along the entire length of frame.
  3. Tighten the machine screws on the extrusion joining the gantry bodies and the three M5x40mm machine screws on each gantry body.
  1. Using four M5x25mm machine screws, attach the X idler assembly to the right side gantry body. The machine screw head should be visible when looking down at the top of the machine.
  1. Using four M5x25mm machine screws, attach the X motor mount & gantry umbilical mount to the left side gantry body. The motor should be on top with the pulley facing downwards. The umbilical mount should be at the back, on the same side as the wires.

1.8 - Y Gantry Motion

Motion Setup for the Y Gantry

Necessary Components & Tools

Collect the necessary items to complete the Y gantry motion. These are:

  • 1x Y Gantry
  • 4x Belt Clamp (FDM-0025-00_belt-clamp)
  • 2x NEMA 17 Stepper Motor
  • 2x GT2 Drive Pulley (5mm Bore)
  • 2x GT2 Idler (5mm Bore)
  • 8x M5x15mm Machine Screw
  • 2x M5x35mm Machine Screw
  • 2x M5 Hex Nut
  • 8x M3x8mm Machine Screw
  • 1x GT2 Timing Belt (6mm width)
  • 2.5mm Allen Key or Hex Screwdriver
  • 4mm Allen Key or Hex Screwdriver

Assembly

  1. Install a GT2 pulley onto each motor shaft. The set screw side of the pulley should be nearest the motor.
  1. On each motor, tighten the set screws to lock the pulley into place. It should be at the tip of the shaft.
  2. Using four M3x8mm machine screws, install a motor onto the left back leg motor bracket. The wires should face towards the front of the machine.
  3. Repeat the previous step for the motor on the right back leg.
  4. Into the left front leg, insert a GT2 idler and use an M5x35mm machine screw and M5 hex nut to secure the idler into the space for it.
  5. Repeat the previous step for the idler on the right front leg.
  6. Move the gantry to the middle of the frame, then insert an end of the GT2 timing belt into the belt slot nearest the front of the machine on the left side gantry. Ensure the teeth are facing towards the middle of the assembly as you insert the belt.
  7. Take hold of the belt on the v-slot side of the gantry and work it to the end of the gantry, around the idler and along the inner side of the v-slot extrusion. Ensure that the belt passes underneath the gantry as you work the belt to the motor end of the extrusion. Pass the belt around the motor and along the outer side of the extrusion until you reach the gantry. Then pass the belt through the belt slot on the gantry.
  8. Secure the short end of the belt to the gantry using a belt clamp and two M5x15mm machine screws. For adjustment, you may want to leave 2-3 teeth past the belt clamp.
  9. Pull the unsecured end of the belt taught and secure with a belt clamp and two M5x15mm machine screws. Cut the belt on the outer side of the gantry such that there are a few teeth available for tension adjustment.
  10. Repeat steps 7-10 on the right side of the gantry.

TODO: Cable Routing

1.9 - X Gantry

X Gantry Assembly

Necessary Components & Tools

Collect the necessary items to complete the X Gantry assembly. These are:

  • 1x X Gantry Front (FDM-0011-00_x-gantry-front)
  • 1x X Gantry Back (FDM-0012-00_x-gantry-back)
  • 1x Z Gantry Left (FDM-0017-00_z-gantry-left)
  • 1x Mirrored Z Gantry Left (FDM-0017-00_z-gantry-left, but in FreeCAD perform a Part Mirror around the YZ plane)
  • 2x Roller Spacers (FDM-0009-00_roller-spacer)
  • 1x … (Z axis roller spacer)
  • 2x Belt Clamp (FDM-0025-00_belt-clamp)
  • 1x NEMA 17 Stepper Motor (can use a pancake motor)
  • 1x GT2 Pulley (5mm Bore)
  • 1x GT2 Idler (5mm Bore)
  • 1x GT2 Belt
  • 7x M3x12mm Machine Screw
  • 8x M3x6mm Machine Screw
  • 6x M3x8mm Machine Screw
  • 1x M5x30mm Machine Screw
  • 2x M5x45mm Machine Screw
  • 3x M5 Nylon Lock Nut
  • 3x V-Slot Rollers (with bearings, 5mm Bore, 24mm diameter, 10.23mm outer width)
  • 7x M3 Nut
  • 7x M5 Nut
  • 2x Linear Rail - 100mm
  • 1x Limit Switch
  • 2.5mm Allen Key or Hex Screwdriver
  • 4mm Allen Key or Hex Screwdriver
  • 3.3V power source

Assembly

  1. Insert a M5 Hex Nut into one of the hex nut locations on the X gantry back and push into the 3d print.

  2. Pull the hex nut fully into location by screwing a M5x10mm machine screw into it from the opposite side of the X gantry back. Then unscrew the M5x10mm machine screw.

  3. Repeat steps 1-2 for the remaining five M5 nut locations.

  4. Insert a M3 Hex Nut vertically into the slot near the adjustment slot on the X gantry back.

  5. Tighten an M3 x 12mm screw into the Hex Nut installed in the previous step.

  6. Insert an M3 Hex Nut into one of the hex nut locations on the X gantry front and push into the 3d print.

  7. Pull the hex nut fully into location by screwing a M3x12mm machine screw into it from the opposite side of the X gantry back. Then unscrew the M3x12mm machine screw.

  8. Repeat steps 6-7 for the remaining five M3 nut locations.

  9. Insert a M5 nut into the M5 nut location at the bottom of the X front gantry

  10. Insert a M5x45mm machine screw into each of the top two holes on the X Gantry Front which have a printed roller spacer.

  11. Onto each of the two machine screws placed in the previous step, place a V-slot roller

  12. Place the X gantry rear onto the two machine screws

  13. Add a M5 nylon lock onto each of the two machine screws

  14. Tighten the nylon lock nuts on the machine screws so that the two sides are snug against the V-slot rollers.

  15. Place a Linear Rail onto the X gantry front and line up the holes with the three holes on the left.

  16. Place an M3x12mm machine screw into each of the holes and tighten to attach the linear rail.

  17. Repeat steps 15-16 for the right side linear rail.

  18. Place the NEMA 17 motor so the shaft runs through the X gantry front and emerges on the same side as the linear rails.

  19. Fasten the NEMA17 motor to the X gantry front using four M3x8mm machine screws.

  20. At the top left of the assembly front, place a limit switch PCB

  21. Fasten the limit switch PCB with two M3x8mm screws.

  22. Place a M5x30mm machine screw through the GT2 idler, the z axis roller spacer and into the X gantry front.

  23. Secure this machine screw to the gantry by tightening it into M5 nut inserted in step 9.

  24. Place the GT2 Pulley onto the motor shaft and use some belt to adjust the height to match the idler.

  25. Tighten the pulley into place using the grub screws.

  26. To the left linear rail attach the Z Gantry Left using four M3x6mm Machine Screws.

  27. To the right linear rail attach the mirrored Z Gantry Left using four M3x6mm Machine Screws.

  28. Ensure the 3.3V power supply is off.

  29. Connect the black wire from the limit switch to the 3.3V power source ground or negative terminal

  30. Connect the red wire from the limit switch to the 3.3V power source positive terminal.

  31. Power on the 3.3V power supply

  32. Move the right side gantry to the top so that it triggers the limit switch (which illuminates an LED)

  33. Move the left side gantry to the bottom extent of travel.

  34. Take the GT2 belt and insert one end so that just under half the teeth on the top of the left side gantry are gripping the teeth on the belt.

  35. Pull the belt towards the motor pulley and then around the pulley

  36. Ensure the belt is taut and insert into the teeth on the right side gantry (mirrored Z Gantry Left)

  37. Continue to direct the belt down towards the idler and around

  38. Direct the belt back to the left gantry and pull taught.

  39. Place over the teeth at the side of the gantry and determine a cut location on the belt

  40. Cut the belt so that you can insert into the teeth of the gantry part

  41. Insert the teeth into the gantry part ensuring that the belt it taut

1.10 - Tool Assembly

In this step you will assemble the tools you desire for your Index build.

At the moment we support two sets of tools: A Placement Head and a Paste Dispensing Head (coming soon).

Necessary Components

  • Placement Head:
  • 1x NEMA11 Motor
  • 4x M2.5x8mm Screws
  • 1x Pneumatic Fitting (6mm OD Tube and M5 Thread)
  • 1x CP40 Nozzle Holder

Assembly

Depending on the tools you intend to have on your Index, follow the appropriate instructions below.

Placement head

  1. Attach the Pneumatic fitting and the CP40 Nozzle Holder to the NEMA11 motor
  2. Use four M2.5x8mm screws to attach the NEMA11 Motor with the shaft facing down.

2 - Electrical Assembly

Wire your mobo, etc.

What you’ll build

This tutorial will take you through the process of wiring all of the various motors, limit switches, etc. to an Index Motherboard.

Your final Index will be ready for connection to OpenPNP. It will look similar to the following:

TODO: Insert Some Pictures of Index

What you’ll learn

  • How to connect and install the electronic components of the Index

What you’ll need

Parts

  • an mechanically complete Index
  • an assembled Index Motherbord

Tools

The following tools are needed to build the Index.

  • 2mm Allen Key

Tips & Tricks

When assembling the Index, the following tips will help the process go more smoothly.

  • Clean up your 3D prints well. Make sure that you have removed any support material, and have cleaned up the edges of any holes. Test that you can fit the V-Slot or machine screw for a specific part into the hole.
  • Deburr the aluminum profile at the ends. Then it’s easier to put parts together.
  • Positioning Slot Nuts can be a bit of a challenge. A simple way to get them into the right place is to use gravity to get them close, and then use either the long end an allen key or a pair of fine tipped tweezers to push or pull them to the exact position.
  • Inserting Belts can be easier if you move the gantry you’re inserting the belt into to the middle of the rail it is on and then as you insert the belt, move it away from the side you want the belt to come out from. The v-slot will catch the belt and once you’ve moved the gantry a little bit, you will be able to catch the belt. Passing a belt through a belt slot from the inner side can be easier if you place an exacto knife blade at the back side of the slot and butt the belt against that while drawing it up through the slot.
  • Press Fit Nuts are used in several places. If your printer tolerances make it so these nuts don’t stay in you can use a piece of tape over the back to hold them in temporarily.

2.1 - Cable Management

Routing all the cables to the mobo.

Now it is time to do the cable management.

Necessary Components

  • 1x Frame Umbilical Mount (FDM-0007-00_frame-umbilical-mount_Body_001)
  • 2x Umbilical open tubes (OD 28.5mm, 2 meters each)
  • 2x M5x20mm Screw
  • 1x PTFE tube (ID4mm OD6mm)

Assembly

  1. Use two M5x20mm screws to mount the Frame Umbilical Mount onto the Front Left Leg.

2.2 - Electrical

Connecting all the various electrical connections.

Necessary Components

  • 1x Index Mobo

Assembly

2.3 - Vision Cameras

Connecting all the cameras used for the vision system.

Necessary Components

  • 1x ELP 1080p 2.1mm focal length with 1 meter cable
  • 1x ELP 1080p 2.1mm focal length with 2 meter cable
  • 4x M3x40mm Screws
  • 4x M2x14mm Screws
  • 8x M3 Nuts

Assembly

2.4 - Flash Motherboard

Flash Marlin onto the motherboard.

With the frame complete it is time to configure the software side of things before hooking up the motherboard to the machine. This procedure was designed for Windows but it should work as well for macOS and Linux.

Necessary Components

  • Index Frame
  • Index Mobo
  • USB-A / USB-C cable (depending on MOBO revision)

Process

  1. Download the latest Marlin firmware and unzip it

  2. Install VSCode and its PlatformIO extension

  3. Open Marlin firmware’s folder on VSCode

  4. Grab Marlin configuration files (this and this) and replace the files on Marlin/Marlin folder with those new ones

  5. Attach the Index Mobo to your computer with the USB-A cable

  6. Boot the STM32 in DFU Mode

    1. Press and hold BOOT0
    2. Press Reset
    3. Release Reset
    4. Release BOOT0
  7. Upload firmware to the board:

    Upload firmware via PIO

  8. Wait for the process to finish:

    PIO firmware upload done

  9. Press Reset on the board. Now it should show up as a COM/Serial Port on your PC:

Windows:

STM32 shows up as a COM/Serial Port

Linux:

STM32 shows up on lsusb

Troubleshooting DFU Upload:

  • Make sure, that your board shows up correctly in DFU mode:

Windows:

STM32 in DFU mode in Device Manager

Linux:

STM32 in DFU mode in lsusb

  • If the upload through VS Code does not work but the device is connected properly, edit the PIO config file (platformio.ini, located in the project folder):
  1. Create a backup of the config file
  2. Search for “STM32F407VE_black” and replace the existing section with the following:
#
# STM32F407VET6 with RAMPS-like shield
# 'Black' STM32F407VET6 board - https://wiki.stm32duino.com/index.php?title=STM32F407
# Shield - https://github.com/jmz52/Hardware
#
[env:STM32F407VE_black]
platform          = ${common_stm32.platform}
extends           = common_stm32
board             = blackSTM32F407VET6
# upload_port       = 0483:df11
upload_protocol   = dfu
upload_command    = dfu-util -a 0 -s 0x08000000:leave -D "$SOURCE"
board_build.f_cpu = 12000000L
build_flags       = ${common_stm32.build_flags}
  -D ARDUINO_BLACK_F407VE
   -D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC
   -D USBD_USE_CDC_COMPOSITE
  ; -D MENU_USB_SERIAL 
  ; -D MENU_SERIAL=SerialUSB
  ; -D USBCON 
   -D USBD_VID=0x0483
   -D USBD_PID=0x5740
   -DLSE_VALUE=32768U
   -DHSE_VALUE=12000000U
  ; -D USB_MANUFACTURER="Unknown"
  -D USB_PRODUCT=\"BLACK_F407VE\"
  ; -D HAL_PCD_MODULE_ENABLED
  ;-D PIO_FRAMEWORK_ARDUINO_SERIAL_WITHOUT_GENERIC
  -D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC
  ;-D PIO_FRAMEWORK_ARDUINO_NANOLIB_FLOAT_PRINTF
  ;-D PIO_FRAMEWORK_ARDUINO_USB_HIGHSPEED_FULLMODE
   
  

extra_scripts     = ${common.extra_scripts}
  pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
lib_ignore        = SoftwareSerial

Notice that upload_port = 0483:df11 is commented out. This setting caused issues, at least for some users. After disabling it, uploading via PIO worked.

Things to check if the board doesn’t show up as “STM32 BOOTLOADER”:

  • Check if the USB hub works by connecting devices to other ports. This is not an absolute guarantee that the connection to the STM32 works though.
  • Check if all solder joints look fine
  • Check if all necessary voltages are present (Mobo input voltage, 5V rail and 3.3V rail)
  • Keep in mind that a blank STM32 should still appear as a USB device, even if it has no firmware loaded onto it
  • Check the 8MHz crystal oscillator of the SMT32. Its correct operation is important for DFU. Wrong frequency and / or incorrect load capacitors can cause issues. Use an oscilloscope to probe the signal. You should see a smooth sine wave with stable frequency.

Alternative method to upload:

This method requires an ST-Link (V2 Clone or equivalent). Additionally you need the software STM32CubeProgrammer by ST. This method is a bit more involved and takes longer than just using the DFU mode.

  1. Compile (build) the project normally with PIO

  2. This generates a .bin-file that contains the firmware

  3. Connect your board to your ST-Link through the SWD header on board

  4. Start STM32CubeProgrammer

  5. Connect to the MCU:

    Connecting to the STM programmer

  6. Click on Open file and navigate to the firmware.bin file in PROJECT_DIRECTORY/.pio/build/STM32F407VE_black

    Opening the compiled firmware file

  7. Click on Download. This will flash the SMT32F4 with the provided firmware

    Downloading (flashing) the firmware

  8. Done! Now you just have to disconnect the ST-Link and press Reset on the board (img/firmware_download_done.png" alt=“Firmware flashing success” >}}

Configure OpenPnP

Duration: 00:00

Necessary Components

Get Software (Windows)

  1. Download OpenPNP 2.0

3 - OpenPNP Setup

Connect your Index to OpenPNP and configure it.

What you’ll build

This tutorial will take you through the process of configuring OpenPNP to work with your Index PNP machine.

What you’ll learn

  • How to connect Index to OpenPNP

This guide is focused on assembling an Index and getting to being able to run your first job. Certain configuration details may be glossed over and simply provided to copy and paste.

What you’ll need

An Index PNP with the mechanical and electrical build completed.

3.1 - Installation

Install the OpenPNP software onto your machine.

Get Software (Windows)

  1. Download OpenPNP 2.0

4 - Reference

Section containing reference documentation.

Introduction

This part of the documentation contains some topics such as

  • A glossary of key terms
  • How to contribute to the project
  • How to build and work with the documentation
  • Images of the various 3d printed parts for reference

4.1 - Glossary

Glossary of key terms to do with index, electronics and the ecosystem around pick and place machines.

Glossary

AOI

  • Acronym for Automatic Optical Inspection.

Automatic optical inspection

  • Computer vision inspection process to check for any issues after reflow.

CM

  • Acronym for Contract Manufacturer.

Index

  • The open source pick and place machine for creating populated circuit boards on a mid-level manufacturing scale.

Mid-level manufacturing

  • A term used to describe the step between small-scale and large-scale manufacturing where the amounts of products you are making doesn’t justify going to a contract manufacturer.

OSH

  • Acronym for Open Source Hardware.

OSS

  • Acronym for Open Source Software.

Pick and place machine

  • A machine that can programatically place components onto a circuit board in an automated fashion.

PNP

  • Acronym for Pick and Place.

PCB

  • Acronym for Printed Circuit Board.

Printed circuit board

  • A board which uses certain techniques for components to be spaced closer together and more easily manufactured.

SMD

  • Acronym for Surface Mount Device.

4.2 - 3D Print Detailed Information Table

Details of the 3D print objects

3D Printed Objects - Detailed Information

Example print times and filament requirements using Prusa Slicer and a Prusa MK3 printer, 0.2mm layer height and standard PLA filament.

FilenameFilament Used (m)Extruded Volume (mm3)Print Time (h:m:s)Total Print TimeFill DensityPerimetersTop/Bottom Solid LayersQuantity Required
FDM-0001-0127.422765959.37:14:007:14:0020%351
FDM-0002-011.984234772.630:30:000:30:0020%351
FDM-0003-0137.425490018.610:06:0010:06:0020%351
FDM-0004-0137.40689971.910:06:0010:06:0020%351
FDM-0005-0217.863242965.95:07:005:07:0020%351
FDM-0006-013.611858687.521:01:001:01:0020%351
FDM-0007-0111.950628744.73:32:003:32:0020%351
FDM-0008-016.9930716820.31:53:003:46:0020%352
FDM-0009-000.201029483.530:08:000:48:0030%456
FDM-0010-017.0056316850.52:32:002:32:0020%351
FDM-0011-0119.639847239.25:30:005:30:0030%451
FDM-0012-0119.471546834.55:28:005:28:0030%451
FDM-0013-024.9506611907.71:21:001:21:0020%351
FDM-0014-010.6991031681.540:27:000:27:0020%351
FDM-0015-012.468835938.230:49:000:49:0020%351
FDM-0016-000.7375851774.10:44:004:24:0020%356
FDM-0017-01????30%451
FDM-0018-012.731236569.380:56:000:56:0020%351
FDM-0019-01????20%351
FDM-0020-025.9201714239.71:42:001:42:0020%351
FDM-0021-012.510746039.050:43:000:43:0020%351
FDM-0022-011.479293558.110:26:000:26:0020%351
FDM-0023-010.129428311.3120:05:000:10:0020%352
FDM-0024-015.3827812947.11:58:001:58:0020%351
FDM-0025-012.365465689.590:58:000:58:0020%351
FDM-0026-010.4221661015.430:15:001:00:0020%354
FDM-0027-010.8878252135.470:20:001:40:0020%355
FDM-0037-001.741824189.570:34:001:42:0020%353
FDM-0038-000.03208677.17580:02:000:02:0020%351
FDM-0039-02????20%351
FDM-0040-010.8806082118.110:15:000:15:0020%351
FDM-0041-010.8899662140.620:15:000:15:0020%351

Totals

Filament used:

  • Length: 245.32 meters
  • Weight: 731.68 grams

Total duration: 3 days, 2:28:00

4.3 - Documentation

Page containing topics to do with how the documentation works.

Folder structure

The documentation is essentially built up using markdown with a certain folder structure. Section pages are made with folders containing an _index.md file in the root, subsections are built with folders and an index.md file in the root. The weight is what gives the certain ordering of the pages in each section.

The easiest way is to click the buttons on the right hand side of the docs page and it will generate, you just need to rename the file with the correct folder name and file name from the default change-me.md.

See below for an example file structure for the section pages or subsection pages which is auto-generated on clicking of the buttons.

---
title: "Long Page Title"
linkTitle: "Short Nav Title"
weight: 100
description: >-
     Page description for heading and indexes.
---

## Heading

Edit this template to create your new page.

* Give it a good name, ending in `.md` - e.g. `getting-started.md`
* Edit the "front matter" section at the top of the page (weight controls how its ordered amongst other pages in the same directory; lowest number first).
* Add a good commit message at the bottom of the page (<80 characters; use the extended description field for more detail).
* Create a new branch so you can preview your new file and request a review via Pull Request.

Testing

Docker

Testing changes requires that you be able to run docker and docker-compose. Once these tools are installed, follow the steps below to test.

  1. Ensure git-lfs is properly installed.

  2. Perform a recursive update of the repository.

    git submodule update --init --recursive
    
  3. Navigate to the doc directory of the repository.

  4. Build the docker image

    docker-compose build
    
  5. Run the build image

    docker-compose up
    
  6. Open the address http://localhost:1313/index in your web browser to preview your documentation. You can now make changes to the source files, those changes will be live-reloaded in your browser.

  7. Press CTRL+C to exit

  8. Remove the docker images.

    docker-compose rm
    

Native Installation of Hugo

  1. Install an extend version of Hugo. The first step of the quickstart guide is a good source.

  2. Perform a recursive update of the repository.

    git submodule update --init --recursive
    
  3. Navigate to the doc directory of the repository.

  4. Start the Hugo server.

    hugo server --source .
    
  5. Open the address http://localhost:1313/index in your web browser to preview your documentation. You can now make changes to the source files, those changes will be live-reloaded in your browser.

  6. Press CTRL+C to exit

Building the docs

Generation is done with Hugo doc generator and the docsy theme. Take a look at https://www.docsy.dev if you want to get set up for local preview. Updates to the site happen automatically on merge to the assembly-guide branch via GitHub actions. So contributing pull requests is the proper way to update the site.

See this comment for more details.

4.4 - FDM Reference

Diagrams and images of the various 3d printed parts using FDM print methods

Fused Deposition Modelling

Fused deposition modelling (FDM) is the most widely used form of 3D printing at the consumer level. FDM works by extruding thermoplastics, such as ABS, PLA, through a heated nozzle, melting the material and applying the plastic layer by layer to a build platform.

FDM Parts Reference

FDM_0001_00_front_left_leg

FDM_0001_00_front_left_leg

FDM_0002_00_front_right_leg

FDM_0002_00_front_right_leg

FDM_0003_00_back_left_leg

FDM_0003_00_back_left_leg

FDM_0005_00_y_gantry

FDM_0005_00_y_gantry

FDM_0006_00_x_motor_mount

FDM_0006_00_x_motor_mount

FDM_0007_00_frame_umbilical_mount

FDM_0007_00_frame_umbilical_mount

FDM_0008_00_y_gantry_support

FDM_0008_00_y_gantry_support

FDM_0009_00_roller_spacer

FDM_0009_00_roller_spacer

FDM_0010_00_y_gantry_umbilical_mount

FDM_0010_00_y_gantry_umbilical_mount

FDM_0011_00_x_gantry_front

FDM_0011_00_x_gantry_front

FDM_0012_00_x_gantry_back

FDM_0012_00_x_gantry_back

FDM_0013_00_x_idler_mount

FDM_0013_00_x_idler_mount

FDM_0014_00_down_camera_mount

FDM_0014_00_down_camera_mount

FDM_0015_00_down_light_mount

FDM_0015_00_down_light_mount

FDM_0016_00_cable_clip

FDM_0016_00_cable_clip

FDM_0017_00_z_gantry_left

FDM_0017_00_z_gantry_left

FDM_0019_00_up_light_mount

FDM_0019_00_up_light_mount

FDM_0020_00_up_camera_mount

FDM_0020_00_up_camera_mount

FDM_0021_00_foot

FDM_0021_00_foot

FDM_0022_00_umbilical_guide

FDM_0022_00_umbilical_guide

FDM_0023_00_peek_cable_guide

FDM_0023_00_peek_cable_guide

FDM_0024_00_nozzle_holder

FDM_0024_00_nozzle_holder

FDM_0025_00_belt_clamp

FDM_0025_00_belt_clamp

FDM_0025_00_pump_mount

FDM_0025_00_pump_mount

FDM_0026_00_board_holder

FDM_0026_00_board_holder

4.5 - Print settings

Page containing recommendations and explanations of print settings for 3D printed parts.

3D Printing

During development of the Index, all parts were printed in PLA. A few parts in particular require quite a high strength if being printed. Of course, every printer runs a bit different, and these are just guidelines to illustrate the necessary strength difference between different parts.

Default Settings

  • 3 shells
  • 20% infill
  • 5 Top/Bottom layers

Gantry Part Settings

  • 4 shells
  • 30% infill
  • 5 Top/Bottom layers