I want to build steering wheel, joystick or gamepad to play pc games using Arduino "Uno". But the problem is how I will make games or windows accept my Arduino Uno "as a gamepad"? I have learned that I can use firmwares to do this. But,
I don't know what firmware is, and what is its difference from a library. And! what happens to my Atmega328 (on my Arduino Uno R3) if I use a custom firmware? I mean can I turn back to standard of it and will it change inside of my chip?
Or maybe there is an "emulator" software to convert my serial signals to gamepad signals which games can see.
But how can I make games or windows accept my arduino uno as a gamepad?
By changing the software of the ATmega16U2 on the UNO board which does the USB to serial conversion. This chip can be reprogrammed to act as a mouse, keyboard, joystick or any other USB device you want it to be.
What happens to my Atmega328 (on my Arduino Uno R3) if I use a custom firmware?
What's the firmware in your eyes? The bootloader? If you change it, you must have a ICSP programmer and if you have one you can change it as often as you like. So everything that "happens" to your processor is that it runs different software.
I want to make joystick, gamepad and steering wheel
You can use the UNO to do what you want but it's easier to use an Arduino Leonardo (or the Micro). There the USB hardware is directly inside the main processor and you don't have the problem to create a serial protocol for the information interchange between the main processor and the USB controller as you have on the UNO.
Thanks pylon
Can I reprogram the ATmega16U2 to act as an Arduino again as its original after reprogramming it to act as a mouse, keyboard, joystick or any other USB device without using ICSP programmer? Sorry, I am a beginner.
And sorry Nick Gammon,
Did I make a cross-post? I thought I changed the subject text. But If I did, really sorry. Don't get angry.
Can I reprogram the ATmega16U2 to act as an Arduino again as its original after reprogramming it to act as a mouse, keyboard, joystick or any other USB device without using ICSP programmer? Sorry, I am a beginner.
No, you need an ICSP programmer to do that. If you want to do that USB stuff without an ICSP programmer, use a Leonardo or Micro.
Why not just get a Leonardo, its already able to be seen as a keyboard. Not sure about the analog values though, that's out of my knowledge range. Perhaps a program that can look at the values being sent from the Leonardo and convert them to usable data.