NEMA17 Self-Balancing Robot Frame, fully assembled

NEMA17 Self-Balancing Robot Frame

A three-deck, two-wheel self-balancing robot frame for a pair of NEMA17 steppers, with 90 mm set-screw wheels, tip-over skids and a top-mounted 18650 battery tray.

Complete kit 6 unique parts 17 printed pieces

This is the printed frame for the classic two-wheel inverted-pendulum robot, the one that runs on an MPU6050, two A4988/DRV8825 drivers and two NEMA17 steppers. People online often mention that these builds share the frame but not the wheels or motor mounts. This kit includes all of them. Two stepper hangers bolt under a gridded base deck. Two 90 mm wheels clamp onto the 5 mm motor shafts with an M3 set screw. Printed columns fitted with heat-set inserts stack an electronics deck and a battery deck above it. Two skid legs under the base deck catch the robot at about 27° when it falls, so the electronics never hit the floor. The robot is about 225 mm tall and 166 mm wide across the wheels. It suits a hobbyist who wants a working balancing platform to tune a PID loop on.

Every deck uses the same 120 x 80 mm outline, the same 10 mm M3 hole grid and the same corner column pattern, so the parts fit together without custom drilling. The motor hangers and skids bolt to the grid holes. Controller boards, drivers and the IMU go on the electronics deck with M3 nylon standoffs or a perfboard carrier. The battery deck carries a 3S pack of 18650 cells low in a walled tray, held by two hook-and-loop straps. Keeping the mass up high slows the fall and makes the robot easier to balance.

Assembly order:

  1. Press 2 M3 heat-set inserts into each of the 8 columns, one in each end.
  2. Bolt each NEMA17 to a motor hanger with 4 M3x8 screws. The pilot boss goes into the 22.5 mm hole, and the shaft points out through the outer face.
  3. Bolt both hangers under one grid deck with M3x12 screws, washers and nuts through grid holes (±30, ±10) and (±50, ±10). The motor shafts point outward along ±X.
  4. Bolt the two skid legs under the same deck with M3x12 screws and nuts at (0, ±10) and (0, ±20). This deck is now the base deck.
  5. Stand 4 columns on the base deck at the lower column pattern (±54, ±34) and fix them from underneath with M3x10 screws.
  6. Put the second grid deck on top. Screw it down into the lower columns, then fix 4 more columns on top of it at the upper pattern (±44, ±34), screwing up from underneath.
  7. Fix the battery top deck onto the upper columns with M3x10 screws. Strap in the 3S 18650 pack.
  8. Slide each wheel onto its shaft, leaving a 3 mm gap to the hanger. Tighten the M3 set screw onto the shaft's D-flat. Wrap the rim channel with wide rubber bands or a strip of bike inner tube for grip.
  9. Mount the controller, drivers and MPU6050 on the electronics deck, with the IMU as close to the centreline as you can, and wire through the edge notches.

Tuning notes: The hangers only fit NEMA17s with a body of 48 mm or less. Longer motors run into the skid legs at the centreline. The shaft has to stick out at least 20 mm past the motor face, which is typical, so it reaches past the set screw. If the robot oscillates slowly, move the battery down to the electronics deck. If it oscillates fast and twitchy, lower the D gain before touching P. Bare PLA rims slip on smooth floors, so the rubber tread band matters.

Every part below is a regular gallery model: open it to preview in 3D, order a print, or download the file. These are AI-designed and untested as an assembly — check fits before committing hardware.*

Printed parts

Balancer Grid Deck Plate 1 ×2

Balancer Grid Deck Plate

base deck and electronics deck (identical)

Part of the 'NEMA17 Self-Balancing Robot Frame' kit (print ×2): a 120 x 80 x 4 mm deck with 6 mm corner radii and a 55-hole M3 grid (3.4 mm holes on a 10 mm pitch). NEMA17 motor hangers and tip-over skids bolt to the grid with M3x12 screws and nuts. Two column patterns, at (±54, ±34) and (±44, ±34), take M3x10 screws into the 12 mm heat-set stack columns, and four 10 x 6 mm edge notches pass wiring between decks.

NEMA17 Wheel Motor Hanger 2 ×2

NEMA17 Wheel Motor Hanger

hangs a stepper under the base deck

Part of the 'NEMA17 Self-Balancing Robot Frame' kit (print ×2). This gusseted L-bracket hangs a NEMA17 stepper under the 120 x 80 mm base deck with the shaft pointing out toward the wheel. It has a 5 mm face plate with a 22.5 mm pilot hole and 3.4 mm holes on the 31 mm square for M3x8 screws. The 35 x 56 mm top flange has four 3.4 mm holes on the deck's 10 mm grid (x = 30/50, y = ±10) for M3x12 screws, washers and nuts. Round holes, not the slots many bought L-brackets use, so the motor can't shift under balancing loads.

90 mm Set-Screw Balance Wheel 3 ×2

90 mm Set-Screw Balance Wheel

drive wheel on the 5 mm stepper shaft

Part of the 'NEMA17 Self-Balancing Robot Frame' kit (print ×2): a one-piece wheel, 90 mm OD × 20 mm wide, that fits a NEMA17's 5 mm shaft. It has a 5.3 mm through-bore and a 24 mm hub, and an M3 set screw threads into a captive M3 nut that drops into a slot open at the hub's top face. The rim has a 14 × 1.5 mm tread channel with 3 mm lips on each side to hold rubber bands or an inner-tube strip. The 4 mm web has six lightening windows and 8 mm spokes.

M3 Insert Stack Column 4 ×8

M3 Insert Stack Column

spacer column joining the decks

Part of the 'NEMA17 Self-Balancing Robot Frame' kit (print ×8): a round spacer column, 12 mm OD × 60 mm long, that sets the 64 mm deck-to-deck spacing. Each end has a 4.0 mm × 8 mm deep bore for an M3 brass heat-set insert, with a 0.4 mm lead-in chamfer. The deck bolts on with an M3x10 screw through its 3.4 mm hole at (±54, ±34) or (±44, ±34). Six 0.8 mm flutes add grip and still leave 3.2 mm of wall around each insert.

Tip-Over Skid Leg 5 ×2

Tip-Over Skid Leg

fall stop under the base deck ends

Part of the 'NEMA17 Self-Balancing Robot Frame' kit (print ×2): a 10 mm thick triangulated skid leg that bolts under each end of the 120 × 80 mm base deck. It stops a fall at about 27°, on a 5 mm radius foot that sits 64 mm below the deck. The 35 × 8 mm flange takes two M3x12 screws through 3.4 mm holes at y = 10 and 20 mm. M3 nuts drop into captive 5.7 mm side slots, so they're held in the flange. It stays within x = ±5 mm, clear of the NEMA17 motor bodies.

18650 Battery Top Deck 6

18650 Battery Top Deck

top deck carrying the 3S 18650 pack

Part of the 'NEMA17 Self-Balancing Robot Frame' kit (print ×1): the 120 × 80 × 4 mm top deck, which bolts to the stack columns with four M3x10 screws through 3.4 mm holes at (±44, ±34). A tray with 2 mm walls rises 14 mm above the deck and holds a 3S 18650 pack in a 70 × 58 mm space. Four 20 × 3 mm slots take two 20 mm hook-and-loop straps. A 12 × 8 mm notch in the end wall and a 20 × 8 mm floor slot route the battery leads down to the electronics deck.