What causes Motor Update Needed

Today, two teams came over with robots that could not drive, and had the error, motor update. I ran the vexiq utility and all was well.

This happened two weeks ago, and I blew it off.

What causes this and how can I prevent it?

The motor firmware is update-able and the brain is requesting you to do update if the brain is the newer firmware, though that usually won’t prevent the motors from working.
Also, each device has a bootloader mode and besides being requested to reboot into that mode, it could get stuck in there for some other reason. Maybe it does a checksum of the firmware early on boot and recognizes a corruption.
How could such a corruption happen? Well, the device does have a means of writing into its own memory and actually contains the code to do so (for the update), so if there is a way to somehow get into the code, a firmware corruption could happen.

How could it get there? MCUs (or digital logic in general) are very reliable … as long as working under nominal conditions. If you get an MCU execute code with the supply voltage below the minimal specified, it could easily mis-behave. This is called “brown-out condition” and various MCUs have different mechanisms to deal with it (typically keeping the MCU in reset, disabling flash writes and other features), though I am not sure which features are available and enabled in the IQ motor MCU.

A motor is a generator, that is, every time you move it, it generates a bit of electricity. Enough to boot up the MCU. Not stable enough to keep it powered correctly.
We have observed most motor failures when the students were playing with unpowered robot. Moving arms up and down, for example.

Ahh the dreaded playing with an unpowered robot. Thinking back about the teams, I’ve seen them roll the robot back and forth, so your statement makes sense. I’ll add this to the " please don’t list" for teams.

Hey VEX engineers, ignore this issue, cause when you fix it, it will break my ability to fix an overly discharged battery by spinning a motor (making it a generator). It takes less time to flash a robot than doing an RMA for a new battery.

@nenik Thanks

@Foster We agree!