Skip to content

A noob's journey into CAD and engineering: Building a 3d-printed motorized tape measure driver for a Rube Goldberg device, complete with design iterations, challenges, and successes.

Notifications You must be signed in to change notification settings

ArshansGithub/Motorized-Tape-Measure-Driver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

Motorized Tape Measure Driver

Introduction

This project was part of my AP Physics 1B final project, specifically the last energy transfer within a larger Rube Goldberg contraption. A domino would fall, triggering a sensor, which in turn activated the motors to drive a tape measure vertically. I originally aimed for a 25-foot extension to break my class record (and last year’s), but due to practical limitations, I managed around 8 feet (still broke this year's record).

I’m still fairly novice to CAD and mechanical design, so this build was a crash course in tolerances, iterating on prototypes, and troubleshooting unexpected mechanical issues. I used my Bambu Lab P1S to print most of the parts in both PLA and TPU filaments.

Working.mov
Main Assembly Photo Mechanism in Action

Design Overview

Final Design

The final device is fairly compact, designed to fit within a 60 × 60 × 60 cm box, with these main features:

  • Two Motorized Wheels:
    Grip the tape measure firmly to move it upward (and could move it downward, though unused).

  • Baseplate:
    A 3D-printed plate that houses the tape measure and supports the modular inserts.

  • Modular Inserts:
    Hold the motors, bearings, and steel shaft. These inserts are easily swappable for quick reprints and testing.

  • TPU Treads on Wheels:
    Provide traction. One tread design includes small diamond-shaped grips, and another has short walls to cradle the tape measure’s concavity.

Key Components

  • Motors: Two uxcell GA12-N20 6V 150RPM DC Gear Motors (encoders unused).

    Motor Mount
  • Baseplate: 3D-printed in PLA, with embedded nuts for mounting.

    Baseplate
  • Wheel Hub:
    3D-printed in PLA, with embedded nuts for mounting. Circular hole for motor gearbox shaft coupler

    Wheel Hub
  • TPU Treads:
    Flexible, rubber-like grip that I could manufacture at home.

    TPU Tread 1 TPU Tread 2
  • Modular Inserts:
    3D-printed in PLA, with embedded nuts for mounting.

    Modular Insert 1 Modular Insert 2
  • 608 Bearings & Steel Shaft:
    Stabilize the motor shafts to prevent bending.

    608 Bearing Mount
  • Tape Measure:
    A sturdy, heavy-duty type that isn’t too glossy.


Process and Iterations

Initial Concept

Initially, I wanted one motorized wheel paired with a passive wheel on the other side. The tape measure would run through these wheels, and the single motor would drive it upward. My early sketches were simple, but I quickly realized I’d need stronger support and better stability.

Prototyping

  1. Bent Shafts:
    Applying enough pressure to grip the tape measure caused the motors’ tiny shafts to bend.

  2. Low Torque:
    A single motor lacked the power to extend the tape more than a few feet.

  3. Alignment Issues:
    Even a slight misalignment caused the tape measure to slip or bind.

Solution Approaches

  • Added a steel rod and 608 bearings for extra shaft support.
  • Shifted to two motorized wheels to increase grip and torque.
  • Created modular inserts so I could easily reprint smaller parts (instead of reprinting a massive, single-piece baseplate) whenever I needed to tweak tolerances.

Tread Evolution

  • Early Tread Design: Inspired by FRC-style swerve wheels with small, tapered cylinders for grip.
  • Later Tread Design: Changed to tapered diamonds and added sidewalls to keep the tape measure’s curved shape from slipping off. This final approach stabilized the tape and allowed it to go higher before collapsing.

Technical Details

Materials and 3D Printing

  • PLA for most structural parts (baseplate, motor mounts, modular inserts).
  • TPU for wheel treads to achieve a rubbery grip.
  • Printed on a Bambu Lab P1S.
  • Embedded Nuts: I paused the 3D prints at specific layer heights to insert nuts. This technique was used for both the baseplate and modular inserts to allow secure bolt mounting.

Electronics

  • Controller: Arduino Mega 2560
  • Motor Driver: HiLetgo L298N
  • Time-of-Flight Sensor (TOF): VL53L1X for detecting the falling domino (final trigger)
  • Power Supply: 30V 10A Bench Power Supply. Initially planned for batteries, but the rules allowed an external plug.
  • Misc. Wiring: Jumper wires, alligator clips, ferrules—no soldering required.

How It Works (Software Flow)

  1. Initialization: The VL53L1X sensor measures a baseline distance repeatedly, averaging values for an offset.
  2. Domino Trigger: When a domino falls in front of the sensor, the measured distance changes significantly. If this difference crosses a threshold, the Arduino powers both motors.
  3. Motor Control: Both wheels spin at full speed to grip the tape measure and extend it upward. There’s a built-in time limit in the code to stop the motors eventually, so they don’t run indefinitely.
  4. Stall Situation: In practice, once the tape measure reached around 8–9 feet, the wheels began to stall. Ironically, this stalling “locked” the tape in place at a height high enough to impress my classmates, so I left it that way for the final demonstration.

Testing and Results

Performance

  • Managed an 8-foot extension (short of the 25-foot goal, but still exceeded most classmates’ designs).
  • The stall at 8 feet wasn’t intentional at first, but it worked to my advantage, preventing tape collapse.

Challenges Overcome

  • Shaft Bending: Solved with 608 bearings and a steel rod support.
  • Misalignment: Reduced by carefully spacing the wheels and creating precisely toleranced inserts.
  • Tape Collapsing: Addressed by inclining the entire mechanism so the tape measure’s natural concavity helped support itself.

Lessons Learned

  1. CAD Tolerances Are Critical: Even a 0.1 mm error in Fusion 360 can cause major alignment problems in the final assembly.
  2. Mechanical Support: Tiny motors need bearings and thicker shafts to prevent bending under load.
  3. TPU is Tricky But Rewarding: Getting the right tread design took a few tries, but once dialed in, it provided the grip I needed.
    You don’t want to know how many times it clogged my 3d printer...
  4. Iterate Early and Often: Modular inserts saved me from reprinting the entire baseplate each time something changed.

Future Improvements

  • Angle the Motors: Rather than manually tilting the entire mechanism, I’d design angled motor mounts so the tape measure remains stable upright.
  • Higher-Torque Motors: Ideally, 12 V motors with more torque would prevent stalling and might reach that 25 ft mark.
  • Custom Tape Measure Housing: Integrating the tape measure into the baseplate more tightly could reduce overall size and improve reliability.

Conclusion

Building this motorized tape measure driver was a huge learning experience for me as an aspiring engineering student, novice to CAD and mechanical design. Although I fell short of my ambitious 25-foot extension goal, I managed to reach about 8 feet—enough to stand out in my AP Physics 1B class. The project gave me hands-on practice in CAD (Computer Aided Design), torque requirements, tread design, and the value of constant iteration.


Parts Used


Source Code

View the Arduino Code Here


Plastic Graveyard

Behold the resting place for every melted misadventure, spaghetti-laden failure, and tragically under-extruded prototype. It’s a towering testament to how many times I whispered, “It’ll be fine,” right before it absolutely wasn’t. May these casualties of CAD forever remind us to measure twice—and pray once.

Don't be like me

About

A noob's journey into CAD and engineering: Building a 3d-printed motorized tape measure driver for a Rube Goldberg device, complete with design iterations, challenges, and successes.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages