logo
Kurashizu Blogwhere ideas flow
  • Home
  • News
  • Blog
  • About
  • Home
  • News
  • Blog
  • About

© 2026 Kurashizu. All rights reserved.

Admin·New Post·Service Status
Powered by Cloudflare·01.11.26
← Back to news

Show HN: I'm a 15 Year Old Wannabe Engineer, This Is a Cycloidal Gearbox I Built

Original article
github.com|273 points|91 comments|by tomilan|Aug 2, 2026

⚙️ Project: 3D Printed Cycloidal Gearbox

Created by a 15-year-old aspiring engineer

This project focuses on the creation of a cycloidal gearbox—a mechanical system designed to efficiently convert high-speed rotation into high-torque output.


🛠️ The Evolution of the Design

The development of this gearbox happened in three distinct stages, moving from a proof-of-concept to a fully functional mechanical drive.

Iteration History

  • Version 1: A manual, hand-operated prototype. Its primary purpose was to verify that the custom Python generator was producing accurate geometry.
  • Version 2: An attempt at a "micro" version with a 1:9 ratio. The goal was to match the footprint of a NEMA 17 motor. However, because 3D printing lacks the extreme precision required for such small tolerances, this version was unsuccessful.
  • Version 3: The first fully operational version powered by a NEMA 17. By increasing the overall footprint, the design allowed for more forgiving tolerances, resulting in a stable, working gearbox.

💻 The Python Generator

To create the complex curves of the cycloidal disk, I developed a Python script inspired by a Building a Cycloidal Drive with SOLIDWORKS guide.

The Mathematics

The geometry is defined by the following parametric equations:

x=Rcos⁡(t)−Ecos⁡(Nt)−rcos⁡(t+ψ)x = R \cos(t) - E \cos(N t) - r \cos(t + \psi)x=Rcos(t)−Ecos(Nt)−rcos(t+ψ) y=Rsin⁡(t)−Esin⁡(Nt)−rsin⁡(t+ψ)y = R \sin(t) - E \sin(N t) - r \sin(t + \psi)y=Rsin(t)−Esin(Nt)−rsin(t+ψ)

Where the angle ψ\psiψ is calculated as: ψ=atan2(sin⁡((1−N)t),RE⋅N−cos⁡((1−N)t))\psi = \text{atan2}\left(\sin((1 - N) t), \frac{R}{E \cdot N} - \cos((1 - N) t)\right)ψ=atan2(sin((1−N)t),E⋅NR​−cos((1−N)t))

Key Note: The resulting reduction ratio is 1:(N−1)1 : (N - 1)1:(N−1), with the rotor spinning in the opposite direction of the input shaft.

Setup & Execution

To use the generator, follow these steps:

  • Clone the repository from GitHub.
  • Open Fusion 360.
  • Navigate to Scripts and Add-Ins using the shortcut Shift + S.
# Example: Cloning the project
git clone https://github.com/tom-ilan/cycloidal_gearbox.git

Configurable Parameters

ParameterSymbolDescription
PinsNNNNumber of outer pins (Rotor lobes = N−1N-1N−1).
Pitch RadiusRRRDetermines the outer housing size (must be checked against rmaxr_{\text{max}}rmax​ to avoid undercutting).
Profile Offset-Sets the angular step and clearance (use a positive value for 3D printing gaps).
Bolt Radius-Defines the placement of output pins and rotor holes (rpin+Er_{\text{pin}} + Erpin​+E).

🚀 Deep Dive: Version 3

The files for this specific iteration are located in cad_models/version_3.

Technical Specifications

MetricDetail
Gear Ratio1:9 (N=10N=10N=10 pins, 9 lobes)
Outer Diameter90 mm (9.0 cm)
MotorNEMA 17 Stepper (42bygh40-A24dh)
MaterialPLA
Hardware4× M3 ×\times× 8 screws, 2× 6704 Bearings
Tolerance Offset+0.15 mm
Output Torque1.3 N⋅m±0.007 N⋅m1.3\text{ N}\cdot\text{m} \pm 0.007\text{ N}\cdot\text{m}1.3 N⋅m±0.007 N⋅m
Input Torque0.21 N⋅m±0.007 N⋅m0.21\text{ N}\cdot\text{m} \pm 0.007\text{ N}\cdot\text{m}0.21 N⋅m±0.007 N⋅m
Efficiency66%±0.22%66\% \pm 0.22\%66%±0.22%

Cycloidal Gearbox Concept

📈 Potential Improvements

To further optimize the system, the following upgrades are planned:

  1. Reduce Friction: Swap the static housing pins for MR128 bearings to boost efficiency.
  2. Increase Rigidity: Replace the 3D printed output pins with M2 screws and metal caps to handle higher torque loads.