Solved: Setting up Gamecon driver with psx controller
-
@edmaul69 The controller runs on 3.3V its the vibrate motor that runs on 7.5V http://store.curiousinventor.com/guides/PS2
-
@geneworld and looking at what you have you need a resistor in between 3.3v on the gpio and data on the controller. It says to put on pin 7 (data) and pin 26 (not sure if you even are using that pin)
-
@geneworld here is how it needs to be wired:
physical pins on pi----------PSX Pins
1, 3.3V--------------------------5, VCC
1, 3.3V---+4.7k resistor+---1, Data
7, Pad 3------------------------1, Data
6, GND-------------------------4, GND
8, PSX_CMD------------------2, Command
10, PSX_SEL------------------6, Attention (All pinouts say this but the Wiki says PSX_SEL meaning Select?)
12, PSX_CLK------------------7, Clock -
@edmaul69 Well that's something that I misread! Was trying to set this up at 2am so I must have read it wrong! Haha
-
@edmaul69 I'll have to try that when I get home from work , that's for catching my mistake!
-
@geneworld no problem. Glad to help.
-
Ignore this post
-
Well I went home lastnight and made the adjustment with the resistor and that didn't work wither. I then changed
/etc/modprobe.d/gamecon.conf
tooptions gamecon_gpio_rpi map=0,0,0,0,7,0
so that I could use game pad 5 and not have to worry about any resistors. I changed my wiring to
physical pins on pi----------PSX Pins
1, 3.3V--------------------------5, VCC
3, Pad 5------------------------1, Data
6, GND-------------------------4, GND
8, PSX_CMD------------------2, Command
10, PSX_SEL------------------6, Attention (All pinouts say this but the Wiki says PSX_SEL meaning Select?)
12, PSX_CLK------------------7, Clockand rebooted with nothing changing.
I did notice however that on bootup I can turn on the analog led on the ps2 controller on but after the pi boots further the led goes off. I thought it could have been a power issue but nothing changed when I tried several varying power supplies.
I seem to be at a stand still now. Has anyone got this working or further suggestions?
I noticed that if I change to
options gamecon_gpio_rpi map=0,0,0,0,7,7
When I got into configure inputs inemulationstation
and it says there's 2 inputs connected, so the driver is working? -
From what I understand, you will need the resistor no matter which pad # you plug into. I use a 4.7k ohm resistor between 3.3V and the "Data" line, as well, and everything works great for me.
Can we get a picture of your setup?
-
@Katemonster Yeah I'll snap a pic tonight after work
-
Hi there,
I have almost the same problem. Using Rpi3 (with controlblock) and trying to connect a PS2 controller to the GPIO.
Connected as follows:RPI:------------------------PS2
P1-01 (3.3V) ==== 5 (power/3.3V)
GPIO14 ---> 2 (command)
GPIO15 ---> 6 (select)
GPIO18 ---> 7 (clock)
GPIO02 <--- 1 (data)
P1-06 (GND) ==== 4 (ground)see GPIO numbers GPIOs
Here is a pic from my setup:
I can configure the driver to PSX Controller, that is working fine, but when i test the controller, no input is registered.
I also tried my N64 controller some time ago (its the same driver) and got no signal either.
Someone any Idea how to fix that?
-
@Jeddo First off, I don't see pull-up resistors in that picture. Are there some integrated into the controlblock? I don't know anything about how that thing functions.
Secondly, try removing the controlblock from the equation, and hook directly to the Pi. What happens? Also, test the controllers and make sure the analog light comes on when pressed. If not, likely you don't have the power and ground hooked up properly. My problem was always that I counted the pins on the controller backwards. If it's not powering on, that could be the cause.
-
@Katemonster the controlblock should not affect the gpio. It's working for the db9_gpio_rpi driver without any problems. But I will check it without it.
Regarding the pullups: I always assumed that I don't need those because RPi 3 has internal ones on every pin?! Maybe that's wrong and I need the pullups.
Controller has power so that is working. -
Yes you need the pull ups. The driver doesn't try to use any internal pull up resistors because the internal ones are not powerful enough to sway the PSX bus.
-
@Katemonster ok thanks that could explain why my N64 controller isnt working, too. I will try that. Thank you for your help!
-
I don't know how the N64 controller works. I can only speak for the PSX controller, which needs the pull-up resistors.
-
@Katemonster Here are some pictures that hopefully help show what I'm working with. I had to start fresh with a new image sorry for the delay, building from source takes a while.
Hopefully this makes it a little more clearer.
-
Thanks for the diagrams. In the last picture, what you've indicated as Pad 5 and 6 is actually Pad 1 & 2, respectively. So initialize the driver with map=7,0,0,0,0,0 and try again. If that doesn't work, try Pad 3 and use map=0,0,7,0,0,0 .
-
@Katemonster Oh I thought pads 1 and 2 changed to pads 5 and 6 from Model b rev2 and beyond.
from the link (https://github.com/retropie/retropie-setup/wiki/GPIO-Modules#gamecon_gpio_rpi) above I saw
"NES/SNES Controller Data Pin Location Legend
Rev01 board (Raspberry Pi B)
Gamepad1 = GPIO0 = Physical Pin03
Gamepad2 = GPIO1 = Physical Pin05
Gamepad3 = GPIO4 = Physical Pin07
Gamepad4 = GPIO7 = Physical Pin26Rev02 board (Raspberry Pi A, B+, 2, 3)
Gamepad3 = GPIO4 = Physical Pin07
Gamepad4 = GPIO7 = Physical Pin26
Gamepad5 = GPIO2 = Physical Pin03
Gamepad6 = GPIO3 = Physical Pin05
"I can try to swap that out for sure. I have a pull up resistor I can try it with.
Do you think it would be useful if in the RetroPie-Setup file I configured it for 2 NES/SNES controller then changes the options for what I need?
Is there any other configuration I need to do before testing it out in EmulationStation? Is
jstest /dev/input/js0
Something I can try to see if I'm even getting any inputs if it doesn't work on the front end? -
Yes, jstest is a quick and easy way to sanity-check your install.
The wiring blurb you posted is a little confusing. I have a lot of problems with that guide. What it's really saying is this:
"NES/SNES Controller Data Pin Location Legend
Rev01 board (Raspberry Pi B)
Gamepad1 = GPIO0 = Physical Pin03
Gamepad2 = GPIO1 = Physical Pin05
Gamepad3 = GPIO4 = Physical Pin07
Gamepad4 = GPIO7 = Physical Pin26Rev02 board (Raspberry Pi A, B+, 2, 3)
Gamepad1 = GPIO0 = Physical Pin03
Gamepad2 = GPIO1 = Physical Pin05
Gamepad3 = GPIO4 = Physical Pin07
Gamepad4 = GPIO7 = Physical Pin26
Gamepad5 = GPIO2 = Physical Pin03
Gamepad6 = GPIO3 = Physical Pin05So for the Pi models with more GPIO's, it simply adds support for Gamepad5 and Gamepad6, on GPIO2 and GPIO3, respectively.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.