The solution depends both on the current wiring configuration and the actual code. A couple questions:
Are you using LabVIEW?
What type of drive (Arcade, etc)?
If you're using LabVIEW, can you post screen shots of the Begin.vi where you are setting up the motors and PWM lines, as well as the Teleop.vi where the actual controls are being configured?
Without seeing the code, some steps I would try:
- Invert the motors. This might inadvertently also turn forwards into backwards. If that happens, it might be possible to invert the signal in software by multiplying the value from the array index by -1 before it is sent to the motors in Teleop.vi.
- Switch the PWM lines. Some components could be wired backwards. Either physically reconnect them, or change which lines are for which motors in the Begin.vi.
By troubleshooting one step at a time, you can probably identify where the controls are inverting.