← Back to all projects
01

Overview

QDD Gearbox Rev 01 mated to integrated motor housing
Rev 01 gearbox mated to the integrated motor housing

This started as a hackathon day in January 2026 with Russell Bilinski. We'd been looking at Caden Kraft's actuator work and wanted to learn more about how QDD gearboxes actually work by building one. Russell had a D6374 motor, an ODrive controller, bearings, and an encoder, so we started from there.

A QDD uses a low-ratio gearbox to get torque multiplication without the reflected inertia penalty of a high-ratio reduction. Keeping the ratio low helps preserve backdrivability and makes impedance control more practical, which is why low backlash and low friction mattered throughout this design. For this project, we went with a 5:1 planetary layout and a 3D-printed prototype on a Bambu P1S.

Collaboration: Russell Bilinski (previous Tesla battery design engineering intern) provided the motor, ODrive, encoder, and bearings, plus mentorship throughout. He built the workflow that takes Caden Kraft's pygeartrain gear profiles and generates STEP files, and is handling the H2 trainer and motor controller setup for testing. All CAD, mechanical design, prototyping, and test fixturing are my own work. Dyno testing is a joint effort.

Requirements

We set the initial requirements around backlash, backdrivability, torque, cost, and basic practicality for a student-built prototype.

RequirementTargetType
Backlash≤ 0.5°Hard
Cost< $120 CADHard
Backdrivability (friction torque)< 1 NmHard
Peak torque≥ 16 NmHard
Continuous torque≥ 12 NmHard
Efficiency> 90%Soft
Weight< 2 kgSoft

Project Status

Design CAD Calibration Rev 00A Rev 00B Requirement Tests
02

Trade Studies

We scored the major design choices with a weighted matrix on the original hackathon day before any CAD started. Gear type, ratio, and bearing type were all decided this way.

Gear Type

We compared 6 gear concepts across 7 criteria. Planetary came out on top because it was cheap, printable, and backdrivable, which were the three things that mattered most for this project.

Planetary
4.40
Sequential
4.05
Drive Belt
3.98
Cycloidal
3.73
Capstan
3.65
Strain Wave
3.65
Metric (Weight)PlanetaryCycloidalBeltCapstanStrain WaveSequential
Cheapness (0.20)533.543.54.5
Transparency (0.15)43.55434
Torque Density (0.10)443352
Precision (0.15)453.5354
DFM/DFA (0.15)434334
Efficiency (0.10)4.5454.53.54
Durability (0.15)544435
Weighted Total4.403.733.983.653.654.05

Ratio

5:1 scored highest at 4.83/5. Lower ratios are more backdrivable but give up torque multiplication; higher ratios add friction and reduce transparency. 5:1 was the sweet spot.

5:1
4.83
4:1
4.80
6:1
4.60
7:1
4.53

Bearings

Ball bearings won at 4.05/5. We weighted cost at 60% because crossed rollers scored better on performance but cost 5x more, which would have blown the $120 budget.

03

CATIA V6

The first concept pass happened in Onshape during the original hackathon day. I rebuilt the project in CATIA because I wanted to learn the CAD software used in a lot of industry work. About 60-80 hours of self-directed learning went into that assembly, much of it in rebuilding the model so future parameter changes would not break downstream parts.

The assembly is skeleton-driven: one master part holds the main parameters, reference planes, and axes. The rest of the parts reference that skeleton, so when I change a key dimension the related parts update with it.

Initial Onshape draft beside hand sketches
Initial Onshape draft from the hackathon day, beside the sketches it came from
Early model vs skeleton-driven design
First CATIA attempt vs. the skeleton-driven redesign
Rev 01 CATIA master assembly tree
Rev 01 master assembly tree in CATIA
Assembly tree diagram
Simplified assembly hierarchy showing how the skeleton drives downstream parts
Rev 01 CATIA assembly render
Rev 01 assembly render from CATIA
Rev 01 CAD cross-section
Rev 01 cross-section, carrier, bearings, and motor interface
Carrier sub-assembly tree from an earlier revision
Carrier sub-assembly tree from an earlier revision
CATIA gear mesh closeup
Gear mesh close-up from CATIA
04

FDM Tolerancing

FDM prints aren't accurate enough for bearing fits out of the box. Bores print undersized by 0.1-0.4mm depending on diameter, so every bearing interface needs a calibrated offset in the CAD model. I keep each offset as a named parameter in the CATIA skeleton, which means the nominal bearing dimensions stay clean and I can tune each fit independently.

All bearing interfaces target a firm finger-press transition fit. For this prototype, that was enough for retention without pushing the fits tighter than needed.

InterfaceOffsetStatus
Housing bearing shaft+0.10 mmValidated
Carrier bearing bore+0.10 mmValidated
Lid bearing bore+0.10 mmValidated
Carrier output shaft+0.10 mmApplied
Planet bearing bore+0.15 mmValidated
Ring-to-housing bore+0.30 mmValidated

Calibration Coupon

Before printing the full build, I printed a test coupon with representative features (bearing bores, shaft posts, clearance holes) and measured each one with calipers. The results went straight back into the CATIA offsets.

FDM calibration coupon with bearing bores, shaft posts, and clearance holes
Test coupon with representative bearing bores, shaft posts, and clearance holes
FeatureNominalMeasuredDeviationResult
Main bearing bore37.10 mm37.10 mm0.00Perfect fit
Bearing shaft post25.10 mm25.01 mm-0.09Good
Planet bore14.00 mm13.75 mm-0.25Offset increased
M3 clearance holes3.40 mm~3.00 mm-0.40Offset extrapolated

Smaller holes had worse deviation, which makes sense given FDM accuracy scales with feature size. The planet bore and clearance holes needed the largest corrections. I also ended up switching from heat-set inserts to self-tapping screws (M3: 2.6mm pilot, M4: 3.6mm, M5: 4.6mm), which was simpler and worked well for this prototype.

05

Prototyping

Rev 01 is the current assembled build. The main change is the integrated motor housing and the hardware for the dyno setup.

Rev 01 assembled with integrated motor housing
Rev 01 assembled with the integrated motor housing
Rev 01 cross-section render
Rev 01 cross-section render
Rev 01 front view
Rev 01 front view
Rev 01 next to Rev 00B
Rev 01 next to Rev 00B
Rev 01 parts laid out
Rev 01 parts laid out before assembly
Rev 01 assembled carrier closeup
Rev 01 assembled carrier closeup
06

Testing

Fixture Evolution

Early QDD test setup on 2x4s and clamps
Early dyno setup with the gearbox clamped directly and the structure built up from 2x4s

Rev 01 shifted the setup toward a more repeatable dyno fixture. We started by mounting the motor on its own so Russell could get the H2 trainer and motor controllers set up before coupling the gearbox back in. That fixturing is now figured out. The remaining work is running the motor and gearbox together against the remaining requirements.

Rev 01 motor-only dyno setup
Motor-only dyno setup for the next round of characterization
Rev 00B dyno coupling test setup
Rev 00B dyno coupling — early test setup on 2x4s

Requirement Verification

With Rev 00B assembled and the fit issues resolved, I started checking the gearbox against the project requirements.

Dial indicator measuring backlash on output shaft
T-012 backlash measurement — dial indicator on output shaft screw, motor phases shorted for EM braking
TestRequirementResultStatus
T-012 Backlash≤ 0.5°PASS
T-013 Backdrivability< 1 NmIn progress
T-020 Peak Torque≥ 16 NmPending
T-021 Continuous Torque≥ 12 NmPending
T-022 Efficiency> 90%Pending
T-023 Speed Endurance≥ 600 RPMPending
T-024 Health ComparisonNo major damagePending
07

What's Next

Rev 01 is assembled and installed in the motor housing. The remaining work is test execution. Backdrive torque is next, using a lever arm and kitchen scale to measure friction against the 1 Nm requirement. After that, the remaining checks are peak torque, continuous torque, efficiency, speed endurance, and the post-test health comparison. Geometry and fixturing are settled, so the project has shifted from build changes to finishing the requirement test sweep.