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 Reply Children
  • Hi ,

    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

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

  • 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