top of page
gym

RepTech

RepTech streamlines your workout by tracking of weight lifted, sets, and reps by integrating digital monitoring into legacy gym equipment. Starting from an idea, I engineered the CAD design, developed the code, and built the unit, and tested the prototype.

System Overview

The RepTech system is designed for straightforward integration onto the top plate of existing weight stack of pin-selected machines. The device features a primary housing assembly that contains dual reel mechanisms functioning as string encoders. One of the string encoders, when extended, detects repetitions. When the second string encoder is extended from the device, it detects the weight set by the user. Linear displacement of the cable drives a rotary encoder within each reel, generating positional data that is processed by an Arduino-based control system.

 

User interaction is facilitated through two momentary input buttons and an onboard LCD interface. The system is powered by an external battery supply and incorporates a Bluetooth module for wireless data transmission to a user device. All mechanical components were designed for additive manufacturing and produced via 3D printing.

Mechanical Design

The system is housed in a 3D-printed enclosure integrating the Arduino with mount, dual reel assemblies, power supply and bracket, primary mounting interface, enclosure lid, LCD display, and dual control buttons. Each reel assembly consists of multiple 3D-printed components, a coil spring, and a rotary encoder. A cable wound around the coil spring extends and retracts, transmitting motion directly to the encoder. Encoder output is used to detect weight stack displacement, while a secondary encoder linked to the weight pin determines the selected load. The internal configuration of the custom string encoder is shown to the right. The assembly utilizes cap screws for simplified installation and maintenance, and a dedicated Arduino mount secures the controller within the enclosure.

Electrical

Electrical Desgin

The system comprises an Arduino microcontroller, a 9V battery power supply, a Bluetooth module, two rotary encoders, two momentary pushbuttons, and an LCD interface. The battery enables standalone operation independent of external power sources. The LCD, Bluetooth module, pushbuttons, and encoders are all powered via the 5V rail.

The momentary pushbuttons provide user input for initiating a new set and terminating a workout session. Upon completion, the system displays “Exercise Complete” and transmits recorded data to a paired mobile device via Bluetooth. Each rotary encoder generates a pulse signal during rotation, which is processed by the Arduino to detect and quantify user activity.

Software

The system is implemented on an Arduino using ~200 lines of C++ code, organized into two main functions: repetition tracking and weight selection.

Encoder 1 tracks repetitions, while Encoder 2 detects selected weight. Adjusting the weight pin activates Encoder 2, which maps its position to discrete load values (e.g., 10, 20, 30 lbs). During exercise, movement of the weight stack drives Encoder 1, producing pulse signals. A repetition is counted only after a minimum pulse threshold is met to ensure signal validity.

Pushbuttons control user interaction: one resets and starts a new set, and the other ends the workout. Upon completion, the system transmits a workout summary to the user’s mobile device via Bluetooth.

3D Printing.jpg

Prototype Manufacturing

The system is primarily constructed from custom 3D-printed components, with over 10 uniquely designed parts modeled in Fusion 360. The final iteration required more than 40 hours of printing, following multiple prototype cycles involving iterative testing and redesign.

Assembly was completed using standard steel hardware (socket cap screws, washers, and nuts). The process included installation of the reel assemblies, mounting of the Arduino PCB and sensor wiring harnesses, integration of the LCD, and soldering of the pushbuttons. Final assembly involved securing an external cover over the top to enclose and protect all internal electronics and mechanical components.

Testing

To evaluate the system, a functional prototype of a lat pulldown machine with an adjustable weight stack was constructed. The frame was fabricated from wood, with individual weight units represented by wood blocks. Cable guidance was achieved using custom 3D-printed pulleys, and a steel wire served as the lifting cable.

The RepTech Sensor was mounted atop the weight stack, with Encoder 1 positioned at its fully extended range and anchored to the top of the machine. Encoder 2 was affixed to the weight selection pin, enabling real-time tracking of the effective weight on the stack. During operation, when the cable is pulled to lift the weight stack, the system incrementally updates the live repetition counter on the display.

This configuration replicates the kinematics and user interaction of a commercial gym lat pulldown machine. Workout data, including total repetitions and selected weight, is transmitted via the integrated Bluetooth module to the user’s mobile device upon completion.

System Testing Video

This video demonstrates the functionality of the RepTech Sensor system. Upon power-up, the user selects the desired weight via the weight pin, with corresponding load values displayed on the LCD in real time. During exercise, movement of the weight stack is detected and processed as repetition counts. The LCD displays the weight being lifted, live rep count, and what set the user is on.

The left pushbutton is used to terminate a set, allowing for weight adjustment and initiation of subsequent sets. Upon completion of the workout, the right pushbutton ends the session and triggers Bluetooth transmission of workout data, including sets, repetitions, and selected weight, to the user’s mobile device.

I want to help build the future we can only dream of.

bottom of page