Categories
Pixhawk Jetson Baseboard

Pixhawk Baseboards Pixhawk Jetson Baseboard MAVLINK Bridge

Serial Connection

Pixhawk TELEM2 is internally connected to the Jetson module. Let us first check the connection on the Jetson terminal. Consider having a MAV connection to companion computers in advance. Check PX4 Docs for the details. For a sanity check, you could run mavlink shell on /dev/ttyTHS0

Ethernet Connection

Since there is no DHCP server active in this configuration, the IPs have to be set manually:Once the Ethernet cables are plugged in, the eth0 network interface seems to switch from DOWN to UP.
You can check the status using:
ip address show eth0

You can also try to enable it manually:
sudo ip link set dev eth0 up

It then seems to automatically set a link-local address, for me it looks like this:
ip address show eth02: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 169.254.21.183/16 brd 169.254.255.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet6 fe80::yyyy:yyyy:yyyy:yyyy/64 scope link valid_lft forever preferred_lft forever

This means the Jetson’s Ethernet IP is 169.254.21.183.

IP setup on FC

Now connect to the NuttX shell (using a console or the MAVLink shell) and check the status of the link:
ifconfigeth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx at DOWN inet addr:0.0.0.0 DRaddr:192.168.0.254 Mask:255.255.255.0

For me, it is DOWN at first.
To set it to UP:
ifup eth0ifup eth0...OK

Now check the config again:
ifconfigeth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx at UP inet addr:0.0.0.0 DRaddr:192.168.0.254 Mask:255.255.255.0

However, it doesn鈥檛 have an IP yet. I鈥檓 going to set one similar to the one of Jetson:
ifconfig eth0 169.254.21.184

And check it:
ifconfigeth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx at UP inet addr:169.254.21.184 DRaddr:169.254.21.1 Mask:255.255.255.0

Now the devices should be able to ping each other.
Note that this configuration is ephemeral and will be lost after a reboot, so we鈥檒l need to find a way to configure it statically.

Ping test

First from the Jetson terminal:
ping 169.254.21.184PING 169.254.21.184 (169.254.21.184) 56(84) bytes of data.64 bytes from 169.254.21.184: icmp_seq=1 ttl=64 time=0.188 ms64 bytes from 169.254.21.184: icmp_seq=2 ttl=64 time=0.131 ms64 bytes from 169.254.21.184: icmp_seq=3 ttl=64 time=0.190 ms64 bytes from 169.254.21.184: icmp_seq=4 ttl=64 time=0.112 ms^C--- 169.254.21.184 ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 3077msrtt min/avg/max/mdev = 0.112/0.155/0.190/0.034 ms

And from the FC in Nuttx Shell:
ping 169.254.21.183PING 169.254.21.183 56 bytes of data56 bytes from 169.254.21.183: icmp_seq=0 time=0 ms56 bytes from 169.254.21.183: icmp_seq=1 time=0 ms56 bytes from 169.254.21.183: icmp_seq=2 time=0 ms56 bytes from 169.254.21.183: icmp_seq=3 time=0 ms56 bytes from 169.254.21.183: icmp_seq=4 time=0 ms56 bytes from 169.254.21.183: icmp_seq=5 time=0 ms56 bytes from 169.254.21.183: icmp_seq=6 time=0 ms56 bytes from 169.254.21.183: icmp_seq=7 time=0 ms56 bytes from 169.254.21.183: icmp_seq=8 time=0 ms56 bytes from 169.254.21.183: icmp_seq=9 time=0 ms10 packets transmitted, 10 received, 0% packet loss, time 10010 ms

MAVLink/MAVSDK test

For this, we need to set the mavlink instance to send traffic to the Jetson’s IP:
For an initial test we can do:
mavlink start -o 14540 -t 169.254.21.183

This will send MAVLink traffic on UDP to port 14540 (the MAVSDK/MAVROS port) to that IP which means MAVSDK can just listen to any UDP arriving at that default port.
To run a MAVSDK example, install mavsdk via pip, and try out an example from MAVSDK-Python/examples.
For instance:
python3 -m pip install mavsdkwget https://raw.githubusercontent.com/mavlink/MAVSDK-Python/main/examples/tune.pychmod +x tune.py./tune.py

Leave a Reply

Your email address will not be published. Required fields are marked *


Other Posts


Categories
Pixhawk Jetson Baseboard

Pixhawk Baseboards Pixhawk Jetson Baseboard CAN setup

AACAN2 on the basboard is conneted internally to both FCU and Jetson module. The basics could be implemented from Nvidia user guide:Controller Area Network (CAN) Jetson Linux Developer Guide documentationNvdia Jetson official CAN setup guideHowever, you could follow the below quick commands might make you able to loopback test the CAN connection between Jetson module […]


Categories
Pixhawk Jetson Baseboard

Pixhawk Baseboards Pixhawk Jetson Baseboard CSI Camera setup

AAPopular cameras supported out of the box include IMX219 camera modules, such as the Raspberry Pi Camera Module V2. For the CSI camera, basically you could benefit from the Nvidia guideTaking Your First Picture with CSI or USB CameraNVIDIA DeveloperNvidia Jetson CAM guideYou may need to connect your Jetson to a display before attempting NVIDIA's […]


Categories
Pixhawk Jetson Baseboard

Pixhawk Baseboards Pixhawk Jetson Baseboard Dimension & Weight

Weight Outer alloy case weight: 90gWithout Jetson and Flight Controller: 85gWith Jetson, no Heatsink or Flight Controller: 110gWith Jetson and Heatsink, no Flight Controller: 175gWith Jetson, Heatsink, and Pixhawk 6X Flight Controller: 185gWith Jetson, Heatsink, Pixhawk 6X Flight Controller, M.2 SSD, M.2 Wi-Fi Module: 190g Dimensions (Unit in millimeters)Without Jetson and FC Module: 126 x […]


Categories
Pixhawk Jetson Baseboard

Pixhawk Baseboards Pixhawk Jetson Baseboard Flashing guide

Note: There are scripts to help you do the necessary basic setup after flashing Jetson on Holybro's Github page: https://github.com/Holybro/holybro-jetson-companionTwo methods to flash the board: SDK Manager: This is a GUI-based solution by Nvidia which can be found from the link below:https://docs.nvidia.com/sdk-manager/install-with-sdkm-jetson/index.htmlNote: Keep it in mind that at the time of writing this document, we […]