Adding a 9th button to GPIO
-
@loujez: I'm glad you got everything working! I was on vacation without internet for a few days and just got back to reading this. As for the second controller not working, I had that same issue to begin with. It had to do with me creating multiple instances of the file where
mk_arcade_joystick_rpi map=1,2
was saved. I had two files named differently and the one being used only hadmk_arcade_joystick_rpi map=1
, hence the reason it was only finding one controller.As for the sound, I still have issues sometimes when booting up. It seems if I do a reboot from the command line, there will be no sound. But if I shut off the system completely and then load it up. It works fine. Weird, but I haven't figured out why that happens.
Anyways, glad everything is working! Hopefully this helps some others in the future!
-
Hey guys. It's been a while, but I came back to this post to get my new system set up. I got my two sets of joysticks set up, but my js1 (second set) has an issue. Whenever I press the hotkey button, it shuts down the pi. And if I press it again, it starts back up again. I did a
jstest /dev/input/js1
in terminal and all buttons are recognized, but as soon as I hit that hotkey (key 8: even in terminal) the pi turns off. Any clue to what's going on? I am using my same set up, just a new install of retropi. Thanks in advance! -
@therog05 Where did you wire the button - which GPIO pin ? Looks like you connected to the Pin 5 / 6, which are involved in powering on/off the PI - see https://elinux.org/RPI_safe_mode#Wake_from_Halt.5B1.5D.
-
@mitu I'll have to check tomorrow. It used to work fine with my other build and I didn't change any wires around. Maybe something is shorting out? Gotta catch some zzz's right now but I'll check tomorrow.
-
So here's where I'm at:
I started with pulling apart the cabinet to check the wires going to that button. I followed the wires back to the GPIO pins and found that, that button is connected to GPIO3 (Pin 5). Looking at a diagram, there doesn't seem to be anything special with this pin other than it is the HK (hotkey) button for a two person layout (according to RecallBox).
After some digging through folders and files, I found a "shutdown.py" script in the home/pi/scripts folder. I read the code and it shows that the shutdown happens on that pin 5! I got excited that I might have found the problem, so I researched a little and found someone that ran
sudo nano /etc/rc.local
and commented outsudo python /home/pi/scripts/shutdown.py &
. I then rebooted and unfortunately, that didn't work.So I figured maybe I would just rename the shutdown.py file in case something else was calling it. This also, unfortunately did not work.
Lastly, I noticed that when I pressed that button again while in the terminal, the command
logout
showed. Is it possible that there is another script out there called "logout", or is it just showing that it's logging out because it ran some shutdown script in the background?Anyways, I'm at another roadblock with this an was hoping some of you out there might have a solution. Anyways, I hope you're all having a great night and again, thank you so much for your continuous help in this forum.
-Cheers!
-
@therog05 I think you have a script running that reboots on PIN5 pull up/down. That being said, you should start with a clean image of RetroPie - we don't supportd 3rd party images - and see if you get the same problem.
-
Thanks for the input, @mitu. I've put a lot of time into what I have right now, so I may spend some more time messing with it. If I don't figure it out, I'll just disable the one hotkey button since I don't really need a player 2 hotkey. I would much rather figure out the problem though. So we shall see. Thanks again.
-
@simonster said in Adding a 9th button to GPIO:
I have just tried this method and it worked for me completely:
Install MK_Arcade_Joystick from the drivers in the retropie setup. Then exit Emulation Station by pressing F4
rm -r mk_arcade_joystick_rpi
git clone https://github.com/recalbox/mk_arcade_joystick_rpi.git -b hotkeybtn
sudo mkdir /usr/src/mk_arcade_joystick_rpi-0.1.5.1/
cd mk_arcade_joystick_rpi/
nano dkms.conf
change the line that begins PACKAGE_VERSION to read
PACKAGE_VERSION="0.1.5.1"
Press Ctrl+X and then Y and Enter to exit and save changes
sudo cp -a * /usr/src/mk_arcade_joystick_rpi-0.1.5.1/
sudo dkms build -m mk_arcade_joystick_rpi -v 0.1.5.1
sudo dkms install -m mk_arcade_joystick_rpi -v 0.1.5.1 --force
Once installed, restart the Pi using the following command
sudo shutdown -r -t 0 now
WORKS. THANK YOU
-
I'm back at it again. I installed a while new setup but I'm having issues with the kernel headers again. I followed the steps to build and install 0.1.5.1 but I'm getting this error when trying to build...
Error! Bad return status for module build on kernel: 4.19.66-v7+.
Any ideas? Thanks!
-
@theRog05 The driver is not compatible with Linux Kernel versions > 4.14 and the Github repository is not updated anymore . The driver version included in RetroPie has this fixed, but it's using the main branch and not the
hotkeybtn
branch - which I think you might need.
However, RetroPie should still be at kernel version 4.14 - have you usedrpi-update
to update your installation ? -
@mitu I have not tried
rpi-update
yet. I can do that now. -
@theRog05 I wasn't suggesting to use that, since it will upgrade your Linux Kernel. What version of RetroPie are you using ?
-
@mitu oh. Gotcha. I won't do that then.
-
@mitu I'm at a loss here. Maybe I should reflash the SD card? I was at one point getting an error saying "kernel headers for 4.14.79-v7+ cannot be found" when trying to run this command
sudo dkms build -m mk_arcade_joystick_rpi -v 0.1.5.1
-
@mitu currently running RetroPie version 4.4.4
-
@theRog05 If you're re-starting again, then get the 4.5.1 image from https://retropie.org.uk/download, which should have the necessary pre-requisites installed.
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.