USB Gamepad firmware for stm32f4