From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Vision Assistant on FPGA - Error -5400 Reading Images from DMA FIFO

I suppose I should preface this question by saying, I'm a computer science summer intern who has been tasked with this project and I'm completely new to LabVIEW, so that is surely part of the problem. I've written text based code for years, so trying to switch to this has been a bit of a nightmare. For the last several days I've been trying to no avail to get a video stream up from our FPGA. We had it working before one of my mentors left, and now working alone with a slightly different example and the orginal I can't get anything up.

 

The goal of the project is to stream 12 bit camera link video through a PCIe-1473R-LX110 card, doing some image processing (auto-gain and image overlay), and then view the video live on the host. The Vision Assistant seems the best way to make this happen, so I started off with the "Image Processing with Vision Assistant on FPGA" example. Since our camera is 12 bit 1 tap and the example is for 8 bit 1 tap I changed that setting and modified everything to use 16 bit integers...meaning I changed the DMA FIFO to 16 bit, changed the IMAQ setting to I16 (our images are signed) and everything else I could find that needed to be expanded. Whenever I try to aquire images now, I always get the same error - "Error -5499 occurred at Invoke Mathod: FIFO.Aquire Read Region in NI_VDM_FPGA_Basics.lvlib:IMAQ FPGA Image Transfer from Target U16.vi -> 1473r Acquisition Template (Host).vi." So, basically it times out every time the Image Transfer from Target method is called from the best I can tell.

 

I've noticed several things I think may be indicators of the problem, but since I'm fairly new, I don't know exactly how to interpret them. First of all, the front panel reads out image height/width. Interestingly height shows a value while width shows zero; looking into it, width is pulled from Acq Status.ClocksPerLine. If this is a 0 value, could this mean something deeper is going on that is messing up image transfer...maybe some timing is wrong some place where the images are being read/written? I also have played around with every parameter I can think of in case something is overflowing a buffer; I expanded the acq FIFO on the FPGA, I applied a deeper depth to the host FIFO storing the incoming images, etc. The only thing I notice any change one was when I changed the time out on the Image Transfer from Target method. It would take longer before it errored and the front panel read out would claim that a larger number of frames had been acquisitioned. This lead me to believe this was not a buffer/FIFO size issue.

 

One other thing I tried was removing the Vision Assitant block and just sending the pixel data strate to the DMA FIFO, which made no change at all. Anyway, hopefully something in this makes sense to someone. I'm completely stumped at this point. I was on the phone extensively yesterday with engineers from the Vision department and they were not able to get me anywhere. I've attached a zip file of the project as it sits now. Anything to point me in the correct direction would be greately appreciated.

 

Thanks,

 

Kidron

0 Kudos
Message 1 of 4
(2,857 Views)

So apparently I cannot type or proofread; The error number in the title and in the post should be Error -50400.

0 Kudos
Message 2 of 4
(2,835 Views)

Hi kfilbrun,

 

What camera are you using? Also, when does the error occur (e.g., immediately, after x secs/mins, etc.)?

 

- Kale

0 Kudos
Message 3 of 4
(2,803 Views)

Hey Kale,

 

Thanks for your response. The camera is a Pulnix TM 1325 CL. It's a 1 tap/10 bit Camera Link signal. I actually switched camera's today to this one, and am seeing some improved results, but still no video feed. I'm no longer getting the 50400 error, it's simply not aquiring any image. I wanted to re-start over from the original, so I went back to the base project and only changed the incoming pixel on the FPGA to be configured for 1 tap/10 bit.

 

Now when I run it, it lights up and says it is acquisitioning but the frames acquisitioned count never increases and nothing is displayed. No longer any error like before, but still not working. The previously uploaded code with the old camera would error out after about 135 frames acquisitioned. (Not displayed, just 'counted'.) The only signficance of that is that it coresponds to the time out set in the method attempting to read from the FPGA. It's not a buffer overflow or anything, it simply couldn't get a read in the 5 second timeout.

 

Since I went back to the original example today, I'm going to work my way through and reconfigure all the controls to function with 16 bit. Suspect that is why I'm getting no image, but also no error now. Any thoughts? I can uplode my latest code if need be, but it's basically the original example. It may be appropriate to start a new thread as well, since I've "resolved" the original error. The former camera was configurable between number of taps and bit depth, so I think that was making trouble shooting harder.

 

Thanks for your help, hopefully something I said made sense.

 

Kidron

0 Kudos
Message 4 of 4
(2,793 Views)