Introduction: FULLY FUNCTIONAL Tensile Testing Machine: Tinkercad Contest Version

About: I'm a 17 year old Fusion 360 and Tinkercad user. I am currently working on a big format CoreXY 3D printer.


Hi, my name is Xieshi, and I am a 9th grade student of Arizona College Prep Erie Campus.


The purpose of this tutorial is mainly to show people how one would do practical design on Tinkercad and to also release our design as an open-source project. (This will also be joining the Tinkercad Design Contest: Make it Move) (if you're unsure what moves, it's the part that's pulled back during a tensile test)

Background Info

Last year, my friend and I designed a custom tensile testing machine for our science fair projects on the strength of 3D printed materials. We used Tinkercad because of its ease of use and ability to share and edit with peers. This year, I'm going to publish our design under an open source license (with his permission). This tensile testing machine is fully functional and uses ISO 527-2 Model 1A (or equivalent) testing specimens. It has been tested to measure up to 500 newtons (with the correct grip configuration). This instructable shows how we designed the machine and how you can recreate our design.

What is a tensile testing machine and how does it work?

Tensile testing machines are variants of universal testing machines made specifically to test tensile strength (or in this case, tensile fracture forces) of testing specimens. It applies a tensile force to a specimen (stretches it) until it breaks, and measures the forces applied while doing so.

This tensile testing machine has mainly five parts: the stationary grip, moving grip, load cell (and its mount), and the motor (a geared NEMA 17 stepper motor).

The moving grip is attached to a load cell and controlled by the motor via a lead screw. After the specimen is loaded and a tensile test had begun, the motor rotates the lead screw. The lead screw translates rotations into linear motion, causing the the load cell to be pulled back, but the specimen resists the pulling force by exerting an equal and opposite reaction, which is then measured by the load cell. This process continues until the specimen fractures.

Can I build it myself?

Sure! You are free to build it however you like. HOWEVER, THIS PROJECT IS NOW OBSOLETE, VIEW NEW VERSION HERE.

Do I need to know advanced electronics and 3D design knowledge to build this?

You will need intermediate electronics knowledge (wiring on a breadboard, coding and controlling Arduino) and intermediate Tinkercad experience (to follow the tutorial and make the needed changes in Tinkercad). Without these skills it's likely that you will encounter troubles following this tutorial. If you're only looking to build a cheap custom tensile testing machine, I'd recommend you wait for the Thingiverse release of the new version.


If you're waiting on the newer version of this machine (which I doubt but say if you want to build one for a Science Fair project or something). I have finished designing it, but it is not tested yet. I will be soon upgrading the parts and testing the newer version out. In the mean time, if you're interested in seeing or building the newer version, leave me a message and I will send you the design files. Keep in mind that the older version still works, while the newer version has many improvements but is not tested to work yet.

More updates: I have bought the parts to build the newer machine, but the parts will probably take about twenty days to arrive. I will try my best to get the new version released in early October.

Even more updates: If you're still somehow following this instructable, I am really glad. I have assembled the new tensile testing machine ( It only has some minor problems with the code and will be published once I fix the issues.


The supplies costed me less than $160, but it may cost more for you depending on where you source the parts.


  • 2x MGN12H Carriages
  • 1x MGNR12 Rail 300mm
  • 1x 8mm to 12mm Coupler (either spider or rigid, DO NOT use flexible couplers)
  • 1x 550mm 2060 European Standard Aluminum Extrusion
  • 1x 400mm T12 Lead Screw, 8mm lead, 4 starts
  • 2x T12 Flanged Brass Nuts
  • 1x 3201/5201 -zz/-2rs Angular Contact Ball Bearings
  • 1x 6001zz/2rs Deep Groove Ball Bearings
  • 1x S-Shaped Load Cell rated for 1T


  • 1x Breadboard
  • Some Breadboard Jumpers (or tinned 22 gauge wire, which is strongly recommended)
  • 1x 12-24V Power Supply (and its accessories such as wire or inlets)
  • 1x Arduino Nano (and a Micro-USB to USB-A cable)
  • 1x HX711 Load Cell Amplifier Board
  • 1x Allegro A4988 Stepper Motor Driver (or other stepstick drivers)
  • 1x NEMA 17 Planetary Geared Stepper Motor (gear ratio must be 51:1 to 100:1)

Screws, bolts, and nuts:

  • 4x M8x40 Thumb Screws
  • 20x M5x20 Button Head Screws
  • 20x M3x8 Socket Head Screws
  • 4x M3x22 Socket Head Screws
  • 4x M3 nyloc nuts (regular nuts work too)
  • 2x M16x25 Hexagon Screws
  • 20x M5 T Nuts (2020 extrusion type)
  • 20x M3 T Nuts (2020 extrusion type)


  • Some 40 Grit Sandpaper
  • A 3D printer or 3D printing services
  • One and a half spool of PLA/ABS/Polycarbonate Filament (must be stiff and strong)
  • Screwdrivers, allen keys, needle nosed pliers, etc.

Step 1: Design Process- Dummy Placement

Before we start, make sure you are prepared for building the machine. Look over all the steps, and once you're ready, you can get started. (once again, if you're only looking to build a pre-designed tensile testing machine machine, I will release an improved version on Thingiverse, and I will provide a link for it once it's up) (read introduction for updates)

Another thing is that the machine shown in this tutorial is fine with loads up to 500N, but the PLA fixtures may flex more with higher loads, which can cause inaccurate readings. To solve this, you may increase the amount of reinforcement/support structure for the fixtures. (the load bearing capacity is significantly increased on the improved version as well)

Get the dummy materials and place them like shown. Getting the exact dimensions aren't so important right now, and some of the materials will be moved later. Make sure to make the dummy components transparent and lock them if you need to.

Step 2: Design Process - Stepper Motor Mount - Base

Make a 155mmx60mmx5mm rectangular box on top of the aluminum extrusion and align it. This should go against the edge of the linear rail and the aluminum extrusion on both sides.

Step 3: Design Process - Stepper Motor Mount - Bracket

Make a 56mm tall, 60mm wide, and 5mm thick plate standing upright in front of the stepper motor dummy like shown. Make sure the distance matches with the markings in the picture.

Step 4: Design Process - Stepper Motor Mount - Bearing Block

This is the part where the 3201/5201 bearing will sit. A T12 flanged nut will be pushed against the bearings in order to handle all the axial load applied to the lead screw during a tensile test.

Make a 60x33x56mm rectangular box on the right side end of the motor mount, like shown in the picture.

Step 5: Design Process - Stepper Motor Mount - Reinforcements

Now you can add reinforcements to the mount. Do it however you like, but make sure to prioritize the bearing block.

Step 6: Design Process - Stepper Motor Mount - Bearing Cutouts

Make a cylinder with 32.2mm diameter and 15.5mm height , align it with the lead screw and put it against the bearing block.

Step 7: Design Process - Stepper Motor Mount - Lead Screw Cutout

Make a cylinder with 20mm diameter and any height greater than 33mm, align it with the lead screw.

Step 8: Design Process - Stepper Motor Mount - Motor Mounting Holes

The mounting holes for a typical geared NEMA 17 motor is shown in the Fusion 360 drawing.

Make the exact same holes in Tinkercad and align it to the motor/motor mount.

Step 9: Design Process - Stepper Motor Mount - Mounting Holes to Extrusion

Add 5.1mm diameter cylinders to the stepper motor mount. Make sure to align them to the center of the mount/extrusion. Keep at least 15mm spacing between each one, but their placement is up to you.

Step 10: Design Process - Stepper Motor Mount - Done!

Group the pieces and make sure not to group the dummies.

And that's stepper motor mount done! Only 3 more components to go!

Step 11: Design Process - Stationary Grip - Base

The stationary grip will hold one end of the specimen still in a tensile test.

Make a 95x60x10mm rectangular box and place it on the other end. Both sides should be touching the edges of either the linear rail or the end of the extrusion.

Step 12: Design Process - Stationary Grip - Bearing Block

This is the bearing block for the 6001 bearing. It is to simply support the lead screw on this end, but it can be used for preloading the motor coupler if required.

Make a 60x12x50mm rectangular box and place it on top of the base, aligning with the left side edge.

Step 13: Design Process - Stationary Grip - Grip Section

Make a 90x50x80mm rectangular box. Align its center with the center of the base and align the right side edge to the right side edge of the base.

Step 14: Design Process - Stationary Grip - Grip Section Middle Cut

Make a 50x22x80mm box in hole mode. Align it to the center of the grip section box. The edges should match.

Then group the grip section box and the box you just created together.

Step 15: Design Process - Stationary Grip - Grip Block Cutouts

Make two rectangle holes spaced 22mm apart inner edge to inner edge, like shown in the picture.

Then make a 8mm diameter cylinder hole and align it to the center of the rectangles. Make sure it goes through the two rectangles and beyond the edges of the grip section rectangle.

Finally, move the parts we just made into the grip section rectangle, like shown in picture.

Step 16: Design Process - Stationary Mount - Bearing Cutout

This is the cutout for the 6001 bearing.

Make a 28.2mm diameter, 8mm height, cylinder hole and align it with the lead screw and the outer surface of the bearing block.

Step 17: Design Process - Stationary Grip - Lead Screw Cutout

Make a 20mm cylinder hole that has at least 4mm height. Align it with the lead screw.

Step 18: Design Process - Stationary Grip - Reinforcements

Add reinforcements and chamfers to the bottom in order to make it 3D printable without supports. Do it however you like, but the bottom chamfers and the extra supports in the front are highly recommended.

Step 19: Design Process - Stationary Grip - Top Cutout

Make the top cutouts (rectangle hole, 30x25x5mm) like shown in the picture, align it to the center of the grip section.

Step 20: Design Process - Stationary Grip - Mounting Holes

Add 5.1mm diameter cylinder holes to the base as mounting holes. The rules are almost the same as the stepper motor mount, with the only difference that the outer mounting holes need exactly 20mm spacing from the inner mounting holes.

Step 21: Design Process - Stationary Grip - Done!

Group the parts and that's the stationary grip done!

Only two more components to go!

Step 22: Design Process - Moving Load Cell Mount - Base

The moving load cell mount is what transfers the force to the load cell during a tensile test.

Make a 10mm tall rectangle box and align its left side with the left side of the carriage block. Make its right side go 8mm beyond the right side edge of the carriage.

Step 23: Design Process - Moving Load Cell Mount - Vertical Box

Make a 60x15x62mm box and align it to the right end of the base. If the load cell is not touching or touching too much of the box, move it til the left side of the load cell barely touches the box.

Step 24: Design Process - Moving Load Cell Mount - T12 Nut Mounting Holes

Make the mounting holes according to the Fusion 360 sketch, then group them, and align them to the lead screw.

Step 25: Design Process - Moving Load Cell Mount - MGN12H Mounting Holes

Follow the Fusion 360 sketch of the mounting holes and align them with the dummy carriage.

Step 26: Design Process - Moving Load Cell Mount - Load Cell Mounting Hole

Make a 16.2mm (if you're using the load cell I recommended) diameter cylinder hole and align it to the center of the box. Then adjust the height to around 13mm from the center to the top edge. Move the load cell dummy to align with the mounting hole.

Step 27: Design Process - Moving Load Cell Mount - Reinforcement and Extras

Add reinforcements however you would like them, and I also added 2mm countersunk holes for the M3 bolts because they would block the T12 nut.

Step 28: Design Process - Moving Load Cell Mount - Done!

Group the parts together and that's the moving load cell mount done!

Only one more to go!

Step 29: Design Process - Moving Grip - Base

This is the moving grip. It is the grip that holds on to the testing specimen while being pulled back by the load cell.

Make a 70x60x10mm rectangular box. Align the left side edge with the right side edge of the load cell. The distance really depends, but it should be around 15mm. If the dummy carriage is outside the edges of the box, you want to move it so that it goes inside.

Step 30: Design Process - Moving Grip - Vertical Box

Make a 60x15x67mm rectangular box. Align it like how it's shown in the picture.

Step 31: Design Process - Moving Grip - Grip Block Cutouts

Simply ungroup the stationary mount and duplicate over the cutouts from the previous steps. Follow the dimensions shown in the picture.

Step 32: Design Process - Moving Grip - Grip Section

Make a 56x90x67mm rectangle and align it to the center of the base. Align its right side edge to the right side edge of the base.

Step 33: Design Process - Moving Grip - Center Cutout

Make a 50x22x67mm rectangular box and align it to the center of the grip section. Then group the two together, forming a cut-out space in the middle.

Step 34: Design Process - Moving Grip - Top Cutout

Make a 40x32x30mm (or 39.5 like shown in the picture, depending on how you placed the grip block cutouts) box and align its center to center of the grip section. Then align the bottom to the bottom of the grip block cutouts.

Group the parts together.

Step 35: Design Process - Moving Grip - Load Cell Mounting Hole

Make a 16.2mm diameter cylinder hole and align it like shown in the picture. The height can be adjusted to match the load cell height.

Step 36: Design Process - Moving Grip - Lead Screw Cutout

Make a 14mm diameter cylinder hole and align it to the lead screw like shown in the picture.

Step 37: Design Process - Moving Grip - MGN12H Mounting Holes

Follow the Fusion 360 sketch to make the mounting holes or use the ones from the moving load cell mount. Align them to the mounting holes in the dummy carriage block.

Then make 6mm outer holes for the screw heads and align them to the mounting holes. Make sure to have the outer holes extend all the way to the top but not go below the bottom.

Step 38: Design Process - Moving Grip - Extras

Add extra things to the part. This includes chamfers to make it easier to print and additional supports to the grip block in the front.

Step 39: Design Process - Moving Grip - Done!

Group the parts together and it's done!


Step 40: Design Process - Grip Block - Box

The grip blocks are pushed tightly against the testing specimen to clamp it down during a tensile test.

Make a 24.8x20x24.8mm rectangle box.

Step 41: Design Process - Grip Block - Hole

Make a 8.2mm diameter cylinder hole that is 2mm tall. Then align it to the center of the grip block.

Step 42: Design Process - Grip Block - Done!

Group the two parts together and the grip block is done! You will need four of these and make sure to glue 40 grit sandpaper to the smooth side of this.

Step 43: Design Process - Post Processing (grip)

Send this model to Fusion 360 and use the Thread tool to create M8 threads on the 8mm holes in the moving grip and the stationary grip.

Alternatively you can model in a embedded nut or use threaded inserts. They are much more durable and can withstand much more torque than printed threads, though the printed threads were fine for light load applications that I tested.

For threaded inserts, make the hole bigger using the push-pull tool and size it to the specified diameter of the threaded insert.

If you can't seem to get the thumb screw tight enough and the grips would slip, consider using a plier to help you tighten it down. Or you can use a hexagon head screw (if you have it) and use a torque wrench (or use a 3D printed crank head downloaded from Thingiverse). Do not use printed threads if you need to tighten the screws down this way.

Here is a rough and inaccurate estimation for the amount load the different thread/screw styles can handle:

Printed threads with small thumb screws - <300N

Printed threads with large thumb screws - <450N (thread may slip)

Metal threads with large thumb screws - <500N-800N

Metal threads with very large head thumb screws/crank screws - <1kN-2kN

Step 44: Almost There!

Use the Insert McMaster Carr component tool to find the right components to insert and admire the work you just did.

A step file of what I made in this tutorial is attached for those who are interested.

Step 45: Physical Assembly Instructions

Use this video animation and further steps down below to look at how to assemble this thing.

Step 46: Physical Assembly - Setup

Print one of each part you designed, and then print:

    2x Tool 1 (the linear rail alignment tool)

    3x T12 Nut

    I recommend that you use 5+ shells/perimeters and 100% infill for maximizing the strength and minimizing any deflection. This is important because the readings may be off if there is flex in the fixtures.

    After you have printed all the parts and prepared all the components, you need a flat and open space for assembling the machine. First take the 550mm aluminum extrusion and place it on the table.

    Step 47: Physical Assembly - Mounting Bearings

    Take the stepper motor mount. Insert a 3201/5201 angular contact bearing into the bearing slot. It should fit into the slightly oversized hole. However, if it doesn't, you may want to sand the inner surfaces of the bearing slot. DO NOT ATTEMPT TO SAND THE BEARING.

    Then take the stationary grip and insert a 6001 bearing into the slot. Do the same sanding if the bearing doesn't fit.

    Step 48: Physical Assembly - Mounting Stationary Grip and Stepper Motor Mount

    Place the M5x14 mounting bolts into the mounting holes into the mounting holes of the stationary grip and the stepper motor mount. Then screw in the T nuts from bottom, but don't screw it on all the way. Slide the parts on to the extrusion, with the T nuts going under the extrusion slot.

    Make sure you align the ends of the parts to the ends of the extrusion like how it's designed. And finally tighten the bolts up once they're in place. Refer to this video for detailed instructions on how to work with T nuts.

    Step 49: Physical Assembly - Linear Rail

    This is the hardest part if you don't know much about linear guides (the fancier name for linear rail). Linear rails are precise components, so you want to work with them carefully.

    If you received your linear rail and carriage block separately, very carefully align the plastic rail it came with to the rail. Make sure the carriage does not fall out of a rail (or otherwise you will lose the tiny bearings inside the carriage). Next, very carefully slide the carriage from the plastic rail on to the real rail, being gentle and correcting any misalignment on the way.

    Place M3x8 bolts into the mounting holes, and screw in the T nuts from the bottom. Use the same technique as the previous assembly step.

    Align the linear rail to the center of the extrusion with the tool printed from step 46. Linear rail manufacturers recommend aligning the rails to a datum surface, but it is not required nor recommended in this application because this is not the micrometer precision machinery that linear rails were designed for.

    Step 50: Physical Assembly - Moving Load Cell Mount and Moving Grip

    Take the moving load cell mount and put it against the carriage block. Place M3x12 bolts into the mounting holes/slots. Once you have everything aligned, tighten the bolts down.

    Do the same with the moving grip.

    Step 51: Physical Assembly - Load Cell

    Take the load cell and place it in between the moving load cell mount and the moving grip. Slide the two parts together so that they are against the opposite sides of the load cell.

    Insert M16x25 bolts and tighten them. Finger tight is enough.

    Step 52: Physical Assembly - Stepper Motor

    Take the stepper motor and hold it against the mount. Insert M3x10 or M3x8 bolts and tighten them down.

    Step 53: Physical Assembly - Coupler

    Take the coupler and place it on to the stepper motor. Your stepper motor shaft must have a D cut if you're using the set screw type, but most rigid/spider couplers you can find at this size are the clamp type, which is what we want. Slide the coupler onto the motor shaft, but make sure it does not rub against the mounting bolts, and tighten the clamping bolt down as hard as you can.

    If your coupler is slipping, try tightening down the coupler even harder. And if it's still slipping, you may want to consider using a set screw type coupler, which are usually able to transfer more torque at the cost of less ease-of-use.

    Step 54: Physical Assembly - Lead Screw

    Take two of the T12 printed nuts and place it against the stationary mount mount like how it's shown in the picture. Then insert the lead screw. Start rotating the lead screw once it reaches the 6001 bearing block to thread onto the printed nut. Keep rotating until it reaches the moving load cell mount.

    Take one of the brass T12 flanged nuts and place it against the moving load cell mount like how it's shown in the picture. Rotate the lead screw to thread onto the nut and keep going until you reach the 3201/5201 bearing block.

    Insert the second brass T12 flanged nut, this time with the non-flanged side facing the inner rim of the bearing, like shown in the video. Rotate the lead screw until it threads onto the nut.

    Place the last printed T12 nut against the brass nut you just installed and rotate the lead screw to thread onto the nut. Keep rotating the lead screw until it bottoms out in the coupler.

    Locate the clamping bolt on the coupler, and when you're ready, tighten the clamping bolt down.

    Lastly, insert M3x22 bolts into the flanged nut and screw in M3 nyloc nuts from the other side. Now hold the nyloc nut in place while you tighten the screw down. Do so for all four mounting holes.

    Step 55: Physical Assembly - Grip Block

    Cut and glue pieces of 40 grit sandpaper to the smooth sides of the grip blocks, then place them one by one into the grip block slots.

    Screw in the M8 thumb screws/crank screws. This will push against the grip blocks.

    Step 56: Electronics - Schematics

    Here is a picture of the hard-to-follow schematic for the intellectuals and those who want to make a PCB. There is also a breadboard schematic for those playing along at home (EEVBlog reference).

    The capacitor on the bottom power rail is not required but recommended.

    Step 57: Electronics - Component Selection


    A generic breadboard or perfboard will do the job. Breadboards are what I used and are great for solderless prototyping purposes, while perfboards are good for a permanent solution.

    I did not design a PCB as I don't think it's required. The newer version of this will come with a PCB design on Thingiverse.

    Stepper Motor Driver

    You'll need a stepper motor driver in StepStick format. Some examples are the Polulu StepStick A4988, DRV8825, Watterott SilentStepStick TMC2100, TMC2208, TMC2209, TMC5160, etc.

    There's no reason to use the more expensive SilentStepSticks, which are generally used in high-end 3D printers and laser engravers. For our purposes, an A4988 driver (regular) or DRV8825 driver (higher current) is enough. I chose a very cheap A4988 driver found on Aliexpress, but any StepStick format drivers would fit and be plug-and-play.

    Stepper Motor

    A 1:100 planetary geared NEMA 17 stepper motor is what I went for. You want the maximum amount of torque you can get out of your stepper motor, so choose a stepper motor with a high gear ratio.


    I used an Arduino Nano, but any Arduino boards should work without a problem provided that you change the wiring configuration a little. Or if you know what you're doing you can step it down to an ATTiny controller.

    Load Cell Amplifier

    The HX711 ADC chip is by far the most popular solution for cheap load cell readings. So that's what I went for.

    The wiring may differ slightly for different variants of the board, so be careful. And although they should all function the same, keep in mind that some users on the Arduino forum have reported a slight difference in the PCB design choices of these boards, which may affect the actual accuracy of the readouts. However, I think the difference is minimal as my setup with a cheap Chinese HX711 module works just fine.

    Step 58: Electronics - Assembly Instructions

    Follow the schematics to wire up the components on the breadboard. The top power rail should be 5V, while the bottom power rail should be 12 to 24V.

    You may need to crimp some wires in order to fit them to the breadboard. If you don't want to do that but have a soldering iron, you can use a perfboard and straight up solder the components onto the perfboard

    For the motor power (VMOT and GND), I like to use 22 gauge wires instead of the thin jumper wires because there will be a bit of current running through it.

    This is important: If you're using jumper wires for the load cell amplifier, make sure you twist the wires in pairs like shown in the picture to minimize EMI. The wires that need to be twisted are for A+ (signal plus) and A- (signal minus). You can also do the same for E+ (excitation plus) and E- (excitation minus). For me, I've observed a significant reduction in the reading fluctuations once I've twisted the wires.

    Double and triple check the wiring before you start up the electronics. Magic smoke will escape if you wire certain pins incorrectly.

    Step 59: Electronics - Vref and Microstepping


    Tune the Vref for the stepper motor driver to match the stepper motor current. You must connect the motor power before you start turning the potentiometer. This is a detailed tutorial on how to tune the Vref.


    Use the A4988 datasheet to find the truth table for setting the microstepping mode on the driver. My configuration is MS1 - LOW, MS2 - LOW, MS3- HIGH, which is half stepping mode.

    Step 60: Electronics - Arduino Code

    This is the code you need to upload to the Arduino Nano via the Arduino IDE. Make sure you have the HX711 library from Github.

    //Basic Tensile Testing Machine Code By Xieshi aka CrazyBlackStone
    //Project published under CC-BY-NC-SA license for design contest
    //Need HX711 library
    #include <HX711.h>
    //pin definitions
    const int stepPin = 2;
    const int dirPin = 3;
    const int DTPin = A0;
    const int SCKPin = A1;
    //calibration setup: if you know your load cell's calibration factor, uncomment and change the scale.set_scale value in the setup function. If you don't want to calibrate the load cell, comment this out.
    // #define calibration
    //set this to the gear ratio of the stepper motor you're using
    #define gearRatio 100
    //set this to the lead screw pitch of the stepper motor you're using
    #define leadScrewPitch 8
    //don't change this unless you want to change the speed
    #define speedMultiplier 25
    bool testStart = false;
    bool moveStepper = false;
    float fastSpeed = 200 * 1 * gearRatio / leadScrewPitch / 60 * speedMultiplier;
    const float slowMeasurementDelay = 1 * 1000000;
    const float fastMeasurementDelay = 0.15 * 1000000;
    float measurementDelay = slowMeasurementDelay;
    unsigned long lastMeasurement = 0;
    unsigned long lastStep = 0;
    HX711 scale;
    void setup() {
      // put your setup code here, to run once:
      scale.begin(DTPin, SCKPin);
      #ifdef calibration
      scale.set_scale(2280.f);                      // this value is obtained by calibrating the scale with known weights details in
      pinMode(dirPin, OUTPUT);
      pinMode(stepPin, OUTPUT);
      digitalWrite(dirPin, LOW);
      digitalWrite(stepPin, LOW);
      Serial.println("INITIALIZATION COMPLETE");
    void loop() {
      // put your main code here, to run repeatedly:
      String inputString;
      bool serialAvailable = false;
      while (Serial.available())
        serialAvailable = true;
        inputString = Serial.readString();
      if (serialAvailable)
        if (inputString == "start")
        else if (inputString == "stop")
        else if (inputString == "tare")
          Serial.println("-SCALE TARE-");
        else if (inputString == "up")
          Serial.println("-MOVING UP-");
          moveStepper = true;
          digitalWrite(dirPin, LOW);
        else if (inputString == "down")
          Serial.println("-MOVING DOWN-");
          moveStepper = true;
          digitalWrite(dirPin, HIGH);
          Serial.println("Unknown Command");
      if ((micros() - lastMeasurement) >= measurementDelay)
        float measurement = scale.get_units();
        lastMeasurement = micros();
      if (moveStepper)
        if ((micros() - lastStep) >= 1000000. / fastSpeed)
          digitalWrite(stepPin, HIGH);
          digitalWrite(stepPin, LOW);
          lastStep = micros();
    void startTest()
      Serial.println("-TEST START-");
      digitalWrite(dirPin, LOW);
      measurementDelay = fastMeasurementDelay;
      moveStepper = true;
    void stopTest()
      measurementDelay = slowMeasurementDelay;
      moveStepper = false;

    Step 61: Use Instructions

    Starting the machine

    To start the machine, you need to connect the bottom power rail of the breadboard (connected to VMOT pin) of the stepper motor driver to 12-24V. Then you need to connect the USB port of the Arduino Nano to a computer. Open serial monitor in Arduino IDE, and initialization should begin.

    Load cell calibration

    The load cell is not calibrated by default. Refer to this link on how to calibrate your load cell (scroll down). You may have to re-upload the Arduino code.

    Testing specimen

    This machine is originally designed to use ISO 527-2 1A specimens, but other compatible ones can be used as well. I'd recommend that with higher strength materials like PLA in 100% infill or polycarbonate, you use a smaller sized testing specimen to avoid pushing beyond the machine's limits at which the coupler will slip.

    A modified version of the ISO 527-2 1A specimen that may be better suited for this machine is attached. This modified version has an extended grip size, allowing it to latch on to the support structure without needing a grip. This means that if you're in a pinch and the grips somehow don't work, you can simply swap out the specimen and the result should be the same.

    To load the tensile testing specimen, align the two ends and place it in between the grips of the moving grip and stationary grip. Then tighten the screws down as hard as you can to clamp the specimen.

    Tensile Test

    Use the Arduino serial monitor to perform a tensile test and view the measurements.

    Here is the list of commands:

    start - Start the tensile test

    stop - Stop the tensile test or any movements

    tare - Zero the load cell measurements

    up - Move up (you cannot manually turn the motor shaft on a geared motor)

    down - Move down

    Safety precautions:

    DO NOT leave the machine unattended when powered on!

    DO NOT perform a compressive strength test!

    If the moving part is pushed beyond its boundaries there is nothing to stop bad things from happening!

    Wear goggles when performing a tensile test to prevent injuries from possible debris! (there shouldn't be dangerous debris if test is done properly)

    Step 62: The Machine in Action

    Here is a video of the tensile testing machine in action. The load cell calibration is turned off in this example so the readings aren't accurate, but that can be easily fixed by calibrating the load cell.

    The picture is the broken specimen after I tested the extended specimen to make sure it works.

    If you look closely you'll see that the machine is slightly different from the one that I showed how to design. This is because the machine was designed and made a year before this tutorial.

    Step 63: Conclusion

    Hey, I'm glad that you made it to the end! Even though it's unlikely that someone is going to follow this tutorial and make everything exactly like how I did it, I'm sure you've learned something!

    As always, if you're here looking to build one for yourself, I'd recommend that you wait until I release the final version of this machine on Thingiverse. (read introduction for update)

    Thanks a lot for taking your time to read this and have a great day!

    Tinkercad Student Design Contest

    First Prize in the
    Tinkercad Student Design Contest