General Understanding of GIMX

Discuss everything to do with GIMX here
Post Reply
Adun
Posts: 2
Joined: Sat Oct 21, 2017 11:47 am

General Understanding of GIMX

Post by Adun »

Hi,

Yesterday i tried to play GT Sport on my new ps4.
Unfortunally my Logitech G27 is not working with ps4.

So i searched the internet and found is great project.
Poorly i have no idea how this works. All i understood is, that GIMX is simulating a ps4 compatible output from a connected PC compatible input device.

Now, how is the teensy board working (in this setup)? Does it some kind of emulate a (in my case G29) device input?
And what is the USB-to-Serial Adapter needed for?

I have some components at home and im not sure if i can build a GIMX adapter with them.
I got a Arduino UNO board, some basic electronic parts and a RasPi. And Ubunutu, Windows PCs.
Can i use my Arduino Uno board as Teensy board? My Arduino uno uses a atmega328p instead of atmega32u4, is that a Problem?
Can I instead use the second chip of my arduino (atmega16u2)

mfg
Simon
Adun
Posts: 2
Joined: Sat Oct 21, 2017 11:47 am

Re: General Understanding of GIMX

Post by Adun »

Update:

I spent the last 3days understanding GIMX (building a adapter)

Please correct me if im saying anything wrong, but from what i understood its like this:
- G27 sends input to PC/RasPi
- Raspi transforms USB input into serial input.
- Raspi sends serial output over gpio uart pins
- Teensy / Arduino reads serial input and transforms it into a USB signal containing the G29 signature and the DS4 acknowledegment.
- Teensy / Arduino sends modified USB output to PS4

Can you help me fully understand?


PS: im currently trying to build a DIY USB adapter with a Arduino Uno and a Banana Pi (M1) i will give info if i have success with this.
I believe i was able to flash the ATmega16u2 usb controller chip the arduino is using as usb-serial-converter.
(The ATmega328p is not in use so far, i believe it cant be used, because its missing integrated USB handling)

Best Regards,
Simon
User avatar
Matlo
Posts: 5768
Joined: Wed Jul 06, 2011 7:01 am
Location: France
Contact:

Re: General Understanding of GIMX

Post by Matlo »

Your understanding is correct.

To avoid any issue you should look for a board based on the atmega32u4 chip.
And make sure to convert the TX level of the AVR USB board to 3.3V.
GIMX creator
Azhrei
Posts: 2
Joined: Fri Nov 24, 2017 5:12 am

Re: General Understanding of GIMX

Post by Azhrei »

So... I guess I’m missing something. Why is the Teensy board required at all when using a Pi? What is it doing that the Pi can’t do?

Sorry, I’m just not understanding what functionality the Teensy provides and thus why it’s required.

Any insight would be appreciated. I’ve scoured every page of the wiki, including the FAQ. They’re very specific about using a device with particular chipsets but I didn’t see any kind of high-level block diagram or similar.

Thanks!
User avatar
Matlo
Posts: 5768
Joined: Wed Jul 06, 2011 7:01 am
Location: France
Contact:

Re: General Understanding of GIMX

Post by Matlo »

The Teensy can be programmed to behave as specific USB devices.
GIMX creator
Azhrei
Posts: 2
Joined: Fri Nov 24, 2017 5:12 am

Re: General Understanding of GIMX

Post by Azhrei »

Is that something the RPi can’t do for some reason? Why?
User avatar
Matlo
Posts: 5768
Joined: Wed Jul 06, 2011 7:01 am
Location: France
Contact:

Re: General Understanding of GIMX

Post by Matlo »

This is due to the USB spec that defines two roles, host and device.
It is not possible to be both at the same time (on the same port / bus).
The RPi has to be a host to host input devices.
GIMX creator
bluesign
Posts: 2
Joined: Sat Dec 16, 2017 1:48 pm

Re: General Understanding of GIMX

Post by bluesign »

AFAIK raspberry pi USB port, cannot be "slave" on B, B+ models.
I guess only Zero, A+ supporting slave mode technically, and probably complicated.
User avatar
Matlo
Posts: 5768
Joined: Wed Jul 06, 2011 7:01 am
Location: France
Contact:

Re: General Understanding of GIMX

Post by Matlo »

Yes, and most use cases require to have a USB host port.
GIMX creator
Post Reply