Use your old PS3 Driving Wheel with PS4

Ok, so after my Amiga "The Best Game Computer Ever!" (coming from an Atari console and ColecoVision) , i moved onto the x386/x486/x586/x686/786 PC platforms, but that was not long lasting, although i did have some good games for them - i mainly use them for work and other play of some sort. finally i settled on a PS1 as a gaming platform. Then later moved onto a PS2 and PS3. One of my favorites games is Gran Turismo. i have the Logitech G29 Drving Force PRO setup - its great, and driving the Nürburgring which is my favorite circuit is really cool. i just drive around the ring for hours trying to shave off time for the best lap. It was cool when i didnt have a Wheel controller, but after i got the Wheel - it was exhilarating! It is truly like real driving. PVSR? i'll have to tell you about it another time. When i moved on to the PS4(which i love), i thought i could just use the same drive wheel, so when i purchased GT Sport and figured out it does not work that way - i was let down. The original setup on the PS3 was expensive and i did not want to buy another wheel setup. Therefore, i put the wheel into storage (glad i did) and did not play GT Sport (Also you just can't jump onto the Nürburgring in PS4 GT Sport like you can in the PS3 GT - you have to do alot of driving on other race circuits to get there! And then there's other aspects like certain graphics sort of being dumbed down or removed in GT Sport vs. PS3 GT. Overall though, GT Sport is still nice, especially the rain effects!).

While surfing the net one day i stumbled across the GIMX site that sold a device which lets you use your old wheel on the PS4 for about $32 USD. There are others out there that go up to $50 USD. But, GIMX also has a link to Do IT Yourself! So...Why not?

Here's the parts i used:

  • 1) My G29 PS3 Driving Wheel set up.
  • 2) Usb Hub. (2.0/3.0/3.1 )
  • 3) Pine Rock64 Single Board Computer. (AKA Pine64)
    i chose the rock64 because i wanted a super small pc to velcro behind my TV, could could run Linux and function as a media PC. You may opt for something else, but you will need a PC which can either run Ubuntu Linux or a Windows OS.
  • 4) PS4 Dual Shock Controller.
  • 5) CP2102 Usb to Serial Coverted Module (can be found easily online).
  • 6) Teensy 2.0 Microcontroller. (Need an PRJC original board as some 3rd party boards are not the same)
  • 7) USB Male to USB mini-b Male cable.
  • 8) USB Male to micro USB Male cable.

i began by downloading the firmware from http://gimx.fr/download/gimx-firmwares and extracting the archive. After some reading i figured i would need the 'EMUG29PS4' .hex file for the Logitech G29 PRO.

Then i needed to flash the Teensy 2.0 microcontroller. This micro is based on a ATMEGA32u4 from Microchip. It has to be this exact chip or it will not work. I began by downloading the "Teensy Loader" from PRJC and running it on my Windows 10 machine.

  • 1) Plug in the Teensy into your computer via the USB mini-b plug.
    (i used Windows 10 but you can also use Linux)
  • 2) Push the Reset button on the Teensy 2.0.
  • 3) Run the TeensyLoader.exe.
  • 4) Select File Open --> Select the firmware you need - i needed 'EMUG29PS4'>.
  • 5) Select the 'Upload' icon.
  • 6) Select the 'Reboot' icon.
  • 7) Done.

Once the chip is flashed - the LED on the teensy will not be illuminated nor blinking (in the case it may have been before). You may reprogram this chip many times and re-purpose it as it a flash memory based microchip!

Then it was time to get the USB to UART CP2102 adapter connected. First, i plugged it into the Pine64 and checked to make sure the Linux kernel had the drivers loaded.


 lsmod		[ grep or look for cp2102 ]

The drivers were there, so on to connecting it to the Teensy 2.0.


Teensy 2.0	USB to UART	Color
GND		                   GND			          Green
D2		              TX / TXO / TXD		         Orange
D3		              RX / RXI / RXD		         Yellow

Next i needed to set up the Pine Rock64 SBC. i navigated to the Pine64 website and grabbed a Ubuntu 18.04 Bionic LXDE Desktop image.

To flash this image onto the Rock64's microSD card, i used Etcher. It's simple to use, just choose your image, select your drive, and select flash. This runs on Windows or Linux. When it was finished, i inserted the card back into the Rock's microSD slot and was ready to go.

i then booted up the Rock, plugged in a ethernet cable. i logged in, checked for a internet connection - it got a DHCP IP address, opened up the Chromium Web Browser and proceeded to download the GIMX software. For the Rock i needed 'gimx_7.15-1_armhf.dEB'. If you are using a Windows OS that can be downloaded and installed also. Now i just needed to install the software.


sudo dpkg -i install ./gimx_7.15-1_armhf.deb
sudo apt-get update
sudo apt-get upgrade

i installed the downloaded pakage, but after trying to upgrade it told me things were broken.


gimx: depends on ...........blah blah blah

So...


sudo apt --fix-broken install
sudo apt-get upgrade

i selected yes to install additional software and let it install the updates. Afterwards, i rebooted.

Once it was back up (about 10-15 sec) i openned the GIMX-Launcher. It gave me some permission errors. From the GIMX website it mentions that this usually happens when you manually compile. i did not compile but went ahead and reset the setuid perms, added a group, uDev rules and Kernel options anyway as instructed on their site.


	sudo chmod u+s /usr/bin/gimx /usr/bin/sixaddr /usr/bin/bdaddr /usr/bin/hcirevision
	sudo su -     [log in as rock64/rock64]
	groupadd -f input
	echo "KERNEL==\"event*\", NAME=\"input/%k\", MODE:=\"660\", GROUP=\"input\"" > /etc/udev/rules.d/99-gimx-input.rules
	echo "KERNEL==\"js*\", NAME=\"input/%k\", MODE:=\"664\", GROUP=\"input\"" >> /etc/udev/rules.d/99-gimx-input.rules
	chgrp -f input /dev/input/event* /dev/input/js*
	chmod -f g+rw /dev/input/event* /dev/input/js*
	chgrp input /usr/bin/gimx-config /usr/bin/gimx-fpsconfig /usr/bin/gimx-launcher
	chmod g+s /usr/bin/gimx-config /usr/bin/gimx-fpsconfig /usr/bin/gimx-launcher
	reboot

Once again, i openned the GIMX-Launcher. i then selected "Help" -> "Get config", selected my Wheel. Then clicked "Test". i got an error letting me know it could not find any device. If you click "Start", it will give errors that it is not receiving any signal from the GIMX adapter (Your Teensy 2.0).

You may want to start checking all connections, unplugging and plugging in stuff and swapping pins, tailing logs etc like i did at first - but before troubleshooting any TX/RX errors with the Teensy. You will need to make sure that you have everything plugged in and READY to communicate correctly.

Connect all devices like so:

  • 1) Set up your Driving Wheel and Connect the usb cable into the USB Hub.
  • 2) Power on the Rock64 and log-in and open the GIMX-launcher application. It should have remembered your previous selection, if not open 'Help' and 'Get Config' and select the proper dirver.
  • 3) Power on the PS4.
  • 4) Connect the CP2101 Serial Adapted into the USB Hub. (You should see a red light on the board for power).
  • 5) Connect the PS4 Dual shock controller into the USB Hub using the USB Male to micro USB cable. (Dual Shock should be active Blue).
  • 6) Connect the Teensy 2.0 to the PS4 with the USB Male to USB mini-b.
  • 7) On the Rock64 in the GIMX-launcher application, select 'Test' (It should read 'OK').
  • 8) Now select 'Start' A window should pop up recognizing the Wheel and ask you to press a button on the PS controller. Press the START button on your Wheel. Your TV should switch over to the PS4 with your Wheel Controller ready to go!

Work accomplished, became a little more knowledgeable and saved some $$! This is a great solution as i will also be able to use my keyboard and mouse with the PS4 if i want to. Those solutions sell for upwards of $150 out there!

i must admit, these wires are a mess so you may want to put yours into some project box - i think im going to 3d print me one.


Peace be unto you. Thank you for visiting!