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
  • 0
    •  Analog Employees 
    on Jan 22, 2021 12:50 PM

    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

  • 0
    •  Analog Employees 
    on Jan 25, 2021 7:31 AM in reply to ADIApproved

    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.

  • 0
    •  Analog Employees 
    on Jan 25, 2021 8:27 AM in reply to ssingh

    FormerMember, I see the bin file is not getting uploaded here, sent you the bin file on email. Please check

  • 0
    •  Analog Employees 
    on Jan 26, 2021 4:16 PM in reply to ssingh

    I wasn't able to recover the EEPROM content.

    An option is to rewrite the EEPROM with another image.

    First thing to do is to update aditof_sdk to latest from master branch. Then use the eeprom-tool to rewrite the EEPROM. You can use the EEPROM content from this file: https://github.com/analogdevicesinc/aditof_sdk/blob/master/misc/ad-96tof1-ebz/ad96tof1_eeprom.bin

    -Dan

  • 0
    •  Analog Employees 
    on Jan 26, 2021 4:29 PM in reply to ssingh

    Also, what revision is the camera board?

  • 0
    •  Analog Employees 
    on Jan 27, 2021 7:06 AM in reply to DNechita

    Hi Dan,

    On the camera board its mentioned REV D Z, attaching a snaphshot of the module

  • 0
    •  Analog Employees 
    on Jan 27, 2021 7:21 AM in reply to DNechita

    Thanks, I will rewrite the EEPROM to see if the issue goes away.

    Could you confirm, the eeprom tool usage to write to eeprom from a file?

    ./eeprom-tool -m -w <path to file>  will do?

Reply Children
  • 0
    •  Analog Employees 
    on Jan 27, 2021 8:59 AM in reply to ssingh

    Hi,

    That command will do.

    Please let us know the results.

  • 0
    •  Analog Employees 
    on Jan 27, 2021 9:18 AM in reply to ADIApproved

    Thanks for the help, Iam able to run aditof-demo now on the dragonboard after writing the new bin file to eeprom. The firmware error does not appear now.

  • 0
    •  Analog Employees 
    on Jan 27, 2021 10:11 AM in reply to ssingh

    Hi FormerMember ,

    I still cant get the aditof-demo running on my linux pc, below are the messages I seem, any leads on what could be the issue here?


    santosh@santosh-Latitude-E7450:~/Documents/ccd_tof/aditof_sdk/build/examples/aditof-demo$ sudo ./aditof-demo
    [sudo] password for santosh:
    I0127 15:36:30.424474 3628 system_impl.cpp:91] Could not create TargetSensorEnumerator because SDK is not running on target.
    I0127 15:36:30.424830 3628 usb_sensor_enumerator.cpp:85] Looking for USB connected sensors
    I0127 15:36:30.615962 3628 camera_96tof1.cpp:144] Initializing camera
    I0127 15:36:30.616041 3628 usb_depth_sensor_linux.cpp:112] Opening device
    W0127 15:36:30.616326 3628 usb_linux_utils.cpp:128] Error in reading data from device, error: 2(No such file or directory)
    W0127 15:36:30.616715 3628 usb_storage_linux.cpp:119] Failed to read a packet via UVC extension unit. Error: -1
    W0127 15:36:31.126885 3628 usb_linux_utils.cpp:128] Error in reading data from device, error: 110(Connection timed out)
    W0127 15:36:31.127058 3628 usb_linux_utils.cpp:170] Failed to read a packet via UVC extension unit
    W0127 15:36:31.127156 3628 usb_storage_linux.cpp:82] Failed to read buffer through UVC extension unit. Error: -1
    I0127 15:36:31.127203 3628 calibration_96tof1.cpp:164] EEPROM calibration data size 100 bytes
    I0127 15:36:31.798282 3628 camera_96tof1.cpp:200] Camera initialized
    W0127 15:36:31.798384 3628 calibration_96tof1.cpp:346] No intrinsics found in the device memory for key 6.000000
    I0127 15:36:31.917218 3628 camera_96tof1.cpp:231] Chosen mode: near
    I0127 15:36:31.917268 3628 camera_96tof1.cpp:273] Camera range for mode: near is: 250 mm and 800 mm
    W0127 15:36:31.917291 3628 camera_96tof1.cpp:280] Failed to read firmware from eeprom

  • 0
    •  Analog Employees 
    on Jan 27, 2021 10:28 AM in reply to ssingh

    The USB communication seems unstable. Are you using a direct USB cable between PC and Dragonboard? or is there an USB hub in-between?

  • 0
    •  Analog Employees 
    on Jan 27, 2021 10:33 AM in reply to DNechita

    I am using a Direct USB cable

  • 0
    •  Analog Employees 
    on Jan 27, 2021 11:21 AM in reply to ssingh

    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

  • 0
    •  Analog Employees 
    on Jan 27, 2021 11:27 AM in reply to ssingh

    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)?

  • 0
    •  Analog Employees 
    on Jan 27, 2021 11:44 AM in reply to DNechita

    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

  • 0
    •  Analog Employees 
    on Jan 27, 2021 12:06 PM in reply to ssingh

    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)

  • 0
    •  Analog Employees 
    on Jan 27, 2021 12:13 PM in reply to DNechita

    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" ?