Using BCON LVDS camera on ZnyqMP

yasin-kagan-taskin report abuse

We are trying to use the daA1600-60lc camera on a ZynqMP Ultrascale + device such as Xilinx zcu106. However, the reference design (Basler dart BCON for LVDS Development Kit) of Basler gives limited information. The AW001369 document is not available on the documentation page of Basler but can be found outside of the Basler web page. Basler dart BCON or LVDS Development Kit of Petalinux module and source files are quite old and can not be used on newer versions of Petalinux. I have updated and build on 2018.3 and add pylon software to rootfs on proper CPU architecture (aarc64) according to documentation on reference design's rootfs. We get some progress with AW00136902000 and the camera can be seen on the GenApiParam application. It uses I2C and reaches the camera but after that app gives an error and closes the app. The error is : < root@xilinx-zcu104-20183:/bconapp# ./GenApiParam.elf PylonC error #c2000001 'Failed to create the device.' (0xc2000001). Function 'PylonCreateDeviceByIndex' failed in source file '/home/builder/jenkinsroot/workspace/PylonLinuxReleaseBuild/Pylon/PylonC/PylonC/PylonC.cpp' line #1645 Caused by an exception thrown from source file '/home/builder/jenkinsroot/workspace/PylonLinuxReleaseBuild/Pylon/PylonTL_BCON/PylonBcon/PylonBconTL.cpp' line #185. Failed to download XML file: 'The CRC values do not match.' Press enter to exit.

Seems like the application tries to reach some directories which do not exist on current rootfs. But these directories also did not exist on the reference design of Basler dart BCON or LVDS Development Kit.

How can ı solve this issue? or is there any way to use that camera without using API ?

Thanks in advance. Yasin Kağan Taşkın. Digital Desing Engineer at ARTRON.


stefanklug report abuse __ edited

Hi Yasin,

the xml file is downloaded from the camera. So a CRC mismatch is most likely caused by a flaky i2c connection. The flat flex cables wear out after some connection cycles. Can you try with a different cable, or reconnect it? Another thing to look at is a corrupt genicam cache. Just delete the directory genicam_xml_cache inside your home dir.

Best regards, Stefan

yasin-kagan-taskin report abuse

Hi @stefanklug

First of all. Thanks for fast response, it helped a lot.

However, I am pretty sure my i2c connection works well. I can get .xml file from camera with "I2CGenCPXML" application that ı found from "basler-bcon-control-protocol-additional-information" topic enter link description here

I have uploaded that .xml file and log file created from pylon to my google drive account. enter link description here

Are you have any additional advice for further debugging?

Thanks in advance. Yasin Kağan Taşkın. Digital Desing Engineer at ARTRON.

stefanklug report abuse

Hi @yasin-kagan-taskin ,

looking at your log it looks like you are writing your own BconAdapter (There are error messges like ERROR: BconAdapterStreamCreate is not implemented that wouldn't show up in the ZyncAdapter included in the devkit). As the i2cgencpxml application works (and also does CRC checks) the i2c communication seems to be OK. Might it be that the data gets mangled inside your adapter lib? The CRC mismatch happens after the first read of 255bytes (Which might be the first junk of the xml file). I would double check that the bytes received via i2c are really forwarded correctly to the upper layers.

Best regards, Stefan

yasin-kagan-taskin report abuse

Hi @stefanklug There are multiple BconAdaptes around there.

The first one comes with Basler dart BCON for LVDS Development Kit project and it has BconAdapterStreamCreate function. However, this adapter is working with pylon 5.0.8 and that one does not support aach64 processors. When ı build libBconZynqMMAP adapter and use it on the newer pylon programs the CRC error still remains. I will upload a new log file in the same link as "pylonLogwithstream.txt"enter link description here. It seems like nothing changes.. [stream error is gone]

The second one comes with pylon applications (such as 5.2.0 or 5.0.12), and this one has fewer source file. The listed ones doesn't exist: - MyBconAdapterZynqMemoryFunc.h - MyBconAdapterZynqMemoryMMAP.cpp - MyBconAdapterZynqSimpleMutex.h - MyBconAdapterZynqStream.cpp - MyBconAdapterZynqStream.h

I tried both libraries on pylon 5.0.12 and 5.2.0 and the result is the same.

After all of these, I give up useing pylon applications and I just want to configure over I2C with GenICam with modifying the "i2cgencpxml" application.

And I will open a new topic about it.

Thanks for your effort.

Add Answer

Need support?

Just drop us an email to ... Show more