aravis icon indicating copy to clipboard operation
aravis copied to clipboard

PixeLINK usb camera now works

Open jeffhcon opened this issue 2 years ago • 1 comments

I made the PixeLINK-19962CE1E747-2CE1E747 usb camera work under aravis.

The PixeLINK-19962CE1E747-2CE1E747 usb seems to work at first but then the camera hangs. Try it with arv-viewer.

See the attached "values" output to describe the camera:

Category    : 'Root'
    Category    : 'DeviceControl'
        StringReg    : [RO] 'DeviceVendorName' = 'PixeLINK'
        StringReg    : [RO] 'DeviceModelName' = 'D3010'
        StringReg    : [RO] 'DeviceManufacturerInfo' = 'PixeLINK PL-D753MU'
        StringReg    : [RO] 'DeviceVersion' = 'FW:53.00.02.15;BOOT:01.15'
        Integer      : [RO] 'DeviceSFNCVersionMajor' = 1
        Integer      : [RO] 'DeviceSFNCVersionMinor' = 5
        Integer      : [RO] 'DeviceSFNCVersionSubMinor' = 1
        StringReg    : [RO] 'DeviceID' = '2CE1E747'
        StringReg    : [RW] 'DeviceUserID' = 'PL-D753MU'
        Command      : [WO] 'DeviceReset'
        Enumeration  : [RW] 'DeviceTemperatureSelector' = 'Sensor'
              * DeviceTemperature
        Float        : [RO] 'DeviceTemperature' = 46 C
        Enumeration  : [RO] 'DeviceScanType' = 'Areascan'
        Enumeration  : [RW] 'DeviceLinkThroughputLimitMode' = 'Off'
        Integer      : [RW] 'DeviceLinkThroughputLimit' = 26214400
        Integer      : [RO] 'DeviceMaxThroughput' = 39845888
    Category    : 'ImageFormatControl'
        Integer      : [RO] 'SensorWidth' = 1936
        Integer      : [RO] 'SensorHeight' = 1464
        Integer      : [RW] 'Width' = 256
        Integer      : [RW] 'Height' = 256
        Integer      : [RW] 'OffsetX' = 800
        Integer      : [RW] 'OffsetY' = 680
        Integer      : [RW] 'BinningHorizontal' = 1
        Integer      : [RW] 'BinningVertical' = 1
        Integer      : [RW] 'DecimationHorizontal' = 1
        Integer      : [RW] 'DecimationVertical' = 1
        Enumeration  : [RW] 'PixelFormat' = 'Mono8'
        Enumeration  : [RO] 'PixelSize' = 'Bpp8'
        Enumeration  : [RO] 'PixelColorFilter' = 'None'
    Category    : 'AcquisitionControl'
        Enumeration  : [RW] 'AcquisitionMode' = 'Continuous'
        Command      : [RW] 'AcquisitionStart'
        Command      : [RW] 'AcquisitionStop'
        Command      : [RW] 'AcquisitionAbort'
        Float        : [RW] 'AcquisitionFrameRate' = 100 Hz
        Enumeration  : [RW] 'TriggerMode' = 'Off'
        Command      : [RW] 'TriggerSoftware'
        Enumeration  : [RW] 'TriggerSource' = 'Line0'
        Enumeration  : [RW] 'ExposureMode' = 'Timed'
        Float        : [RW] 'ExposureTime' = 20 us
        Enumeration  : [RW] 'ExposureAuto' = 'Off'
    Category    : 'DigitalIOControl'
        Enumeration  : [RW] 'LineMode' = 'Output'
    Category    : 'CounterAndTimerControl'
    Category    : 'AnalogControl'
        Enumeration  : [RW] 'GainSelector' = 'All'
              * Gain
        Float        : [RW] 'Gain' = 0 dB
        Enumeration  : [RW] 'BlackLevelSelector' = 'All'
              * BlackLevel
        Enumeration  : [RW] 'BalanceRatioSelector' = 'Red'
              * BalanceRatio
        Float        : [RW] 'Gamma' = 2.2 0.1
    Category    : 'LUTControl'
        Boolean      : [RW] 'LUTEnable' = false
        Integer      : [RW] 'LUTIndex' = 0
              * LUTValue
        Integer      : [RW] 'LUTValue' = 0
    Category    : 'TransportLayerControl'
        Integer      : [RO] 'PayloadSize' = 65536
    Category    : 'UserSetControl'
        Enumeration  : [RW] 'UserSetSelector' = 'Default'
              * UserSetLoad
              * UserSetSave
        Command      : [RW] 'UserSetLoad'
        Command      : [RW] 'UserSetSave'
    Category    : 'PixeLINKFeatures'
        Integer      : [RO] 'PxLMaxPixelSize' = 12
        Integer      : [RO] 'PxLNumKneepoints' = 0
        Integer      : [RO] 'PxLSsMaxValue' = 4294967295
        Command      : [WO] 'PxLDeviceReconfigure'
        Enumeration  : [RW] 'PxLAppWatchdogConfigure' = 'Off'
        Float        : [RW] 'PxLAppWatchdogTimeout' = 5e+06 us
        Command      : [WO] 'PxLAppWatchdogPacify'
        Integer      : [RO] 'PxLLinkThroughputTarget' = 26214400
        Integer      : [RO] 'PxLNumGpos' = 0
        Enumeration  : [RW] 'PxLAcquisitionFrameRateAuto' = 'Off'
        Boolean      : [RW] 'PxLGammaEnable' = false
        Boolean      : [RW] 'PxLAutoRoiEnable' = false
        Integer      : [RW] 'PxLAutoRoiWidth' = 256
        Integer      : [RW] 'PxLAutoRoiHeight' = 256
        Integer      : [RW] 'PxLAutoRoiOffsetX' = 0
        Integer      : [RW] 'PxLAutoRoiOffsetY' = 0
        Float        : [RW] 'PxLAutoExposureMin' = 10 us
        Float        : [RW] 'PxLAutoExposureMax' = 1.2e+08 us
        Boolean      : [RW] 'PxLCameraHDREnable' = false
        Boolean      : [RW] 'PxLInterleavedHDREnable' = false
    Category    : 'TLParamsLockedCategory'
        Integer      : [RW] 'TLParamsLocked' = 0

Platform description: Aravis 0.8.26

x86_64 Debian 11

The solution was to change src/arvuvstream.c

Double the size of the these macros:

#define ARV_UV_STREAM_MAXIMUM_TRANSFER_SIZE    (1024*1024 * 2)
#define ARV_UV_STREAM_MAXIMUM_SUBMIT_TOTAL     (16*1024*1024)

Rebuild, and it works fine.

I realize this is a total hack. If someone in the know can direct me to a proper solution, I would appreciate it. Thanks. Jeff

jeffhcon avatar May 01 '23 16:05 jeffhcon

Hi @jeffhcon , thanks for the report

Could you attach the output of arv-camera-test-0.8 --duration=1 -d device,stream (with and without your patch)?

EmmanuelP avatar May 17 '23 08:05 EmmanuelP