LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Ocean Optics USB4000 Spectrometer

Hello Dave,

       I am glad that upgrading LabVIEW and VISA resolved the issues that you were seeing.

 

Hello James,

       The difference in performance is probably not due to latency added by the different communication layers.  It is probably due to the fact that the Omnidriver was written by someone at Ocean Optics who knows the instruments very well and how to most efficiently process the data returned by the instrument.  The LabVIEW Plug and Play instrument driver for the series was written by someone who knows instrument drivers very well, but not all of the intricacies of optimizing the performance of the driver for the specific data being returned.

 

       The #1 goal of LabVIEW instrument drivers is to provide the instrument-user community with reliable, well-documented, and easily modifiable code.

 

       I invite you to benchmark sections of the LabVIEW instrument driver and see if you can modify it to be more efficient.  If you find some good modifications, please share them with us and we can see about getting the instrument driver updated.

 

Cheers,

 

NathanT

0 Kudos
Message 131 of 286
(3,356 Views)

James G,

 

How did you get your spectra that fast?

 

I'm thinking that even with a 1 ms integration time, the latency of requesting the spectrum, transferring the spectrum, and asking for one again would be more than 3 ms.

 

Max

0 Kudos
Message 132 of 286
(3,257 Views)

Dave,

 

I get that same error sometimes with LV 8.6. I found that switching USB ports fixes it. The first time I switched USB ports, I had to pull some tricks to get MAX recognizing the new plug-in as the same devic, but now that I've done it once, it seems to handle it OK.

 

When I see that (I can't remember what in particular causes it...), I just stop the program, switch ports, then restart it.

 

Max

0 Kudos
Message 133 of 286
(3,251 Views)

I just used the sample omnidriver program get spectrum.  Put it in a for loop 1000 times and timed it.

 

The spectrometer is always getting spectra internally, when it gets the request spectrum command 0x09, it returns the very next completed spectrum, this could take 0 to X seconds where X is the integration time (0 being the case that the 0x09 got received right as it finished its integration period).  The integration internally is occurring effectively in parallel with the data processing externally.  I would expect that given a fast machine,  one that could complete all the data processing in less than an integration period, you should be able to get a spectrum every integration cycle.

 

However, I have never seen this actually happen.

0 Kudos
Message 134 of 286
(3,242 Views)

I noticed an error for the Maya and Maya pro in the read spectra vi.  The byte check would always come back false because the number was incorrect.  It should have been 4608 which is the product of 512 and 9 or the product of 72 and 64.  Also fixed a very minor typo on the USB2000+ case with in the USB2000+ case.  I am posting the 2009 version with corrections.

 

I have a side question.  I have been a fan of the design pattern where all the code is encased in a case structure tied to the input error terminal.  I like this because it stops all code down the line from executing what may essentially be garbage at that point, creating unknown states/conditions in software and hardware.  I notice that none of the driver code has this feature.  Is there a counter argument to using this design pattern?

0 Kudos
Message 135 of 286
(3,177 Views)

Hello James,

        Thanks for posting the updated VI.  I have made the updates to the LabVIEW 8.2 and 2009 versions of the drivers on IDNet.

 

In regards to your question, LabVIEW Plug and Play instrument drivers should be based on the templates (Tools >> Instrumentation >> Create Instrument Driver Project...).  The templates do not use the error-case pattern that you reference.  Most high-level instrument driver VIs will have the Error Query VI, to get errors from the instrument.  I am not aware of a specific counter arguement.

 

Cheers,

 

NathanT

0 Kudos
Message 136 of 286
(3,151 Views)

For several years I worked at a company making high brightness LEDs.  We struggled for a year with spectrometers from Ocean Optics (originally specified by a contractor) - many of the issues I had I see popping up in this thread.  In 2006 I heard from an Ocean Optics employee that they had let go most of their programmers, and their software was therefore not well-supported.  So I gave up and started buying spectrometers from Avantes instead. 

-------------------
Greg
Certifed LabVIEW Developer
0 Kudos
Message 137 of 286
(3,141 Views)

Hey guys so I noticed that there was the protocol to get the non linearity coefficients out of the device but not premade vi to actually implimnet them.  So I made one.  Its pretty straight forward.  It takes a spectrum in and a dark spectrum, if an empy array is provided for the dark spectrum it assumes all zeros.  I did not do up the icon as I am not fully aware of the labview conventions on this.  I gave it a quick test using a USB2000+ with nonlinearity coefficients and it seemed correct.

 

Please download it and check it over.

0 Kudos
Message 138 of 286
(3,112 Views)

Hello Guys,

 

I am looking to develop a LabVIEW interface for our Ocean Optics USB4000 where I want to perform fluorescence and absorbance measurements and export the measurements in real-time. 

Could some one please give me few hints on how to do this?

 

I am really thankful for any help I could get.

Sorry for landing on this discussion like this.

 

Best regards,

Aym 

0 Kudos
Message 139 of 286
(3,077 Views)

Aym,

You can download the instrument driver from idnet.  The examples that install with the driver are a good place to get started learning how to program it.  Have you already taken a look at these?

 

-Christina

0 Kudos
Message 140 of 286
(3,032 Views)