Table of Contents
Overview & Specification
Features
- Fully compatible with Jetson Orin NX/Nano
- Combines the power of Pixhawk & Jetson in a small form factor
- Pixhawk Autopilot Bus (PAB) open source specification
- Jetson & Autopilot are connected via UART, CAN, and Ethernet Switch
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
- 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

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: 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:
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.
Leave a comment
You must be logged in to post a comment.