Page 1 of 1

Questions about the suitability of GIMX to my project

Posted: Tue May 26, 2015 12:20 am
by ciphersimian
I'm planning out a project to re-implement the Xbox 360 Rock Band Stage Kit light pod using open source hardware and software in hopes that it will also work with the Xbox One version of Rock Band 4 when it comes out and I've got a few questions about this with respect to GIMX. I'm very early on in this and haven't purchased anything yet so I'm very open to any feedback/suggestions.

At its core the light pod is just a wired Xbox 360 controller without analog sticks, triggers, bumpers (so just d-pad, select, xenon, start, ABXY) or rumble motors which translates rumble motor commands into discrete signals for 32 LEDs (built into the light pod/controller), a fog machine trigger, and a strobe trigger (routed to an external fog machine/strobe enclosure via a ps/2 connector.)

GIMX seems like a good basis for the Xbox-side of this project since it provides a mechanism for both authentication and feeding the controls back to the Xbox provided it can (either out of the box or be modified to) accommodate the following:

1) Does GIMX provide access to the rumble information coming from the Xbox?

2) Can GIMX emulate a different PID/VID than the security chip being used? For example, if I use a Wired Xbox 360 controller for authentication purposes but need the emulated device to identify itself as a Rock Band light pod, will that be possible? I haven't yet reverse engineered this (or been able to find anyone else who has) to determine exactly how Rock Band knows the difference between a regular controller and a light pod and therefore knows to send the rumble commands for LED/fog/strobe control or not.

Given the other requirements I have for hardware interfaces I was considering something like the Raspberry Pi 2 Compute Module Development Kit w/ 120 GPIO pins which I understand should be able to run GIMX.

It seems the standard usage of GIMX is to have a DIY USB Adapter (with its own microcontroller and firmware) to perform USB to Serial UART functionality.

3) However, I'm curious if anyone has tried (or whether it is even possible), using a Raspberry Pi 2 for the "PC", to just attach the CP2102 via GPIO pins directly to it and port the necessary parts of the EMU360 firmware to Linux, or perhaps even modifying GIMX to just use GPIO directly? I suspect the access to the hardware is more limited on Linux and therefore timing could be an issue but given the relative power of the Raspberry Pi 2 it seems like that could be overcome?

In addition to having a Wired Xbox 360 controller (mostly just for authentication) I also want to have an Xbox 360 Wireless Receiver (both attached via USB Hub to the Raspberry Pi 2) and write software to forward the inputs from both controllers on to GIMX and ultimately the Xbox. This gets around a major design flaw and annoyance of the Xbox 360 Rock Band Stage Kit light pod that the lights are attached to the controller which is intended to be used by the vocalist (so they are picking up the lights and moving them around.) In theory this should also give me the ability to use other controller features for searching/sorting that were unavailable on the light pod due to a lack of triggers and bumpers.

Any other thoughts/suggestions?

Re: Questions about the suitability of GIMX to my project

Posted: Tue May 26, 2015 7:01 am
by Matlo
1) Yes, rumble is supported since GIMX 4.0.

2) It's possible to modify the EMU360 firmware (including the VID/PID) so as to make the AVR USB board (e.g. Teensy 2.0) behave as a different controller.

3) The CP2102 is a USB to UART adapter. It can't be used as a replacement for the AVR USB board.

Re: Questions about the suitability of GIMX to my project

Posted: Wed May 27, 2015 7:44 am
by ciphersimian
Thanks for the response. I probably didn't state my last question clearly enough.

I guess what I'm really asking is whether it's possible to replace the AVR USB board (e.g. Teensy 2.0) with the same Raspberry Pi 2 that I'm planning to run GIMX on since I already have a microcontroller with GPIO pins available? That seems like it should be more straight-forward than having another microcontroller between the CP2102 and the Raspberry Pi 2 and going through another hop via USB. Presumably GIMX is designed to use USB devices but I'm curious how difficult it would be to use GPIO directly (or SPI, or I2C as all of these are possible on the RPi2.)

Re: Questions about the suitability of GIMX to my project

Posted: Wed May 27, 2015 7:57 am
by Matlo
The USB standard defines two roles: device and host.
GIMX uses the AVR USB board as a USB device.
The Rpi can only be used as a USB host.

The UART of the Rpi could be directly connected to the AVR USB board. This requires to adapt the voltage levels.
But at the time I tested it, it didn't work well: the latency was too high.

Re: Questions about the suitability of GIMX to my project

Posted: Thu Jan 11, 2018 2:16 pm
by sonik
Hi ciphersimian.
Have you made any progress on it?
I want to make my own Rock Band Stage Kit too.