Hello Again,
I’m facing two SMC 18v25’s that do not respond to serial TTL commands. They respond just fine via USB and the SMC Control Center and the Serial Utility. I’m not getting any errors and the baud has been manually set on the boards. This entire setup is an upgrade to my RC Power Wheels Project.
Setup:
After previously losing power to a 24v23 board (SMC 24v23 No Power (Vin or USB)) I decided to wire up my old 18v25 (from a year ago) and new 18v25. I used an Arduino Mega R3 and connected a board to each UART pin. All grounds were tied together (Batteries, Arduino, 2 SMCs, and a Jrk12v12).
- (3) 6v SLA batteries wired in series power the two SMC 18v25’s, each connected to a stock 12v Power Wheels motor
- 1 12v SLA battery powers the Jrk12v12 and Concentric 12v Linear Actuator
- +5v is leeched from the +5v pin on the Jrk and ran through the +V on a modified USB cable to power the Arduino. (This setup has always been used to help with motor noise on the serial lines)
- Jrk12v12 RX connected to Arduino TX1
- (2) SMC18v25 RX connected to Arduino TX2 and TX3 respectively
Problem:
In my original project, I used an Arduino Uno R3, 1 SMC 18v25 driving two motors in parallel (master), and 1 Jrk12v12 (slave). In my upgrade I’m using an Arduino Mega R3 and a second SMC to power the two motors independently. I also I modified my original code and only changed the Serial.begin lines to reflect the new Mega serial connections (Serial1, Serial2, and Serial3. The default Serial pins 0 and 1 were reserved for an Xbee radio.)
I was able to steer the linear actuator just fine, but the exitSafeStart commands wouldn’t work on the SMCs.
After troubleshooting the code, I only added the absolute minimum:
// Test Mega serial to Pololu boards
void setup()
{
Serial1.begin(9600); // Jrk12v12
Serial2.begin(9600); // SMC Left Motor
Serial3.begin(9600); // SMC Right Motor
//Move steering to clear stopped state
Serial1.write(170);
Serial1.write(03);
Serial1.write(0x40 + (1500 & 0x1F));
Serial1.write((1500 >> 5) & 0x7F);
delay(1500);
/*SMC Exit safe start Compact*/
Serial2.write(131); // Left motor
Serial3.write(131); // Right motor
}
void loop()
{
}
The error LED for the Jrk was cleared but I saw no change on the two SMCs. In Control Center, however, everything worked normally and there were no errors posted in the Serial section.
Afterwards I tested the Jrk on every Mega port and all worked except Serial3. I made a loopback test for the Mega and found that Serial3 wasn’t transmitting anything.
Lastly, I moved the code to an Uno and breadboarded each SMC one at a time. Only connecting GND and TX to the SMC GND and RX and running exit safe start in loop, I got no response from the controllers.
I’ve also observed that the original year-old SMC 18v25 draws 55.5mA when connected to Vin and the new SMC draws 11.7mA. Neither board report higher than normal temps nor feel hot to the touch.
I’m in the process of creating a new Instructable and these boards are at the center of the entire project. Any help is greatly appreciated. Thanks!