Arduino Pro Mini Game Controller

Hello. I want to make a game controller for my Samsung Galaxy S3, and to keep it small I am considering getting an Arduino Pro Mini. I was getting pretty annoyed by all the ADK stuff (usually involves big, expensive and bulky boards), so I decided to make it a normal USB game controller. My phone has a USB host function, so all you require to connect a joystick/XBOX360 controller/whatever to the thing is a cable worth less than 2 USD.

My main problem is the following:
Can I “tell” the Pro Mini to be recognised by the computer (or in my case Galaxy S3) as a game controller?

I was planning to buy the following thing to deal with programming the Pro Mini with the device in the url given below. I assume I also need to use it to make the whole game controller business work? Alternatively, I could buy another Arduino instead, if that makes it easier, but it has to be as small as possible and has to have about 14 digital pins and it must support 2 joysticks (which will probably mean an additional 4 analogs).

maybe this will help

I don't get much of it yet, but it sure looks like a lead. Still need to figure out how one would get such a thing, or some of those projects based on it, working on the Arduino Pro Mini.

I found this: It looks like an easy way to get a USB port on the arduino. Problem is that this is specifically designed for keyboard emulation, while I need joystick emulation (I have four analog axis for crying out loud). The thing is apparently adaptable for my purposes, but it only states that it is, not how. I haven't been able to figure out how to make it emulate a anything else yet. It would mean I would have too few ports on my arduino, but a few 4 to 2 demultiplexers should be able to fix that. Can anyone help adopt it for joysticks?

I have one that was a mod of that keyboard lib made for .16 and I patched it up for .18, and I have no idea if it compiles on 1.0 or not, but it will compile on .18 and should on .22


my .18 fix

yea it says NES, but in windows its 4 buttons, 2axis analog joystick, and 4 additional analog axis (for another joystick or flight controls like rudder and whatnot)

here is a precompiled version for a 16mhz atmega318P using the same wiring to usb as the keyboard thing you linked to (right click save as)

otherwise I hate USB and this is really over my head, but thats what I got

I presume your source code also uses the same USB layout as the Keyboard example? It will take me a bit of time to figure out how exactly this works, but each time I read it through I understand a little more of it. Biggest problem now is how to adapt this to include more buttons, but overall, it looks not utterly unreadable and at least the protocol is now laid out for me, which makes things way easier. I think I already found where in the UsbJoystick.h the amount of buttons are defined, and sending does need some figuring out, but doesn't seem incomprehensible. I think I can do it with this. Thanks!

its not mine, I just fixed it for .18, and yes its based on the same keyboard project you were looking at and so the wiring is the same