recalbox / mk_arcade_joystick_rpi Goto Github PK
View Code? Open in Web Editor NEWRaspberry PI kernel module for arcade joystick on GPIO and MCP23017
License: GNU General Public License v2.0
Raspberry PI kernel module for arcade joystick on GPIO and MCP23017
License: GNU General Public License v2.0
Executing install.sh results in an error on the following line:
wget http://www.niksula.hut.fi/~mhiienka/Rpi/linux-headers-rpi/linux-headers-
uname -r_
uname -r-2_armhf.deb
This is basically because http://www.niksula.hut.fi/~mhiienka/Rpi/linux-headers-rpi/linux-headers-4.4.13-v7+_4.4.13-v7+-2_armhf.deb does not exist.
I was able to make it work by replacing that line with the following:
sudo apt-get install raspberrypi-kernel-headers
I have no idea about how this change will affect other Linux versions, but it is worth considering implementing this change.
Hi I would like connect all my button to a Cypress prototyping kit, and send button input via serial (TX/RX) is this possible ?
is it possible to incorporate SPI support for the S variant of the 23017?
hi .
Recently I'm try to make arcade muchine whith Rasberry pi3 and 0.1.4 script and recalbox.
But here are the problem with below.
During run script, the recalbox Os not allow "apt-get" command.
-> in my opionion, this symptom right situation but , how can i make further configuration?
can anybody check above problem?
thank you in advanced
best regards!
Hi
it looks like there is a problem with the Raspberry PI 2.
Installing the Driver is just fine, but when i load the module:
sudo modprobe mk_arcade_joystick_rpi map=1
i get this error
ERROR: could not insert 'mk_arcade_joystick_rpi': Exec format error
i had no problems with the Raspberry PI B ( last week ) , but my new PI 2 wont work :(
i followed exactly your install procedure ... ( 3 time with new Retropie 2.6 image )
dmesg:
[ 1912.213882] mk_arcade_joystick_rpi: disagrees about version of symbol module_layout
modinfo mk_arcade_joystick_rpi:
filename: /lib/modules/3.18.9-v7+/updates/dkms/mk_arcade_joystick_rpi.ko
license: GPL
description: GPIO and MCP23017 Arcade Joystick Driver
author: Matthieu Proucelle
srcversion: 2B2E40AFD619744883AA3C0
depends:
vermagic: 3.18.9-v7 SMP preempt mod_unload modversions ARMv7
parm: map:Enable or disable GPIO and MCP23017 Arcade Joystick (array of int)
uname -r
3.18.9-v7+
can you reproduce my Problem ?
regards
Beny
Custom gpio pins no longer working?
I can no longer get my gpio based joystick to work properly. It used to work fine (after reassigning buttons) with my retropie installation on a RPI2, but in later releases it fails. Not sure if it is related to a more recent kernel. The issue is the same on recallbox.
The gpio pins I use are custom. Running a python test program tells me the arcade joystick still reacts fine on the expected pins.
Loading the kernel module (sudo modprobe mk_arcade_joystick_rpi map=1) and running jstest on js0 makes it recognize the directions, but only 2 of the 8 buttons.
Trying to define custom gpio pins (sudo modprobe mk_arcade_joystick_rpi map=5 gpio=pin_nr,..) results in not a single move or button is recognized using jstest.
My gpio config:
right pin 11 gpio17
left pin 7 gpio4
ground pin 9 -
up pin 15 gpio22
down pin 13 gpio27
button_1 pin 19 gpio10
button_2 pin 21 gpio9
button_3 pin 23 gpio11
button_4 pin 29 gpio5
button_5 pin 31 gpio6
button_6 pin 33 gpio13
button_7 pin 35 gpio19
button_8 pin 37 gpio26
Can't recall I did something extra in the past to make it work. Tested with the latest Retropie (v3.8.1) and recalboxOS (4.0.0-beta3).
As mentioned in the subject both buttons show "on" while running the test. Even if I remove all buttons from the GPIO pins it still shows that those two buttons are on. I have tried wiring dummy ground wires to those ports. What am I doing wrong or can test with?
Hello,
is it possible to combine the 2 joysticks to one controller with 2 sticks?
Hello,
Étant donné que la table mk_arcade_gpio_btn[] renvoi des keycodes de /usr/include/linux/input.h, je voudrais savoir s'il était possible de mapper des touches de clavier ?
Je souhaiterais mapper la touche KEY_F12 sur un bouton pour utiliser avec Hatari.
Hi
First:
i try to install this driver behind berryboot and retropie default installation, after sudo sh ./install.sh command ill get errors, log says about unrecognized kernel: 3.12.26-rpi-aufs, which is default installed with berryboot.
Second:
Alone retropie img install (kernel 3.12.22+) dont works with your driver.
Can you help me please?
Thanks in advance
Hi
I recently downloaded you driver. I compiled it successfully and implemented it. How ever I am having a problem with "LEFT" button not working. I already eliminated hardware - cables and button itself.
I even recompiled the driver with different GPIO assigned and unfortunately no luck there as well :(
JSTEST works fine for all buttons except "LEFT" - GPIO27 by default.
Do you have any suggestion how to debug this issue ?
Maybe something changed in code with your latest submission and support to RPI2 ?
Cheers
Pete
I Have 2 Analog Joysticks which have (2 pots and a button) i would like to use with this library on a raspberry pi 2 (Recalbox). I know i cant directly connect them they need an adc which is where i would like to use an arduino pro mini, to take the signal from the joysticks and interface it with the raspberry pi.
the problem is i don't know the procedure to interface the arduino and the pi.
Is it possible to do a digitalwrite(HIGH) from the arduino to the specified gpio on the raspberry pi (With a voltage divider setup to change the voltage level to 3.3v for the rasp)?
or do i have to connect them through serial and somehow change the code to get values from the serial connection
I followed the instructions on the home page using the Installation Script, everything works fine until I want to load the driver using "sudo modprobe mk_arcade_joystick_rpi map=1".
Any suggestions on what I might try?
pi@retropie:~/mkjoystick/mkjoystick $ sudo sh ./install.sh
Installing required dependencies
Reading package lists... Done
Building dependency tree
Reading state information... Done
cpp-4.7 is already the newest version.
dkms is already the newest version.
gcc-4.7 is already the newest version.
git is already the newest version.
joystick is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Downloading current kernel headers
--2016-06-02 00:42:07-- http://www.niksula.hut.fi/~mhiienka/Rpi/linux-headers-rpi/linux-headers-4.4.11-v7+_4.4.11-v7+-2_armhf.deb
Resolving www.niksula.hut.fi (www.niksula.hut.fi)... 130.233.43.7, 2001:708:20:e337:8:20ff:fedd:f36a
Connecting to www.niksula.hut.fi (www.niksula.hut.fi)|130.233.43.7|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://www.niksula.hut.fi/~mhiienka/Rpi/linux-headers-rpi/linux-headers-4.4.11-v7+_4.4.11-v7+-2_armhf.deb [following]
--2016-06-02 00:42:07-- https://www.niksula.hut.fi/~mhiienka/Rpi/linux-headers-rpi/linux-headers-4.4.11-v7+_4.4.11-v7+-2_armhf.deb
Connecting to www.niksula.hut.fi (www.niksula.hut.fi)|130.233.43.7|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9568904 (9.1M) [application/octet-stream]
Saving to: ‘linux-headers-4.4.11-v7+_4.4.11-v7+-2_armhf.deb’
linux-headers-4.4.11-v7+_4.4.11-v7+-2 100%[===========================================================================>] 9.12M 2.36MB/s in 5.8s
2016-06-02 00:42:14 (1.57 MB/s) - ‘linux-headers-4.4.11-v7+_4.4.11-v7+-2_armhf.deb’ saved [9568904/9568904]
Installing current kernel headers
(Reading database ... 80441 files and directories currently installed.)
Preparing to unpack linux-headers-4.4.11-v7+_4.4.11-v7+-2_armhf.deb ...
make: Entering directory '/usr/src/linux-headers-4.4.11-v7+'
CLEAN .
scripts/Makefile.clean:14: drivers/gpu/drm/nouveau/Makefile: No such file or directory
make[4]: *** No rule to make target 'drivers/gpu/drm/nouveau/Makefile'. Stop.
scripts/Makefile.clean:86: recipe for target 'drivers/gpu/drm/nouveau' failed
make[3]: [drivers/gpu/drm/nouveau] Error 2 (ignored)
scripts/Makefile.clean:14: drivers/infiniband/ulp/srp/Makefile: No such file or directory
make[4]: *** No rule to make target 'drivers/infiniband/ulp/srp/Makefile'. Stop.
scripts/Makefile.clean:86: recipe for target 'drivers/infiniband/ulp/srp' failed
make[3]: [drivers/infiniband/ulp/srp] Error 2 (ignored)
scripts/Makefile.clean:14: drivers/scsi/cxgbi/cxgb3i/Makefile: No such file or directory
make[4]: *** No rule to make target 'drivers/scsi/cxgbi/cxgb3i/Makefile'. Stop.
scripts/Makefile.clean:86: recipe for target 'drivers/scsi/cxgbi/cxgb3i' failed
make[3]: [drivers/scsi/cxgbi/cxgb3i] Error 2 (ignored)
scripts/Makefile.clean:14: drivers/scsi/cxgbi/cxgb4i/Makefile: No such file or directory
make[4]: *** No rule to make target 'drivers/scsi/cxgbi/cxgb4i/Makefile'. Stop.
scripts/Makefile.clean:86: recipe for target 'drivers/scsi/cxgbi/cxgb4i' failed
make[3]: [drivers/scsi/cxgbi/cxgb4i] Error 2 (ignored)
scripts/Makefile.clean:14: drivers/scsi/osd/Makefile: No such file or directory
make[3]: *** No rule to make target 'drivers/scsi/osd/Makefile'. Stop.
scripts/Makefile.clean:86: recipe for target 'drivers/scsi/osd' failed
make[2]: [drivers/scsi/osd] Error 2 (ignored)
scripts/Makefile.clean:14: drivers/staging/rdma/amso1100/Makefile: No such file or directory
make[4]: *** No rule to make target 'drivers/staging/rdma/amso1100/Makefile'. Stop.
scripts/Makefile.clean:86: recipe for target 'drivers/staging/rdma/amso1100' failed
make[3]: [drivers/staging/rdma/amso1100] Error 2 (ignored)
scripts/Makefile.clean:14: drivers/usb/host/whci/Makefile: No such file or directory
make[4]: *** No rule to make target 'drivers/usb/host/whci/Makefile'. Stop.
scripts/Makefile.clean:86: recipe for target 'drivers/usb/host/whci' failed
make[3]: [drivers/usb/host/whci] Error 2 (ignored)
scripts/Makefile.clean:14: fs/exofs/Makefile: No such file or directory
make[2]: *** No rule to make target 'fs/exofs/Makefile'. Stop.
scripts/Makefile.clean:86: recipe for target 'fs/exofs' failed
make[1]: [fs/exofs] Error 2 (ignored)
fs/hostfs/Makefile:11: arch/um/scripts/Makefile.rules: No such file or directory
make[2]: *** No rule to make target 'arch/um/scripts/Makefile.rules'. Stop.
scripts/Makefile.clean:86: recipe for target 'fs/hostfs' failed
make[1]: [fs/hostfs] Error 2 (ignored)
scripts/Makefile.clean:14: fs/nfs/objlayout/Makefile: No such file or directory
make[3]: *** No rule to make target 'fs/nfs/objlayout/Makefile'. Stop.
scripts/Makefile.clean:86: recipe for target 'fs/nfs/objlayout' failed
make[2]: [fs/nfs/objlayout] Error 2 (ignored)
CLEAN .tmp_versions
ls: cannot access ./Documentation/DocBook/media/*.b64: No such file or directory
CLEAN scripts/basic
CLEAN scripts/dtc
CLEAN scripts/genksyms
CLEAN scripts/kconfig
CLEAN include/config include/generated arch/arm/include/generated
CLEAN .config Module.symvers
make: Leaving directory '/usr/src/linux-headers-4.4.11-v7+'
Unpacking linux-headers-4.4.11-v7+ (4.4.11-v7+-2) over (4.4.11-v7+-2) ...
Setting up linux-headers-4.4.11-v7+ (4.4.11-v7+-2) ...
make: Entering directory '/usr/src/linux-headers-4.4.11-v7+'
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/bin2c
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
*** Default configuration is based on 'bcm2709_defconfig'
#
# configuration written to .config
#
make: Leaving directory '/usr/src/linux-headers-4.4.11-v7+'
make: Entering directory '/usr/src/linux-headers-4.4.11-v7+'
scripts/kconfig/conf --silentoldconfig Kconfig
CHK include/config/kernel.release
UPD include/config/kernel.release
WRAP arch/arm/include/generated/asm/bitsperlong.h
WRAP arch/arm/include/generated/asm/cputime.h
WRAP arch/arm/include/generated/asm/current.h
WRAP arch/arm/include/generated/asm/emergency-restart.h
WRAP arch/arm/include/generated/asm/errno.h
WRAP arch/arm/include/generated/asm/exec.h
WRAP arch/arm/include/generated/asm/ioctl.h
WRAP arch/arm/include/generated/asm/ipcbuf.h
WRAP arch/arm/include/generated/asm/irq_regs.h
WRAP arch/arm/include/generated/asm/kdebug.h
WRAP arch/arm/include/generated/asm/local.h
WRAP arch/arm/include/generated/asm/local64.h
WRAP arch/arm/include/generated/asm/mm-arch-hooks.h
WRAP arch/arm/include/generated/asm/msgbuf.h
WRAP arch/arm/include/generated/asm/msi.h
WRAP arch/arm/include/generated/asm/param.h
WRAP arch/arm/include/generated/asm/parport.h
WRAP arch/arm/include/generated/asm/poll.h
WRAP arch/arm/include/generated/asm/preempt.h
WRAP arch/arm/include/generated/asm/resource.h
WRAP arch/arm/include/generated/asm/rwsem.h
WRAP arch/arm/include/generated/asm/seccomp.h
WRAP arch/arm/include/generated/asm/sections.h
WRAP arch/arm/include/generated/asm/segment.h
WRAP arch/arm/include/generated/asm/sembuf.h
WRAP arch/arm/include/generated/asm/serial.h
WRAP arch/arm/include/generated/asm/shmbuf.h
WRAP arch/arm/include/generated/asm/siginfo.h
WRAP arch/arm/include/generated/asm/simd.h
WRAP arch/arm/include/generated/asm/sizes.h
WRAP arch/arm/include/generated/asm/socket.h
WRAP arch/arm/include/generated/asm/sockios.h
WRAP arch/arm/include/generated/asm/termbits.h
WRAP arch/arm/include/generated/asm/termios.h
WRAP arch/arm/include/generated/asm/timex.h
WRAP arch/arm/include/generated/asm/trace_clock.h
WRAP arch/arm/include/generated/asm/unaligned.h
CHK include/generated/uapi/linux/version.h
UPD include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
UPD include/generated/utsrelease.h
Generating include/generated/mach-types.h
CC kernel/bounds.s
CHK include/generated/bounds.h
UPD include/generated/bounds.h
make[1]: *** No rule to make target 'kernel/time/timeconst.bc', needed by 'include/generated/timeconst.h'. Stop.
Makefile:986: recipe for target 'prepare0' failed
make: *** [prepare0] Error 2
make: Leaving directory '/usr/src/linux-headers-4.4.11-v7+'
------------------------------
Deleting module version: 0.1.4
completely from the DKMS tree.
------------------------------
Done.
Loading new mk_arcade_joystick_rpi-0.1.4 DKMS files...
First Installation: checking all kernels...
dpkg: warning: version '*-*' has bad syntax: version number does not start with digit
It is likely that 4.4.11-v7+ belongs to a chroot's host
Building for architecture armv7l
Building initial module for 4.4.11-v7+
Error! Bad return status for module build on kernel: 4.4.11-v7+ (armv7l)
Consult /var/lib/dkms/mk_arcade_joystick_rpi/0.1.4/build/make.log for more information.
Downloading mk_arcade_joystick_rpi 0.1.4
--2016-06-02 00:44:50-- https://github.com/digitalLumberjack/mk_arcade_joystick_rpi/releases/download/v0.1.4/mk-arcade-joystick-rpi-0.1.4.deb
Resolving github.com (github.com)... 192.30.252.131
Connecting to github.com (github.com)|192.30.252.131|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://github.com/recalbox/mk_arcade_joystick_rpi/releases/download/v0.1.4/mk-arcade-joystick-rpi-0.1.4.deb [following]
--2016-06-02 00:44:50-- https://github.com/recalbox/mk_arcade_joystick_rpi/releases/download/v0.1.4/mk-arcade-joystick-rpi-0.1.4.deb
Reusing existing connection to github.com:443.
HTTP request sent, awaiting response... 302 Found
Location: https://github-cloud.s3.amazonaws.com/releases/20679079/466af20e-b4ef-11e4-8b67-8ae00696e5f6.deb?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20160602%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20160602T004450Z&X-Amz-Expires=300&X-Amz-Signature=0b8a661215078d55ffd2ffc50d9fba05be597902b865ae4b1fae3750085df724&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dmk-arcade-joystick-rpi-0.1.4.deb&response-content-type=application%2Foctet-stream [following]
--2016-06-02 00:44:50-- https://github-cloud.s3.amazonaws.com/releases/20679079/466af20e-b4ef-11e4-8b67-8ae00696e5f6.deb?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20160602%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20160602T004450Z&X-Amz-Expires=300&X-Amz-Signature=0b8a661215078d55ffd2ffc50d9fba05be597902b865ae4b1fae3750085df724&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dmk-arcade-joystick-rpi-0.1.4.deb&response-content-type=application%2Foctet-stream
Resolving github-cloud.s3.amazonaws.com (github-cloud.s3.amazonaws.com)... 54.231.115.51
Connecting to github-cloud.s3.amazonaws.com (github-cloud.s3.amazonaws.com)|54.231.115.51|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14908 (15K) [application/octet-stream]
Saving to: ‘mk-arcade-joystick-rpi-0.1.4.deb’
mk-arcade-joystick-rpi-0.1.4.deb 100%[===========================================================================>] 14.56K --.-KB/s in 0.01s
2016-06-02 00:44:50 (981 KB/s) - ‘mk-arcade-joystick-rpi-0.1.4.deb’ saved [14908/14908]
Installing mk_arcade_joystick_rpi 0.1.4
(Reading database ... 80441 files and directories currently installed.)
Preparing to unpack mk-arcade-joystick-rpi-0.1.4.deb ...
------------------------------
Deleting module version: 0.1.4
completely from the DKMS tree.
------------------------------
Done.
Unpacking mk-arcade-joystick-rpi-dkms (0.1.4) over (0.1.4) ...
Setting up mk-arcade-joystick-rpi-dkms (0.1.4) ...
Loading new mk_arcade_joystick_rpi-0.1.4 DKMS files...
First Installation: checking all kernels...
dpkg: warning: version '*-*' has bad syntax: version number does not start with digit
It is likely that 4.4.11-v7+ belongs to a chroot's host
Building for architecture armv7l
Building initial module for 4.4.11-v7+
Error! Bad return status for module build on kernel: 4.4.11-v7+ (armv7l)
Consult /var/lib/dkms/mk_arcade_joystick_rpi/0.1.4/build/make.log for more information.
Installation OK
Load the module with 'sudo modprobe mk_arcade_joystick_rpi map=1' for 1 joystick
or with 'sudo modprobe mk_arcade_joystick_rpi map=1,2' for 2 joysticks
See https://github.com/digitalLumberjack/mk_arcade_joystick_rpi#loading-the-driver for more details
pi@retropie:~/mkjoystick/mkjoystick $ sudo modprobe mk_arcade_joystick_rpi map=1
modprobe: FATAL: Module mk_arcade_joystick_rpi not found.
Hey I just updated my retropie and cant get this to work after that.
It tries to download some 4.1.10-file but it is not found.
http://www.niksula.hut.fi/~mhiienka/Rpi/linux-headers-rpi/linux-headers-4.1.10-v7+_4.1.10-v7+-2_armhf.deb
Resolving www.niksula.hut.fi (www.niksula.hut.fi)... 130.233.43.7
Connecting to www.niksula.hut.fi (www.niksula.hut.fi)|130.233.43.7|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2015-10-04 19:45:45 ERROR 404: Not Found.
ERROR : Unable to find kernel headers
Any chance of getting the final instructions for how to compile the driver on this branch and / or a release for it? Thanks!!
While not really an issue, I was wondering if there is a way to choose what GPIO pins are used and a way to increase the amount of buttons used. I want an one joystick and 11 button setup. Is there some sort of configuration file for me or (someone else to edit)? Thank you for responding.
It has been recently launched a distro for retropie in orange pi based in ubuntu
https://mega.nz/#!tIllhIYY!4-Zbgo37Kj0Xr6adVurkTKoULRaULIkXVKv9PMnNEkE
i tried install this script in orange pi, but i had a error.
Is there anyway to recompile or change the script s being used the MK_joystick module in orange pi?
Hi, I'm sorta new to linux so not sure if its just me.
I have a RPi2 here with RetroPie working. I can install the module if my SD is in a RPi1 B but when I put it into the RPi2 it will install but not load.
pi@raspberrypi ~/mk_arcade_joystick_rpi $ sudo modprobe mk_arcade_joystick_rpi map=0x20
ERROR: could not insert 'mk_arcade_joystick_rpi': Exec format error
pi@raspberrypi ~/mk_arcade_joystick_rpi $ modinfo mk_arcade_joystick_rpi
filename: /lib/modules/3.18.7-v7+/updates/dkms/mk_arcade_joystick_rpi.ko
license: GPL
description: GPIO and MCP23017 Arcade Joystick Driver
author: Matthieu Proucelle
srcversion: 2B2E40AFD619744883AA3C0
depends:
vermagic: 3.18.7 preempt mod_unload modversions ARMv6
parm: map:Enable or disable GPIO and MCP23017 Arcade Joystick (array of int)
dmesg output: [ 4037.517855] mk_arcade_joystick_rpi: disagrees about version of symbol module_layout
I have tried using the install script - which fails because there is no header file for 3.18.7-v7+
I have downloaded the 3.18.7+ headers and linked -v7+ to that (not sure if that is completely wrong). Also have tried downloading raspberrypi/linux with no luck.
I have also tried cloning the repo and running makepackage.sh and the dpkg -i, but I am not having any luck.
Thanks for the great work so far.
Hi,
i've a raspberry pi 2 b with a mcp23017. Hardware works, i tested it using a preconfigured rom.
Now i'm trying to configure. I followed the readme.md. That what i did:
Download the installation script
Update the system
reboot and re-run the script without any arguments
Now? i launced "sudo modprobe mk_arcade_joystick_rpi map=1,2" after that.
than add the line in "modules" to load the driver and created "mk_arcade_joystick.conf". I add "options mk_arcade_joystick_rpi map=1,2"
after, i gone to activate i2c with "i2c-bcm2708 and i2c-dev"
/etc/modprobe.d/raspi-blacklist.conf not exist
I use "modprobe i2c-bcm2708 i2c-dev" but don't work. I reboot, but don't work. I think i've to do sometingh else, but what?
i have A0 A1 and A2 of mpc23017 on the ground.
thanks
f
Hi!
Is this driver working with the Rpi A+?
Thanks for your help!
Hi
Is it possible to set more buttons on i2c? or GPIO?
i´m not using the gpio joystick ports but if i map 1,0x26,0x27 it want´s joystick 0 for first joystick on all emu´s.
i need a button for coins,esc., 1 Player and 2Player Start.......
or can i use the other gpio´s free to set keyboard key´s to buttons?
in the past i have used one joystick on gpio mapped with retrogame.c
Thx for help
Firstly, thanks for this...my arcade project would have become a console project without it.
I'm getting an error when running:
sudo modprobe mk_arcade_joystick_rpi map=1
ERROR: could not insert 'mk_arcade_joystick_rpi': Exec format error
I'm using a B+ with the RetroPie image. I've attempted installation of mk_arcade_joystick_rpi via installation script & manual installation (release and sources). Any idea what could be causing this error?
Is there any chance you could provide instructions for recompiling the module from source? I want to be able to change the pin numbers as my joystick is already wired up in a different way :-/
Hello,
I'm trying to run the second step in your page ( mk_arcade_joystick_rpi ) : Install last kernel headers .
When I run the script : wget http://www.niksula.hut.fi/~mhiienka/Rpi/linux-headers-rpi/linux-headers-`uname -r_
uname -r-2_armhf.deb sudo dpkg -i linux-headers-
uname -r_
uname -r-2_armhf.deb sudo rm linux-headers-
uname -r_
uname -r`-2_armhf.deb
I get a error with the page : Not Found ( http://www.niksula.hut.fi/~mhiienka/Rpi/linux-headers-rpi/linux-headers)
I think that the script is trying to download the following file : linux-headers-4.0.5-v7+_4.0.5-v7+-2_armhf.deb
Ive been in your file depository ( Index of /~mhiienka/Rpi/linux-headers-rpi/ ) and the last script that you have is this : linux-headers-3.18.16-v7+_3.18.16-v7+-2_armhf.deb
I would be greatfull if you can help me about this issue
Best regards
I'm building the module via dkms on raspbian kernel 3.18.11 and getting some very odd behaviour. Roughly summarised as:
modprobe mk_arcade_joystck_rpi map=1,2
, everything is fine.For example this in rc.local:
lsmod | grep -q mk_arcade_joystick || modprobe mk_arcade_joystick
doesn't work. I've tried quite a few other permutations too.
Have you seen any problems like this before? Ideally I just want an entry in /etc/modules but I'm struggling to see where I'm going wrong.
Hello DigitalLumberJack. Great work on the script, I was wondering if it was possible to remove the support for more joysticks via MCP chip and add 2 more buttons in those pins?
Great Work!
Hi
I have recently setup a retropie 3 raspberry pi 2 box and have installed the mk_arcade_joystick_rpi module.
Working ok.
Only issue i'm having is that the GPIO joystick i am using needs to use specific GPIO pins on the Pi.
Is there anyway to recompile or change the GPIO pins being used in the MK_joystick module?
I am pretty new to linux so any help would be appreciated
thanks
Jimi
Is this possible?
Please fill the following form :
What happened
Wanted to use this recalbox i2c driver to work with my kitsch bent i2c dmg button pcb. (http://store.kitsch-bent.com/product/expanded-dmg-button-pcb-i2c-version)
What should have happened
Thought the configuration would work like expacted, but checked the pinout and found out, that this driver is using an another pinout configuration.
This is the pinout, used by the kitsch bent i2c controller:
pinout:
GPA2 — B
GPA3 — A
GPA4 — R2
GPA5 — R1
GPA6 — X
GPA7 — Y
GPB0 — UP
GPB1 — L1
GPB2 — L2
GPB3 — LEFT
GPB4 — RIGHT
GPB5 — DOWN
GPB6 — SELECT
GPB7 — START
this driver is running with other pinouts, which concludes in wrong / not working buttons.
Is it possible to recompile the driver, for use with the pinout above?
tried it by myself, but couldnt make it to a functional version.
Hi! I installed rretropie, did all your stuff, successfully configurated and tested the 2 player's joysticks and buttons, but in the games they are not working.
Could you help me?
Thanks in advance.
Hotkeys not present, even if installed hotkey branch.
Jstest are without hotkeys buttons.
Hi.
I followed instructions to the last note. But when I try to load the driver with
pi@raspberrypi:~/mkjoystick $ sudo modprobe mk_arcade_joystick_rpi map=1,2
I get:
modprobe: FATAL: Module mk_arcade_joystick_rpi not found.
Is there something I can do about this issue? What is needed from your side to answer this question?
When I type
lsmod
I get:
Module Size Used by
hidp 13546 2
bnep 10340 0
hci_uart 17943 1
btbcm 5929 1 hci_uart
bluetooth 326105 9 bnep,hidp,btbcm,hci_uart
brcmfmac 186599 0
brcmutil 5661 1 brcmfmac
evdev 11396 4
joydev 9024 0
cfg80211 427855 1 brcmfmac
rfkill 16037 3 cfg80211,bluetooth
snd_bcm2835 20511 1
snd_pcm 75698 2 snd_bcm2835
snd_timer 19160 1 snd_pcm
snd 51844 4 snd_bcm2835,snd_timer,snd_pcm
bcm2835_gpiomem 3040 0
bcm2835_wdt 3225 0
uio_pdrv_genirq 3164 0
uio 8000 1 uio_pdrv_genirq
uinput 7454 0
i2c_dev 5859 0
fuse 83461 1
ipv6 347530 34
No trace of mk_arcade_joystick_rpi... Any ideas on this?
Thank you
Hi,
After much trials, a succesfull (at least we thought....) build, however on install we get the following error:
modprobe: ERROR: could not insert 'mk_arcade_joystick_rpi': Device or resource busy
OS Version:
Linux retropie 4.4.20-v7+ #908 SMP Wed Sep 7 14:44:27 BST 2016 armv7l GNU/Linux
File details after compile:
file mk_arcade_joystick_rpi.ko
mk_arcade_joystick_rpi.ko: ELF 32-bit LSB relocatable, ARM, EABI5 version 1 (SYSV), BuildID[sha1]=0911fc325eb59aa115995e9c3800b0a656e7b448, not stripped
Hardware version, using latest RPi:
processor : 0
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
[ 885.365811] ------------[ cut here ]------------
[ 885.365847] WARNING: CPU: 3 PID: 3404 at arch/arm/mm/ioremap.c:301 __arm_ioremap_pfn_caller+0x194/0x1b8()
[ 885.365856] Modules linked in: mk_arcade_joystick_rpi(O+) bnep hci_uart btbcm bluetooth brcmfmac brcmutil cfg80211 joydev evdev rfkill snd_bcm2835 snd_pcm snd_timer snd bcm2835_gpiomem bcm2835_wdt uio_pdrv_genirq uio uinput fuse ipv6
[ 885.365952] CPU: 3 PID: 3404 Comm: modprobe Tainted: G W O 4.4.20-v7+ #908
[ 885.365961] Hardware name: BCM2709
[ 885.365994] <80018784> from <80014058>
[ 885.366017] <80014058> from <80320cc4>
[ 885.366041] <80320cc4> from <80025360>
[ 885.366064] <80025360> from <8002544c>
[ 885.366084] <8002544c> from <8001e9d4>
[ 885.366103] <8001e9d4> from <8001ea54>
[ 885.366120] <8001ea54> from <8001eab0>
[ 885.366144] <8001eab0> from [<7f358020>](mk_init+0x20/0x4c8 [mk_arcade_joystick_rpi])
[ 885.366186] [<7f358020>](mk_init [mk_arcade_joystick_rpi]) from <80009764>
[ 885.366208] <80009764> from <800fd5f4>
[ 885.366230] <800fd5f4> from <8009ee44>
[ 885.366248] <8009ee44> from <8009f628>
[ 885.366268] <8009f628> from <8000fb40>
[ 885.366279] ---[ end trace cff87f4b6d065d40 ]---
[ 885.366287] mk_arcade_joystick_rpi: io remap failed
pi@retropie:~ $
It has taken a day and a half to get to this point, so happy to provide any details, and welcome any thoughts or suggestions.
Following the instructions, on Raspberry 3, I get an error:
First Installation: checking all kernels...
dpkg: warning: version '*-*' has bad syntax: version number does not start with digit
It is likely that 4.14.18-v7+ belongs to a chroot's host
Building for architecture armv7l
Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.
Installation OK
sudo modprobe mk_arcade_joystick_rpi map=1
gives:
modprobe: FATAL: Module mk_arcade_joystick_rpi not found.
Even trying manual installation gives errors:
git clone https://github.com/pinuct/mk_arcade_joystick_rpi/tree/customgpio
gives
fatal: repository 'https://github.com/pinuct/mk_arcade_joystick_rpi/tree/customgpio/' not found
Thanks. Bye.
Hi,
I'm having issues enabling modprobe for "map=1,2".
If I use map=1 it loads correctly and I can just use one joystick. But, if I load the map=1,2 it freezes and then kernel panic.
I'm using 4.1.6-v7 Kernel and 0.1.4 version of mk_arcade_joystick_rpi.
Hi, not sure what I am doing wrong here.
I built a dual arcade joystick with a raspberry pi header sometime ago and don't really want to completely re-wire it becuase I use it for other projects too. Ideally I would like to remap both joysticks but if I can get one working that would be a nice start.
I managed (after suffereing many problems with kernel headers) to get everything installed ok and if I use:
sudo modprobe mk_arcade_joystick_rpi map=1,2
jstest /dev/input/js0
and hit random buttons, I see them register.
If I reboot my pi and then try:
sudo modprobe mk_arcade_joystick_rpi map=5 gpio=5,3,7,11,12,23,26,16,33,29,38,37
jstest /dev/input/js0
None of the buttons do anything.
From the instructions this seems to be the correct command, but I can't see what I have done wrong. Any ideas?
Also, I couldn't figure out from the instructions how to customize a dual joystick system, i.e. how to I customize two maps for JS0 and JS1, is that possible or do I have to rewire my joystick and use map1,2?
I should also add for clarity, I don't use any logic expander, just two standard joystick and a bunch of buttons connected directly to valid GPIO pins.
Cheers
I follow the step
https://github.com/recalbox/mk_arcade_joystick_rpi
-->Manual Installation-->3.b - Or compile and install with dkms:
pi@retropie:/mk_arcade_joystick_rpi-master $ sudo cp -a * /usr/src/mk_arcade_joystick_rpi-0.1.5//mk_arcade_joystick_rpi-master $ export MKVERSION=0.1.5
pi@retropie:
pi@retropie:~/mk_arcade_joystick_rpi-master $ sudo -E dkms build -m mk_arcade_joystick_rpi -v 0.1.5
Creating symlink /var/lib/dkms/mk_arcade_joystick_rpi/0.1.5/source ->
/usr/src/mk_arcade_joystick_rpi-0.1.5
DKMS: add completed.
Kernel preparation unnecessary for this kernel. Skipping...
It can work fine at old Retropie 4.3 version but when I try it at Retropie 4.3 get the error
Error! Bad return status for module build on kernel: 4.14.30-v7+ (armv7l)
Does anyone have the same problem?
If i run the automatic installation i get a working driver, but the pin configuration is wrong cause i use the kitsch bent i2c pcb board.
So i tried to do the manual installation and use the custom pinout. Installation is running well through, but i am unable to run the driver.
Dont know why. Maybe because of dkms instead of opkg?
Hello,
I use recalbox 4.0 with PI 3 and gpio screen (pitft 2.8).
Now i need to use GPIO for my gamepad.
I see that in recalbox, mk_arcade_joystick_rpi is an old version.
Juste map 1 and 2 are possible. (not compatible with my tft screen)
My question is , How to update mk_arcade_joystick_rpi in recalbox to use map=4 for exemple?
Where find a compilated version, and where put the file?
Do you know a tuto?
Thank in advance for your help.
Hello, I 've installed the mk_arcade_joystick_rpi and I see the 2 joystick and buttons but when I use jstest /dev/input/js0 I see 8 buttons.
When I try the same with the old version I see 12 buttons.
Where is the setting file to enable the others button ? I've to activate GPB7 for Coin on Mame
As the title says, I can't get these arguments to work. They will load without error, but nothing works.
I ran jstest, and EVERY button input was showing as "on". When I try "Map=1", or "Map=1,2", jstest runs fine every time I click a button.
Please let me know if I need to provide more details.
Putting module options in /etc/modules won't work for systemd based setups (and /etc/modprobe.d is preferred on older systems also)
to fix on Jessie for example -
module name in /etc/modules
mk_arcade_joystick_rpi
and put the options in /etc/modprobe.d/mk_arcade_joystick.conf
options mk_arcade_joystick_rpi map=1,2
Is it possible to have two custom gpio maps so I can use two controllers?
I have been using this since Christmas, and it was working great, but since updating to RetroPie 3.8 it will not install. There appears to be issues compiling linux headers file.
I first noticed the issue after updating RetroPie from 3.7 to 3.8. I then tryied using the RetroPie 3.8 image from their website, and it wont compile on this either.
Any help would be appreciated, as at the moment I have no controls for my RetroPie machine :-(
I don't think it would be to difficult to add support for the SPI GPIO expander right? Or is this feature already in there?
Hi.
For there is no headers armhf for 3.18.X, I used 3.12.35+:
I was able to install it without problems, but it couldn't be inserted:
The vermagic was 3.12.35 but not 3.12.35+.
At this point I am assuming it is because the module I got is 3.12.35 but my Rpi is running 3.12.35+?
I tried modprobe --force-vermagic and got the same error:
I tried the alternative option and get another error:
Would anyone please point me in the right direction?
Hi, i have an analog joystick which sends i2c data i read with my python script, can this be easily adapted to read that? This seems like what i'm looking for except for the joystick is digital :)
Issue I'm having seems near identical to #41 although install.sh does find the kernel headers to download and then fails shortly after with the following:
Installing current kernel headers (Reading database ... 84556 files and directories currently installed.) Preparing to unpack linux-headers-4.4.21-v7+_4.4.21-v7+-2_armhf.deb ... Unpacking linux-headers-4.4.21-v7+ (4.4.21-v7+-2) ... dpkg: error processing archive linux-headers-4.4.21-v7+_4.4.21-v7+-2_armhf.deb (--install): trying to overwrite '/usr/src/linux-headers-4.4.21-v7+/samples/seccomp/Makefile', which is also in package raspberrypi-kernel-headers 1.20160921-1 dpkg-deb: error: subprocess paste was killed by signal (Broken pipe) Errors were encountered while processing: linux-headers-4.4.21-v7+_4.4.21-v7+-2_armhf.deb ERROR : Unable to install kernel headers
Not quite sure how to go about fixing the issue.
This is happening after following the installation script instructions here with a fresh install of RetroPi 4.0.2 on a Pi2
Any help would be great
-Hobsie
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.