RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    gamecon_gpio_rpi - Fails to open any GPIO except GPIO4

    Scheduled Pinned Locked Moved Help and Support
    gpiogamecon drivernes controller
    3 Posts 1 Posters 1.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      lbrockman
      last edited by

      Hola all.

      I am using:

      RPi 3 with Raspbian 8 Jessie
      RetroPie 4.16 - Installed manually ontop of existing OS.
      Using the gamecon_gpio_rpi driver with original NES controllers.

      I have wired the controllers using the shared clock / latch ports through existing NES controller ports from the NES shell. I have noticed that whichever port / controller I wire to GPIO4 (Gamepad3 in the gameconf.conf) is always opened properly / recognizable. I can setup the controller, the configuration is copied to the ~/configs/all/retroarch file, and the controller works wonderfully with the retroarch backend for the NES emulator.

      However, I cannot seem to get Gamepad4-6 to register any input. Even if I remove gamepad3 from the gameconf.conf and try to setup a single controller on 4 to 6, it is as if emulationstation never opens the associated GPIO pin for that gamepad.
      For reference, what I mean is i am:

      cd /etc/modprobe.d
      sudo nano gameconf.conf

      options gamecon_gpio_rpi map=0,0,2,0,0,2 #default config

      Configuration settings I have also tried for the driver:

      options gamecon_gpio_rpi map=0,0,0,0,0,2 #option 1
      options gamecon_gpio_rpi map=0,0,0,2,0,0 #option 2
      options gamecon_gpio_rpi map=0,0,0,0,2,0 #option 3


      I have attempted to (from the shell)

      modprobe gamecon_gpio_rpi

      and then check the /var/logs/kernel.log (edit* recalling from memory here -- not typing this as I try it so I may be slightly off) but I never see anything pushed to the log that indicates that the driver tried to start.

      Will gladly grab more information as required, or try more steps.

      Thanks for any help!

      1 Reply Last reply Reply Quote 0
      • L
        lbrockman
        last edited by

        Update -

        Tried a second flash card with a fresh image of Raspbian Jessie and a new install of RetroPie, setting up the core packages, with only the ls-fcedu (NES emulator) and gamecon_gpio_rpi driver.

        I am having the same problem where I do not see the second NES controller (while the first works fine).

        This time, however, I do see exact lines in /var/logs/kern.log

        input: NES pad as /devices/virtual/input/input2
        GPIO4 configured for NES pad data pin
        input: NES pad as /devices/virtual/input/input3
        GPIO3 configured for NES pad data pin

        I can paste bin more (if something else in here is useful) but right now atleast I know it is trying to map to the appropriate pin (never could see that).

        Is this an instance where maybe I can never autoconfigure player2 to work in emulationstation? If I copy the input parameters for player1 to player2 in the /opt/retropie/configs/all/retroarch.cfg maybe it will work in the emulator? (I did try this step on the other SD card referenced in my OP, but I did not have any luck with it).

        Has anyone else had luck configuring two of the gamepads button layouts using emulationstation?

        1 Reply Last reply Reply Quote 0
        • L
          lbrockman
          last edited by

          From the RetroPie-Setup I uninstalled unnecessary components -- remove WolfRam, SonicPi, etc. Nothing more than a boot to emulator, so I figured I would get some clutter out of the way.

          I then went back to trying to different gamepad configurations through the driver config file. I enabled all four ports and through sheer dumb luck GPIO7 (gamepad4) started reading. I still cannot get GPIO2 / GPIO3 to read the data from the controller, but I have two working NES controllers right now!

          I also tweaked the /opt/retroarch/configs/all/retroarch.cfg

          There is a setting for joypad input scan cycle -- something along those lines -- that I opted to put at a value of 0 (I am trying to recall this from memory as the NES is now wrapped under the tree for dad) so that it would update controller state on demand. It was defaulted to 2 and the notes in the file were about adjustments for latency issues.

          I also had to copy the configuration for player1_input* and update it for player2 within /opt/retroarch/configs/all/retroarch.cfg.

          Also removed the override line from /opt/retroarch/configs/nes/retroarch.cfg

          Still no idea why I cannot access GPIO3 / GPIO2 -- if anyone has any troubleshooting ideas I would be happy to jump through the hoops. I have the other SD card and another Pi3 at home I can run through.

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          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.