1 Product Introduction
The AFE‑R750 is using the ASR‑A701 as its motherboard.
This document will share how to use AFE-R750/ASR-A701 with JetPack 6.1.
1-1 Porduct Features
- AMR AI Controller Board up to 275 TOPS AI computing
- Dedicated I/Os for AMR: 4xGbE, 2xCOM, DIO, CANFD
- Sensor connection for camera, LiDAR, IMU...etc
- Supports Ubuntu 22.04, JetPack 6.1SDK
- IEC 61000-6-4 Heavy Industry Certificate
- Supports Advantech Robotic Suite
1-2 Official Website
2 Hardware Interface Introduction
2-1 Layout and Sizes
- AFE-R750-M series (Orin NX)
- AFE-R750-X series (AGX Orin)
- ASR-A701 (mini-ITX)


ASR-A701 is mini-ITX size, 170mm x 170mm.
2-2 Switch and Jumper
Please refer to the following images for the switch and jumper settings.

| Name | Description |
|---|---|
| RST_RCOVY_(1_2) | System reset and system image recovery, be used in flashing image. |
| COM12_SAFE1 | Enable or disable fail safe function for RS-422/RS-485. |
| COM1_SW1 | Switch for selecting COM1 RS-232/RS-422/RS-485 mode, described detailed in COM section. |
| COM2_SW1 | Switch for selecting COM2 RS-232/RS-422/RS-485 mode, described detailed in COM section. |
| JPSON1 | Switch for selecting AT or ATX mode. |
2-3 Connector Introduction
Please refer to the following images for the IO connectors, more details about the pin defination can be found in the AFE-R750 User Manual.

| Item | Name | Description |
|---|---|---|
| 1 | DCIN1 | DC IN power connector |
| 2 | OTG1 | Type-C (flash image only) |
| 3 | HDMI1 | HDMI display |
| 4 | CAN1 | CAN BUS interface |
| 5 | REMOTE1 | Remote connector |
| 6 | SYS_FAN1 | Chassis FAN connector |
| 7 | PWRBTN1 | Power button |
| 8 | CPU_FAN1 | Internal FAN connector |
| 9 | NVME1 | M.2 M-Key connector |
| 10 | LAN1/2 | 2 * Ethernet RJ-45 connector |
| 11 | LAN3_USB12 | RJ-45 & 2 * USB 3.2 Gen2 connector |
| 12 | LAN4_USB34 | RJ-45 & 2 * USB 3.2 Gen2 connector |
| 13 | COM12 | 2 * COM DP9 connector |
| 14 | GPIO1 | GPIO 16-bit isolation connector |
| 15 | M2E1 | M.2 E-Key connector |
| 16 | M2B1 | M.2 B-Key connector |
| 17 | CN1 | GMSL MIPI-120 pins connector |
| 18 | CN2 | GMSL board power connector |
3 Operating System
3-1 Image Download
| Image Version | Release Date | Image Download | BSP Download Tag | Comment |
|---|---|---|---|---|
| AFE-R750_JetPack6.1_v7.0.0 | 2026-02-11 | Dropbox | afer750a1_ubuntu22.04-jp6.1_v7.0.0_kernel-5.15.148_agx-orin+orin-nx.xml | fix orin nx com order fix bmi088 GMSL preinstall SUSI set wifi179 170 install script |
| AFE-R750_JetPack6.1_v4.0.0 | 2025/09/23 | Dropbox | afer750a1_ubuntu22.04-jp6.1_v4.0.0_kernel-5.15.148_agx-orin+orin-nx.xml | Fixed automatic update version issue |
3-2 Flashing Image
Please refer to the online document Flash JetPack 6.1 to AFE-R750 for detailed instructions on how to flash the Jetpack to the AFE-R750.
3-3 BSP Download
Please refer to the online document JetPack 6.1 BSP for AFE-R750 for detailed instructions on how to download and build the BSP for the AFE-R750.
4 Operating Method
4-1 Account and Password
The default account and password for AFE-R750 are ubuntu.
4-2 Fan Kit
Fan kit Product Number is AMK-A0057, which is used for AGX Orin with MAXN power mode.
The fan kit installation is shown as below. The smart fan setting is also provided as following table.

| Temperature (℃) | Fan PWM Value | Fan RPM Value |
|---|---|---|
| 0 | 66 | 3123 |
| 39 | 66 | 3123 |
| 63 | 77 | 3600 |
| 86 | 212 | 10000 |
| 92 | 212 | 10000 |
| 93 | 255 | 12000 |
| 105 | 255 | 12000 |
4-3 Controller Area Network (CAN)
AFE-R750 provides 1(Orin NX) or 2(AGX Orin) CAN FD which support up to 3.7M data bitrate, more information could refer to NV Developer Guide.
The CAN pin definition is shown as below. Please refer to the following commands for using CAN bus.

Insert the CAN related modules and set up the CAN0 and CAN1 bitrate to 1Mbps.
$ sudo modprobe can
$ sudo modprobe can-dev
$ sudo modprobe mttcan
$ sudo ip link set can0 down
$ sudo ip link set can1 down
$ sudo ip link set can0 type up can bitrate 1000000 dbitrate 1000000 fd on
$ sudo ip link set can1 type up can bitrate 1000000 dbitrate 1000000 fd on
CAN port 1 receives CAN message by using can-utils.
$ sudo candump can1
CAN port 0 transmits CAN message by using can-utils on another terminal.
$ sudo cansend can0 123#12341234
4-4 Trusted Platform Module (TPM)
AFE-R750 provides TPM 2.0 module to enhance system security. Please install tpm2-tools by apt command first, and then refer to the following commands for using TPM.
$ sudo apt install -y tpm2-tools
$ sudo -s
4-4-1 File Encryption and Decryption
- Create a platform level primary key and store the content into platform_primary.ctx file.
# tpm2_createprimary -C p -c platform_primary.ctx
- Based on platform primary key, generate a public key and private key by RSA2048 encryption method.
# tpm2_create -C platform_primary.ctx -G rsa2048 -u key.pub -r key.priv
- Load the platform primary key into TPM and store the content into key.ctx file.
The key.pub could be shared to others for encryption purpose, while key.priv should be kept secret.
# tpm2_load -C platform_primary.ctx -u key.pub -r key.priv -c key.ctx
- On the other devices, use key.pub to encrypt the message from msg.dat to msg.enc.
# tpm2_loadexternal -C n -u key.pub -c pub.ctx
# tpm2_rsaencrypt -c pub.ctx -o msg.enc msg.dat
- Take the msg.enc file back to AFE-R750 and decrypt the message by key.ctx.
The decrypted message will be stored into msg.ptext file.
# tpm2_rsadecrypt -c key.ctx -o msg.ptext msg.enc
# cat msg.ptext
4-4-2 Non-Volatile Space Read and Write
- Define a non-volatile space, which ID is 0x1500031 and size is 2048 bytes with owner read/ wirte, policy write authority.
# tpm2_nvdefine -Q 0x1500031 -C o -s 32 -a "ownerread|policywrite|ownerwrite"
- Write data into the defined non-volatile space from msg.dat file, the msg.dat size must be less than 2048 bytes.
# tpm2_nvwrite -Q 0x1500031 -C o -i msg.dat
- Read back the data from the defined non-volatile space into read.data file.
# tpm2_nvread -Q 0x1500031 -C o -s 32 -o read.data
# cat read.data
4-5 Digital Input Output (DIO)
AFE-R750 provides 8 bits DI and 8 bits DO, all DO are open-drain hardware design, it will require external power and pull-up resistor.
The DIO pin definition is shown as below. Please refer to the following commands for using DIO and hardware connection example.

Total 16 bits DIO are in the gpiochip2 group, line 0 to 7 are DI and line 8 to 15 are DO.
$ sudo gpioinfo
Read DIO level by gpioget command with chip number and line number, for example, read DI0 level.
$ sudo gpioget gpiochip2 0
Set DO level by gpioset command with mode, chip number, line number and level, for example, set DO0 to high level.
$ gpioset --mode=wait gpiochip2 8=1
Hardware connection example for DIO.
- When DO0 be set to low, MOSFET will be opened, current will go through LED.
- When DO0 be set to high, MOSFET will be closed, LED will be off.
- If the switch is pressed, DI0 could read the low level.
- If the switch is released, DI0 will read high level through the pull-up resistor.

4-6 Communication Port (COM)
The COM pin definition is shown as below.

The mode selection is shown as below.

| SoC | COM1 (Software control pin) | COM2 (Software control pin) |
|---|---|---|
| AGX Orin | /dev/ttyTHS1 (112) | /dev/ttyTHS2 (129) |
| Orin NX | /dev/ttyTHS2 (120) | /dev/ttyTHS1 (112) |
- RS-232
- RS-422
- RS-485
In RS-232 mode, connect COM1 Tx to COM2 Rx and Rx to COM2 Tx, and set COM_SW1 total 4 pins to OFF.
The following commands send data from ttyTHS1 to ttyTHS2, using the echo command for transmission and the cat command for reception.
First terminal (/dev/ttyTHS2 receive data):
$ sudo su
# stty -F /dev/ttyTHS1 speed 115200 raw -echo
# stty -F /dev/ttyTHS2 speed 115200 raw -echo
# cat /dev/ttyTHS2
Second terminal (/dev/ttyTHS1 send data):
$ sudo su
# echo "1234" > /dev/ttyTHS1
In RS-422 mode, connect COM1 Tx+ to COM2 Rx+, Tx- to COM2 Rx-, Rx+ to COM2 Tx+, Rx- to COM2 Tx-, and set COM_SW1 pin 1 to ON, others to OFF.
The following commands send data from ttyTHS1 to ttyTHS2, using the echo command for transmission and the cat command for reception.
First terminal (/dev/ttyTHS2 receive data):
$ sudo su
# stty -F /dev/ttyTHS1 speed 115200 raw -echo
# stty -F /dev/ttyTHS2 speed 115200 raw -echo
# cat /dev/ttyTHS2
Second terminal (/dev/ttyTHS1 send data):
$ sudo su
# echo "1234" > /dev/ttyTHS1
In RS-485 mode, connect COM1 data- to COM2 data-, data+ to COM2 data+.
If COM_SW1 is set to transmitter, it cannot receive data; set to receiver, it cannot send data.
If it is set to software control, each COM port has own GPIO pin to control flow control. Set the GPIO pin to high before sending data.
First terminal (/dev/ttyTHS2 receive data):
$ sudo su
# stty -F /dev/ttyTHS1 speed 115200 raw -echo
# stty -F /dev/ttyTHS2 speed 115200 raw -echo
# cat /dev/ttyTHS2
Second terminal (/dev/ttyTHS1 send data):
$ sudo su
# gpioset --mode=wait gpiochip0 112=1
# echo "1234" > /dev/ttyTHS1
# kill $!
4-7 Inertial Measurement Unit (IMU)
AFE-R750 supports two IMU sensors, one is onboard BMI088, the other is MTi-3 which is optional.
In order to connect IMU data into ROS2, we need to install the related SDK and packages first.
$ sudo apt install -y ros-humble-rviz2 ros-humble-imu-tools ros-humble-imu-filter-madgwick pre-commit ros-humble-nmea-msgs ros-humble-mavros-msgs
4-7-1 BMI088
- JetPack 6.1 20260211 (V7)
- JetPack 6.1 20250923 (V4)
BMI088 driver had been integrated in JetPack 6.1 by default, please refer to the following commands for getting accelerometer and gyroscope datas from BMI088.
$ sudo su
# /usr/local/bin/IMU/iio_generic_buffer -a -c 10 --device-name accelerometer -g
# /usr/local/bin/IMU/iio_generic_buffer -a -c 10 --device-name gyroscope -g
After checking BMI088 is working, we can install its ROS2 package to visualize the data in rviz2.
$ wget https://github.com/Advantech-ROS2/ros2-xsens-bmi088/releases/download/v1.0.0/xsens_bmi088-node-1.0.0-humble-imx8.run
$ chmod +x xsens_bmi088-node-1.0.0-humble-imx8.run
$ ./xsens_bmi088-node-1.0.0-humble-imx8.run
$ source /opt/ros/humble/setup.bash
$ source /usr/local/Advantech/ros/humble/sensor_extension/ros2-imu-bmi088/install/setup.bash
$ ros2 run ros2_bmi088 ros2_bmi088 &
$ ros2 run imu_filter_madgwick imu_filter_madgwick_node --ros-args -p use_mag:=false &
$ rviz2
Click Add in rviz2, select By topic, add /imu/data topic , and change Fixed Frame to imu_link for visualizing the IMU data.

BMI088 driver does not be integrated before V4 image, please re-flash to JetPack 6.1 V7 image for using BMI088.
4-7-2 MTi-3
MTi-3 IMU sensor is installed on GMSL board which part number is AFE-RM04-4PA1 and AFE-RM04-8PA1 but only supported on AFE-R750-X series (AGX Orin module).

After sensor has insatlled, follow these steps to visualize the data in rviz2. More details can be found in the Official Github.
$ cd ~
$ git clone --branch ros2 https://github.com/xsenssupport/Xsens_MTi_ROS_Driver_and_Ntrip_Client.git
$ mv Xsens_MTi_ROS_Driver_and_Ntrip_Client ros2_ws
$ cd ~/ros2_ws
$ colcon build --symlink-install
Edit ~/ros2_ws/install/xsens_mti_ros2_driver/share/xsens_mti_ros2_driver/param/xsens_mti_node.yaml, set scan_for_devices to false, port to /dev/ttyTHS3, and baudrate to 115200.

$ sudo chmod 777 /dev/ttyTHS3
$ sudo stty -F /dev/ttyTHS3 speed 115200 -echo
$ source /opt/ros/humble/setup.bash
$ source ~/ros2_ws/install/setup.bash
$ ros2 launch xsens_mti_ros2_driver display.launch.py

4-8 Wi-Fi & Bluetooth
AFE-R750 supports two Wi-Fi modules, one is AIW-170, the other is EWM-W179.
The drivers for both modules have been integrated into the AFE-R750 image.
Only one WiFi driver can be installed at a time. Installing a new one will replace the old one.
4-8-1 AIW-170
- JetPack 6.1 20260211 (V7)
- JetPack 6.1 20250923 (V4)
Run the following commands once, AIW-170 driver will be installed and loaded automatically after system boot up.
$ cd /usr/local/bin/AIW-170
$ sudo bash install_aiw-170.sh
$ sudo reboot
Run the following commands to load AIW-170 driver every system boot up.
$ cd /usr/local/bin/AIW-170
$ sudo insmod btbcm.ko
$ sudo insmod btintel.ko
$ sudo insmod btqca.ko
$ sudo insmod btrtl.ko
$ sudo insmod btusb.ko
$ sudo modprobe cfg80211
$ sudo insmod wlan_cnss_core_pcie.ko
$ sudo insmod wlan.ko
4-8-2 EWM-W179
- JetPack 6.1 20260211 (V7)
- JetPack 6.1 20250923 (V4)
Run the following commands once, EWM-W179 driver will be installed and loaded automatically after system boot up.
$ cd /usr/local/bin/EWM-W179
$ sudo bash install_ewm-w179.sh
$ sudo reboot
Run the following commands to load EWM-W179 driver every system boot up.
$ cd /usr/local/bin/EWM-W179
$ sudo modprobe cfg80211
$ sudo insmod rtk_btusb.ko
$ sudo insmod 8852be.ko
4-9 Camera Solution
AFE-R750 integrated oToBrite oToCAM222 driver into image, please refer to the following commands for using oToCAM222.
AFE-R750 also supports other GMSL cameras, such as Orbbec Gemini-335LG and StereoLabs ZedX, please refer to the GMSL Driver for AFE-R750 for detailed instructions.

Set GMSL camera device tree in system by running the built-in script based on SoC. Run this step only once and system will reboot.
$ cd /usr/local/bin/otocam
$ sudo ./set_otocam_agxorin_64g.sh
$ sudo ./set_otocam_agxorin_32g.sh
$ sudo ./set_otocam_orinnx.sh
After AFE-R750 reboot, execut the inserting driver script and enabling camera script, the video stream will show up.
$ cd /home/ubuntu
$ sudo ./insmod-otocam.sh
$ sudo ./enable-otocamera.sh
4-10 PPS Time Synchronization
AFE-R750 can install AIW-210XU-001 GNSS module to get PPS(pulse per second) for time synchronizing on application, PPS signal is shown as below.

Please refer to the following commands for installing GPS and time synchronzing related utility for PPS time synchronization.
$ sudo apt install -y gpsd gpsd-clients chrony
$ sudo echo -e START_DAEMON="true""\n"DEVICES="/dev/ttyACM0 /dev/pps0""\n"GPSD_OPTIONS="-n""\n"BAUDRATE="9600" > /etc/default/gpsd
$ sudo systemctl restart gpsd
$ sudo echo -e refclock SHM 0 refid NMEA offset 0.9999 delay 0.2 noselect"\n"refclock PPS /dev/pps0 lock NMEA refid PPS prefer"\n"makestep 0.001 10 > /etc/chrony
$ sudo systemctl restart chrony
Put the GPS antenna to outdoor, and open xgps utility to check GPS status until it is 3D fixed.

Check chrony sources to see PPS is used as time source, the system time will synchronize with PPS time once the deviation threshold of time is larger than 1ms.
$ watch -n 0.1 chronyc sources