USB-Type C Andriod Game Controller

Hello, and welcome to my first post. My name is King, I'm 19 years old, and this'll be my first proper electronics project. I'm a complete beginner when it comes to this stuff I've tinkered around with game systems before and built the pc I'm typing this on, but I have zero microcontroller nor coding experience. I've always been interested in it though, so what's a better way to get into it other than jumping headfirst into an overly-ambitious project and learning from the consequential failure?

Moving on to the project itself, the goal is to have a wired gaming controller with 14 buttons and 2 analog sticks that plugs into an android device via USB Type-C. From the bit of research I've done what I need to do is buy a microcontroller, create or find a program that makes the microcontroller reads as a game controller, solder the buttons, house everything together and voila.

I'm not completely sure if that's what I actually have to do which is why I'm posting here. There's also a few thing I want to ask about. One being which board would be best here? I'm thinking about an arduino micro or teensy board but if there's something more ideal I want to know. Also I wanted to ask about feasibility. There's already a ton of gaming controller projects out there so I can't imagine it being the hardest but they've mostly are built around PC. I'm not sure how hard it'll be getting it to work with android.

Any general advice would also be appreciated. This is more of a long term project that I'll keep reiterating on until I'm satisfied. Thanks for reading!

I know that Micro etc can enulate a keyboard or mouse on a Windows or Linux pc/laptop. I don't know if it can act as a game controller, or if it can do any of those things on Android.

I guess the fact that the phone connector is type C is just a detail. I assume you can get type C to type A "OTG" adaptors just like you can for microUSB.

Sounds like you will need 4 analog inputs. For 14 buttons, you can make a 3x5 matrix using 8 pins. I guess that you may need to press multiple of the buttons at the same time, in which case you need a small diode in series with each button.

EDIT: Micro can emulate a joystick with this library.

If you're starting out with "ambitions" and a small budget, it's better to start with a wifi and/or bluetooth capable board, because sooner or later most people will aspire to some kind of wireless connectivity.

Huh. Think I've been over complicating this. I have also found a library that allows a micro to emulate a Xinput controller. Android should recognize Xinput natively and I'm not sure if the one Paul posted is Xinput, Dinput, or HID so I'm going to roll with this one. I'd share the github link but that seems discouraged. If you wanna google it it's from the user "dmadison".

I've also decided on using an arduino micro as it's one of the few boards the library supports an when I run into problems it should be easier getting advice for it in this forum.

I supposed next on my agenda will be making a circuit diagram using tinkercad or something and a program to go with it, then buying the board itself. Would it be appropriate for me to keep updating this thread with the diagram and stuff or would it be better to make a thread somewhere else for project updates?

sirking:
Would it be appropriate for me to keep updating this thread with the diagram and stuff or would it be better to make a thread somewhere else for project updates?

No, do not split up project threads.

I'd share the github link but that seems discouraged.

Posting your sketch that you want help with as a link to a page on another site when it could be inserted into your post here between code tags is discouraged. Posting links to relevant libraries and code written by others, on GitHub or similar, is encouraged. I posted such a link in reply #1.

would it be better to make a thread somewhere else for project updates?

That might be considered "cross-posting", which is against forum rules, because it's then two topics on essentially the same subject (your project). If you want to move the whole topic to a more relevant forum section, you can click "report to moderator" and ask the moderators to move it. If you want to change the topic title, you can edit the original post.