Джойстик это USB-HID устройство. Для работы с ним нужно получить его HID дескриптор, но перед этим надо опросить его как USB устройство и получить его входные и выходные ноды, затем опросить как HID получив дескриптор, построить по дискриптору формат пакетов. Затем обрабатывать каждый отправленный пакет с нужной ноды по заданному формату.
Вам надо разобраться как работает сам USB на низком уровне и как работает HID. Я как то смотрел как работает джойстик на Arduino Leonardo.
Грубо говоря надо сказать джойстику что все ок и он может слать данные, а затем парсить эти данные.
Возможно это вам поможет - тут подготовленные команды обмена и опроса:
https://gist.github.com/project-pp/3307da0145d515c...