This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DS90UB954-Q1: Issue with Video Device Node (/dev/videoX) Generation for Stereo Capture Using TI Sensors

Part Number: DS90UB954-Q1

Tool/software:

Dear Expert,

I am working on stereo video capture using the setup Sensor-TI913-FPD-TI954-Host. I have successfully configured the registers of the sensors via i2cset and verified that I can read/write to the I2C addresses of both cameras. However, when attempting to capture video streams, no /dev/videoX device nodes are generated, which prevents me from accessing the video feeds at the application layer.

Could you please advise on the steps required to:

  1. Troubleshoot the missing /dev/videoX nodes, or
  2. Properly enable the video pipeline to stream data?

I aim to use GStreamer or OpenCV for processing, so guidance on driver configuration, kernel module setup, or V4L2-related adjustments would be greatly appreciated.

Thank you for your support!

  • Hello,

    Is there any way to verify that the cameras are streaming? Many cameras require an enable/power pin be toggled high in addition to register writes to begin streaming. If the camera is streaming data to the 913, check to make sure that data forwarding and data output is enabled on the 954 with the settings of register 0x20 and 0x33.

    The 954 does have a pattern generator which could be useful for testing the 954-Host interface and verify that video data can be transmitted to the host. Once enabled the pattern will be output by the 954 in place of camera data. If the host is not able to detect the data packets of the pattern then there may be an issue with the 954-Host connection or a additional configuration required for the Host to be able to receive data. More details on the pattern generator can be found in section 7.5.11 of the 954 device data sheet. 

  • Using the camera vendor's script, we configured the DS90UB954 (0x30) and ti913 (0x59/0x5A) via I2C Bus 7.
    Critical register writes:

    # i2c bus num
    #
    # ds90ub954 deserializer
    #
    export primary_devaddr_7bit=0x30
    export ser_913_ADDR=0x58
    export ser_913_ADDR1=0x59
    export ser_913_ADDR2=0x5A

    export I2C_BUS_NUM=7

    #
    # config 954 deserializer regs
    #
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x01 0xff
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x01 0x00
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0xB3 0x00
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x1f 0x02
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x32 0x01
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x33 0x01

    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x21 0x01
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x20 0x00

    # gpio
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x0f 0x7f
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x6e 0x10
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x6f 0x32

    #rx0
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x4c 0x01
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x58 0x58
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x70 0x1E
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x7C 0xE0
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x6d 0x7f #xinzeng
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x5B 0xb0
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x5C 0xB2
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0xBC 0x00

    #rx1
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x4c 0x12
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x58 0x58
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x70 0x5E
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x7C 0xE0
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x6d 0x7f
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x5B 0xb0
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0x5C 0xB4
    i2cset -f -y ${I2C_BUS_NUM} ${primary_devaddr_7bit} 0xBC 0x00

    ####setup rx0 913
    i2cset -f -y ${I2C_BUS_NUM} 0x59 0x0D 0x00 ## setup 913 gpio
    i2cset -f -y ${I2C_BUS_NUM} 0x59 0x0D 0x99
    i2cset -f -y ${I2C_BUS_NUM} 0x5A 0x0D 0x00 ## setup 913 gpio
    i2cset -f -y ${I2C_BUS_NUM} 0x5A 0x0D 0x99

    i2cdetect now stably shows 0x59 and 0x5A (previously intermittent).
    Register read/write (e.g., 0x0D, 0x20) works consistently.

  • Are you saying that the system is now working? If there are still issues with detecting video data, have any of the recommendations from the previous post been attempted?