Wireless Playstation controller not working!
mountaineer
Posts: 27
I am using the BS2 OEM version with an external circuit to invert the signal to a the MadCatz 440 Series wireless 2.4 GHz Playstation Controller. The circuit I have works with the MadCatz 400 Series wired controller fine. I have the vibrating motor power to the Playstation controller hooked up to 7.2v unregulated(6 1.2v AAs). One would think that since the 400 series and 440 series are so close that they would use the same chipset and, thus, work the same, but, alas, that doesn't appear so. I can get the "Link" light to come on, showing the wireless dogle and controller are connected, but the Basic stamp doesn't read the controller and it appears as though it isn't even plugged in. I've connected the controller every which way I can think of but it still doesn't seem to work. I think there might be some additional timing requirements for wireless feature. What am I don't wrong? I've tried using Jon Williams' code to read the raw data and the controller appears unplugged.
Thanks in Advance, botguy
P.S. I've gotten the rumble features to be controllable In the code attached. There are two new variables in Jon Williams' code: psxVibSmall and psxVibLarge. These control the two Force Feedback motors, one with a small counterweight and one with a large one. The small one is either on or off and almost feels like a massage. It is controlled by the bit psxVibSmall. The other motor has a large counterweight and has variable speed of 0-255, with 0 being off. In order to enable force feedback you need to replace the "Get_PSX_Packet_Fast" in the Main loop with "Get_PSX_Packet_Fast_Vibrate." The code also automatically turns on analog mode at startup and locks the analog button so it can't be turned off. If you don't want this to happen comment out that part of the code in the "setup" portion of the code.
Have fun!
Thanks in Advance, botguy
P.S. I've gotten the rumble features to be controllable In the code attached. There are two new variables in Jon Williams' code: psxVibSmall and psxVibLarge. These control the two Force Feedback motors, one with a small counterweight and one with a large one. The small one is either on or off and almost feels like a massage. It is controlled by the bit psxVibSmall. The other motor has a large counterweight and has variable speed of 0-255, with 0 being off. In order to enable force feedback you need to replace the "Get_PSX_Packet_Fast" in the Main loop with "Get_PSX_Packet_Fast_Vibrate." The code also automatically turns on analog mode at startup and locks the analog button so it can't be turned off. If you don't want this to happen comment out that part of the code in the "setup" portion of the code.
Have fun!
BS2
11K
Comments
I am looking for help from anyone! I have tried a few configurations for wiring up the controller and none have worked with their associated code. I settled on the schematic fron the NV101 and still no luck with the working. All I get is:
11111111 11111111 255 255 255 255
and on other code that is suppose to use the same wiring I get a 'no repsonse'. I have put the controller in a PS to make sure it works, and it does. I have checked my wiring many times and it looks good and traces out. I also pushed the analog button to be sure this was not it. I am using the Pelican Chameleon Wireless. I can also see the light flash on the receiver when I mes with the buttons or the joysticks. I also tried to relink the receiver to make sure this is not it. I even tried different stamps the BS2 and the BS2P, but I am at a loss.
Nick
Use code below- works with BS2 and pelican or thrustmaster (BS2 not fast enough for madcatz)
' {$STAMP BS2}
' {$PBASIC 2.5}
'i/o config
· PsxAtt PIN 9 ' PSX joystick interface
· PsxClk PIN 8
· PsxCmd PIN 10
· PsxDat PIN 11
·'--equates---
· buff VAR B0
· tmpout VAR B9
· idx·· VAR B10.LOWNIB
· idy·· VAR B10.HIGHNIB
· 'inits
· PAUSE 500 'give controller time to initialize
· OUTPUT PsxClk
· OUTPUT PsxAtt
· OUTPUT PsxCmd
· INPUT PsxDat
· HIGH PsxAtt
· HIGH PsxClk
·Again:
··· FOR idy = 0 TO 8
····· LOOKUP idy,[noparse][[/noparse]$01,$43,$00,$01,$00,$00,$00,$00,$00],tmpout 'config mode enter
····· GOSUB BitSend
··· NEXT
··· HIGH PsxAtt
··· HIGH PsxCmd
··· PAUSE 1
··· FOR idy = 0 TO 8
····· LOOKUP idy,[noparse][[/noparse]$01,$44,$00,$00,$03,$00,$00,$00,$00],tmpout 'set digital
···· GOSUB BitSend
··· NEXT
··· HIGH PsxAtt
··· HIGH PsxCmd
··· PAUSE 1
··· FOR idy = 0 TO 8
······· LOOKUP idy,[noparse][[/noparse]$01,$4D,$00,$00,$01,$ff,$ff,$ff,$ff],tmpout 'Vibration Enable
······· GOSUB BitSend
··· NEXT
··· HIGH PsxAtt
··· HIGH PsxCmd
··· PAUSE 1
··· FOR idy = 0 TO 8
····· LOOKUP idy,[noparse][[/noparse]$01,$4F,$00,$FF,$FF,$03,$00,$00,$00],tmpout 'Set Native Mode
····· GOSUB BitSend
··· NEXT
··· HIGH PsxAtt
··· HIGH PsxCmd
··· PAUSE 1
··· FOR idy = 0 TO 8
····· LOOKUP idy,[noparse][[/noparse]$01,$43,$00,$00,$5A,$5A,$5A,$5A,$5A],tmpout 'EXIT DS2 NATIVE
····· GOSUB BitSend
··· NEXT
··· HIGH PsxAtt
··· HIGH PsxCmd
··· PAUSE 1
··· FOR idy = 0 TO 8
····· LOOKUP idy,[noparse][[/noparse]$01,$43,$00,$00,$00,$00,$00,$00,$00],tmpout 'config mode exit
····· GOSUB BitSend
··· NEXT
··· HIGH PsxAtt
··· HIGH PsxCmd
··· PAUSE 1
··· GOSUB Get_PSX_Buttons
··· DEBUG HOME, "DS2Mode=", HEX2 buff(1),CR
··· IF (buff(1)<>$41) THEN
······· PAUSE 250
······· GOTO Again
··· ENDIF
··· PAUSE 250
· '[noparse][[/noparse]$01,$41,$00,$5A,$5A,$5A,$5A,$5A,$5A] 'Read Mode
· '[noparse][[/noparse]$01,$43,$00,$01,$00,$00,$00,$00,$00]'config mode enter
· '[noparse][[/noparse]$01,$42,$00,$00,$00,$00,$00,$00,$00],'Read Data
· '[noparse][[/noparse]$01,$44,$00,$01,$03,$00,$00,$00,$00]'set analog
· '[noparse][[/noparse]$01,$4D,$00,$00,$01,$ff,$ff,$ff,$ff]'Vibration Enable
· '[noparse][[/noparse]$01,$4F,$00,$FF,$FF,$03,$00,$00,$00]'Set Native Mode
· '[noparse][[/noparse]$01,$43,$00,$00,$5A,$5A,$5A,$5A,$5A]'EXIT DS2 NATIVE
· '[noparse][[/noparse]$01,$43,$00,$00,$00,$00,$00,$00,$00],'config mode exit
· 'program
· MAIN:
· DO
··· GOSUB Get_PSX_Buttons
··· DEBUG HOME,LF,LF,LF,HEX2 buff(1),HEX2 buff(2),CR
··· DEBUG BIN8 buff(3)," ",BIN8 buff(4) ,CR
··· DEBUG DEC3 buff(5)," ",DEC3 buff(6) ,CR
··· DEBUG DEC3 buff(7)," ",DEC3 buff(8) ,CR
··· PAUSE 16
··· 'END
· LOOP
'
[noparse][[/noparse] Subroutines ]
· Get_PSX_Buttons:' This routineDOES NOT REQUIRE an Inverted clock
··· OUTPUT PsxCmd
··· INPUT PsxDat
··· HIGH PsxClk
··· FOR idy = 0 TO 8
····· LOOKUP idy,[noparse][[/noparse]$01,$42,$00,$00,$00,$00,$00,$00,$00],tmpout
····· GOSUB BitSend
····· buff(idy)=tmpout
··· NEXT
··· HIGH PsxAtt
··· HIGH PsxCmd
· RETURN
· BitSend:
··· FOR idx=0 TO 7
······ LOW PsxAtt
······ PsxCmd=tmpout.LOWBIT(idx)
······ tmpout.LOWBIT(idx)=PsxDat
······ PULSOUT PsxClk,1
··· NEXT
· RETURN
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Have Fun
TR
Post Edited (TechnoRobbo) : 9/22/2006 1:56:23 AM GMT
Did this code and schematic ever work for you?
Let me know.
Thanks,
Michael