Hello everyone,
I am happy to use the Jetson Nano since 2 months. I am not very experienced with Jetson boards. But I need 3 UART Ports accessible to communicate with other things. I read that the Jetson Nano has 3 UART Ports. At the moment I use the Jetson development board but the module will be swapped out of the Jetson Nano in our own board (if it is relevant). The problem is, that on Serial 0 is a serial console. I don’t want this console. Am I able to use all 3 of those UARTs in user land using syscalls or c++/python code.
Can you please give me full instructions to do that or hint me to a tutorial or something like that?
If I won’t get 3 Serial ports, I am technically able to use unused SPI Ports as UARTs if I just won’t connect the clock. Do you think I am able to do this? But this would be the last try.
You can get as many UARTs as you want if you slave some small microcontroller with additional UARTs on your board – a $1 Cortex M0 with a little bit of firmware could do it. You could then let that MCU talk to each UART, and use one of the Nano UARTs (or SPI or I2C) to talk to the MCU.
Compared to the cost of a custom carrier PCB, the additional MCU is unlikely to be a big cost (unless you plan on making hundreds of thousands of these.)
Hi, thanks for the answer. I don’t know if it’s important, but I am talking about the Jetson Nano but the post is about the TX2. I read in the data sheet, that the Jetson Nano only has 3 UARTs on its connector. That wouldn’t correspond to your link. It’s page 34-35 in the Jetson Nano module data sheet. Can I use all of them for my own purposes or can I even use 2 of those?
I tried to change what you said, but I still got a serial console. Can you give me a hint what I’m doing wrong?
Firstly I used this repo a lot: https://github.com/JetsonHacksNano/buildKernelAndModules
I ran the getKernelSources.sh script. Then I removed this line " console-port;" in the file: /usr/src/hardware/nvidia/platform/t210/porg/kernel-dts/tegra210-porg-p3448-commen.dtsi .
Then I ran makeKernel.sh and makeModules.sh.
Lastely I made this:
I made a loopback test, by connecting RX to TX and both via a 5kOhm resistor to GND, but didn’t get my message back out. Also I am wondering what linux device I should use. Is it /dev/ttyTHS2?
Then I connected a second PC to the MicroUSB Port and got a serial console. Is this ok?
What am I doing wrong and by the way can I use UART0 for my own purposes if I don’t use the m.2 slot?
I tried to change what you said, but I still got a serial console. Can you give me a hint what I’m doing wrong?
Not sure if you noticed this… what you are modifying is the dts/dtsi file (device tree) but what you’ve rebuilt through the script is the kernel image. They are two different files. You were just keeping updating kernel image but not dtb.
Please read our l4t document to understand how to build dtb.
After changing this, serial console is gone, but I can’t open ttyS0 port in terminal
(after sudo sh -c ‘cat < /dev/ttyS0’ command the result is: cat: -: Input/output error. )
Hello, could the compiling .dts be done in dependently to rebuiliding the kernel? Will just compile and replace the old one in /boot/dtb/ work?
Thanks.