Hello, I am an electronic technician and programmer, I spent a few years programming in AVR and now I am starting a steering wheel project for a gaming PC, right now I have a problem. The idea that I cannot use an Arduino Uno or Mega for my project does not enter my head, since according to my understanding, if there is electrical communication between the PC and the Arduino via USB COM, why could it not be communicated to the game through a custom driver or something like that. I've been thinking about it and researching it for a while. My general question is what is the electrical difference between USB and UART? Why can't you connect the data pins to any pin of the Arduino and program its operation and if you can, why isn't it done yet? Why do you have to use the USB - UART converter? I have too many questions for one thread so I'm going slowly, thanks for taking the time to read.
- You don’t.
- Google
ICSP Arduino programming.

ok maybe I wasn't very specific, my problem is that I want to get data from the arduino to my pc. Example take data from a potentiometer and use it as a joystick, but the most common answers are to use an arduino leonardo or pro micro or a USB bridge, since the converter that comes with the arduino only serves to program it.
I am attaching some of the info I have been able to gather from the forum by way of understanding:
Using the USB port: Reuse USB port on Arduino for other tasks - #7 by macegr
Make a driver: Create a driver for windows to recognize a printer with arduino - #8 by svalois
Reading with another program in windows: Reading Arduino serial on PC - #3 by srgochman
Hi @nahu094 ,
Welcome to the forum..
Yes, the USB is used to program the Uno or Mega.
Once programmed then Yes, you can use the usb serial for communications to your game, no driver needed, just open the port and read..
Maybe I'm confused..
good luck.. ~q
USB has no Rx/Tx UART signals. A (TTL) UART is not well suited for communication with other devices, so a couple of converters (RS-232, RS-485, MODBUS, current loop...) exist for that purpose. A USB-UART converter already sits on your UNO, so you can use it with any terminal or other program as a serial port on your PC.
Hope that the following description will help you to understand that the just direct connections of D+ and D- pins of the USB Port of PC with two pins (say: 10, 11) of Arduino UNO will not help for data exchange between PC and UNO.
1. USB Port of PC
There are two data pins: D+ and D-; one pin for 5V; one pin for GND (Fig-2).
2. Assume that you want to transfer a 10-bit asynchronous frame for charcater '9' (Fig-1) from PC using its USB Port to Arduino UNO. The following events occur:
Figure-1:
(1) The TTL format of the async signal (Fig-1) enters into a "TTL async to USB async" converter (an elctronics module similar to U1 of Fig-2 located on the Motherboard of PC) to produce D+ and D- signals (Fig-1) which appear on the physical D+ and D- pins of the USB Port (Fig-2). The differential format of D+ and D- is known as Manchester Encoding (USB Format). You can read literatures to know the advantages of Manchester Encoding. The signal can travel upto 25 meters (82 meters) and is extensively used in Local Area Network.
Figure-2:
(2) At the Receiver Side (the UNO), naturally the same arranagement as in Fig-2 should be engaged to retrieve the original TTL format from the incomging USB format from the RXD-pin of U1.
3. In Fig-3, we can observe the existence of USB <----->TTL Converter chip (CH340G).
Figure-3:
Note: It would be possible to make a direct connection of the TX/RX pin (carries TTL async frame from hardware UART Port) of UNO with the PC should the formatter output of the PC (Fig-2) be available at a rear connector of the PC. Any other two pins of UNO could have been connected, then those two signals must carry TTL async frame from a Software UART Port of UNO.
Thank you very much, this answer is the one I couldn't find, I thought that usb also transmits data in TTL, I see that its electrical characteristics are different. Thank you very much for your answer, it has really clarified me a lot.
Ok, maybe I can make a small program/driver that recognizes the arduino port and transforms it into a virtual joystick device, then it would only be to read the serial data. I saw that with python I can do it.
I replyed the last in spanish lol
The only detail would be that the arduino port should be a HID device like a joystick.
Then yes, out the box, uno and mega wouldn't cut it..
Arduino Joystick Lib Supported Boards..
You could make it work, HoodLoader2..
But seems like allot of trouble..
Maybe an esp32s3 dev kit..
Has 2 usb ports on it, one uart the other can be hid I believe..
ESP32 Joystick Lib..
cheaper, faster and don't have to hack it..
good luck.. ~q
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.


