๐Ÿ”ง Hardware ยท All Roles ยท Intermediate

V5 Motor Troubleshooting

Symptom โ†’ cause โ†’ fix. Use this when a motor is behaving wrong and you need to diagnose it in under 5 minutes. Also includes a pit diagnostic protocol for between-match emergencies.

When to use this: A motor is behaving unexpectedly โ€” too hot, wrong speed, not responding, or acting erratically. Read the symptom row that matches what you're seeing.
๐Ÿ” Symptom โ†’ Cause โ†’ Fix Table
SymptomMost likely causeFix
Motor overheating (temp warning on Brain)Gear ratio too high, mechanism jammed, or motor running stalled against hard stopCheck for jams. Verify the gear ratio matches the motor's RPM setting in code. Add motor temperature monitoring with motor.get_temperature(). Consider a different cartridge.
Port not responding (Brain shows "?" on port)Loose cable connection, damaged port, or wrong port number in codeReseat the cable both ends โ€” firm click. Try a different known-good port. Swap cable. If port is dead, reassign to an open port and update code.
Motor runs at wrong speed or reverses unexpectedlyWrong cartridge installed, reversed polarity in code, or incorrect gear ratioCheck physical cartridge color (red=100rpm, green=200rpm, blue=600rpm) matches code. Check port sign โ€” negative reverses direction. Verify gear ratio constant.
Motor shakes or vibrates under loadShaft misalignment, loose shaft collar, or missing bearingEvery shaft needs support on both ends. Check all collars. Verify shaft is not bent โ€” roll on flat surface. Add bearing block if missing.
Motor makes grinding noiseMechanism collision inside motor, gear mesh too tight, or debris in gearboxRun motor unloaded โ€” still grinding? Replace motor. If only under load: check gear mesh distance and alignment.
Motor loses position under load (arm drops)PID not tuned for holding, or brake mode not setSet motor.set_brake_mode(pros::E_MOTOR_BRAKE_HOLD). Alternatively add position hold in code: if joystick near zero, hold last position.
Motor spins freely when it should holdBrake mode set to COAST instead of HOLDCheck brake mode setting in code. Should be HOLD for arms and lifts, BRAKE for drive motors.
Motor stutters or cuts out intermittentlyDamaged cable, borderline port connection, or brownout under loadWiggle cable while robot is running โ€” if symptoms change, replace cable. Check battery charge. Add current limiting in code if motor draws spikes.
Motor draws too much current (brownout)Mechanism physically blocked, or too much load on cartridgeCheck for jams at full range of motion. Consider higher-torque cartridge (lower RPM). Distribute load across more motors if possible.
All motors slow down simultaneouslyBattery low or bad connectionCheck battery level. Swap for a fully charged battery. Check battery cable seating. Inspect battery connector pins for damage.
โฑ 5-Minute Pit Diagnostic Protocol
Use between matches when a motor is misbehaving. You have 3โ€“5 minutes. Do these steps in order and stop when you find the problem.
1
Check the Brain port screen. Any port showing "?" = bad cable or dead port. Any port showing red temp = overheating. Takes 10 seconds.
2
Reseat all cables on the affected subsystem. Press each cable until you feel a click. Particularly the motor end. Do not skip this step โ€” loose cables cause 40% of "broken motor" reports.
3
Move the mechanism by hand with robot off. Does it move freely through its full range of motion? Any hard stop, resistance, or grinding = mechanical problem. Any clicking = loose shaft collar or bearing.
4
Run a quick driver test. Power on. Drive normally for 30 seconds. Does the problem reproduce? Note exactly when it happens: startup, sustained use, under load, or during specific maneuver.
5
If motor is physically damaged, swap it. A motor swap takes 90 seconds with practice. Do not attempt complex repairs between matches. Swap now, diagnose at home.
๐ŸŒก Understanding Motor Temperatures
TemperatureStatusAction
Under 40ยฐCNormal operating temperatureNone needed
40โ€“55ยฐCWarm but functionalMonitor. Consider reducing load or speed
55โ€“65ยฐCHot โ€” performance may reduceV5 motors throttle power above 55ยฐC. Fix the root cause (jam, ratio, overuse)
65ยฐC+Motor protecting itselfStop immediately. Let cool 5+ minutes. Diagnose root cause before running again

Read temperature in code: int temp = motor.get_temperature(); โ€” returns Celsius as integer.

⚙ STEM Highlight Physics: Thermal Physics & Motor Overload Diagnosis
Motor overheating applies thermal physics: power dissipated as heat equals I squared times R. When a motor is stalled or heavily loaded, current spikes while velocity drops to zero — maximum heat, minimum cooling from airflow. VEX V5 motors have thermal protection at 85 degrees C. The root cause is almost always mechanical: binding, undersized gear reduction, or load exceeding continuous torque rating.
🎤 Interview line: “When a motor overheats, we diagnose the root cause before replacing it. We measure the mechanism load and calculate whether the gear ratio can deliver the required torque. Three of our motor failures this season were traced to the same root cause: insufficient gear reduction for the load. Fixing the ratio eliminated the failures; replacing the motor alone would have reproduced them.”
A motor reads 127C after a 2-minute practice session. The thermal limit is 85C. What is the correct diagnosis?
⬛ The motor is defective — replace it
⬛ The motor is overloaded — gear ratio is too demanding, mechanism is binding, or wrong cartridge for the load
⬛ This temperature is normal during matches
📝
Notebook entry tip: Build & Program — Orange slide — Write a motor maintenance entry whenever a motor overheats, stalls, or is replaced: symptom, temperature reading, gear ratio and load, root cause, and fix applied. If you changed cartridge or ratio, record before/after temperature data. A maintenance log shows judges that hardware was managed systematically — failures triggered investigation, not just part swaps.
← ALL GUIDES