========================================================== Xavier NX product BSP Release Note - NX215B ReleaseNote: 1.3 ========================================================== =================================== Installation =================================== 1. Decompress by root sudo tar zxf NX215B-R1.0.21.4.6.tar.gz 2. Enter L4T directory cd JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS/Linux_for_Tegra 3. Select one profile for MIPI CSI camera (optional) (default camera setting is raspberry_pi_v2) sudo ./setup.sh Supported CSI camera profiles: 0) ar0234 1) imx179 2) imx290 3) imx290isp 4) imx334 5) imx334+imx290isp 6) imx334thcv 7) no_csi_camera 8) raspberry_pi_v2 9) raspberry_pi_v3 (needs to rework camera module for 1.8v reset pin.) 4. Connect a Jetson platform and a host PC(*) through a Micro USB to USB Cable * The host PC must be a physical Ubuntu 18.04 PC with x64 CPU, not a virtual machine or Jetson platform. 5. Enter the recovery mode power off -> press recovery button -> power on -> wait 2 seconds -> release recovery button 6. Start to flash BSP a. Use default user account. ( user_name/password: nvidia ) ./install.sh b. Create other user name and password as default user ./install.sh --create_default_account 7. Flash more modules (speed up) ./install.sh -r =================================== Test Commands =================================== 1. Install NVidia SDKs $ sudo apt update && apt depends nvidia-jetpack | awk '{print $2}' | uniq | xargs -I {} bash -c "sudo apt -o Dpkg::Options::="--force-confold" -y install {} ; sudo apt clean" 2. Support optional M.2 WI-FI/Bluetooth modules (IntelĀ® Wireless-AC 9260/AC 8265), the manager UI of AC9260/AC8265 WiFi/Bluetooth is located on the upper-right corner of Ubuntu desktop. It can be also controlled by nmcli/hcitool in command line. * This feature is not supported with Jetson Nano 3. Power mode can be modified by the UI on the upper-right corner of Ubuntu or the following commands. # get current power mode $ sudo nvpmodel -q # setup power mode # where is power mode number, please refer to NVidia website for more information $ sudo nvpmodel -m * Current default power mode: NX: MODE 10W DESKTOP (5) TX2 NX: MAXP CORE AEM (3) Nano: MAXN (0) 4. RTC Battery The following command can get RTC battery voltage. $ sudo avt_tool -a | grep -oP "AIN5.*\[\K[^\]]*" The battery should be changed around 2.5v. 5. Fan Speed The following commands can get PWM fan information. # get current power setting of PWM Fan (0 ~ 255) $ cat /sys/devices/pwm-fan/cur_pwm # set power setting of PWM Fan (0~255) $ sudo bash -c "echo 100 > /sys/devices/pwm-fan/target_pwm" # get fan RPM value (revolutions per minute) $ sudo bash -c "echo 1 > /sys/devices/pwm-fan/tach_enable" $ cat /sys/devices/pwm-fan/rpm_measured 6. CAN Bus There are two CAN Bus available on Xaver NX and TX2 NX (can0/can1), and only one CAN Bus available on Nano (can1), see the following command for usage. (1) Enable and setup can0 # 1. Enable can0 $ sudo modprobe can $ sudo modprobe can-raw $ sudo modprobe mttcan # 2. Setup can0 $ sudo ip link set can0 type can bitrate 500000 dbitrate 2000000 berr-reporting on fd on restart-ms 100 $ sudo ip link set can0 up (2) Setup can1 (can1 is enabled by default) # can1 (interface name: can1) # 1. Setup can1 $ sudo ip link set can1 type can bitrate 500000 restart-ms 100 $ sudo ip link set can1 up (3) Receive and Send # Receive $ candump # Send $ cansend * where: is the interface name of CAN Bus, e.g. can0 or can1 is CAN Bus frame message, see `cansend --help` for more detail. 7. GPIO usage Please refer to user manual. (1) Output: (e.g. gpio232) $ sudo su $ gpio_id=232 $ echo $gpio_id > /sys/class/gpio/export $ echo out > /sys/class/gpio/gpio$gpio_id/direction $ echo 1 > /sys/class/gpio/gpio$gpio_id/value # HIGH $ echo 0 > /sys/class/gpio/gpio$gpio_id/value # LOW (2) Input $ sudo su $ gpio_id=232 $ echo $gpio_id > /sys/class/gpio/export $ echo in > /sys/class/gpio/gpio$gpio_id/direction $ cat /sys/class/gpio/gpio$gpio_id/value # 1: HIGH, 0: LOW (3) Disable $ sudo su $ gpio_id=232 $ echo $gpio_id >/sys/class/gpio/unexport 8. Below is the test command for cameras. You can select a different resolution via "width", "height" and "framerate" in below. Change sensor-id number to 1 for second camera. > Raspberry pi v2 : No width height framerate 0 3264 2464 21 1 3264 1848 28 2 1920 1080 30 3 1640 1232 30 4 1280 720 60 $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=0 ! 'video/x-raw(memory:NVMM), width=(int)3264, height=(int)2464, format=(string)NV12, framerate=(fraction)21/1' ! nvvidconv ! xvimagesink -e $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=1 ! 'video/x-raw(memory:NVMM), width=(int)3264, height=(int)1848, format=(string)NV12, framerate=(fraction)28/1' ! nvvidconv ! xvimagesink -e $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=2 ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1' ! nvvidconv ! xvimagesink -e $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=3 ! 'video/x-raw(memory:NVMM), width=(int)1640, height=(int)1232, format=(string)NV12, framerate=(fraction)30/1' ! nvvidconv ! xvimagesink -e $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=4 ! 'video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)NV12, framerate=(fraction)60/1' ! nvvidconv ! xvimagesink -e Multiple: $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=0 ! 'video/x-raw(memory:NVMM), width=(int)3264, height=(int)2464, format=(string)NV12, framerate=(fraction)21/1' ! nvvidconv ! xvimagesink -e & gst-launch-1.0 nvarguscamerasrc sensor-id=1 sensor-mode=0 ! 'video/x-raw(memory:NVMM), width=(int)3264, height=(int)2464, format=(string)NV12, framerate=(fraction)21/1' ! nvvidconv ! xvimagesink -e & > Raspberry pi v3 (imx477): No width height framerate 0 4032 3040 30 1 3840 2160 30 2 1920 1080 60 $ gst-launch-1.0 -e nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),width=4032,height=3040,framerate=30/1' ! nvvidconv ! fpsdisplaysink video-sink='xvimagesink' sync=false $ gst-launch-1.0 -e nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),width=3840,height=2160,framerate=30/1' ! nvvidconv ! fpsdisplaysink video-sink='xvimagesink' sync=false $ gst-launch-1.0 -e nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),width=1920,height=1080,framerate=60/1' ! nvvidconv ! fpsdisplaysink video-sink='xvimagesink' sync=false > IMX179 : No width height framerate 0 3280 2464 15 1 1920 1080 30 2 3280 1698 30 3 2096 1084 30 4 1640 1232 30 5 820 616 30 6 820 616 60 $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=0 ! 'video/x-raw(memory:NVMM), width=(int)3280, height=(int)2464, format=(string)NV12, framerate=(fraction)15/1' ! nvvidconv ! xvimagesink -e $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=1 ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1' ! nvvidconv ! xvimagesink -e $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=2 ! 'video/x-raw(memory:NVMM), width=(int)3280, height=(int)1698, format=(string)NV12, framerate=(fraction)30/1' ! nvvidconv ! xvimagesink -e $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=3 ! 'video/x-raw(memory:NVMM), width=(int)2096, height=(int)1084, format=(string)NV12, framerate=(fraction)30/1' ! nvvidconv ! xvimagesink -e $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=4 ! 'video/x-raw(memory:NVMM), width=(int)1640, height=(int)1232, format=(string)NV12, framerate=(fraction)30/1' ! nvvidconv ! xvimagesink -e $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=5 ! 'video/x-raw(memory:NVMM), width=(int)820, height=(int)616, format=(string)NV12, framerate=(fraction)30/1' ! nvvidconv ! xvimagesink -e $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=6 ! 'video/x-raw(memory:NVMM), width=(int)820, height=(int)616, format=(string)NV12, framerate=(fraction)60/1' ! nvvidconv ! xvimagesink -e Control Focus: $ v4l2-ctl -d /dev/video2 --set-ctrl=focus_manual=1 $ v4l2-ctl -d /dev/video2 --set-ctrl=focus_manual=1024 > IMX290 : No width height framerate 0 1948 1096 30 1 1948 1096 60 $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=0 ! 'video/x-raw(memory:NVMM), width=(int)1948, height=(int)1096, format=(string)NV12, framerate=(fraction)30/1' ! nvvidconv ! xvimagesink -e $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=1 ! 'video/x-raw(memory:NVMM), width=(int)1948, height=(int)1096, format=(string)NV12, framerate=(fraction)60/1' ! nvvidconv ! xvimagesink -e > IMX290ISP : No width height framerate 0 1920 1080 25/30/50/60 1 1280 960 25/30/50/60 2 1280 720 25/30/50/60 0 800 600 25/30/50/60 1 640 480 25/30/50/60 2 640 360 25/30/50/60 $ gst-launch-1.0 v4l2src io-mode=4 device=/dev/video0 do-timestamp=true ! 'video/x-raw, width=1920, height=1080, framerate=30/1, format=UYVY' ! xvimagesink sync=false $ gst-launch-1.0 v4l2src io-mode=4 device=/dev/video0 do-timestamp=true ! 'video/x-raw, width=1280, height=720, framerate=30/1, format=UYVY' ! xvimagesink sync=false $ gst-launch-1.0 v4l2src io-mode=4 device=/dev/video0 do-timestamp=true ! 'video/x-raw, width=1280, height=960, framerate=30/1, format=UYVY' ! xvimagesink sync=false $ gst-launch-1.0 v4l2src io-mode=4 device=/dev/video0 do-timestamp=true ! 'video/x-raw, width=1920, height=1080, framerate=60/1, format=UYVY' ! xvimagesink sync=false $ gst-launch-1.0 v4l2src io-mode=4 device=/dev/video0 do-timestamp=true ! 'video/x-raw, width=1280, height=720, framerate=60/1, format=UYVY' ! xvimagesink sync=false $ gst-launch-1.0 v4l2src io-mode=4 device=/dev/video0 do-timestamp=true ! 'video/x-raw, width=1280, height=960, framerate=60/1, format=UYVY' ! xvimagesink sync=false > IMX334 : No width height framerate 0 3864 2180 30 1 3864 2180 60 2 1944 1090 30 3 1944 1090 60 $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=0 ! 'video/x-raw(memory:NVMM), width=(int)3864, height=(int)2180, format=(string)NV12, framerate=(fraction)30/1' ! nvvidconv ! xvimagesink -e $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=1 ! 'video/x-raw(memory:NVMM), width=(int)3864, height=(int)2180, format=(string)NV12, framerate=(fraction)60/1' ! nvvidconv ! xvimagesink -e $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=2 ! 'video/x-raw(memory:NVMM), width=(int)1944, height=(int)1090, format=(string)NV12, framerate=(fraction)30/1' ! nvvidconv top=5 bottom=1085 left=12 right=1932 ! xvimagesink -e $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=3 ! 'video/x-raw(memory:NVMM), width=(int)1944, height=(int)1090, format=(string)NV12, framerate=(fraction)60/1' ! nvvidconv top=5 bottom=1085 left=12 right=1932 ! xvimagesink -e > IMX334 V-by-One (imx334thcv): No width height framerate 0 3864 2180 30 1 1944 1090 30 2 1944 1090 60 $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=0 ! 'video/x-raw(memory:NVMM), width=(int)3864, height=(int)2180, format=(string)NV12, framerate=(fraction)30/1' ! nvvidconv ! xvimagesink -e $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=1 ! 'video/x-raw(memory:NVMM), width=(int)1944, height=(int)1090, format=(string)NV12, framerate=(fraction)30/1' ! nvvidconv top=5 bottom=1085 left=12 right=1932 ! xvimagesink -e $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=2 ! 'video/x-raw(memory:NVMM), width=(int)1944, height=(int)1090, format=(string)NV12, framerate=(fraction)60/1' ! nvvidconv top=5 bottom=1085 left=12 right=1932 ! xvimagesink -e > ECON eCAM24 (ar0234): No width height framerate 0 1280 720 120 1 1920 1080 65 2 1920 1200 60 $ gst-launch-1.0 -e v4l2src device=/dev/video0 do-timestamp=true ! 'video/x-raw,width=1280,height=720,framerate=120/1,format=UYVY' ! fpsdisplaysink video-sink=xvimagesink sync=false $ gst-launch-1.0 -e v4l2src device=/dev/video0 do-timestamp=true ! 'video/x-raw,width=1920,height=1080,framerate=65/1,format=UYVY' ! fpsdisplaysink video-sink=xvimagesink sync=false $ gst-launch-1.0 -e v4l2src device=/dev/video0 do-timestamp=true ! 'video/x-raw,width=1920,height=1200,framerate=60/1,format=UYVY' ! fpsdisplaysink video-sink=xvimagesink sync=false =================================== Revision History =================================== --------------------------------------- NX215B-R1.0.21.4.6 20220823 --------------------------------------- - Improve camera stability --------------------------------------- NX215B-R1.0.20.4.6 20220823 --------------------------------------- - Fixed internal issue --------------------------------------- NX215B-R1.0.19.4.6 20220816 --------------------------------------- - Fixed internal issue --------------------------------------- NX215B-R1.0.18.4.6 20220713 --------------------------------------- - Solve eCAM24 camera conflict with imx290_ISP --------------------------------------- NX215B-R1.0.17.4.6 20220712 --------------------------------------- - Support carrier board without mcp2515 (PCN20220406-2) --------------------------------------- NX215B-R1.0.16.4.6 20220527 --------------------------------------- - IMX477 add new mode of 3840x2160 30FPS - Fixed a nvme boot issue --------------------------------------- NX215B-R1.0.15.4.6 20220304 --------------------------------------- - Support ECON eCAM24 camera --------------------------------------- NX215B-R1.0.14.4.6 20220303 --------------------------------------- - Support Xavier NX 16G - Upgrade to JetPack 4.6 (rev. 3) --------------------------------------- NX215B-R1.0.13.4.6_Normal_Uart 20220221 --------------------------------------- - Fixed a VPN issue --------------------------------------- NX215B-R1.0.12.4.6 20210903 --------------------------------------- - Support raspberry pi v3 camera (imx477) --------------------------------------- NX215B-R1.0.11.4.6 20210819 --------------------------------------- - Improve stability --------------------------------------- NX215B-R1.0.10.4.6 20210812 --------------------------------------- - Upgrade to JetPack 4.6 --------------------------------------- NX215B-R1.0.9.4.6_EA 20210723 --------------------------------------- - Upgrade to JetPack 4.6 EA - Support camera profile: imx334+imx290isp --------------------------------------- NX215B-R1.0.8.4.5.1 20210624 --------------------------------------- - Fixed system reboot issue when using console mode --------------------------------------- NX215B-R1.0.7.4.5.1 20210514 --------------------------------------- - Remove the false alarms of CPU/GPU overcurrent on JetPack 4.5.1 - Improve stability - Set 2x CAN Bus with fix interface name. (Native CAN: can0, MCP2515: can1) --------------------------------------- NX215B-R1.0.6.4.5.1 20210323 --------------------------------------- - Fixed a bug that the color of IMX334THCV camera was incorrect. - Improve stability --------------------------------------- NX215B-R1.0.5.4.5.1 20210310 --------------------------------------- - Upgrade to L4T 32.5.1 --------------------------------------- NX215B-R1.0.4.4.5 20210309 --------------------------------------- - Support Appro's camera: IMX179, IMX290, IMX290ISP, IMX334, IMX334THCV - Upgrade blueZ (5.50) --------------------------------------- NX215B-R1.0.3.4.5 20210303 --------------------------------------- - Support Intel Wifi Card: AC9260/AC8265 - Improve stability - Fixed minor issue --------------------------------------- NX215B-R1.0.2.4.5 20210219 --------------------------------------- - Upgrade to L4T 32.5 - Support 2x CAN Bus --------------------------------------- NX215B-R1.0.1.4.4 20210205 --------------------------------------- - Improve stability --------------------------------------- NX215B-R1.0.0.4.4 20210202 --------------------------------------- - 1st Release for NX215B - Support 2x HDMI - Support SdCard - Support PWM - Support 2x Ethernet - Support new NX module (PCN206980)