
What’s actually inside a cheap game controller? That question was pretty much the starting point for this one.
The MCU is a GD32L233 — nothing flashy, but it gets the job done. It handles USB communication using the HID class, which means the controller works on any OS without custom drivers. The buttons use carbon contacts on PCB, exactly like real mass-produced controllers. Analog joysticks are read through the MCU’s ADCs with regular polling to keep the values clean.
There’s also a small vibration motor for haptic feedback, driven directly in software. Simple and effective. What I got out of this project, more than anything, was a much clearer picture of how these mass-market products are actually designed on the inside.