I am trying to connect the Xavier Development Kit to a DJI M300 via the Advanced Sensing Port (USB-A → USB-A) which should create a new /dev/ttyACM0 device. However I am finding the Xavier does not.
Observing dmesg I do see the device connects and the RNDIS device is created and begins communicating but the ACM device is never created. Does the Xavier support ACM devices?
I should note that the M300 works just fine when connected to a TX2.
ACM devices work if you have the driver. What do you see from this? zcat /proc/config.gz | grep 'USB_ACM'
(I am assuming a USB device)
If it is “=y” or “=m”, then the driver is present. If not, then the driver can be added. It isn’t really the NX which does or does not support this, it is the Linux o/s…and especially on embedded systems you can’t expect all drivers to be present (e.g., if there is a driver for an AMD desktop graphics card it would serve no purpose to have the driver, it just takes up space).
Often a UART with drivers present will fail if the speed and other settings are not correct. For example, if the UART defaults to 9600 baud, then a default of 115200 baud will fail, but it won’t be a hardware or driver failure.
How did you go with this problem? @nzac
I’ve come across a similar situation and it seems there aren’t any solutions to the Xavier NX/M300 combination as of yet.
Here’s another thread on the same situation if you’re interested:
If any part of the UART works at least part of the time, then probably the UART driver is itself working. You mentioned RNDIS, which is a network protocol, and so I am thinking perhaps this is a networking setup issue and not a UART issue. For example, security can get in the way.
If you use the device with a working case, e.g., you mention the TX2, does a network device show up under ifconfig which is specific to the M300?
We were able to get the ACM0 device to appear when flashing the Xavier with Balena which narrows the problem down to Jetpack and removes the M300 is the culprit (at least in my estimation).
I don’t have the Xavier in front of me again, however it doesn’t seem to make sense that network is the issue if dmesg doesn’t even report the USB device as plugged in. UART works great and we get a USB0 device when we connect the drones UART via USB-A.
I just ran a successful test with the TX2 and M300 to answer your question. I also have a Xavier if you can think of any other tests that might be useful.
No new network devices show up with ifconfig, however, I do get a red message in dmesg: serial-tegra c280000.serial: configured rate out of supported range by -0.29 %
It might be worth noting, I am not using the ‘advanced sensing port’ as mentioned above, but rather another DJI adapter board. I have two connections:
What speed is the serial UART running at? Above 115200 two stop bits need to be used. The clock is not able to be set at an exact rate of the higher speeds and the two stop bits improve the amount the clock can be off by and still work.
@paul_dev are you saying you were able to get Advanced Sensing to work with an THS0 device? I understood the X Port’s were for the payload SDK and not the OSDK.