Arduino Due on Jetson TK1

Our setup consists of our Jetson and a laptop (running Ubuntu 14.04) connected to a router; We run a (ROS) launch file on the Jetson and have the laptop send the Jetson joy messages (via wired xbox controller) over the network (router). The Arduino Due then receives these joy messages and moves the motors. However, we keep on getting errors on the Jetson (such as lost connection to device and rosserial version mismatch). Any advice? Thanks!

What version of L4T? There is a known issue with gigabit on R21.1 and R21.2 (should be fixed in R21.3). It could of course be different from a network error, but if you have one of the older versions this is where I’d start.

FYI, version via “head -n 1 /etc/nv_tegra_release”.

It is actually communicating over wifi (using a mini pci-e intel wifi chip).

Oh, and the version is 21.2.1

21.2.1 would be a Grinch kernel version. The rest of L4T had some updates to deal with some networking issues. So much work has been done for both wireless and wired I’d highly suggest trying R21.3 (with Grinch kernel for support of your wireless).

Sorry, we are using version 21.3.2 on our Jetson. We have multiple Jetson boards, hard to keep track sometimes.

That version number sounds like the kernel version. I’m more interested in the L4T itself. You can get that via “head -n 1 /etc/nv_tegra_release”. R21.3 is the most current. The network issues seemed to have revolved around scheduling and not the actual network drivers, although it made gigabit show up as an issue. This could conceivably effect wireless as well.

Yes, it is version 21.3. I tried to not use wireless and just run the nodes on the Jetson itself (via rosrun). We have our own nodes (control and moon_control), they are supposed to take in joy messages, convert them into velocity messages (one node controls the wheels, another controls the conveyor belt/dumping mechanism) and publish them to the arduino Due. I tried this last night and everytime, I get the error “lost connection to device”. Sometimes, I will get the error “rosserial software version mismatch”, but when I reflash the Arduino Due, that goes away (for a while).

It sounds like part of ROS or talking to the Arduino board is at issue, but I have no way to test. If it happens to be part of a driver in the kernel though, you might have logs indicating the source of the error, e.g., /var/log/messages or dmesg. If you found the location in the ROS software which has the “serial version mismatch” it might be a pretty big clue.

Thanks! I will check the logs. I think it might be a baud rate issue. I use a baud rate of 115200 on both the arduino Due and ROS and I get some things to work. but not all.

I don’t know which part uses the 115200 baud serial, but you might look into any possible buffer size increase (admittedly a longshot). If you know of a particular process working with consuming data from this serial connection you might also try a slight renice to higher priority/lower nice.