Asked — Edited

Dimension Engineering 2X32 - Which Control Is Better?

I have a 2x32 Dimension Engineering motor controller (actually have six 2x60's, two 2x25's, two 2x10's). I have used them to control wheelchair motors for robotic projects. I love the EZ-B application when using the servo app (mobile) joystick which is VERY smooth. However, when controlling the 2x32 using RC mode, it responds great, but when the Joystick is "autoreset" (center), the motor still runs, but very slow. Looks like the lowest position was sent to the controller, but not 90 degree (stop motor). I had to add a "STOP" button and script SERVO(D0,90),SERVO(D1,90) to stop the motor. I like the servo control but am thinking I should use the Serial protocol to control the 2x32. Anyone had success with either protocol and the servo joystick? thanks! Doyle


ARC Pro

Upgrade to ARC Pro

Join the ARC Pro community and gain access to a wealth of resources and support, ensuring your robot's success.

PRO
Synthiam
#1  

What control in ARC control are you using for the sabertooth in rc mode?

Because it doesn't sound like you are using the concept of a movement panel. Click on the words Movement Panel that are in blue, as that means links.

#2  

Virtually everyone here uses serial mode and either the Sabertooth Movement Panel or the custom Movement Panel using serial commands depending on how the motors are being used. I don't know of anyone doing R/C mode.

PRO
Synthiam
#3  

Also, there's lots of activities that will teach you how ARC works. Check it the word activities by clicking on it.

To find more, use the learn section. You can click on that word as well.

PRO
Synthiam
#4  

RC mode is the best because it includes speed control, specifically when using the mobile joystick control or a real joystick device. This is because rc mode would use the continuous rotation servo movement panel.

#5  

DJ, if you set speed ramping with Dimension Describe software the serial mode works perfectly with the Sabertooth Movement Panel and a joystick too (funny, teaching you about software you wrote). R/C mode has had reliability problems in the past when users have tried it.

Alan

PRO
Synthiam
#6  

Really? Wow that's awesome. Did I add speed control with serial mode in the sabertooth control? If so, I must be losing my mind because I forgot ha. Must be the jet lag. I've been in Shenzhen the last week. Days are upside down

#7  

Wow! Great response and advice here! I looked at the Movement Panel and used it, however, i like the servo joystick style widget to drive the bot, like a PS2 joystick. Is there a way to code the stick? I want to use the mobile app to drive. I have a STEM show in 2 weeks. Check us out! Www.kitsapcreate.org Thanks for the great advice! Keep 'em coming! Best, Doyle

#9  

Quote:

Really? Wow that's awesome. Did I add speed control with serial mode in the sabertooth control? If so, I must be losing my mind because I forgot ha. Must be the jet lag. I've been in Shenzhen the last week. Days are upside down

It isn't that you added speed control, it is that when speed ramping is enabled using Describe software, it behaves very much as if there is speed control. When you push the stick in any direction, it ramps up to full speed rather than jumping there. Unlike real speed control, it will still get up to max speed no matter if you push the stick a little or a lot, so if you don't want full speed you either need a custom movement panel, or need to feather the control on and off, but it has proved more reliable than R/C mode and the continuous rotation movement panel. I suspect the PWM settings are slightly off from a standard servo (as the OP pointed out, after movement, when the stick centers, the motors keep moving. Previous users have reported other more serious reliability issues (mostly not working at all, but it was some time ago, and I can't locate the threads now).

I think adding encoders and the kangaroo daughterboard can solve the reliability issues of R/C mode. Haven't tried that myself yet.

Alan

#10  

Hi...as per my knowledge it is that when speed ramping is enabled using Describe software, it behaves very much as if there is speed control. When you push the stick in any direction, it ramps up to full speed rather than jumping there. Unlike real speed control, it will still get up to max speed no matter if you push the stick a little or a lot.

pcb assembly

PRO
Synthiam
#11  

Ah. Okay

I had a 13 hour flight today, so I added variable speed to the sabertooth control. I'll release it this weekend for you to test with.

#12  

Wooohoo! Thank you DJ! I will start posting pictures of the build soon.

PRO
Synthiam
#13  

Here you go https://synthiam.com/Community/Questions/10272

#14  

Thanks DJ! the controller is set to accept legacy serial and it works. However, I measured voltage at each motor power output and notices that they are not equal. while the slider is a the bottom (0), one motor (left) start is slowly turning @ 1.2v while the other is off @ 0v. using the slider at half way, I get ~5v, and the other is 2.5v. full power (slide max up), the voltage power appears to shift. the left motor is roughly at 60% and right at 100% power. could this be serial problem? I attempted to tune the Sabortooth 2x32 using the software application from Dimension Engineering and could not balance the motor output. that being said, is there a way to monitor the serial command output from EZ-B ioTiny (port 0) while sending commands? Best, Doyle

PRO
Synthiam
#15  

I assure you the serial commands are equal if the speed for left and right is set equal by you. Use the variable watcher to see speed in numeric form: https://synthiam.com/Tutorials/Help.aspx?id=179

If you wish to set the speed specific, use the setspeed() ezscript command.

#16  

@maleche Maybe something is up with your sabertooth?... Try this script and see what it does... This assumes your sabertooth is set up for simple serial @ 38400 baud


sendserial(D0,38400,0)
sleep(200)
sendserial(D0,38400,127)
sendserial(D0,38400,255)
sleep(5000) #run both channels full for 5 seconds
sendserial(D0,38400,0) #stop both channels

#17  

Thanks Richard R. this gave me a way forward. sendserial(D1,19200,0) sleep(200)

sendserial(D1,9600,127)

sendserial(D1,9600,255)

sleep(5000) #run both channels full for 5 seconds

sendserial(D1,19200,0) #stop both channels repeat ($v,0,127,1) Print($v ) sendserial(D1,19200,$v) sendserial(D1,19200,$v+128) sleep(250) endrepeat sendserial(D1,19200,0) #stop both channels

both motors started at full and when $V got to about 65, the motors stopped. then increased to full again. I thought they would stop around 90. what am I missing? thanks, Doyle

#18  

The motors will stop when these serial commands are sent. 90 will still keep both motors spinning...


SendSerial(D1,19200,0) # both motors stop
SendSerial(D1,19200,64) # channel 1 stop only
SendSerial(D1,19200,192) # channel 2 stop only

PRO
Synthiam
#19  

maleche, read the datasheet for the sabertooth. The Simple Serial mode datasheet explains what the numbers mean.