A step-by-step guide to building your own FES cycling setup for spinal cord injury rehabilitation — open source, $317 in parts, and built by people who understand the urgency.
FES cycling (Functional Electrical Stimulation) uses precisely timed electrical pulses to trigger muscle contractions in a coordinated pedaling pattern. It's used in SCI rehabilitation to maintain muscle mass, drive BDNF (the growth factor that supports neural repair), improve circulation, and — in some cases — contribute to motor recovery. Commercial FES bikes cost $12,000–$20,000. SparkCycle builds the same function from commodity parts you can buy today on Amazon and eBay.
| # | Part | What it does | Where to get it | Budget cost |
|---|---|---|---|---|
| 1 | Recumbent stationary bike or upright + magnetic trainer |
Holds the cranks. Provides resistance. Low transfer height from chair. | Facebook Marketplace, Craigslist | $60 |
| 2 | Foot cages + ankle straps ⚠ CRITICAL — do not skip |
Keeps feet on pedals when legs can't grip. Without this the foot will slip and the crank will spin freely. | Amazon, any bike shop | $25 |
| 3 | Surface electrodes 4×4" self-adhesive, reusable |
Couples the electrical pulse to your muscle through intact skin. 4 minimum for both quads. Add 2–4 more for hamstrings/glutes later. | Axelgaard PALS Platinum (axelgaard.com or Amazon) | $28 |
| 4 | FES / TENS stimulator ⚠ TRY $30 TENS FIRST |
Generates biphasic charge-balanced pulses. Triggers visible quad contraction. Try a cheap TENS unit first — if your quads fire, you're done. | eBay (used Zynex NexWave ~$80) · Amazon (TENS ~$30 to test) | $30–$160 |
| 5 | Hall effect sensors × 5 A3144 + 6mm neodymium magnets |
Reads crank angle so the controller knows when to fire each muscle. Without this your stim fires randomly — that doesn't work. | Amazon, AliExpress | $8 |
| 6 | Arduino Nano clone | The brain. Reads crank angle, runs timing logic, fires output pins to trigger the stimulator channels. | Amazon, AliExpress ($3–5 for clones) | $12 |
| 7 | 4-ch optocoupler relay board ⚠ SAFETY — not optional |
Electrically isolates the Arduino from the stimulator. Your body never sees logic ground from a wall-powered computer. This is a $9 safety requirement. | Amazon "SainSmart 4-channel relay" | $9 |
| 8 | USB power bank | Powers Arduino + relay. Stimulator has its own supply. | You already have one. | $0 |
| 9 | Trunk support + lap belt if trunk control is affected |
Keeps you safely upright during pedaling. Check trunk control first — many people don't need this. | Hardware store + climbing shop | $15 |
| SparkCycle total (budget build) | $317 | |||
| MOTOmed Viva2 (commercial FES bike) | $14,000 | |||
| RT300 FES Ergometer (Restorative Therapies) | $16,000+ | |||
| ⚡ SparkCycle vs commercial — cost ratio | ~50× cheaper | |||
Do this before buying the bike. Before buying the Arduino. Before buying anything except a $30 TENS unit and a pack of electrodes. The question this step answers: do your quads respond to surface electrical stimulation? If yes, everything else in this guide works. If the response is weak, you'll need a proper FES unit instead of a TENS unit — but you'll know that now, for $30, rather than after building the whole system.
Electrode placement for quads:
Set the TENS to: 35 Hz frequency · 250–300 μs pulse width · start at 20mA. Increase in 5mA steps until you see a visible leg kick (the knee extends). Most quads respond at 40–80mA. If you see a kick — you're done, TENS is your stimulator. If you can't get a good contraction even at maximum, you'll need a proper FES unit (Zynex NexWave used on eBay, ~$80/unit, you need 2).
No visible leg kick even at max TENS current. This happens — especially after long periods off a bike or years in a chair. The muscle is still there. Satellite cells are still there. The excitability is low and the tissue is atrophied, but none of that is permanent. Before you write off the TENS test, work through this list in order. These are sorted by cost and probability of working — lowest cost / highest chance first. Try each level for 3–4 weeks before moving to the next. Most people who failed the initial TENS test will pass it again inside 60 days if they stack levels 0–2 seriously.
Atrophied SCI muscle is almost always in a catabolic state — not because of the injury, but because caloric needs dropped after injury and protein intake followed. Muscle protein synthesis needs a leucine spike above ~3g per meal to actually trigger. Below that threshold, dietary protein is just oxidized for energy.
These aren't supplements — they're deficiency corrections that nearly every chronic SCI patient needs. Creatine monohydrate is the most evidence-backed legal compound for atrophied muscle: it replenishes phosphocreatine in motor units that fire rarely, directly increasing the energy available on the next stimulation attempt.
Once the basic substrate issues are addressed, these two compounds attack the problem from the opposite end — suppressing muscle protein breakdown rather than increasing synthesis. In immobilized populations, breakdown is the dominant force. Slow the breakdown and the net equation tips toward retention.
BFR cuffs inflate around the proximal thigh (~160–180 mmHg), creating partial venous occlusion during whatever movement is possible. With passive cycling or NMES-assisted movement, BFR amplifies the anabolic response by accumulating metabolites (lactate, H⁺) that locally trigger mTOR signaling and satellite cell activation — the same pathway that high-load exercise triggers, but without the mechanical load. This is one of the few interventions that can drive satellite cell fusion in a partially-loaded population.
This is the honest edge of what the literature covers. Satellite cell activation in chronically denervated SCI muscle is genuinely understudied. Here's what the research shows exists, what's missing, and what the community could actually contribute data on:
The reason this is Level 4 isn't because it's less important — it's because it requires the most patience and the least certainty about outcomes. Levels 0–2 will very likely improve your TENS response. Level 3 might. Level 4 is where you become a contributor to the research, not just a recipient of it.
After 6–8 weeks on Level 0–2: re-run the TENS test from Step 1. Most people who failed initially will have a measurable response at this point. If still no kick: continue NMES + nutrition protocol, add BFR, and consider the Level 4 documentation path. The circuit isn't gone — it's quiet.
Now that you know your quads respond, get a bike. Find a used recumbent stationary bike ($30–80 on Facebook Marketplace or Craigslist). Recumbent is better than upright for SCI — lower seat, easier transfer from a wheelchair, natural leg position with gravity helping you stay seated.
If you already have an upright bike, put it on a magnetic trainer stand ($25–40). Both work.
Also consider a lap belt or hip strap if your trunk control is limited. A simple climbing harness chest strap zip-tied to the seat back works well. Test that you can sit stably on the bike for 5 minutes before adding any electronics.
This is what makes SparkCycle work instead of just shocking you randomly. The Hall effect sensor reads a magnet on the crank arm and tells the Arduino where in the rotation you are. Each leg's quads fire in the correct phase — right quad from 350° to 90°, left quad from 170° to 270°.
For budget builds: 5 sensors at 72° spacing gives enough resolution to distinguish quad-on vs quad-off phase. For a cleaner build: one AS5048A magnetic rotary encoder on the bottom bracket axle gives continuous angle. Both work fine.
This step is non-negotiable. The optocoupler board creates optical isolation between the Arduino (powered by a computer or USB charger) and the stimulator (connected to your body). A direct connection could create a ground loop through you. The $9 board prevents this completely.
Download fes_controller.ino from this repo and flash it to your Arduino Nano using the Arduino IDE (free, arduino.cc).
First session is a calibration. Not a workout. You're learning how your body responds to this setup, not hitting a training dose yet.
The research dose that shows BDNF upregulation and meaningful neuroplasticity signal is 30 minutes × 3–5 sessions per week. You don't get there on day one. Ramp slowly — your skin, muscles, and overall system need to adapt.
The cadence doesn't need to be high. 20–40 RPM drives the CPG (central pattern generator) circuits effectively. 40+ RPM starts to look like actual cycling. Both are valid. Both send signal.
A small motor on the crank spindle — controlled by a thumb throttle on the handlebar — can help maintain pedaling rhythm when FES alone isn't producing enough torque, or during rest intervals when you want to keep the legs moving passively. Think of it as power steering for the crank. You control the assist level; the FES still drives the muscle timing.
| Part | What it does | Source | Cost |
|---|---|---|---|
| 24V DC gear motor (25–50W) with encoder output preferred |
Drives the crank shaft via a chain or belt coupling. Low RPM, high torque = right spec for cycling assist. | Amazon, AliExpress — search "25W 24V gear motor" | $35–55 |
| 24V DC motor controller (PWM) BTS7960 or IBT-2 module |
Lets the Arduino set motor speed via PWM signal. Handles up to 43A — massively oversized for this use, which means it runs cool and never fails. | Amazon "IBT-2 motor driver" | $8 |
| Thumb throttle 0–5V or 0–3.3V hall-effect type |
Mounts on the handlebar. Outputs 0.8–4.2V proportional to thumb position. Arduino reads this as assist level 0–100%. | Amazon "ebike thumb throttle" | $12 |
| 24V 5Ah LiFePO4 battery pack or 6× 18650 cells in series |
Powers the motor. LiFePO4 is safer than Li-ion for DIY — no thermal runaway risk. | Amazon — search "24V LiFePO4 5Ah battery" | $45 |
| Chain or toothed belt coupling | Connects motor output shaft to crank spindle. A simple #25 chain and two sprockets works fine at this torque level. | Amazon, local bike shop | $15 |
| Motor assist add-on total | ~$115 | ||
The firmware reads the throttle analog value and maps it to a PWM duty cycle on the motor driver. At 0% throttle: motor off, FES does all the work. At 100%: motor provides full assist.
FES cycling is not experimental. It has been studied for 30+ years. The core findings are consistent:
BDNF upregulation — Aerobic exercise (including FES cycling) elevates brain-derived neurotrophic factor. BDNF supports synaptic plasticity, axon sprouting, and motor circuit reorganization. The dose is ~30 min at sufficient intensity, 3–5×/week. (Vaynman et al. 2004, Cai et al. 2006)
CPG entrainment — The lumbosacral spinal cord contains central pattern generators for locomotion. Even in complete SCI, these circuits remain intact below the injury. Rhythmic cycling input — whether voluntary or FES-driven — can drive these circuits and maintain their excitability. (Edgerton et al., Harkema et al.)
Muscle maintenance — SCI causes rapid muscle atrophy and fat infiltration in paralyzed limbs. FES cycling slows this, maintains cross-sectional area, and improves insulin sensitivity. These matter for long-term health regardless of functional recovery outcomes.
Pre-injury athletic history — Cyclists and runners have higher baseline CPG circuit weight (LTP-consolidated via years of training). The Hebbian decay after injury operates on a higher starting value. This means more circuit residue survives the same chronicity. Chronic injury ≠ exhausted circuit. See signal_scaling_law.py for the formal model.