GIMX has a lot of use cases, which made the documentation become complex. Lots of sections were specific to specific use cases. It became hard to understand. Many people came to the forum requesting a tutorial focusing on their use case. Until now there wasn’t any such thing.
Together with GoDlike we worked on improving the wiki experience. The main page was refreshed and simplified. It now has aÂ guide generator. The use case is selected using three drop-down menus: OS / control scheme / target platform (screenshot below).
Clicking on OK redirects to a page that matches the use case. All instructions on this page are applicable for the use case. The selected values are resumed at the top of the page, as shown in the screenshot below.
GoDlike also made really nice connection diagrams that will hopefully help people understand the use cases very quickly. Below is the generic diagram that resumes the GIMX capabilities.
Disclaimer: I am not involved in any way in the diygadget.com company. Neither am I involved in the TIAO GBoard manufacturing. If you have issues loading a GIMX firmware on a TIAO GBoard, please ask for help on the TIAO forum first.
Earlier this year, diygadget.com has released the TIAO GBoard. Thanks to diygadget.com for donating a TIAO GBoard and 90â‚¬ to the GIMX project!
At this time the board is sold at a special price of $21.99 (regular price is $29.99). Of course it is somewhat more expensive than building the adapter yourself, but it is a very good option for people that don’t want to get through the hassle of making a DIY USB adapter. Another good point for buying this board is stability: disconnecting something when manipulating the board is very unlikely.
Photo courtesy of diygadget.com.
This board embeds a FT231X chip and an atmega32u4 chip. Those chips can be easily connected together using jumpers. The board exposes all the pins of the chips through headers at the cost of a bigger size. This means it is possible to use it for other projects. For example it should be possible to convert it to an Arduino Leonardo -compatible board.
It has two mini USB female plugs:
- the one on the left side is connected to the FT231X and has to be connected to the PC
- the one on the right side is connected to the atmega32u4 and has to be connected to the console (or to the PC when loading a firmware)
There are three activity leds on the board:
- RL indicates when data is being received
- TL indicates when data is being transmitted
- LED indicates when the atmega32u4 is reset
One of the very first tests I did was to test the USB to serial chip which is a FT231X from FTDI. For this task I have a small benchmark tool called gserial_test that measures the trip delay of a typical GIMX packet (2-byte header + 64-byte HID report). I’ll try to say more about this tool in a further blog post. The test showed the FT231X is working as expected. On Windows you have to adjust the “Latency Timer” setting.
Loading a firmware on the board is explained on the TIAO wiki. As a GNU/Linux user I tried using dfu-programmer and loading was successful. Using dfu-programmer or Atmel’s FLIP tool on Windows should work fine as well. The procedure is slightly harder than using the Teensy loader (which can only work with genuine Teensy boards).
To test that a firmware runs as expected on the TIAO GBoard, I connected the board to my PS4 and ran GIMX a whole night. During this long run test, some macros kept the PS4 active, sending left button presses followed by right button presses, in a loop. The commands were still taken by the PS4 after about 10 hours, which shows the board is performing as expected!
GIMX can now control a PS4 over USB in both Linux and Windows! I will release in the next days a new firmware for the DIY USB adapter and a new GIMX software.
The connection diagram is as follows:
DS4 -- PC -- USB to UART adapter -- AVR USB board -- PS4
The DIY USB adapter is unchanged: it is composed of a AVR USB board and a USB to UART adapter.
The AVR USB board (such as a Teensy 2.0) enumerates similarly to a Hori Pad 4 FPS.
When the AVR USB board receives a control request from the PS4 that is part of the authentication scheme, this request is forwarded to the USB to UART adapter, then to the PC, and finally to the DS4. The reply from the DS4 takes the opposite path.
As for the 360, authentication data goes in both direction, but for the PS4 it is periodic. GIMX processes authentication data from the serial port and from the DS4 asynchronously. This makes data forwarding fast and efficient.
The drawback compared to the bluetooth solution is that it’s not possible to emulate touchpad & motion sensing controls, which are required in some games (mostly in PS4 exclusive ones). The other adapters (XIM/Titan/VenomX) have these limitations, and there no work-around yet. At least the USB solution is usable in most cross-platform games.
As you can see in the following screenshot, it’s possible to translate GIMX GUIs into languages other than English (such as my own native language, French).
If you want to translate GIMX GUIs into your own language, please read this wiki page.
The GIMX wiki now supports translations. If you want to translate wiki pages into your own language or any other language, please read the Translate page.
Writing documentation on a forum is not really efficient, that’s why I decided to start a mediawiki at http://gimx.fr/wiki.
This allows anyone to improve the documentation 🙂
All tutorials from the forum will be moved there. I probably will set up a few page redirections.