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.

  

  • Can you run aditof-demo again on Dragonboard 410c and copy the entire output printed by the demo and paste it here?

  • linaro@linaro-alip:~/Desktop$ ./aditof-demo.sh
    Opening media device /dev/media1
    Enumerating entities
    looking up device: 81:4
    looking up device: 81:5
    looking up device: 81:6
    looking up device: 81:7
    looking up device: 81:8
    looking up device: 81:9
    looking up device: 81:10
    looking up device: 81:0
    looking up device: 81:11
    looking up device: 81:1
    looking up device: 81:12
    looking up device: 81:2
    looking up device: 81:13
    looking up device: 81:3
    looking up device: 81:14
    Found 15 entities
    Enumerating pads and links
    Setting up link 4:1 -> 7:0 [1]
    Opening media device /dev/media1
    Setting up link 7:1 -> 13:0 [1]
    Opening media device /dev/media1
    Setting up link 13:1 -> 19:0 [1]
    Opening media device /dev/media1
    Opening media device /dev/media1
    Enumerating entities
    looking up device: 81:4
    looking up device: 81:5
    looking up device: 81:6
    looking up device: 81:7
    looking up device: 81:8
    looking up device: 81:9
    looking up device: 81:10
    looking up device: 81:0
    looking up device: 81:11
    looking up device: 81:1
    looking up device: 81:12
    looking up device: 81:2
    looking up device: 81:13
    looking up device: 81:3
    looking up device: 81:14
    Found 15 entities
    Enumerating pads and links
    Setting up format SBGGR12_1X12 640x960 on pad addi903x 1-0064/0
    Format set: SBGGR12_1X12 640x960
    Setting up format SBGGR12_1X12 640x960 on pad msm_csiphy1/0
    Format set: SBGGR12_1X12 640x960
    Setting up format SBGGR12_1X12 640x960 on pad msm_csid0/0
    Format set: SBGGR12_1X12 640x960
    Setting up format SBGGR12_1X12 640x960 on pad msm_ispif0/0
    Format set: SBGGR12_1X12 640x960
    Setting up format SBGGR12_1X12 640x960 on pad msm_vfe0_rdi0/0
    Format set: SBGGR12_1X12 640x960
    I0120 18:21:59.417076 4198 sensor_enumerator_dragonboard.cpp:156] Looking for sensors on the target
    I0120 18:21:59.418447 4198 sensor_enumerator_dragonboard.cpp:176] Looking at: /dev/media1 for an eligible TOF camera
    I0120 18:21:59.491503 4198 sensor_enumerator_dragonboard.cpp:190] Considering: /dev/media1 an eligible TOF camera
    I0120 18:21:59.491757 4198 sensor_enumerator_dragonboard.cpp:176] Looking at: /dev/media0 for an eligible TOF camera
    I0120 18:21:59.526357 4198 camera_96tof1.cpp:144] Initializing camera
    I0120 18:21:59.526518 4198 addi9036_sensor.cpp:139] Opening device
    I0120 18:21:59.526662 4198 addi9036_sensor.cpp:157] Looking for the following cards:
    I0120 18:21:59.526736 4198 addi9036_sensor.cpp:159] Qualcomm Camera Subsystem
    I0120 18:22:00.352267 4198 calibration_96tof1.cpp:164] EEPROM calibration data size 64940 bytes
    I0120 18:22:09.803375 4198 camera_96tof1.cpp:200] Camera initialized
    W0120 18:22:09.803656 4198 calibration_96tof1.cpp:346] No intrinsics found in the device memory for key 5.000000
    W0120 18:22:09.804540 4198 calibration_96tof1.cpp:346] No intrinsics found in the device memory for key 6.000000
    I0120 18:22:09.806912 4198 addi9036_sensor.cpp:254] Starting device 0
    I0120 18:22:09.863178 4198 camera_96tof1.cpp:231] Chosen mode: near
    I0120 18:22:09.863487 4198 camera_96tof1.cpp:273] Camera range for mode: near is: 250 mm and 800 mm
    W0120 18:22:09.863664 4198 camera_96tof1.cpp:280] Failed to read firmware from eeprom
    I0120 18:22:13.806234 4198 addi9036_sensor.cpp:296] Stopping device

  •  , do any of the command line outputs point to any leads on why I could be facing this issue? is there a way to check if there is an issue with the eeprom on the board itself or its just a software issue?

    My concern is that the demo was running fine when I first connected and booted the 410c board, only after I tried to connect to a linux PC I have run into this issue. Let me know if I could share any other detail that could help debug this issue.

  • It looks like the content of the EEPROM is now corrupted and that is why it can't read the intrinsics or the firmware. The size of the EEPROM (64940 bytes) seems to be the correct size. I can't figure out what could have altered the EEPROM content.

    We will think of something and get back to you.

  • 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 see the bin file is not getting uploaded here, sent you the bin file on email. Please check

  • 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

  • Also, what revision is the camera board?

  • Hi Dan,

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