Europe/Istanbul
All Projects

Bionic Arm — 3D-Printed Myoelectric Prosthesis

A low-cost, tendon-driven, myoelectric prosthetic hand: from EMG surface electrodes to printable mechanics — with a sub-$500 bill of materials.
August 10, 2025
Prosthetics
Myoelectric
EMG
3D Printing
Tendon-Driven
RehabTech
“Replacing a missing hand exposes the true complexity of the human body.” — project report, Rev 1.41
This project explores a myoelectric prosthetic arm controlled by surface EMG. The goal is to approach natural hand function while keeping the material cost under $500, producing a platform that’s practical for research and affordable for real users. Motivation & scope (from Rev 1.41):
  • Physical design: printable, robust mechanics that mimic human hand kinematics.
  • Control scheme: intuitive EMG control for basic tasks (grasp, release, pinch).
  • Practicality: useful in day-to-day tasks, not just lab demos.
  • Affordability: consumer prostheses often cost $20k–$40k; this build targets sub-$500 materials.

SubsystemSpec
ActuationTendon-driven fingers (artificial ligaments via cord)
TransmissionBowden/cord routing with captive pulleys
EMG sensing2–4 channel surface EMG (skin electrodes), analog front-end → ADC
ControlMicrocontroller reading EMG envelopes → grip state machine
GripsOpen/close, pinch, tripod, power grasp (configurable)
Hand DOFCoupled flexion per finger; thumb opposition (mechanical option)
MaterialsPLA/PETG rigid + TPU compliant pads/sleeves
Target cost< $500 (materials)
Note: EMG pipeline uses band-pass (~20–450 Hz), notch (50/60 Hz), rectification, and moving RMS/MA envelope before classification.

CAD render: tendon network to finger phalanges
CAD drawing

  • Why tendons? Compact, printable, tolerant to misalignment, easy to service.
  • Links & joints: printed phalanges with captive pins and low-friction bushings.
  • Pads & contact: TPU grip pads for friction; swappable liners for wear.
  1. Acquire: surface electrodes → EMG preamp (gain, BP/Notch).
  2. Condition: rectify → moving RMS / moving average envelope.
  3. Map: thresholds / simple classifier → grip state machine.
  4. Command: target tendon displacements (position/velocity) with soft limits.
EMG_raw → BP(20–450Hz) → Notch(50/60Hz) → 
Rectify → RMS(τ≈100–200ms) → Thresholds/Features → Grips
  • Power grasp, pinch, tripod, open.
  • Long-press / co-contraction to cycle grips; envelope magnitude → speed scaling.
  • Safety: timeout watchdog, stall detection (current/pos error), soft endstops.

Commercial hands (e.g., predefined-grip systems) often couple finger joints, limiting fine control. Research prostheses push mechanics/control but can suffer in robustness and cost. This build aims at a middle ground: printable mechanics + simple, reliable EMG control suitable for real-world trials.
  • Prints: 0.2–0.28 mm layers; PETG for high-stress parts, TPU for compliant pads.
  • Tendons: low-creep cord (e.g., UHMWPE/Dyneema class), crimped or knotted with printed retainers.
  • Assembly: captive pins, heat-set inserts where service is expected.
  • Serviceability: tendon swap and pad replacement in minutes.

  • Sequential finger actuation confirmed (see video above).
  • EMG grip switching stable with simple envelope thresholds.
  • Printable mechanics tolerate repeated open/close cycles; pads improve grip.
This is an R&D prototype intended for research/education. It is not a medical device.

  • 📄 Project slides (PDF)Download
  • 📘 Full report Rev 1.41 (PDF)Download

  • Add adaptive thresholds per user calibration (on-device).
  • Evaluate multi-channel EMG for more reliable grip inference.
  • Long-term durability testing (cord wear, joint play, pad abrasion).
  • Explore haptic feedback (vibration) for closed-loop grip force cues.

TL;DR A printable, tendon-driven, myoelectric hand under $500 in materials: EMG → simple grip logic → reliable everyday grasps. Built to be hacked on, serviced, and actually used.

Хочешь — могу подстроить формулировки под русский/турецкий, добавить блок «Bill of Materials» с ориентировочными позициями и ценами, или вставить компонент для скачивания, если у тебя есть собственный `<Download />`.