Post Go back to editing

failed to read firmware from eeprom

I am using the AD96 TOF board with Dragonboard 410c, I have connected a display and mouse+keyboard to the dragon board. I see the error Failed to read frirmware from eeprom in the terminal when I try to run the aditof-demo.sh

I have updated the sdk on the sd card following the build instructions here https://github.com/analogdevicesinc/aditof_sdk/blob/master/doc/dragonboard410c/build_instructions.md

Although I was able to run the aditof-demo.sh initially on the dragonboard, I then attempted to connect the dragon board over USB to PC and run the aditof-demo on a linux PC where the eeprom firmware error first showed up, Reverting to the dragon board setup I see the same issue while trying to run the aditof-demo on the dragonboard now. 

Please help me with any leads on how I can identify what is missing at my end which could be creating this issue?, I have tried running the eeprom tool which returns segmentation fault.

  

Parents
  • Can you try to read the contents of the eeprom using the eeprom tool?

    Firstly, make sure you build the tool by using the flag '-DWITH_TOOLS=1'. Ex: ''cmake -DDRAGONBOARD=1 -DWITH_TOOLS=1 ..'

    After building the project run the tool like this:

    ./eeprom-tool -m -r backup.bin

    If this runs ok please attach the bin here, else post here the output / error

  • Thanks for the suggestion.

    I did run it and it worked after adding sudo to the command, I see the below  messages,

    linaro@linaro-alip:~/workspace/github/aditof_sdk/build/tools/eeprom-tool$ sudo ./eeprom-tool -m -r backup.bin
    WARNING: Logging before InitGoogleLogging() is written to STDERR
    I0125 07:21:59.512212 4369 eeprom_tool.cpp:85] Setting connection via ON_TARGET
    I0125 07:21:59.512920 4369 sensor_enumerator_dragonboard.cpp:156] Looking for sensors on the target
    I0125 07:21:59.513767 4369 sensor_enumerator_dragonboard.cpp:176] Looking at: /dev/media1 for an eligible TOF camera
    I0125 07:21:59.619187 4369 sensor_enumerator_dragonboard.cpp:190] Considering: /dev/media1 an eligible TOF camera
    I0125 07:21:59.619457 4369 sensor_enumerator_dragonboard.cpp:176] Looking at: /dev/media0 for an eligible TOF camera
    I0125 07:21:59.650869 4369 addi9036_sensor.cpp:139] Opening device
    I0125 07:21:59.651070 4369 addi9036_sensor.cpp:157] Looking for the following cards:
    I0125 07:21:59.651150 4369 addi9036_sensor.cpp:159] Qualcomm Camera Subsystem
    I0125 07:21:59.682018 4369 eeprom_tool.cpp:147] Successfully created connection to EEPROM
    I0125 07:22:00.501250 4369 cam96tof1_eeprom.cpp:59] EEPROM calibration data size 64940 bytes
    E0125 07:22:06.512076 4369 cam96tof1_eeprom.cpp:74] Successfully read data from EEPROM
    I0125 07:22:06.514055 4369 eeprom_tool.cpp:242] Successfully wrote data to file
    I0125 07:22:06.514230 4369 eeprom_tool.cpp:207] Successfully wrote data to file from EEPROM
    I0125 07:22:06.514389 4369 eeprom_tool.cpp:251] Destroyed connection

    Attaching the bin file.

  • I checked the dmseg messages, I see this one appear when I try to run the application

    [ 6366.713132] uvcvideo: Failed to query (GET_CUR) UVC control 5 on unit 3: -110 (exp. 60).

    Is it an issue with linux ?, I am on ubuntu 20.04 LTS

  • 110 is the error code for timeout. Can you try to reboot both the board and your PC?

    Also, is you aditof_sdk on the PC up-to-date? (latest from master)?

  • Yes I have updated and rebuilt the applications, the timeout issue has gone after reboot, but I see this,

    santosh@santosh-Latitude-E7450:~/Documents/ccd_tof/aditof_sdk/build/examples/aditof-demo$ sudo ./aditof-demo
    I0127 17:11:36.339990  2296 system_impl.cpp:91] Could not create TargetSensorEnumerator because SDK is not running on target.
    I0127 17:11:36.340368  2296 usb_sensor_enumerator.cpp:85] Looking for USB connected sensors
    W0127 17:11:36.529641  2296 camera_96tof1.cpp:91] Could not find 24c1024 while looking for storage for camera AD-96TOF1-EBZ
    I0127 17:11:36.530390  2296 camera_96tof1.cpp:144] Initializing camera
    W0127 17:11:36.530436  2296 camera_96tof1.cpp:147] Failed to initialize! Not all sensors are available
    W0127 17:11:36.530635  2296 usb_depth_sensor_linux.cpp:205] Failed to set Pixel Format, error: 25(Inappropriate ioctl for device)
    W0127 17:11:36.530699  2296 camera_96tof1.cpp:371] Failed to set frame type
    I0127 17:11:36.646940  2296 camera_96tof1.cpp:231] Chosen mode: near
    I0127 17:11:36.646993  2296 camera_96tof1.cpp:273] Camera range for mode: near is: 250 mm and 800 mm
    W0127 17:11:36.647015  2296 camera_96tof1.cpp:280] Failed to read firmware from eeprom

  • I haven't seen this before. If you start the demo 2-3 times, will the same error be displayed? (I'm trying to figure out if USB communication is unstable or it's something else this time)

  • Yes, its consistently the same message, I tried to run the first-frame application,

    santosh@santosh-Latitude-E7450:~/Documents/ccd_tof/aditof_sdk/build/examples/first-frame$ sudo ./first-frame
    I0127 17:38:33.994421  3416 system_impl.cpp:91] Could not create TargetSensorEnumerator because SDK is not running on target.
    I0127 17:38:33.994776  3416 usb_sensor_enumerator.cpp:85] Looking for USB connected sensors
    W0127 17:38:34.181596  3416 camera_96tof1.cpp:91] Could not find 24c1024 while looking for storage for camera AD-96TOF1-EBZ
    I0127 17:38:34.182359  3416 camera_96tof1.cpp:144] Initializing camera
    W0127 17:38:34.182406  3416 camera_96tof1.cpp:147] Failed to initialize! Not all sensors are available
    E0127 17:38:34.182466  3416 main.cpp:59] Could not initialize camera!

    Any idea what this could mean "Could not find 24c1024 while looking for storage for camera AD-96TOF1-EBZ" ?

  • Yes, the 24c1024 is the name of the driver for the EEPROM of the AD-96TOF1-EBZ. It should be found on Dragonboard at path: /sys/bus/i2c/devices/0-0056.

    There's another application, called uvc-gadget that is reponsible for the USB communication between the AD-96TOF1-EBZ and a PC. The uvc-gadget should send the name "24c1024" to the PC in order to let it know that the EEPROM with this name is available.

    Can you run the demo directly on board? Does it work?

  • Yes the demo runs well directly on the dragonboard.
    I checked the path you have mentioned, the following is what I see,

    linaro@linaro-alip:/sys/bus/i2c/devices/0-0056$ ls
    0-00560 driver eeprom modalias name of_node power subsystem uevent

  • Is there a way to check the uvc-gadget application?

    Also is this message expected Could not create TargetSensorEnumerator because SDK is not running on target ?

Reply Children
No Data