Welcome to Synthiam!

Program robots using technologies created from industry experts. ARC is our free-to-use robot programming software that makes features like vision recognition, navigation and artificial intelligence easy.
Get Started

AI Support Bot
Related Content
Synthiam
Based on your post activity, we found some content that may be interesting to you. Explore these other tutorials and community conversations.
Australia
#14  
I should add this vital information as well...

Quote:
Because the Sabertooth Control (useable for Roboclaw) handles two motors with one 8 byte character, when operating in Simplified Serial mode, each motor has 7 bits of resolution. Sending a character between 1 and 127 will control motor 1. 1 is full reverse, 64 is stop and 127 is full forward. Sending a character between 128 and 255 will control motor 2. 128 is full reverse, 192 is stop and 255 is full forward.
Character 0 (hex 0x00) is a special case. Sending this character will shut down both motors.

Motor 1
Reverse should be set as 1.
Stop should be set as 64.
Forward should be set as 127.

Motor 2
Reverse should be set as 128.
Stop should be set as 192.
Forward should be set as 255.
#15  

Quote:

OK. Straight away this has cleared the error message and my Init script spins the motors. That's a great step forward.
Next I will play around with a custom Movement Panel and see if I can control the motors. Thanks for identifying the problem.
I am pretty sure the simple serial protocol for Roboclaw and Sabertooth are the same.  I think you can use the Sabertooth control built into ARC rather than creating a custom Movement Panel (at least until you start using the position feedback capability).    There is another user who sometimes posts and he uses Roboclaw and I recall him saying they were the same.
#16  
I agree with Alan.
https://synthiam.com/Community/Questions/Robo-Claw-2x30-8968

@DJ you were correct

both Robotclaw and Sabertooth are rich controllers with a lot of features, I assumed the sabertooth control was specific for Sabertooth.

I just tested the control and checked the output:
User-inserted image

basically is the Simplified Serial mode post #14

Simple and plain, no black magic, nothing specific.

I would add more information about Simple Serial Protocol and i would mention RoboClaw controllers

Sorry guys, I assumed something without checking the control.
#17   — Edited
@DJ
Can you take look to the outputs:

User-inserted image


Based on @Afcorson input:

Quote:

Motor 1
Reverse should be set as 1.
Stop should be set as 64.
Forward should be set as 127.

Motor 2
Reverse should be set as 128.
Stop should be set as 192.
Forward should be set as 255.
Sabertooth manual:
User-inserted image

At full speed:
User-inserted image


Forward should be 0x7F, 0xFF
Right should be 0x7F, 0x80
Backward should be 0x01, 0x80
Left should be 0x01, 0xFF

The control output is slight off in some cases, if the values are not proportional a 2 wheel robot may turn more to one of the sides.
Synthiam
#18  
Looks like I’m mapping to those values...

Code:


public void Forward(byte leftSpeed, byte rightSpeed) {

leftSpeed = (byte)Functions.RemapScalar(leftSpeed, 0, 255, 64, 127);
rightSpeed = (byte)Functions.RemapScalar(leftSpeed, 0, 255, 192, 255);

sendData(new byte[] { leftSpeed, rightSpeed });
}

///
/// Move reverse.
///
public void Reverse(byte leftSpeed, byte rightSpeed) {

leftSpeed = (byte)Functions.RemapScalar(leftSpeed, 0, 255, 64, 1);
rightSpeed = (byte)Functions.RemapScalar(leftSpeed, 0, 255, 192, 128);

sendData(new byte[] { leftSpeed, rightSpeed });
}

///
/// Right.
///
public void Right(byte leftSpeed, byte rightSpeed) {

leftSpeed = (byte)Functions.RemapScalar(leftSpeed, 0, 255, 64, 127);
rightSpeed = (byte)Functions.RemapScalar(leftSpeed, 0, 255, 192, 128);

sendData(new byte[] { leftSpeed, rightSpeed });
}

///
/// Left.
///
public void Left(byte leftSpeed, byte rightSpeed) {

leftSpeed = (byte)Functions.RemapScalar(leftSpeed, 0, 255, 64, 1);
rightSpeed = (byte)Functions.RemapScalar(leftSpeed, 0, 255, 192, 255);

sendData(new byte[] { leftSpeed, rightSpeed });
}
Australia
#20  
One more query. As soon as I disconnect the USB connection from the Roboclaw to my laptop, nothing works.
Somehow I need to enable TTL serial mode as I don't want to be tethered to a laptop to use it.
I seem to be missing something here, as I can't find a setting to get it working without the USB connection.
#22  
@afcorson:
Keep the usb disconnected.
I presume you have the main power source connected, do you see any lights on ? 
Can you measure the voltage between the (+) and (-) ?
Australia
#23  
Stat2 light is green indicating both motors are active. Voltage is 24.8 to the main battery connection. I'll install the ver3 plugin and see what happens.
#24   — Edited
Measure the voltage between + and - near the S5 contact.
The idea is to troubleshoot if the controller DC/DC is still operational, you need to have 5v on those pins.
be careful when using the multi-meter probes to avoid a short circuit while trying to measure.

My guess is:
When you connected the S1 (+)  and (-) to the EZB you short-circuit the DC/DC output voltage with EZB Vin, sometimes is enough to damage the 5v regulator.
The reason why it works with an USB cable is because the controller has a switching circuit to switch between the USB power (when you are configuring the controller) and the controller 5v regulator, in absence of DC/DC the switching circuit uses the USB voltage.
Australia
#25  
S5 reads 5v (no USB connection)
#27  
so the 5v regulator is good !!! 
Still not working ?
Australia
#28  
No. Like it is stuck in USB mode (mode 15) even though I confirmed by pressing the MODE button that it is on mode 5 (standard serial).
The software also says it is in standard or simple serial mode.
Australia
#29  
In the manual is says...

RoboClaw includes 3 LEDs to indicate status. Two green status LEDs labeled STAT1 and STAT2
and one red error LED labeled ERR. When the motor controller is first powered on all 3 LEDs
should blink briefly to indicate all LEDs are functional.

STAT1 lights up when connected to USB. Only STAT2 lights up when not connected to USB.
Australia
#30   — Edited
Forgot to add..,.

The LEDs will behave differently depending on the mode. During normal operation the status 1
LED will remain on continuously or blink when data is received in RC Mode or Serial Modes. The
status 2 LED will light when either drive stage is active.

Now I have STAT1 lit when not connected to USB. It's hard to see the problem.

Further testing. Works without vendor software connection but with USB connected. Disconnect USB, then it doesn't work.
So the only thing it gets from the USB connection is more 5v power. Curious!

What would happen if I connected the Roboclaw's USB to its own S5 5v power supply? Risky or not?
Australia
#31  
I tried this experiment and it worked. I connected one end of a USB cable to the Roboclaw's USB connector and the other end to its own 5v power on the S5 pin. So why is this necessary is the big question?
#32  

Quote:

I tried this experiment and it worked. I connected one end of a USB cable to the Roboclaw's USB connector and the other end to its own 5v power on the S5 pin. So why is this necessary is the big question?
Honestly, I think something got damaged when you had it mis-wired originally.  From what I have seen in the documentation this should not be needed, but if that is the only problem I would consider myself lucky that there is such a simple solution.

Alan
Australia
#33  
Perhaps. The vendor's software put me on the wrong track as it kept indicating the logic battery was around 2v. And it never indicated the 5.5v that I expected - even now.