Skip to main content

Working with Raspberry Pi

Although the deserializer board's form factor is designed for the Jetson Orin/NX Developer Kit, users can still use it with a Raspberry Pi 5 mainboard with cable connections.

Hardware Connection

Connect to Raspberry Pi 5 Mainboard

Power Wiring

CFG Configuration

  • Connect the deserializer board's CSI0 interface to the Raspberry Pi 5's CAM1 or CAM0 interface using the provided cable.
  • Connect the power cables to the deserializer board's power interface and the 5V & GND pins on the Raspberry Pi's 40PIN header, respectively.
  • Connect the GMSL camera(s) to the camera interface(s) on the deserializer board using coaxial cable(s)
  • Set the CFG switch to the '0100' position as shown in the diagram (default configuration for ISX031 camera)

Software Configuration

  • Testing was performed using the official Raspberry Pi image: 2025-05-13-raspios-bookworm-arm64.img.xz

  • Flash the image file and boot the Raspberry Pi

    • Extract the .img image file from the downloaded package
    • Use the Raspberry Pi Imager or balenaEtcher to write the image file to a TF card
    • Insert the TF card with the flashed image into the Raspberry Pi mainboard, connect the hardware, and power it on
  • Open the Raspberry Pi Terminal and use the following commands to download and extract the driver package:

    wget https://files.waveshare.com/wiki/MAX9296-GMSL-Deser-Module/ws-rpi5-gmsl.zip
    unzip ws-rpi5-gmsl.zip
  • Install the driver

    • Use the cd command to enter the driver package directory

      cd ws-rpi5-gmsl/

      Enter Driver Directory

    • Add executable permissions to the installation script and execute it:

      sudo chmod a+x rpi5_gmsl_driver_install.sh
      sudo ./rpi5_gmsl_driver_install.sh
  • Configure the config.txt file

    • Edit the file and add the dtoverlay setting as shown in the image below

      sudo nano /boot/firmware/config.txt

      Edit config File

    • According to the connected camera, remove the comment symbol # from the corresponding setting line. isx031-gmsl-camera-a is the camera model being connected, and sensor-type=ISX031C_GMSL2F_1CH corresponds to the serializer model and channel count

    • For connecting one ISX031C (either Link A or Link B is acceptable; the program will auto-detect):

      dtoverlay=isx031-gmsl-camera-a,sensor-type=ISX031C_GMSL2F_1CH
    • For connecting two ISX031C:

      dtoverlay=isx031-gmsl-camera-a,sensor-type=ISX031C_GMSL2F_2CH
    • If connecting to the CAM0 interface, add the cam0 parameter at the end:

      dtoverlay=gmsl-isx031,sensor-type=ISX031C_GMSL2F_1CH,cam0
      dtoverlay=gmsl-isx031,sensor-type=ISX031C_GMSL2F_2CH,cam0
    • The default deserializer I2C address is 0x48(0x90 >> 1). If you need to modify the default address, you can add the dser-addr parameter at the end:

      dtoverlay=isx031-gmsl-camera-a,sensor-type=ISX031C_GMSL2F_1CH,dser-addr=0x4a
      dtoverlay=isx031-gmsl-camera-a,sensor-type=ISX031C_GMSL2F_2CH,dser-addr=0x4a
  • After setting, save the file and reboot the system with sudo reboot

Quick Test

  • Install gstreamer1.0 tool

    sudo apt install gstreamer1.0-tools -y
  • The driver board provides a test script for preview. After rebooting the system, you can use the following commands to perform a preview test of the camera

    • Connected to Raspberry Pi CAM1, 2x ISX031C:

      ws_camera_preview.sh ISX031-GMSL-Camera-A csi1 2ch
    • Connected to Raspberry Pi CAM1, 1x ISX031C:

      ws_camera_preview.sh ISX031-GMSL-Camera-A csi1 1ch
    • Connected to Raspberry Pi CAM0, 2x ISX031C:

      ws_camera_preview.sh ISX031-GMSL-Camera-A csi0 2ch
    • Connected to Raspberry Pi CAM0, 1x ISX031C:

      ws_camera_preview.sh ISX031-GMSL-Camera-A csi0 1ch
  • The following is an actual test screenshot for reference only:

    Camera preview screenshot