Newbie Help - SSC-32 controlled by Parallax BS2

Hello and thanks in advance,

I am very new to roboting, I have been reading over the post concerning this topic, but having trouble getting started. I am trying to have my Boe-bot(BS2) control a Lynxmotion Arm(SSC-32).

First problem: I am not sure of how the wiring should be done?
Should I use a null modem cable between the two? I have tried this and the LED processor light does blink when I am sending data, but no movement on the servos. Cable is pretty long, saw that it might be a problem on another post.
Or is the best way to use the TTL Serial Port (13 on Lynxmotion layout)? I have looked at the docs about hooking up mini-aab to ssc-32, but I am not sure where to hook it to my BS2. If so I know I should use the TTL RX & Ground, but what about the TX. The docs I have seen only show two pins being used the RX and Ground.

Second problem: I am not sure if the code is right for the null modem and have very little of a clue for the other since I do not know where the cables should be.

Things that I have done are:
set baud to 9600 on SSC-32
The SSC-32 RX is hooked to the BS2 P1
The SSC-32 Ground is hooked to the BS2 P0 (is this necessary?)

The code I am trying is below (for null modem cable):

' {$STAMP BS2} ' {$PBASIC 2.5} HIGH 10 'For LED PAUSE 1400 LOW 10 'For LED to tell me when I am about to send message PAUSE 1400 SEROUT 16, 6, "#0 P1555", 13] HIGH 10 'For LED to tell me when I am done sending, hopefully END

The more detailed the directions, will be appreciated.

I think the problem is the BS2 has 16 I/O pins numbered 0-15. You are trying to use pin 16, which may actually send the command to pin 0, not sure about that…

Here is a tutorial to do exactly what you are trying to do. lynxmotion.com/images/html/proj51a.htm if you still have trouble let us know what is happening. Thanks!

Actually, pin 16 on the BS2 is a “virtual” pin that gets routed to the 9 pin serial port. That port is really picky about settings when using it to talk to anything, I would strongly suggest using one of the other pins on the BS2 to the TTL port on the SSC. While I do not have an SSC yet or know much about it, tying P0 on the BS2 to ground on the SSC sounds unnecessary, and downright unhealthy. But I’ll be buggered if I know the correct way to wire it. Tutorial anyone?

I can imagine that using that port can make future programming troublesome in some cases. Yes, there is no logical reason to connect any I/O pin to ground ever. The SSC-32 manual is on the website as a PDF. It illustrates how to use the TTL comms instead of the RS-232 comms.
lynxmotion.com/ViewPage.aspx … ID=70#serv

Uh… by the way…
A couple advantages that TTL has over RS232:
TTL is 5v “high” and 0v “low”.
RS232 is 12V “high” and -12V “low”.

As you can imagine, it takes a lot less battery power to work with TTL (logic level) communication.

It’s also a lot more fool-proof, since 5V probably won’t fry most devices, wheras few devices will be happy if you give them 12V, and even fewer will enjoy a negative voltage.

There’s also the nice part about being able to bitbang directly from a standard micro’s pin, rather than using up a UART (although, I believe that your micro’s software can emulate a UART on an I/O, so you won’t even need to worry about bitbanging).

And one last reason…
A DB9 cable is deadweight.
Any time you can get away with the one or two wires that TTL communication lets you get away with, it’s probably best to go with it.

Hmm, I suppose, Nick, that TTL is more convenient than RS-232 in some systems but it also has it’s problems if you are going more than a couple of feet in an electrically hostile environment.

RS-232C is a communications signal protocol and uses the particular voltages and some rules about what to do if signals are outside the defined -3V to 3V minimum thresholds. With TTL a floating input gets you… no way to know for sure. Also RS-232C limits the output current to like 30mA, provides for slew rate control to keep the EMI down, and defines an input load impedance at the receiver. A TTL output will slam enough current into that shorted output to eat itself usually, makes lots of nice sharp digital edges to listen to on your AM radio, and has such a low noise immunity that current ground loops can easily cause enough common mode voltage to cause glitches in the output.

Oh, also, RS-232 is inverted so a “high” is -3V to -15V and a “low” is +3V to +15V, with most RS-232 receivers able to detect an open line and output a TTL “1” so your UART doesn’t get confused by all the noise on its input. :wink:

Really the only big advantage TTL has is convenience. You should keep in mind that it is a digital logic signal and not really meant for communicating over transmission lines. Short hops in close systems are fine but once your connection start looking like transmission lines the usefulness of TTL will go to hell in a handbasket real fast. 8)

::prostrates::
I am unworthy.

In that case…
Please feel free to ignore my above post, everyone.
:laughing:

Nick you did raise a few good points about the niceties of using TTL directly. I was just concerned about a couple of the misnomers you also included. Since auto assault is taking a nap at the moment figured I’d throw out a little bit of info on why you might want to choose RS-232 over TTL in some circumstances.

Oh don’t be so critical… you’re worthy!

Yes RS-232 has advantages for longer distances, but in the context of the original question…

Your comments were right on the money. It would be very troublesome to try and use the DB9 connectors to do this.