Running winshield motor on a TReX AUX terminal

We are running a winshield wiper motor to steer our robot. I found the leads that power the motor and connected them to the controller. Come to find out, the motor didnt turn on. I tried switching the leads going to the terminals and still no juice. I am running a C# program :

using System;
using System.IO.Ports;
using System.Threading;

public class PortChat
{
    static SerialPort _serialPort;
    public static void Main()
    {
        StringComparer stringComparer = StringComparer.OrdinalIgnoreCase;
        _serialPort = new SerialPort();
        _serialPort.PortName = "COM3";
        _serialPort.BaudRate = 19200;
        _serialPort.DataBits = 8;
        _serialPort.Parity = Parity.None;
        _serialPort.StopBits = StopBits.One;

        _serialPort.Open();

        byte[] command = new byte[] { 0xF0, 0x1F, 0x1F };
        _serialPort.Write(command, 0, command.Length);
        Thread.Sleep(500);
        byte[] command2 = new byte[] { 0xF0, 0x00, 0x00 };
        _serialPort.Write(command2, 0, command.Length);
        Thread.Sleep(500);

        _serialPort.Close();
    }
}

Is there anything that is wrong with the program, because when i run this, the M3 LED comes on. Or is there a max power that the AUX terminal can run, so my motor is not getting enough juice to turn?

Hello.

It sounds like you might not understand what the auxiliary motor port does or how to use it. Have you actually read the user’s guide to see how to make the connection and what restrictions there are on the motor? You should note that the auxiliary motor port is unidirectional, which makes it sound like a poor choice for controlling steering on your robot.

Also, yes, there are problems with your code (though I think your real problems are with the way you’re connecting things). One is that you are sending two data bytes when the command only takes one. The TReX will handle this particular error gracefully, but it shows that you don’t completely understand the commands you’re sending, which could cause problems down the road. Also, when you’re having trouble getting a motor to run at all, it’s not helpful to make things far more complicated than they need to be. For example, have your code set the motor to full speed (not 25% speed) and don’t send a command to stop the motor half a second later.

- Ben

Well with our program, the only thing we have to send to our motor controller is both motors, driving the robot, forward at variable powers, go backward at variable powers, or stop. We are testing whether we have to get another TReX motor controller and daisy chain it to the existing motor controller we have, or use the existing auxilary port and make it work. I know how our program works, so dont tell me that it will cause problems down the road, I know what im doing program wise. And yes, i did read on how the aux terminal works. Its way to complicated to run the port. I was just going to jerry rig it up and make it work, and it didnt. So im just going to hook it up to an existing motor terminal and go on my way.

I said you don’t completely understand the commands you’re sending, and that’s supported by the fact that your code is sending the wrong bytes. Knowing how your program works is somewhat irrelevant if you don’t understand the device your program is controlling. You are not being rigorous in understanding what you’re doing (i.e. it seems like you’re just using the trial-and-error approach when things get complicated), and that certainly can (and likely will) lead to problems.

I have no idea what this means. Forgive me if I’m misunderstanding you, but it sounds like you’re saying it was too hard to understand how the aux port works, so you just decided to use it some other random way. That kind of attitude can easily result in destroyed hardware!

- Ben