Pololu TReX DMC01 Only Flashes Red Light

My Pololu TReX DMC01 arrived today, but ever since I first powered it up it continually flashes red (approx. one flash per second). The blue power LED is constantly lit.

I have tried finding some basic arduino sketches online for serial communication, and it seems that none of these work as well. After a good search online the only conclusion I have come to is that it has the wrong firmware in it (unlikely? Unless firmware has become corrupt), or I have found this from the documentation:

“Red LED flashes: There was a faulty input to the bootloader that has caused the bootloader to revert to waiting for the correct initial serial input sequence. Note: once the firmware upload is complete, the TReX will reboot and the red LED may flash as part of the startup sequence. This is not an indication of a firmware-update error. See the firmware-update section for further details.”

Is there any other problems that could be causing this?

Hello.

Do you have the jumpers on the TReX set to serial mode? If you are not sure how to set them, you can refer to the Jumper Settings section in the TReX user’s guide. You should also double check your signal connections. You can refer to the Signal Connections section in the user’s guide. If you continue to have problems after checking those things, could you post pictures showing your setup including how you have everything connected to the TReX?

Grant

Hi Grant,

Thanks for your reply. Triple checked yesterday - will send through a photo when I am next with the equipment.

Anything else I should look at?

Before moving on to other things, I would like to see the pictures of your setup to rule out potential problems.

Grant

Hi Grant,

Apologies for late reply.

Attached are some pictures of the current set up.

When I give power to both the Arduino and TReX, the blue power light comes on, and the red light flashes five times and then goes to a solid red.

I have the SI on the TReX going to pin 5 on the Arduino (Uno), and SO going to pin 4. I have ground connected to ground.

I have 6x AA batteries (9V) powering the TReX, and motors connected.

I have uploaded the sketch from the link below, but get the attached response from the serial monitor (I think the person replying to the other thread was having the same unresolved issues).

TReX%20DMC%20Serial%20Output

I am powering the Arduino with a single 9V battery.

Jumpers should be shown, but I have the BEC jumper on, learning mode/firmware upgrade off, serial/RC/Analog jumper off, and the channel mix jumper off.

If I have the channel mix jumper on, then when everything is powered up the red light will flash once per second until powered off again (ie. wont then go to a solid red).

Are there some steps I am missing in the process? Or should I be able to wire everything up, write my code and get a response? I want to make sure everything is connected and reading/writing properly before I start writing code for motor movement.

Regards,

Oliver.

Thanks for the pictures. It looks like you have the signal connections on your Arduino shifted over one pin onto pins 3 and 4 instead of pins 4 and 5. Could you double check your connections and see if that fixes the issue?

Grant

Hi Grant,

Double checked and re did it with connections in 4 (red) and 5 (purple), still did not change anything.

Regards,

Oliver.

I reread your earlier post and noticed you said you had SI connected to pin 5 and SO connected to pin 4, but the comment in the example code says it should be the other way around. Can you confirm you are connecting them in accordance with what the sample code expects?

If that all looks good, maybe you should try a loop-back test to make sure your program is doing what you think it is. To do this, just connect pin 4 directly to pin 5 and make sure you’re receiving what you’re transmitting.

Grant

Hi Grant,

I can confirm that I swapped pins four and five around as a sanity check in case I did have them the wrong way. I have also just unconnected and reconnected everything to make sure it was correct.

Loop-Back test:

When I do the loop-back test as per below instructions it works perfectly:
https://forum.arduino.cc/index.php?topic=73748.0

When I do it connecting pins 4 and 5 I get no response to anything I send (except the “Getting signature…”, “Getting Mode…” is still coming through exactly as was posted before)

When I have pins 4 and 5 connected as well as GND to RESET nothing that is sent is received (not even the “Getting Signature…”)

Thanks

Oliver.

I have also added the following code to check if I am getting any current from my motors (have replicated for motor 2):

void getMotorOneCurrent() {
  Serial.println("Getting Motor One Current...");

  byte motorOne;

  trex.write(0x8D);
  delay(10);
  
  while (trex.available()) {
    motorOne = trex.read();
  }
  
  Serial.println(motorOne);
}

I get a response of 0 for both motorOne and motorTwo

To me it seems like nothing at all is being received by the Motor Controller?

Thanks,

Oliver.

You definitely should not just be swapping connections as a sanity check. Connecting the serial lines in the wrong way is effectively shorting two outputs together, which can permanently break things on the TReX or Arduino. In general, it seems like you have not been very careful when making your connections, and that kind of thing is just asking for trouble when working with electronics like this.

Do you have access to a USB-to-serial adapter that you could use to try to connect to the TReX through your computer?

Grant

Hi Grant,

Yes I do.

After troubleshooting I am getting signal to and from the motor controller to arduino. Whether it is carrying the message I want I am not sure.

What I am not getting is any signal to the motors. Battery is delivering approx 12.7v, but there is 0v across the two motor outputs. I have double checked all of these connections obviously.

To me it seems that the signal going from Arduino to Motor Controller is not actually getting through to the motor output.

How can you tell that the TReX is now receiving a signal, and what was wrong before? Are you using your Arduino or a USB-to-serial adapter? Can you tell me specifically what you are sending the controller (and how) to get it to drive the motors?

Grant