MAX9296-GMSL-Camera-Board
| ||
Introduction
The MAX9296-GMSL-Camera-Board is a GMSL camera adapter that allows up to two cameras to be connected to the Jetson Orin Nano/NX host board. Compatible with both GMSL1 and GMSL2 protocol interfaces through software configuration. Adopts MAX9296A chip, specially designed for applications that require high-bandwidth and low-latency video transmission. Suitable for automatic driving, machine vision, intelligent security and other fields.
GMSL (Gigabit Multimedia Serial Link) is a high-speed serial transmission technology designed for high-bandwidth multimedia data transmission, with the advantages of long-distance, low-delay, high anti-interference and simple wiring. It is mainly used in automotive electronics and industrial applications, and is capable of transmitting high-definition video, audio, and data signals over one cable. By using coaxial or twisted-pair cables, GMSL can achieve long-distance signal transmission.
Parameters
DESERIALIZER | MAXIM(ADI) MAX9296A |
---|---|
HOST SUPPORT | Jetson Orin NX/Nano development kit |
SERIALIZER MODEL SUPPORT | MAX9295, MAX96717, MAX96705, etc. |
GMSL INPUT | 2-ch GMSL2 (compatible with GMSL1) cameras |
TRIGGER INPUT | Supports triggering via internal GPIO or external input signals |
INPUT INTERFACE | 2 × MATE _ AX FAKRA connectors |
OUTPUT INTERFACE | 2 × 22-Pin CSI interfaces |
GMSL CAMERA SUPPORT | IMX390, IMX490, ISX031, OX03C, AR0820, etc. |
POWER SUPPLY | 12V ~ 20V DC input |
OPERATING TEMPERATURE | -20°C ~ 65°C |
Hardware Specification
Onboard Interface
22 PIN Connector
Dimensions
User Guide
Note: The current driver provided only supports Jetpack5.1.2 (R34.5.1) version image. If you need other camera models that support Jetson orin NX and Jetson-Orin Nano, please contact our support team for help.
Supported Sensor Models
- IMX390
- IMX490
- ISX031
- OX03C
- OX08B/AR0820
Hardware Connection
- Connect the CSI0 interface of MAX9296-GMSL-Camera-Board to the Cam0 interface of the Jetson Orin module with the provided cable.
- Note that the CSI pin definition for CAM0 and CAM1 on the NVIDIA Jetson® Orin™ Nano Kit are different. Currently, the board only can be connected to the CAM0 interface (please refer to the relevant pin definitions and the Jetson® Orin™ Kit schematics for the CAM0/1 interface).
- The 22-pin FPC does not feature precise impedance control, so when using high-resolution cameras with high CSI rates, it is recommended to use relatively short FPC cables. (Tests have shown that for 8M cameras, only 5cm cables can be used for 2 channels; while for 1-ch connection, 10cm or 15cm cables can be used).
- Use a Y-type power cable to connect to the DC power port on the GMSL adapter board and the power port on the Jetson Orin module.
- If you have multiple power supplies, you can also connect them to the power supply separately.
- Connect the GMSL camera to the MAX9296-GMSL-Camera-Board.
- Provide 19V power to the devices through the Y-type power cable.
Software Configuration
- For the Jetson Orin module, it needs to be flashed with the corresponding Jetson system, for more details, you can refer to the related wiki page.
- The current system version can be viewed with the command.
- After powering on the board, you can open "Terminal", download the driver and extract the driver package.
wget https://files.waveshare.com/wiki/MAX9296-GMSL-Camera-Board/MAX9296-GMSL-Camera-Board-Driver.zip unzip MAX9296-GMSL-Camera-Board-Driver.zip
- Enter the driver package directory with "cd" command and view the files.
- Enter the corresponding directory according to the camera model used, here we take the ISX031 as an example.
cd MAX9296-GMSL-Camera-Board-Driver ls cd ONXA_SY.ISX031Fx2_L4TR35.4.1 cd kernel
- In the kernel file, the "dtb" file includes multiple device tree files that support multiple boards. Here, we only need to find the device tree file for the current board.
- You can first check the device tree currently used by the board using the following command:
sudo dmesg | grep kernel
- For example, the device tree file queried here is "tegra234-p3767-0004-p3768-0000-a0".
- Copy the "dtb" file and Image file of the same model from the driver to the /boot directory of the board:
sudo cp dtb/tegra234-p3767-0004-p3768-0000-a0.dtb /boot sudo cp Image /boot
- After copying the files, modify the device tree file referenced in extlinux.conf.
- Copy and add an additional boot label, updating the FDT file path to the newly copied directory. Set the default boot label to the newly added one.
- Note: here, it's crucial to carefully check and verify the modifications before saving and rebooting the system. Otherwise, it may potentially cause the system to fail to boot properly.
sudo vi /boot/extlinux/extlinux.conf
- In the vi editor, you enter the editing mode by pressing "i". To exit the editing mode and return to command mode, press "Esc". After exiting the editing mode, you can save the file and quit by typing: "wq!".
- Reboot the system after saving the file.
External Trigger
The deserializer board supports external input trigger signals, which can be controlled by specific pins through the Jetson module GPIO headers. (MFP0 of MAX9296 is connected to pin 17 on the CSI interface).
Simulated External Trigger Through Software
Users can simulate external triggering by setting up a software script.
#!/bin/bash # Power - PAC.00 chmod 777 /sys/class/gpio/export chmod 777 /sys/class/gpio/unexport echo "[sync]" if [ -e /sys/class/gpio/PAC.00 ]; then echo "PAC.00 has exported." else echo 486 > /sys/class/gpio/export fi echo out > /sys/class/gpio/PAC.00/direction #10.02Hz while [ true ]; do echo 1 > /sys/class/gpio/PAC.00/value sleep 0.012 #0.02 echo 0 > /sys/class/gpio/PAC.00/value sleep 0.084 #02 done #23Hz while [ true ]; do echo 1 > /sys/class/gpio/PAC.00/value sleep 0.02 echo 0 > /sys/class/gpio/PAC.00/value sleep 0.02 done
External Hardware Trigger
Users can trigger signals through external input. Currently, the expansion board only supports inputting trigger signals through the MFP0 pin.
Connect the MFP0 pin to any GPIO headers, and then it can be controlled to trigger signals through GPIO.
Quick Test
- Check whether the camera is normally identified:
sudo dmesg | grep connected
- If it returns the information related to "/dev/video2 is connected", it indicates the camera is normally identified.
- For preview test, you can use the following commands:
- The preview test requires an HDMI or DP screen, please ensure it is normally connected and displays well.
- Note that you need to modify the video device number to the one detected by the last step.
- Note that you need to modify the command to test according to the resolution supported by the camera.
gst-launch-1.0 v4l2src device=/dev/video2 ! "video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1536" ! fpsdisplaysink video-sink=xvimagesink sync=false
Resource
Driver
Support
Technical Support
If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)