Home › Diagnosis › Is my mid-drive motor dead? What you can check at home before the dealer

Is my mid-drive motor dead? Home checks before dealer diagnostics

Motor & controllerMid-drive motors (Bosch, Shimano, Yamaha, Brose, Bafang M-series)

Bosch, Shimano, Yamaha, Brose and Bafang M-series drive units are sealed and CAN-bus controlled, so you cannot back-probe them like a hub motor. You can still eliminate the battery, display, speed sensor, connectors and moisture, and learn from the noises and codes whether the drive unit itself is at fault.

Warning: Do not open a sealed mid-drive unit while it is under warranty and never with the battery fitted. Water, a 36V battery and a spinning crank arm are a bad combination; remove the battery before touching any connector.

What you need

LED patterns and what they mean

Missing start condition: speed sensor, torque sensor calibration, walk mode stuck, or firmware lockout
Speed sensor signal missing or implausible (magnet, sensor, tuning device)
Internal drive-unit fault; usually dealer diagnostics
Speed sensor not detected / torque sensor initialisation failed (pedal touched at power-on)
System error / communication error between drive unit and display or battery
Sensor and motor-side faults; check speed sensor first, then dealer
Speed sensor / torque sensor / communication error
Bearings or reduction gears; the electronics are fine

Step by step

1. Battery contacts and charge state
Remove the battery. Look at the contact block on the battery and in the frame for green corrosion, bent pins or water. Charge to 100% on the original charger and confirm the charger LED goes green. If you can safely reach the main terminals, measure: 36V systems should show 40-42V full.
If OK: Clean contacts, full charge, correct voltage. Continue.
If not: Corroded or wet contacts: clean with contact cleaner and a plastic brush, dry, refit. Battery will not charge or reads low: battery/BMS fault. Fix that first; a low battery makes a mid-drive throw communication errors that look like motor faults.
2. Display and remote: does the system boot?
Fit the battery, press the display power button for 3 seconds. On Bosch, also try the battery's own button. On Shimano hold the power button on the battery or the E-Tube display. Watch whether the display starts, shows the battery level, and whether an error code appears within 10 seconds.
If OK: System boots, shows battery level, no code or a code you have noted. Continue.
If not: No boot at all: display, display holder contacts or remote button. See the display-blank flow; Intuvia and Purion problems are covered there. The drive unit is not suspect yet.
3. Correlate the error code
Read the code and look it up under your motor brand on this site. Sort it into one of three groups: sensor codes (Bosch 503/504, Shimano W011/W013, Bafang 21/25), communication codes (Bosch 602/603, Shimano E020, Bafang 30) and internal drive-unit codes (Bosch 500/502/510, Shimano E010/E014).
If OK: Sensor or communication code: the drive unit is probably healthy. Go to the matching flow (speed-sensor, torque-sensor, display-error-no-assist) or continue with steps 4-6 here.
If not: Internal drive-unit code that survives a battery-out reset: skip to step 8. These codes rarely clear by themselves.
4. Power reset
Switch off, remove the battery, wait two full minutes, refit and power on. Do not touch the pedals or cranks while the system boots (torque sensor zeroing).
If OK: Assist returns and stays: a one-off glitch, often from a low battery or a touched pedal at start-up. Ride and monitor.
If not: Same fault or same code returns. Continue.
5. Speed sensor and magnet
Find the sensor on the chainstay (or the disc-brake-rotor sensor on newer Bosch/Shimano). Check the magnet on the spoke or rotor is present, tight, and within 3-15 mm of the sensor (Bosch spoke magnet: 5-17 mm; rim magnet must pass directly in line with the sensor). Spin the wheel and watch whether the display shows speed.
If OK: Speed reads on the display. Sensor cleared. Continue.
If not: Speed stays 0 or the sensor code appears: reposition the magnet, clean the sensor face, check the sensor cable for chafe where it runs into the motor. Most 'dead' mid-drives that show 503/504/W011 are exactly this. See the speed-sensor flow.
6. Connectors and moisture behind the motor cover
Remove the plastic motor cover(s) (usually 2-6 Torx/Allen screws). Unplug and inspect every connector going into the drive unit: main power, display/CAN, speed sensor, light. Look for green/white crust, water droplets, or a pin pushed back. Check the drain hole at the bottom of the motor is not clogged.
If OK: Dry, clean, all connectors click home. Refit. Continue.
If not: Corrosion or water: dry 48 hours at room temperature with covers off, clean pins, apply a thin film of dielectric grease, retest. If the fault appeared after a pressure wash or heavy rain, see the moisture-after-rain flow.
7. Listen: noise diagnosis with the bike on a stand
Rear wheel in the air, assist on. Pedal by hand and listen. Then pedal with assist off. Then spin the cranks backwards.
If OK: Only a smooth whine that follows assist: normal. Assist actually engages: the drive unit is not dead, the original complaint was intermittent or sensor-related. Continue to step 9.
If not: Grinding or rumbling with assist off = bearings or reduction gear; the electronics are fine but the unit needs an overhaul. Loud click once per crank rev = freewheel/sprag clutch or chainring spider. Motor spins up but the crank does not drive the chain = broken internal gear or clutch. See the motor-noise flow for the full sound table. Still no assist, no noise at all: continue.
8. Dealer diagnostic readout
A Bosch, Shimano E-Tube, Yamaha or Bafang BESST dealer reads the drive unit's fault memory, temperature history, total error count and firmware state, and can run a motor self-test in a few minutes. Ask for the printed report.
If OK: Diagnostics show a peripheral fault (sensor, cable, battery comms) or an available firmware update fixes it: cheap outcome.
If not: Diagnostics show an internal motor error, hall error, over-temperature history or the unit fails the self-test: the drive unit is confirmed as the fault. Move to step 9.
9. Repair service vs new drive unit
Get two quotes: an independent motor rebuilder (they replace bearings, gears, sprag clutch, seals and sometimes the torque sensor or PCB) versus a new unit from the dealer. Typical figures: independent rebuild 150-400 EUR/USD; a new Bosch/Shimano/Yamaha unit 700-1200 EUR/USD plus fitting; Bafang M-series 400-700. Check warranty: many drive units carry 2 years, and dealers will often replace under goodwill just outside it.
If OK: Rebuild or warranty replacement solves it. Ride-test as in step 10.
If not: Unit is out of warranty, the PCB is dead, and no rebuilder supports the model: new drive unit is the only route. On older bikes compare that cost against the bike's value.
10. Ride test after repair
Ride 10 km with varied load and at least one hill. Watch for codes, cut-outs, heat smell, and noise.
If OK: Fault gone: done.
If not: Cut-outs under load only: battery sag or a battery contact; see step 1. Noise returns: rebuild incomplete.

What you now know for sure

Manuals and video

Videos found on YouTube and checked automatically; they are other people's work, not ours.

Frequently asked

Can I test a Bosch or Shimano motor with a multimeter like a hub motor?

Not usefully. The controller, hall sensors and torque sensor are inside the sealed unit and talk to the display over CAN. You can measure battery voltage and inspect connectors, but the drive unit needs the brand diagnostic tool for a real readout.

How much does a new mid-drive unit cost?

Roughly 700-1200 EUR/USD for Bosch, Shimano and Yamaha units including fitting, 400-700 for Bafang M-series. Independent rebuilders fix bearings, gears and clutches for 150-400, which is why a noise diagnosis matters before you buy a unit.

Assist stopped after I pressure-washed the bike. Is the motor dead?

Probably not yet. Remove the battery and motor covers, let everything dry for 48 hours, clean the connectors and try again. Water in the connectors causes communication errors that mimic a dead motor. Water inside the unit itself is more serious; a rebuilder can often still save it.

Still stuck? Take a photo of the display and show it to a local e-bike workshop. Bring the bike's system name (e.g. Bosch Performance Line CX) and the exact code; that saves diagnostic time and money.