Regarding the SMC02B string, the point is that is not the name of the product or even its part number, so searches for information and sample projects are more likely to be successful if you use the actual name of the product (rather than some identifier on the back of a PCB that’s too small to fit much else).
The two motors outputs are controlled independently, so if you want to achieve the combinations you listed, you just have to send two separate commands to the two motors one after the other. Every single command is going to start with 0x80 (decimal 128) and 0, so you just have to change the last two bytes. The third byte is motor and direction, and the fourth is speed. If you just want some movement for now, you can use 0 and 0x7F (decimal 127) for the fourth byte to switch between stop and full speed. This leaves the third byte, which I suspect is what is causing you problems.
You can use just motor numbers 0 and 1 for the two motors, which means that the upper 6 bits of byte three will always be 0, and the only four possible values are
0 for motor 0 reverse
1 for motor 0 forward
2 for motor 1 reverse
3 for motor 1 forward
Putting this together, sending 0x80, 0, 0, 127 will make motor 0 go in reverse at full speed. It will keep going at that speed until you send a different command for that motor, so if you then send 0x80, 0, 3, 127, you will make the other motor go forward at full speed. Sending 0x80, 0, 1, 127, followed by 0x80, 0, 2, 127, would make both motors switch directions. (In practice, you should stop both motors for a bit first, by sending 0x80, 0, 0, 0 and 0x80, 0, 2, 0, before changing directions.)
- Jan