Lynxmotion PS2 Controller V4: Joysticks not working

Hello,

I have been having some issues trying to get my Lynxmotion PS2 Controller to work properly with my Arduino Uno R3. I have been using the lynxmotion PS2X library and the example code found at https://github.com/Lynxmotion/Arduino-PS2X. The controller seems to configure correctly and all of the other inputs seem to be working. I have double and triple-checked my connections and have the correct Baud rate because the serial monitor will tell me when the controller is connected and when I play with the other inputs. When I hold L1 and R1, the stick inputs never change from “0, 255, 0, 255” no matter the input that I have given it. Can anyone help me with this issue? I am hoping this is not a hardware problem.

Here is some additional info:

Connections:

Library:

Example:

Tried to uncomment debug lines in header filer, do not know if this is helpful:
image

Screenshot of my serial monitor after configuring, pressing a couple of buttons, and then trying to get stick values:

Your help would be extremely appreciated.
Thank you!

Hi Ididnotwanttomakeanaccount (lol),

Have you select the Analog mode in the middle of the two joysticks ?

All the best,

1 Like

Ididnotwanttomakeanaccount

1m

Hello dialfonzo,

Thank you for your reply. I noticed that there is a “mode” button in between the two joysticks, but pressing it when the controller is connected does not seem to change anything, or register any input on the serial monitor. After you mentioned this, I went to do a sanity check and noticed that when the controller was disconnected the mode light would alternate on and off with presses of the mode button, but reconnecting with the light both on and off did not seem to make a difference.

Thanks again, any further assistance is greatly appreciated.

Hi Ididnotwanttomakeanaccount,

In the library, they claim to press Either the L1 or R1 but not both at the same time.

    if(ps2x.Button(PSB_L1) || ps2x.Button(PSB_R1)) // print stick values if either is TRUE
    {
        Serial.print("Stick Values:");
        Serial.print(ps2x.Analog(PSS_LY), DEC); //Left stick, Y axis. Other options: LX, RY, RX  
        Serial.print(",");
        Serial.print(ps2x.Analog(PSS_LX), DEC); 
        Serial.print(",");
        Serial.print(ps2x.Analog(PSS_RY), DEC); 
        Serial.print(",");
        Serial.println(ps2x.Analog(PSS_RX), DEC); 
    }

All the best,

Hello dialfonzo,

Thank you for your input once more. I apologize, my wording was a little squirrely above. I have been pressing them individually and it does not seem to make a difference.

Thanks

Can you make a quick video showing the output as well as the controller ?
Just to confirm, you never get any other results than “0,255,0,255” ?

No problem dialfonzo! And yes, those are the only results I get when I try and view the stick values. All of the other inputs seem to work fine. Here is a link to a video demonstrating this.

1 Like

Thanks for the great video.
I would suggest two things now

  1. Try with the original library, not the Lynxmotion version. (HERE)
  2. If that’s not working, we can replace the PS2 controller.

Hello dialfonzo,

I appreciate all of your efforts. I have tried the original library and the example code. The controller connected properly and I have been experiencing the same things. All of the inputs look alright, but the stick will not register any inputs regardless of the position that they are in. I believe that I may need a replacement.

Thank you and let me know how we will be proceeding from here.

This topic was transferred to internal RobotShop Support.