Quadroped PS2 to Botboarduino to SSC-32 Not Communicating

[font=Helvetica]Hello,[/font]
[font=Helvetica][/font]
[font=Helvetica]I’ve tried to troubleshoot this and am just running into dead ends…[/font]
[font=Helvetica]I have purchased this Quadrapod kit:[/font]
[font=Verdana]The SQ3U combo kit with the SSC-32 servo controller and the BotBoarduino microcontroller[/font]
[font=Verdana]And am trying to use it with the PS2 Controller V3[/font]
[font=Verdana]#RC-01 V3[/font]
[font=Verdana][/font]
[font=Verdana]I assembled using this tutorial:[/font]
[font=Verdana]http://www.lynxmotion.com/images/html/sq3u-assembly.htm[/font]
[font=Verdana][/font]
[font=Verdana][/font]
[font=Verdana]I seemingly successfully uploaded these files to the Botboarduino[/font]
[font=Verdana]https://github.com/Lynxmotion/Quadrupeds[/font]
[font=Verdana][/font]
[font=Verdana]**When I turn it on the lights come on but there is no communication from controller to unit. When I hit Start nothing happens. **[/font]
[font=Verdana][/font]
[font=Verdana]**There’s no beeps or anything. **[/font]
[font=Verdana][/font]
[font=Verdana]On the signal receiver unit the left red LED stays on and the Right Turns on and off at a 2 second pace.[/font]
[font=Verdana]**The controller lights blink and then turn off after a while. **[/font]
[font=Verdana][/font]
[font=Verdana][/font]
[font=Verdana]**I have hooked up the robot via Lynxterm and adjusted the servos successfully… the rehooked up the botboarduino etc. **[/font]
[font=Verdana][/font]
[font=Verdana]Can you help with what I’m doing wrong?[/font]
[font=Verdana][/font]

Did you split VL between the BotBoatduino and the SSC-32? Are you using a separate 9V battery?
Check your connections to the PS2 level shifter against the code. The level shifter has a silk screen / writing telling you what each pin is, and you can find that in the code.
Last, what batteries are you using, and did you check that the switches are both ON?

I split the VL as in the diagram on the tutorial. one 9v for both the BotBoarduino and the SSC-32.
Checked the code. looks right other than the silk screen is labeled ATT as opposed to SEL in the program definition (#define PS2_SEL 8)
Switches are both on. 6V battery for Servos. 9V for VS

Thanks.

If it were me, I would probably run some simple PS2 test program, to see if you are getting valid data back from your PS2. I have posted several programs over the years, but probably something like:

[code]#include <PS2X_lib.h>

// Botboarduino…
#define PS2_DAT 6
#define PS2_CMD 7
#define PS2_SEL 8
#define PS2_CLK 9

PS2X ps2x; // create PS2 Controller Class

void setup()
{
Serial.begin(38400);
delay(5000); // give time to open monitor
int error = ps2x.config_gamepad(PS2_CLK, PS2_CMD, PS2_SEL, PS2_DAT); // Setup gamepad (clock, command, attention, data) pins
Serial.print("PS2 Init: ");
Serial.println(error, DEC);
}

void loop() {
ps2x.read_gamepad(); //read controller and set large motor to spin at ‘vibrate’ speed

Serial.print(“PS2 Input: “);
Serial.print(ps2x.ButtonDataByte() & 0xffff, HEX);
Serial.print(”:”);
Serial.print(ps2x.Analog(PSS_LX), DEC);
Serial.print(" “);
Serial.print(ps2x.Analog(PSS_LY), DEC);
Serial.print(” “);
Serial.print(ps2x.Analog(PSS_RX), DEC);
Serial.print(” ");
Serial.println(ps2x.Analog(PSS_RY), DEC);
delay(125);

}
[/code]
This is not fancy but, it should give you an idea of you are getting data back or not…
To use, download program, Open serial monitor configured to the com port associated with the botboarduino. Make sure it is configured for 38400. If things are working you should see some valid data on each line, with the first field showing which buttons are pressed (hex value as a bit field), the next several values are the positions of the joysticks. Should change as you press buttons and move the sticks…

Ok. I tried that . and I got the serial port to run but all it said on each line was

PS2 Input: 0:255 255 255 255

No effect when hitting buttons or joysticks etc…

I have another PS2 controller and lynxmotion level shifter here so I tried to switch those out in case there was a defect there…

When I reset… It displayed
PS2 Input: 0:128 128 128 128
and then switched to the
PS2 Input: 0:255 255 255 255
while I was hitting buttons and joysticks…

but the values are not changing at all based on button input etc…?

What should I try next??

Not sure. Your picture as far as I can tell, looks like the wiring is correct.

Need to reread your stuff to see if the Leds on the receiver change at all when you turn the transmitter on and off…
Did not see in your output if the ps2 init returned an error code or not…

I would probably try using my version of the ps2x library that is located up at: github.com/KurtE/Arduino-PS2X

I can not see for sure what pins 6-9 are hooked up to on PS2 receiver. But I would double check that.

If you try with the BotBoarduino alone, powering from USB, and nothing changes, then the wiring is likely wrong. Can you ensure the connections between the Arduino and the level shifter are correct? Feel free to include an image.
Do both LEDs on the receiver become solid? If one is still flashing that’s because there’s no connection.

ok. Here’s a photo of how it is wired from the receiver to the Botduino. I tried running the botduino alone powered from the USB and it recognized the controller. This was the first time I have had it do that. I checked in the ‘serial monitor’ and it was definitely reading the buttons and joysticks etc. I then tried to switch it back to the External power from the USB to the battery. To my surprise it continued to be able to read the Controller signals… Still no interaction with the SSC-32… Can you check over this wiring? Thanks!

Can you try reversing the wire connected to digital pins 6,7,8?

ok. I tried that and nothing happened. So then I tried switching back to USB power. I got a series of beeps from seemingly the SSC-32. (which I have never got before). So then I tried switching the wire ( 6,7,8 ) back no change. Another point of interest is the wires on 12 and 13 going to the SSC-32. In the code it defines those as ( #define cSSC_OUT 10 //Output pin for (SSC32 RX) on BotBoarduino (Yellow)
#define cSSC_IN 11 //Input pin for (SSC32 TX) on BotBoarduino (Blue) ) I have tried those both ways with no difference. BUt could one of you take a look at the code and my wiring again and see that it’s ok… Another thing I have found through these forums was a reference to the Lynxmotion V3 PS2 controllers having issue? on 6,7, 8 is that a thing? Thanks

#define PS2_DAT 6 #define PS2_CMD 7 #define PS2_SEL 8 #define PS2_CLK 9
and…

Serial.begin(38400);

This is the part of the code which you need to verify matches your setup. Check the pinout on the level shifter to see that each pin goes to the correct pin on the BotBoarduino. You can use the PS2 library to check to see that you can output PS2 values via the Arduino serial terminal (once again check the values used as they differ code to code). You only need the PS2 cable and USB cable to check the basic PS2 code. Ensure you switch VL to USB power. If that does not work, then something’s wrong with either the PS2 controller, level shifter or BotBoarduino.

Again I would suggest trying my version of the ps2x library. I put changes that helped with my one V3 of the PS2 controllers. Not sure if the changes got propagated into lymxmotions branch or not.

The values of: 0 128 128 128 128
Are probably something reasonably valid, even if the transmitter and receiver are not talking.

Your wiring looked correct to me, so again try with my version. Or try moving to other 4 pins like 12-15 and (and change the defines) and see if that helps.