Hoblybro Pixhawk Jetson Baseboard User Manual

Table of Contents

Overview & Specification

Features

Jetson Xaviar NX and Jetson Nano are partially compatible.
 
This baseboard will function as a Jetson Carrier without the Autopilot Flight Controller

Jetson Orin NX/Nano Connectors

  • Gigabit Ethernet

Connected to both Jetson & Autopilot via Ethernet Switch (RTL8367S) – 8-pin JST-GH – RJ45

8-pin JST-GH

RJ45

  • 2x MIPI CSI Camera Inputs

4 Lanes each

15-Pin Raspberry Pi Cam FFC

  • 2x USB 3.2 Host Port

USB A

1.5A Current Limit

  • 2x USB 2.0 Host Port

5-Pin JST-GH

1.0A Current Limit

  • USB 2.0 for Programming/debugging

USB-C

M.2 Key M 2242 for NVMe SSD

PCIEx4

  • M.2 Key E 2230 for WiFi/BT

PCIEx2

USB

UART

12S

  • Mini HDMI Out

4x GPIO

6-pin JST-GH

  • CAN Port

Connected to Autopilot’s CAN2 (4 Pin JST-GH)

  • SPI Port

7-Pin JST-GH

  • I2C Port

4-Pin JST-GH

  • I2S Port

7-Pin JST-GH

  • 2x UART Port

1 for debug

1 connected to Autopilot’s telem2

  • Fan Power Port

Current limit 0.35A

  • IIM42652 IMU
  • Input Power

XT30 Connector

Voltage Rating: 7V-24V (2S-4S)

Separate input power circuits than the Autopilot to ensure flight safety

Holybro UBEC can be used for application above 4S

Note: The Pixhawk Jetson Baseboard has an integrated UBEC to convert 7V-24V to 5.0V for the Jetson. Using an external UBEC alongside the integrated one provides redundancy and easier replacement in case of BEC failure.

  • Power Requirements

Depends on Usage and Peripherals, mininum ~15-30watt

Autopilot Flight Controller Connectors

  • Pixhawk Autopilot Bus Interface – 100 Pin Hirose DF40 – 50 Pin Hirose DF40

Pixhawk Autopilot Bus (PAB) Form Factor

  • Redundant Digital Power Module Inputs

I2C Power Monitor Support

2x – 6 Pin Molex CLIK-Mate

Power Path Selector w/ Overvoltage Protection

  • Voltage Ratings:

Max input voltage: 6V

USB Power Input: 4.75~5.25V

  • 2 GPS Port

GPS1 – GPS Plus Safety Switch Port (10-Pin JST-GH)

GPS2 – basic GPS Port (6-pin JST-GH)

  • 2x CAN Ports

4 Pin JST-GH

  • 3x Telemetry Ports with Flow Control

2x 6-Pin JST-GH

1 is connected to Jetson’s UART1 Port

  • 16 PWM Outputs

2x 10-Pin JST-GH

  • UART4 & I2C Port

6-Pin JST-GH

  • Gigabit Ethernet port

Connected to both Jetson & Autopilot via Ethernet Switch (RTL8367S)

8-pin JST-GH

RJ45

  • AD & IO

8-Pin JST-GH

  • USB 2.0

USB-C

4-pin JST-GH

  • DSM Input

3-pin JST-ZH 1.5mm Pitch

  • RC in

PPM/SBUS

5-pin JST-GH

  • SPI Port

External Sensor Bus (SPI5aut

11-Pin JST-GH

  • 2x Debug Port

1 for FMU

1 for IO

10-Pin JST-SH

  • Current Ratings:

Telem1 output current limiter: 1.5A

All other port combined output current limiter: 1.5A

Ports Pinout

Hoblybro Pixhawk Jetson Baseboard User Manual 5 - Hoblybro Pixhawk Jetson Baseboard User Manual

Pin 1 starts from the flight controllers like diagram below

Power 1 (Main), Power 2 Ports

(2.00mm Pitch CLIK-Mate)

Pin

Signal

Voltage

1(red)

VDD5V_BRICK1/2(in)

+5V

2(black)

VDD5V_BRICK1/2 (in)

+5V

3(black)

SCL1/2

+3.3V

4(black)

SDA1/2

+3.3V

5(black)

GND

GND

6(black)

GND

GND

Tel1, Tel3 Ports

Pin

Signal

Voltage

1(red)

VCC (out)

+5V

2(black)

TX7/2(out)

+3.3V

3(black)

RX7/2(in)

+3.3V

4(black)

CTS7/2(in)

+3.3V

5(black)

RTS7/2(out)

+3.3V

6(black)

GND

GND

CAN1, CAN2 Ports

Pin

Signal

Voltage

1(red)

VCC (out)

+5V

2(black)

CANH1/2

+3.3V

3(black)

CANL1/2

+3.3V

4(black)

GND

GND

GPS1 Port

Pin

Signal

Voltage

1(red)

VCC (out)

+5V

2 black)

TX1(out)

+3.3V

3(black)

RX1(in)

+3.3V

4(black)

SCL1

+3.3V

5(black)

SDA1

+3.3V

6(black)

SAFETY_SWITCH

+3.3V

7(black)

SAFETY_SWITCH_LED

+3.3V

8(black)

VDD_3V3

+3.3V

9(black)

BUZZER-

0~5V

10(black)

GND

GND

GPS2 Port

Pin

Signal

Voltage

1(red)

VCC (out)

+5V

2 black)

TX8(out)

+3.3V

3(black)

RX8(in)

+3.3V

4(black)

SCL2

+3.3V

5(black)

SDA2

+3.3V

6(black)

GND

GND

UART4 & I2C Port

(also shown as UART&I2C on some board)

Pin

Signal

Voltage

1(red)

VCC (out)

+5V

2(black)

TX4(out)

+3.3V

3(black)

RX4(in)

+3.3V

4(black)

SCL3

+3.3V

5(black)

SDA3

+3.3V

6(black)

NFC_GPIO

+3.3V

7(black)

GND

GND

SPI Port

Pin

Signal

Voltage

1(red)

VCC (out)

+5V

2 (black)

SPI6_SCK

+3.3V

3(black)

SPI6_MISO

+3.3V

4(black)

SPI6_MOSI

+3.3V

5(black)

SPI6_CS1

+3.3V

6(black)

SPI6_CS2

+3.3V

7(black)

SPIX_SYNC

+3.3V

8(black)

SPI6_DRDY1

+3.3V

9(black)

SPI6_DRDY2

+3.3V

10(black)

SPI6_nRESET

+3.3V

11(black)

GND

GND

FMU USB Port

Pin

Signal

Voltage

1(red)

VBUS (in)

+5V

2(black)

DM

+3.3V

3(black)

DP

+3.3V

4(black)

GND

GND

I2C Port

Pin

Signal

Voltage

1(red)

VCC

+5V

2(black)

SCL3

+3.3V

3(black)

SDA3

+3.3V

4(black)

GND

GND

ETH-P1 Port

Pin

Signal

Voltage

1(red)

TX_D1+

2(black)

TX_D1-

3(black)

RX_D2+

4(black)

RX_D2-

5(black)

Bi_D3+

6(black)

Bi_D3-

7(black)

Bi_D4+

8(black)

Bi_D4-

IO Debug Port

(JST-SH 1mm Pitch)

Pin

Signal

Voltage

1(red)

IO_VDD_3V3(out)

+3.3V

2 black)

IO_USART1_TX

+3.3V

3(black)

NC

4(black)

IO_SWD_IO

+3.3V

5(black)

IO_SWD_CK

+3.3V

6(black)

IO_SWO

+3.3V

7(black)

IO_SPARE_GPIO1

+3.3V

8(black)

IO_SPARE_GPIO2

+3.3V

9(black)

IO_nRST

+3.3V

10(black)

GND

GND

FMU Debug port

(JST-SH 1mm Pitch)

Pin

Signal

Voltage

1(red)

FMU_VDD_3V3(out)

+3.3V

2( black)

FMU_USART3_TX

+3.3V

3(black)

FMU_USART3_RX

+3.3V

4(black)

FMU_SWD_IO

+3.3V

5(black)

FMU_SWD_CK

+3.3V

6(black)

SPI6_SCK_EXTERNAL1

+3.3V

7(black)

NFC_GPIO

+3.3V

8(black)

PH11

+3.3V

9(black)

FMU_nRST

+3.3V

10(black)

GND

GND

AD&IO port

Pin

Signal

Voltage

1(red)

VCC (out)

+5V

2(black)

FMU_CAP1

+3.3V

3(black)

FMU_BOOTLOADER

+3.3V

4(black)

FMU_RST_REQ

+3.3V

5(black)

NARMED

+3.3V

6(black)

ADC1_3V3

+3.3V

7(black)

ADC1_6V6

+6.6V

8(black)

GND

GND

DSM RC Port

(JST-ZH 1.5mm Pitch)

Pin

Signal

Voltage

1(yellow)

VDD_3V3_SPEKTRUM

+3.3V

2(black)

GND

GND

3(gray)

DSM/Spektrum in

+3.3V

RC IN Port

Pin

Signal

Voltage

1(red)

VDD_5V _RC (out)

+5V

2( black)

SBUS/PPM in

+3.3V

3( black)

RSSI_IN

+3.3V

4( black)

NC

5( black)

GND

GND

SBUS Out Port

Pin

Signal

Voltage

1(red)

NC

2( black)

SBUS_OUT

+3.3V

3( black)

GND

GND

FMU PWM Out Port

Pin

Signal

Voltage

1(red)

VDD_SERVO

0~16V

2(black)

FMU_CH1

+3.3V

3(black)

FMU_CH2

+3.3V

4(black)

FMU_CH3

+3.3V

5(black)

FMU_CH4

+3.3V

6(black)

FMU_CH5

+3.3V

7(black)

FMU_CH6

+3.3V

8(black)

FMU_CH7

+3.3V

9(black)

FMU_CH8

+3.3V

10(black)

GND

GND

IO PWM Out Port

Pin

Signal

Voltage

1(red)

VDD_SERVO

0~16V

2(black)

IO_CH1

+3.3V

3(black)

IO_CH2

+3.3V

4(black)

IO_CH3

+3.3V

5(black)

IO_CH4

+3.3V

6(black)

IO_CH5

+3.3V

7(black)

IO_CH6

+3.3V

8(black)

IO_CH7

+3.3V

9(black)

IO_CH8

+3.3V

10(black)

GND

GND

Orin USB2.0 Port

Pin

Signal

Voltage

1(red)

USB_VBUS (out)

+5V

2(black)

DM

+3.3V

3(black)

DP

+3.3V

4(black)

GND

GND

5(black)

Shield

GND

Orin Debug

Tel1, Tel3 Ports

Pin

Signal

Voltage

1(red)

VCC (out)

+5V

2(black)

Orin_UART2_TXD

+3.3V

3(black)

Orin_UART2_RXD

+3.3V

4(black)

NC

5(black)

NC

6(black)

GND

GND

Orin I2C Port

Pin

Signal

Voltage

1(red)

VCC (out)

+5V

2(black)

Orin_I2C1_SCL

+3.3V

3(black)

Orin_I2C1_SDA

+3.3V

4(black)

GND

GND

Orin GPIO Port

Pin

Signal

Voltage

1(red)

VCC

+5V

2(black)

Orin_GPIO_07

+3.3V

3(black)

Orin_GPIO_11

+3.3V

4(black)

Orin_GPIO_12

+3.3V

5(black)

Orin_GPIO_13

+3.3V

6(black)

GND

GND

Orin Camera0 Port

Camera Serial Interface (CSI)

Pin

Signal

Voltage

1

GND

GND

2

Orin_CSI1_D0_N

+3.3V

3

Orin_CSI1_D0_P

+3.3V

4

GND

GND

5

Orin_CSI1_D1_N

+3.3V

6

Orin_CSI1_D1_P

+3.3V

7

GND

GND

8

Orin_CSI1_CLK_N

+3.3V

9

Orin_CSI1_CLK_P

+3.3V

10

GND

GND

11

Orin_CSI0_D0_N

+3.3V

12

Orin_CSI0_D0_P

+3.3V

13

GND

GND

14

Orin_CSI0_D1_N

+3.3V

15

Orin_CSI0_D1_P

+3.3V

16

GND

GND

17

Orin_CAM0_PWDN

+3.3V

18

Orin_CAM0_MCLK

+3.3V

19

GND

GND

20

Orin_CAM0_I2C_SCL

+3.3V

21

Orin_CAM0_I2C_SDA

+3.3V

22

VDD

+3.3

Orin Camera1 Port

Camera Serial Interface (CSI)

Pin

Signal

Voltage

1

GND

GND

2

Orin_CSI2_D0_N

+3.3V

3

Orin_CSI2_D0_P

+3.3V

4

GND

GND

5

Orin_CSI2_D1_N

+3.3V

6

Orin_CSI2_D1_P

+3.3V

7

GND

GND

8

Orin_CSI2_CLK_N

+3.3V

9

Orin_CSI2_CLK_P

+3.3V

10

GND

GND

11

Orin_CSI3_D0_N

+3.3V

12

Orin_CSI3_D0_P

+3.3V

13

GND

GND

14

Orin_CSI3_D1_N

+3.3V

15

Orin_CSI3_D1_P

+3.3V

16

GND

GND

17

Orin_CAM1_PWDN

+3.3V

18

Orin_CAM1_MCLK

+3.3V

19

GND

GND

20

Orin_CAM1_I2C_SCL

+3.3V

21

Orin_CAM1_I2C_SDA

+3.3V

22

VDD

+3.3V

Orin SPI Port

Pin

Signal

Voltage

1(red)

VCC

+5V

2(black)

Orin_SPI0_SCK

+3.3V

3(black)

Orin_SPI0_MISO

+3.3V

4(black)

Orin_SPI0_MOSI

+3.3V

5(black)

Orin_SPI0_CS0

+3.3V

6(black)

Orin_SPI0_CS1

+3.3V

7(black)

GND

GND

Orin I2S Port

Pin

Signal

Voltage

1(red)

VCC

+5V

2(black)

Orin_I2S0_SDOUT

+3.3V

3(black)

Orin_I2S0_SDIN

+3.3V

4(black)

Orin_I2S0_LRCK

+3.3V

5(black)

Orin_I2S0_SCLK

+3.3V

6(black)

Orin_GPIO_09

+3.3V

7(black)

GND

GND

Block Diagram

Dimension & Weight

Weight

  • Without Jetson and Flight Controller: 85g
  • With Jetson, no Heatsink or Flight Controller: 110g
  • With Jetson and Heatsink, no Flight Controller: 175g
  • With Jetson, Heatsink, and Pixhawk 6X Flight Controller: 185g
  • With Jetson, Heatsink, Pixhawk 6X Flight Controller, M.2 SSD, M.2 Wi-Fi Module: 190g

Dimensions

(Unit in milimeter)
  • Without Jetson and FC Module: 126 x 80 x 22.9mm
  • With Jetson Orin NX + Heatsink/Fan & FC Module: 126 x 80 x 45mm

Flashing guide

Two ways could be considered 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.html

Note: Keep it in mind that at the time of writing this document we chose to install Jetpack 5.3.1

Command Line:

You could benefit from Nvidia flash guide.

The difference here is you need to change the DIP switch on the carrier board to REC to boot in recovery mode.

CAN setup

CAN2 on the basboard is conneted internally to both FCU and Jetson module. The basics could be implemented from Nvidia user guide: https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/HR/ControllerAreaNetworkCan.html

However, you could follow the below quick commands might make you able to loopback test the CAN connection between Jetson module and FCU on Jetson’s terminal:

				
					sudo modprobe mttcan
sudo ip link set can0 type can bitrate 500000 loopback on
sudo ip link set can0 up
candump can0 &
cansend can0 123#abcdabcd
				
			

The last command has to have the following output if can is running OK:

				
					  can0  123   [4]  AB CD AB CD
  can0  123   [4]  AB CD AB CD
				
			

CSI Camera setup

Popular cameras supported out of the box include IMX219 camera modules such as Raspberry Pi Camera Module V2. For theCSI camera basically you could benefit from Nvidia guide

https://developer.nvidia.com/embedded/learn/tutorials/first-picture-csi-usb-camera

Holybro Jetson carrier board can have two CSI cameras connected. To give a short intro you can try the following commands in terminal in case you carrier board is connected to a display screen:

				
					nvgstcapture-1.0
				
			

To open the capture on a specific cam you can pass the following (assuming we want to test cam1 on Orin_camera 1):

				
					nvgstcapture-1.0 sensor-id=1
				
			

MAVLINK Bridge

Serial Connection

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

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 eth0

2: eth0: <broadcast> 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</broadcast>
				
			

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:

				
					ifconfig

eth0    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 eth0

ifup eth0...OK
				
			

Now check the config again:

				
					ifconfig

eth0    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’t have an IP yet. I’m going to set one similar to the one of Jetson:

				
					ifconfig eth0 169.254.21.184
				
			

And check it:

				
					ifconfig

eth0    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’ll need to find a way to configure it statically.

Ping test

First from the Jetson terminal:

				
					ping 169.254.21.184

PING 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 ms
64 bytes from 169.254.21.184: icmp_seq=2 ttl=64 time=0.131 ms
64 bytes from 169.254.21.184: icmp_seq=3 ttl=64 time=0.190 ms
64 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 3077ms
rtt min/avg/max/mdev = 0.112/0.155/0.190/0.034 ms
				
			

And from the FC in Nuttx Shell:

				
					ping 169.254.21.183

PING 169.254.21.183 56 bytes of data
56 bytes from 169.254.21.183: icmp_seq=0 time=0 ms
56 bytes from 169.254.21.183: icmp_seq=1 time=0 ms
56 bytes from 169.254.21.183: icmp_seq=2 time=0 ms
56 bytes from 169.254.21.183: icmp_seq=3 time=0 ms
56 bytes from 169.254.21.183: icmp_seq=4 time=0 ms
56 bytes from 169.254.21.183: icmp_seq=5 time=0 ms
56 bytes from 169.254.21.183: icmp_seq=6 time=0 ms
56 bytes from 169.254.21.183: icmp_seq=7 time=0 ms
56 bytes from 169.254.21.183: icmp_seq=8 time=0 ms
56 bytes from 169.254.21.183: icmp_seq=9 time=0 ms
10 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 mavsdk

wget https://raw.githubusercontent.com/mavlink/MAVSDK-Python/main/examples/tune.py
chmod +x tune.py
./tune.py
				
			

Follow us World Drone Market on our YouTube to view more about the Hoblybro Pixhawk Jetson Baseboard.

Comments

0 Comments Add comment

Leave a comment