Is there anyway to lower the strain on a motor with programming??
Nope, build your robot/mechanism better so that the motor doesn’t have as hard of a time turning it.
Yes, reduce the acceleration/power you ask it for, and spend less time in brake/hold brake modes. You can set a soft limit on the torque it can apply while chasing the behaviours you request via speed and location commands - search for setMaxTorque. That will be taken care of by the system. Measures you might take in your own running code might involve smoothing changes in speed. This will mean that you get where you want to be less quickly, but things will have more time to radiate heat. If you can wait, it can stay cooler. If you can’t, you need extra motor on the job. Somebody might mention hot-swapping motors between rounds - I guess that’s the least software-ish solution :). If you can wait, but the motor is still having trouble, a lower gearing cartridge might help. Reducing time spent in brake holding is obviously entirely application dependent - see if there are any occasions in the behaviours the robot sequences through where you could let go temporarily. Drive more smoothly - don’t jam the stick to one extreme or suddenly let go when you need to stop. Try to be a bit predictive wherever possible. Obviously when you’re in an unpredictable hurry, you’ll work the motors as hard as you can get away with.