I have an SSC-32 (one of the legacy models) that was working in a previous configuration. There were several servos (11 in all). Power was supplied by a PC (POS terminal actually) power supply, at 5.19V and 8A. Communication was to my laptop via a standard RS232 cable and an FTDI USB to serial adapter (bought from Lynxmotion). Custom software running on the laptop drove the servos. (Search for “a-code” or “peter penguin” for painfully detailed descriptions).
I want to move the software to the animatron, cutting the RS232 cable (if not the power cable yet). I ported the laptop software to an Arduino Mega.
So, I power up the beast, and the SSC-32 power on sequence executes. I can query the SSC-32 for it’s version information and serial communications appear to be successful as the version displays as expected.
BUT…
Commands to move the servos, don’t. The Mega executes fine (I monitor it in a console window). It appears to be sending the correct commands to the SSC-32 and I believe the data gets there because moments ago the VER test was successful.
However, no servos move.
There does appear to be a routine click noise coming from the servos, but no motion.
So I throw myself at your mercy. Any ideas? If I can find the serial connection jumpers, I’ll hook up the laptop and try LynxTerm. But any other ideas?
More info: No change in the power draw. The Mega is powered separately for this test (and there is a common ground between the boards, so the signals have a ocmmon reference point.) I know at 5.19 VDC, I’m a little low, but it has been running with this power supply for years, literally. The only connections are TX, RX and Ground. There is a new connection in the system, between the Mega and an MP3 shield and an board which amplifies the MP3 output and generates an DC envelope from the audio which is read by an ADC pin on the Mega. But no connection there to the SSC-32.
I’m rambling, but I’m desparate.
Thanks for listening.
It really does sound like either a baud rate issue or a power issue.
Can you check which baud rate the serial pins on the Arduino are using and double-check that is the same baud rate set on the SSC-32 via jumpers?
The MEGA has a few serial ports, so be sure you have set the right baud for the ones you are using.
Can you provide a clear image of the setup so we can see the pinout?
Unfortunately, I cannot supply a clear image. The SSC-32 and Arduino Mega are buried within the mechanics of the animatronic.
I’ll attach one, anyway. I’ll also attach a wiring diagram between the modules which probably will be more useful.
I doubt it is a speed mismatch.
First, I can send “VER” and get back the proper reponse. So my conclusion is that comms is working.
Second, I set up the speed to match what was used in the laptop program that was the Arduino’s code predecessor. I am using 115200.
Both jumpers are set on the SSC-32 and the code clearly initializes serial port 1 at that speed. (Maybe I should reduce the speed???)
That leaves power (or something not mentioned). How should I proceed to test if it is a power issue? I didn’t expect it to be power, as
the Arduino is powered separately and nothing else has changed with respect to power from since it was working. No new servos;
no additional circuits powered. If anything, I have removed the ADC processing from the SSC-32. Power is coming from a POS terminal
power supply, is delivering 5.19 VDC and can supply up to 8A. This is the same power supply that was working fine before. The only
thing that I can imagine changing is that the servos are a few years older.
But I digress. What steps should I try to determine if it is a power issue?
The first ting that jumps out is that you are providing 5V to VL, which is too low for the SSC-32. 6V is really the minimum, and even so, we suggest a 9V battery. Note that if you choose to power VL at anything above 6V, you may need a separate power supply for the servos (which would be your 5V, 8A power supply). Be sure to remove the VS=VL jumper. To troubleshoot, remove all secondary connections such as the audio, switches etc. You should only power the MEGA via USB, have the serial lines connected to the SSC-32 (and common ground) and power VL and VS on the SSC-32 (separately).
Great feedback! I’ll give it a go. May take a while, because there’ll be a bit of disassembly required. Wil a 9vdc wall wart work?
I didn’t think of that because with 5.2 V, the LDO regulator on the SSC-32 was providing a steady 5v to the logic (measured).
Will let you know how it goes.
Certainly. You can also consider a step-up voltage regulator so you don’t need a second power supply.
I got the power booster. The one purchased has three connections. Vin, Vout and Ground or common.
My question is, do I have to comment Ground to both Vs and Vl, or is one connection all that is needed. Normally, I’d connect both, but for wiring and connection simplicity, it would be easier to connect ground at one point.It looks from the schematic that this is possible.
Can you link to the “Power Booster” you purchased?
Here is a link to the boost regulator I have. Note that it has three connections.
I am thinking about connecting it to the SSC-32 like this:
Your connection looks good. Since VL and VS have common ground, you can leave the negative terminal for VL free.
Thanks for the confirmation. I suspected as much. Since the original power supply is the source for both voltages, I was concerned about creating a ground loop issue. I had to add a switched ground connection for debugging with the Arduino connected via USB to my laptop to prevent a ground loop problem. Since we are talking logic power here, I wanted to be cautious.
We’ll see if this resolves the strange behavior (the original topic)