How to modify the Plug n Play Raspberry Pi package to support other devices

Due to logistical issues, I can only offer one flash for the Arduino, and one image for the Raspberry Pi. However, both can be changed relatively easily to support anything that Gimx supports.

To flash the DIY adapter, follow this link. You can unplug the usb adapter from the Rpi and plug it into the PC as normal to flash it.

To change the config xml file, log into the Rpi. NOTE: all instructions assume you are using the latest gimx_dietpi.img image. Write this image to your sd card using Win32DiskImager if you want to follow along exactly, otherwise your steps might vary some.

[Skip this if you know how to log into the Rpi] You can connect the Rpi to a TV and use a mouse and keyboard. The login is the default Dietpi login (user: root, pw: dietpi). You can also connect via ssh from a PC, using a program like PuTTY. In order to get the IP address of the Rpi, you can boot it up with a TV connected, and Dietpi will print out the IP address. If you can’t connect a TV but need to find out the IP address, you can simply connect it to your router with an Ethernet cable, and look up the DHCP lease of the Rpi in your router setup (Ex: on Asus it’s found under System Log\DHCP Leases – the Rpi will have a recognizable name like DietPi or RaspberryPi). Once you have the IP address, ssh into the Rpi using PuTTY, and log in.

Once logged in, list all the config files:

./gimx_list_configs.sh

Then pick the xml you want and run gimx_change_config.sh with your xml file. Ex:

./gimx_change_config.sh LogitechG27_G29.xml

The script will copy the new xml over .gimx/config/active.xml and restart the gimx service to use the new config.

Of course, you can also create new config files in the .gimx/config folder and set them as active with gimx_change_config.sh. You can also edit active.xml directly and restart the service or reboot to take effect.

Debugging issues with Gimx

If Gimx doesn’t appear to be working correctly, you can get the console output that might point to were the problem is:

Once you have access to the rpi command line (see above), stop the gimx service, so it doesn’t try to start gimx over and over in the background, where you cant see what it’s doing.

sudo systemctl stop gimx

Then you can start gimx manually:

/usr/bin/gimx -p /dev/ttyUSB0 -c LogitechG27_G29.xml --nograb

You should see some console output, that should indicate why gimx is not succeeding. Ex:

global option -c with value 'Logitech G27_G29.xml'

grab flag is unset

USB adapter detected, controller type is G29 PS4.

No controller was found on USB buses.

gimx.c:208 main: no adapter detected.
In this case it means the Arduino is working (“USB adapter detected, controller type is G29 PS4.”), but your Dualshock4 is not connected properly to the Rpi – possibly a bad usb cable (“No controller was found on USB buses.”).