Skip to content

Bill of materials

Components needed to build one rotary inverted pendulum. Last updated 2026-05-25.

Cost estimate
One complete rig comes in at around £20 in parts (~£15 electronics + ~£5 mechanical; ~£18 total if you use the budget bearing) — over 200× cheaper than the £4,500 Quanser QUBE.

Design rationale
For why each electronics component was chosen (power supply sizing, motor selection, driver tradeoffs, decoupling, etc.), see electronics_design.md. This BOM is a pure procurement reference.

Suppliers
Unless otherwise noted, items were sourced from AliExpress. The only exception is the Bones Reds skate bearing (Amazon UK).

Variant selection
Several AliExpress listings sell multiple variants from a single product page (e.g., bearing ZZ vs RS, stepper body length, switch colour/rating, with/without included accessories). The page’s default selection is not always the right one — always check the Spec column below and pick the matching variant before adding to cart.

ItemSpecPrice (£)SourceNotes
MicrocontrollerArduino Nano (ATmega328P, 16 MHz, CH340, USB-C)£1.60AliExpressAny clone works; original 32 KB flash / 2 KB SRAM constraints assumed in firmware.
Stepper motorNEMA17 17HS4023, 1 A rated, 22 mm body£4.48AliExpressShort-body variant.
Stepper driverTMC2209 recommended (V2.0, with heat sink)£2.75AliExpress (TENSTAR ROBOT — £10.99 for 4)Silent (StealthChop2) and measurably calmer balancing than the DRV8825. Set Vref ≈ 0.9 V (0.64 A RMS, not peak). Not a like-for-like pin swap — see electronics_design.md. Cheaper alternative: DRV8825 £1.43 (Vref 0.45 V ≈ 0.9 A peak), louder and needs MICROSTEPS = 8.
Magnetic encoderAS5600 12-bit on I²C (with diametric magnet)£1.04AliExpressReads pendulum angle. RobTillaart Arduino library. Module ships with a small diametrically-magnetised disc that sits on the pendulum shaft end facing the AS5600 face.
Power adapter12 V, 2 A barrel (5.5 × 2.1 mm, UK plug)£2.59AliExpressPowers the 12 V rail; Arduino 5 V comes from the Nano’s regulator.
DC barrel jack5.5 × 2.1 mm panel-mount socket£0.12AliExpressBoard-side power input.
Power switchSPST rocker, 20 mm round, 12 V DC£1.24AliExpressInline on the 12 V rail; turns the rig on/off without unplugging.
100 nF ceramic cap104 monolithic ceramic£0.01AliExpressAcross the 12 V rail near the driver.
22 µF electrolytic cap25 V, aluminium electrolytic£0.02AliExpressBulk decoupling on the 12 V rail.
Protoboard40 × 60 mm, double-sided£0.26AliExpressAll electronics live here.
Header pinsFemale, 2.54 mm pitch, 1×40 strip£1.12AliExpressFor mounting the Nano + driver as removable modules.
ItemSpecPrice (£)SourceNotes
Ball bearingBones Reds 608 (8 × 22 × 7 mm precision skate bearing)£2.50Amazon UKSingle bearing at the arm/pendulum joint, after simplifying away the dual-bearing design. Skate bearings are designed for low friction and trivially deshield-and-relube.
Ball bearing (budget)608ZZ 8 × 22 × 7 mm (shielded — avoid the 608RS variant)£0.18AliExpressWorkable budget alternative. The same listing also sells a 608RS (rubber-sealed) variant — the RS bearings had noticeably more drag/stiction and should be avoided. ABEC-7 marking on bulk lots is meaningless; precision skate bearings (Bones Reds or equivalent) are still preferred for lowest friction.
3D-printed partsArm, base, lid, pendulum link (with embedded coin), encoder boss~£2.00 (filament)—Self-printed. <100 g PLA at ~£20/kg. STL files in model/meshes/; OnShape source. The whole assembly is press-fit — no fasteners required. Pendulum link mass, COM, and inertia tensor live in model/model.urdf (exported from Onshape with PLA-density-corrected materials) — the RL sim and the sysid pipeline both read from there.
2p coin (UK)UK 2-pence piece, 7.12 g, 25.91 × 2.03 mm£0.02—Press-fit into the pendulum link as the tip mass. Its mass, COM, and inertia are baked into the pendulum link inertia exported from Onshape — see model/model.urdf.
Motor heatsinkAluminium extruded, NEMA17 / 42 mm pattern£0.55AliExpressSticks onto the back face of the motor. Keeps the motor cool during extended training sessions.
  • Soldering iron + 60/40 leaded solder (or lead-free if preferred)
  • 3D printer (PLA / PETG, 0.4 mm nozzle, 0.2 mm layer)
  • Multimeter (continuity + Vref pot trim)
  • 30 AWG solid-core wire kit (5-roll set, Amazon UK)