Hi Abdalla,
Note that your camera does not really push the 1 Gbit Ethernet speed, at 32 frames/s it is only using 320 Mbits/s, about 1/3 of the GigE bandwidth:
>>> 1296*966.*32*8
320495616.0
What is your network topology, i.e. how many switches between the IOC computer and the camera? Could the camera traffic be competing with other large network traffic over a single GigE link somewhere?
Mark
________________________________
From: Mark Rivers
Sent: Wednesday, January 13, 2021 7:54 AM
To: Abdalla Ahmad
Cc: tech-talk at aps.anl.gov
Subject: Re: Can't enable custom frame rates for a basler camera in area detector
Hi Abdalla,
Those performance problems can be caused by some default Linux buffer sizes not being large enough. Did you increase them as described in the ADGenICam documentation?
https://areadetector.github.io/master/ADGenICam/ADGenICam.html#linux-usb-and-gige-system-settings
Mark
________________________________
From: Abdalla Ahmad <Abdalla.Ahmad at sesame.org.jo>
Sent: Wednesday, January 13, 2021 5:34 AM
To: Mark Rivers
Cc: tech-talk at aps.anl.gov
Subject: RE: Can't enable custom frame rates for a basler camera in area detector
Hi Mark
I started to get occasional freezes, i.e. no acquisition on any framerate. When frozen, "Frame underruns" shows a huge number sometimes in millions, and sometimes "Frame failures" shows some value.
I noticed that I was using the master branch for all my support modules so I checked-out to the latest tag for everything. I tried lowering the framerate to like 10. Sometimes, not always, I get this message on the IOC shell
ADARavis::newBufferCallback bad frame status: Timeout
But yesterday I left the camera running on 32 FPS and this morning the IOC shell was filled with:
CRITICAL **: arv_gc_Feature_node_is_available: assertion 'ARV_IS_GC_FEATURE_NODE (gc_feature_node)' failed
Glib-GObject-Warning **: invalied unclassed pointer in cast to 'ArvGcFeatureNode'
Even pylon viewer software at first started with 32 FPS then after few minutes the framerate dropped to 15 (Could this be causing the frame underruns?). I am using the latest version of all modules along with aravis 0.8.5. I'm not sure whether the problem with
the camera or the driver.
Best Regards,
Abdalla.
-----Original Message-----
From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Monday, January 11, 2021 3:55 PM
To: Abdalla Ahmad <Abdalla.Ahmad at sesame.org.jo>
Cc: tech-talk at aps.anl.gov
Subject: Re: Can't enable custom frame rates for a basler camera in area detector
Hi Abdalla,
I see that you are running ADAravis R1-2, not the most recent version which is R2-2. In R2-0 there was a bug fix for boolean features. This is from the RELEASE.md file for R2-0.
* Fixed a problem with GenICam boolean features. Previously the code was calling the aravis functions for integer features, which did not work. It was changed to call the functions for boolean features, and it now works correctly.
AcquisitionFrameRateEnable is a boolean feature, so this is probably your problem.
You should update to ADAravis R2-2. That means you will need to update your aravis installation from 0.7.2 to 0.8.1. You should also use the most recent release of ADGenICam, R1-7.
Mark
________________________________
From: Abdalla Ahmad <Abdalla.Ahmad at sesame.org.jo>
Sent: Monday, January 11, 2021 1:44 AM
To: Mark Rivers
Cc: tech-talk at aps.anl.gov
Subject: RE: Can't enable custom frame rates for a basler camera in area detector
Hello Mark
One messed up sentence, I meant "from EPICS" of course :)
The thing is, FrameRateEnable_RBV is always "NO" and I can't set it through its drop down menu. AcquireTime (Or the exposure time) is set to default value of 0.009, increasing it will give slower rate as expected (0.1 will give array rate of 10) but still can't
set the frame rate. The camera normally is running with array rate of 32 but ImageJ is still seeing only 1 FPS.
I am using NDPluginStdArrays and callback time, array rate and byte rates are all set to 0. Attached are the required snapshots.
Thanks.
Abdalla.
-----Original Message-----
From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Sunday, January 10, 2021 4:13 PM
To: Abdalla Ahmad <Abdalla.Ahmad at sesame.org.jo>
Cc: tech-talk at aps.anl.gov
Subject: Re: Can't enable custom frame rates for a basler camera in area detector
Hi Abdalla.
> We tried area detector previously to control Basler cameras from Pylon and it was working.
Can you explain what you mean by that sentence? My understanding is that Pylon is a software suite from Basler that includes both an SDK and a viewer. How was areaDetector being used "from Pylon"?
> We revisited the setup again but with one problem which is we can't set specific frame rate from the ADAravis.adl GUI, frame rate enable PV value is No and does not change.
This sounds like you are using ADAravis? If the FrameRateEnable is No then the frame rate will be controlled by the AcquireTime and the maximum readout rate of the camera. What AcquireTime are you using? FrameRateEnable is designed to allow you to use a
slower frame rate than the AcquireTime would generate, for example if AcquireTime=0.1 you could set FrameRateEnable=Yes and FrameRate=2 to only get 2 frames/s rather than 10 frames/s.
FrameRateEnable is mapped to one of the following GenICam feature names:
AcquisitionFrameRateEnable
AcquisitionFrameRateEnabled
Some cameras use one name, some use the other, and some cameras may provide this feature at all.
> The camera is running with maximum acquisition rate of 32 FPS but ImageJ viewer is seeing only 1 FPS
How are you determining what actual frame rate camera is running? What is the ArrayRate_RBV PV on the main ADAravis.adl window? If that is 32 then indeed ADAravis is receiving 32 frames/s from the camera.
> but If I go to NDPluginBaseFull.adl and set the max array rate it will give me the correct "frame rate".
Which plugin are you doing that for? NDPluginStdArrays, NDPluginPva, etc.? I suggest you set MinCallbackTime, MaxArrayRate and MaxByteRate all to 0 so that the plugin itself is not throttling the rate at all.
> Seems the camera is running at 32 FPS but only getting one of them each second. Pylon software is working perfectly with the camera, frame rate can be enabled and set with no problems.
There could be several issues that would cause the ADAravis to only get 1 frame/s. It could be dropping frames for some reason, a plugin could be throttling the frames, etc.
Please send screen shots of the following when you believe the camera is acquiring at 32 frames/s.
- Your main ADAravis.adl screen
- The screen with the plugin you are using for the viewer, i.e. NDStdArrays.adl or NDPva.adl
- The camera-specific *-features_*.adl screen that contains the AcquisitionFrameRateEnable or AcquisitionFrameRateEnabled PV
Mark
________________________________
From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Abdalla Ahmad via Tech-talk <tech-talk at aps.anl.gov>
Sent: Sunday, January 10, 2021 4:36 AM
To: tech-talk at aps.anl.gov
Subject: Can't enable custom frame rates for a basler camera in area detector
Hi
We tried area detector previously to control Basler cameras from Pylon and it was working. We revisited the setup again but with one problem which is we can't set specific frame rate from the ADAravis.adl GUI, frame rate enable PV value is No and does not change.
The camera is running with maximum acquisition rate of 32 FPS but ImageJ viewer is seeing only 1 FPS, but If I go to NDPluginBaseFull.adl and set the max array rate it will give me the correct "frame rate". Seems the camera is running at 32 FPS but only getting
one of them each second. Pylon software is working perfectly with the camera, frame rate can be enabled and set with no problems.
Best Regards,
Abdalla.