Uh oh, when’s your deadline?
It sounds like you’re sending proper commands, but your motors may be trying to draw too much current, overheating the H-bridge chip, and activating it’s thermal shutdown protection. The chip would cool off for a little bit, then start trying to drive the motor and overheat again, producing a pulsing behavior like what you’re seeing.
What kind of motors are you using, and what is the voltage of your power source? Can you measure how much current your motors draw through an amp-meter when you connect them straight to your power source? The H-bridge on the uDSMC can only handle one amp per motor. Alternatively is the H-bridge chip (the larger of the two chips on the uDSMC) getting very hot to the touch when the motor moves?
If you’re only drawing a little too much current you could try putting a heat sink of some sort on the chip, switching to a lower-voltage power source, and even commanding the motors to run only at slower speeds. If the H-bridge is overheating in half a second with no load on the motors though you’ll probably be way over the safe current when you try to actually do work with the motors. The only solutions there are using less powerful motors, or just switching to a higher power motor controller (or multiple uDSMC motor controllers, each driving one motor in single-motor mode).
Just to clear this up, unless you need to use multiple motor controllers on the same serial line, you don’t need to use the configuration command. The only reason to use the configuration command is to change the motor numbers on individual controllers so you can have multiple controllers on one serial line. That way, even though they’re all listening to all the commands, they only respond to commands sent to their individual motor numbers. And if you do need to change the configuration, you only need to do it once. Even when power is disconnected, configuration is saved permanently. If and when Pololu revises their motor controller manuals I’m sure the first thing they’ll do is change the “Configuring the Motor Controller” section to say at the top in big letters “you almost definitely don’t need to do this, and if you really do, you only need to do it once”.
If you did need to change the motor numbers you would send the serial string [$80, 2, n], where n is the motor number command. You wrote [$80, 0, 1], did you send that, or [$80, 2, 1]?
It doesn’t really matter if you did change the configuration or not, motor numbers 0 and 1 are universal to the Pololu motor controllers. No matter how you configure the uDSMC, in two-motor mode all motor controllers will always accept commands sent to motors 0 and 1, in addition to whatever the programmed motor numbers are. Whatever motor numbers the controller is configured to respond to (in two-motor mode), it should be responding to these commands, where s is the speed from 0 to 127:
[$80, 0, 0, s]=motor 0 reverse
[$80, 0, 1, s]=motor 0 forward
[$80, 0, 2, s]=motor 1 reverse
[$80, 0, 3, s]=motor 1 forward
-Adam