Send Command From Laptop(windows) to Jetson nano using USB of Laptop?

I want to send a character from my Laptop that has a windows OS to Jetson nano from USB using python. I have read about Pyserial but don’t know how to use it with jetson!

Directly sending with USB could get complicated, but if you use a USB serial UART (same cable as you’d use for serial console, which is a good idea to have and is cheap and runs from most any o/s), then you could talk via serial UART. Serial UARTs (in this case a USB serial UART at the host PC end) are not particularly fast, and you’ll get best results at the default speed off 115200 bits/sec (there is a stop bit overhead to consider if speeds are close). You can speed this up some, but you might need to run at two stop bits. The same cable for serial console can be used on other UARTs which are part of the Jetson. See:

Note that on the dev kit the J17 connector also connects to the camera socket, but most cameras don’t use this even if you have a camera on that socket. The J41 UART is for serial console, and it is discouraged to disable serial console during development, but you could use the J41 serial console and use that UART directly.

Serial ports are very simple, and if the speeds and settings are correct at both sides (there is a UART talking to a UART, and they are not plug-n-play, so it is up to you to use the correct settings…simple with serial console programs, not too bad in programming languages, but you need to be aware). On the Jetson side there are a lot of examples (since it is Linux) on using the UART. It is just a file in “/dev”. If the file has a name like “/dev/ttyS0”, then it is using the default Linux driver; if it is using a name like “/dev/ttyTHS0”, then it is the “Tegra High Speed” driver (which takes advantage of DMA). “/dev/ttyS0” would be the same hardware as “/dev/ttyTHS0”, but the file is produced by a driver, and is not a “real” file, so the file name indicates which driver is being used…don’t use both drivers simultaneously, stick to one. File names on a Linux PC are more like of the format “/dev/ttyUSB0” or “/dev/ttyACM0”, and won’t have but a single driver (name depends on brand, I tend to stick to FTDI devices since they are hassle free and almost always available by default without any special steps, and these produce the file name “ttyUSB#” format).

You can actually connect a USB serial UART on the Jetson itself and not use the Jetson’s integrated UARTs if you wish. If you need to go to higher speeds this might actually be easier (and still cheap to do). Just look at the information on the serial console UART, and make sure it is a 3.3V TTL logic level UART. On Windows you can test with a serial console program like PuTTY, and run a serial console program on the Jetson side (remember that we are not using the J41 connector which already has a terminal running, we are using an “unused” UART without anything already running on it) you could also add a terminal via any serial console program, e.g., gtkterm or minicom or picoterm, and as you type characters on one terminal they would echo on the remote terminal. TX and RX of a single UART can be wired to each other and this is a good “loopback” test mode to have the UART talk to itself (two separate UARTs might disagree with each other on settings, but a single UART would seldom disagree with itself on settings).

From the Linux side there are tons of Google search articles on serial UART programming from Python…it is immensely popular and a very old technology.