C++/Matlab to control hardware through MMCore

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

C++/Matlab to control hardware through MMCore

Md. Rezuanul Haque
Hi,
We want to use C++(MFC) to control hardware through micromanager but firstly we are trying to control by Matlab as a trial basis as there is procedure written in MM website.

I) I tried to use matlab(2008a) to control through MMcore for 64 bit laptop using the instruction 

But it is giving me error after step 5 of the procedure for 1.4.6 mentioning "undefined function CMMCore" as following:
>> edit classpath.txt
>> edit librarypath.txt
>> import mmcorej.*
>> mmc=CMMCore;
??? Undefined function or variable 'CMMCore'.

If anyone please let us know how to solve the issue, it would be helpful for us

II) We also want to develop our own C++ acquisition code to control hardware through micromanager library(MMCore) specifically we want to control Hamamatsu EMCCD camera (EMCCD c9100-02 connected to pc through Phoenix PCI express x1), Olympus BX61W microscope,  Sutter Instrument Lambda XL( Excitation light source). But I did not find any instruction about how to incorporate MMCore libraries in C++ environment and use its function to control hardware. 

Please let us know what are the steps and how to do it, we would really appreciate it.

Thanks & Regards,
Rezuanul
 
-----------------------------------------------------
Md. Rezuanul Haque
Graduate Student,
Dept of Bioengineering,
University of California, Riverside
CA-92521


------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: C++/Matlab to control hardware through MMCore

Nenad Amodaj
Hi Rezuanul,

I am answering the second issue you raised regarding the use of micro-manager core library from custom C++ application.

There is no core DLL for use with C++ programs. The only way to incorporate it in your application is to link statically against MMCore.lib. Check out test programs in /DeviceKit sub-directory for some examples of how to build C++ only programs utilizing MMCore library. There is also some info on the Wiki page related to building Device Adapters.

Best
Nenad


On 11/14/2011 2:38 PM, Md.Rezuanul Haque wrote:
Hi,
We want to use C++(MFC) to control hardware through micromanager but firstly we are trying to control by Matlab as a trial basis as there is procedure written in MM website.

I) I tried to use matlab(2008a) to control through MMcore for 64 bit laptop using the instruction 

But it is giving me error after step 5 of the procedure for 1.4.6 mentioning "undefined function CMMCore" as following:
>> edit classpath.txt
>> edit librarypath.txt
>> import mmcorej.*
>> mmc=CMMCore;
??? Undefined function or variable 'CMMCore'.

If anyone please let us know how to solve the issue, it would be helpful for us

II) We also want to develop our own C++ acquisition code to control hardware through micromanager library(MMCore) specifically we want to control Hamamatsu EMCCD camera (EMCCD c9100-02 connected to pc through Phoenix PCI express x1), Olympus BX61W microscope,  Sutter Instrument Lambda XL( Excitation light source). But I did not find any instruction about how to incorporate MMCore libraries in C++ environment and use its function to control hardware. 

Please let us know what are the steps and how to do it, we would really appreciate it.

Thanks & Regards,
Rezuanul
 
-----------------------------------------------------
Md. Rezuanul Haque
Graduate Student,
Dept of Bioengineering,
University of California, Riverside
CA-92521



------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1


_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general


------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: C++/Matlab to control hardware through MMCore

Md. Rezuanul Haque
Hi Nenad Amodaj,
Thank you for your reply. I installed device kit and found CMMCore.h and .cpp files. What I understand is I will use CMMCore.h and CMMCore.cpp  files in our developed C++(MFC) code and will use different functions. But I don't get how the program will recognize the specific devices means what are the function lists that will be used to recognize the specific devices as for example the camera, microscope or shutter. Do I need to configure in MM, if so how will C++ will recognize the devices? I am sorry that I am little bit new in working with device communication. If you would please help me out how to communicate with the device it would be highly appreciated. 

Thanks & regards,
Rezuanul

On Mon, Nov 14, 2011 at 2:51 PM, Nenad Amodaj <[hidden email]> wrote:
Hi Rezuanul,

I am answering the second issue you raised regarding the use of micro-manager core library from custom C++ application.

There is no core DLL for use with C++ programs. The only way to incorporate it in your application is to link statically against MMCore.lib. Check out test programs in /DeviceKit sub-directory for some examples of how to build C++ only programs utilizing MMCore library. There is also some info on the Wiki page related to building Device Adapters.

Best
Nenad



On 11/14/2011 2:38 PM, Md.Rezuanul Haque wrote:
Hi,
We want to use C++(MFC) to control hardware through micromanager but firstly we are trying to control by Matlab as a trial basis as there is procedure written in MM website.

I) I tried to use matlab(2008a) to control through MMcore for 64 bit laptop using the instruction 

But it is giving me error after step 5 of the procedure for 1.4.6 mentioning "undefined function CMMCore" as following:
>> edit classpath.txt
>> edit librarypath.txt
>> import mmcorej.*
>> mmc=CMMCore;
??? Undefined function or variable 'CMMCore'.

If anyone please let us know how to solve the issue, it would be helpful for us

II) We also want to develop our own C++ acquisition code to control hardware through micromanager library(MMCore) specifically we want to control Hamamatsu EMCCD camera (EMCCD c9100-02 connected to pc through Phoenix PCI express x1), Olympus BX61W microscope,  Sutter Instrument Lambda XL( Excitation light source). But I did not find any instruction about how to incorporate MMCore libraries in C++ environment and use its function to control hardware. 

Please let us know what are the steps and how to do it, we would really appreciate it.

Thanks & Regards,
Rezuanul
 
-----------------------------------------------------
Md. Rezuanul Haque
Graduate Student,
Dept of Bioengineering,
University of California, Riverside
CA-92521



------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1


_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general


------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general

--
-----------------------------------------------------
Md. Rezuanul Haque
Graduate Student,
Dept of Bioengineering,
University of California, Riverside
CA-92521


------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: C++/Matlab to control hardware through MMCore

Nenad Amodaj
Hi Rezuanul

I believe your question is how to configure micro-manager to work with specific hardware using only MMCore API.

You have to load each device using loadDevice() call, then set "pre-initialization" properties for each device (if required) and finally initialize them, either one by one or all at once. This way you can perform entire configuration by calling various methods from the MMCore api, without ever using the configuration files. You can even invent your own configuration file to save settings. However using API to configure MMCOre not documented and you would have to figure out details by looking at the MMCore API and source code.

Another way to do it is to create a configuration file for your hardware setup in regular micro-manager (Hardware Configuration Wizard command) and then load that file at run-time in your MFC app using loadConfiguration api call. This file can be also created manually with a text editor, following a relatively simple syntax (check out Micro-manager configuration guide).

Second way is easier and better documented, plus you retain compatibility with standard configuration files.

Best
Nenad



On 11/16/2011 2:01 PM, Md.Rezuanul Haque wrote:
Hi Nenad Amodaj,
Thank you for your reply. I installed device kit and found CMMCore.h and .cpp files. What I understand is I will use CMMCore.h and CMMCore.cpp  files in our developed C++(MFC) code and will use different functions. But I don't get how the program will recognize the specific devices means what are the function lists that will be used to recognize the specific devices as for example the camera, microscope or shutter. Do I need to configure in MM, if so how will C++ will recognize the devices? I am sorry that I am little bit new in working with device communication. If you would please help me out how to communicate with the device it would be highly appreciated. 

Thanks & regards,
Rezuanul

On Mon, Nov 14, 2011 at 2:51 PM, Nenad Amodaj <[hidden email]> wrote:
Hi Rezuanul,

I am answering the second issue you raised regarding the use of micro-manager core library from custom C++ application.

There is no core DLL for use with C++ programs. The only way to incorporate it in your application is to link statically against MMCore.lib. Check out test programs in /DeviceKit sub-directory for some examples of how to build C++ only programs utilizing MMCore library. There is also some info on the Wiki page related to building Device Adapters.

Best
Nenad



On 11/14/2011 2:38 PM, Md.Rezuanul Haque wrote:
Hi,
We want to use C++(MFC) to control hardware through micromanager but firstly we are trying to control by Matlab as a trial basis as there is procedure written in MM website.

I) I tried to use matlab(2008a) to control through MMcore for 64 bit laptop using the instruction 

But it is giving me error after step 5 of the procedure for 1.4.6 mentioning "undefined function CMMCore" as following:
>> edit classpath.txt
>> edit librarypath.txt
>> import mmcorej.*
>> mmc=CMMCore;
??? Undefined function or variable 'CMMCore'.

If anyone please let us know how to solve the issue, it would be helpful for us

II) We also want to develop our own C++ acquisition code to control hardware through micromanager library(MMCore) specifically we want to control Hamamatsu EMCCD camera (EMCCD c9100-02 connected to pc through Phoenix PCI express x1), Olympus BX61W microscope,  Sutter Instrument Lambda XL( Excitation light source). But I did not find any instruction about how to incorporate MMCore libraries in C++ environment and use its function to control hardware. 

Please let us know what are the steps and how to do it, we would really appreciate it.

Thanks & Regards,
Rezuanul
 
-----------------------------------------------------
Md. Rezuanul Haque
Graduate Student,
Dept of Bioengineering,
University of California, Riverside
CA-92521



------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1


_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general


------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general

--
-----------------------------------------------------
Md. Rezuanul Haque
Graduate Student,
Dept of Bioengineering,
University of California, Riverside
CA-92521



------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d


_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general


------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: C++/Matlab to control hardware through MMCore

Md. Rezuanul Haque
Hi Nenad,
Thank you very much for your reply. I will try the second way you mentioned. If I face any new problem, I will get back to you again. 
I really appreciate your help and support.

Regards,
Rezuanul


On Wed, Nov 16, 2011 at 6:04 PM, Nenad Amodaj <[hidden email]> wrote:
Hi Rezuanul

I believe your question is how to configure micro-manager to work with specific hardware using only MMCore API.

You have to load each device using loadDevice() call, then set "pre-initialization" properties for each device (if required) and finally initialize them, either one by one or all at once. This way you can perform entire configuration by calling various methods from the MMCore api, without ever using the configuration files. You can even invent your own configuration file to save settings. However using API to configure MMCOre not documented and you would have to figure out details by looking at the MMCore API and source code.

Another way to do it is to create a configuration file for your hardware setup in regular micro-manager (Hardware Configuration Wizard command) and then load that file at run-time in your MFC app using loadConfiguration api call. This file can be also created manually with a text editor, following a relatively simple syntax (check out Micro-manager configuration guide).

Second way is easier and better documented, plus you retain compatibility with standard configuration files.

Best
Nenad




On 11/16/2011 2:01 PM, Md.Rezuanul Haque wrote:
Hi Nenad Amodaj,
Thank you for your reply. I installed device kit and found CMMCore.h and .cpp files. What I understand is I will use CMMCore.h and CMMCore.cpp  files in our developed C++(MFC) code and will use different functions. But I don't get how the program will recognize the specific devices means what are the function lists that will be used to recognize the specific devices as for example the camera, microscope or shutter. Do I need to configure in MM, if so how will C++ will recognize the devices? I am sorry that I am little bit new in working with device communication. If you would please help me out how to communicate with the device it would be highly appreciated. 

Thanks & regards,
Rezuanul

On Mon, Nov 14, 2011 at 2:51 PM, Nenad Amodaj <[hidden email]> wrote:
Hi Rezuanul,

I am answering the second issue you raised regarding the use of micro-manager core library from custom C++ application.

There is no core DLL for use with C++ programs. The only way to incorporate it in your application is to link statically against MMCore.lib. Check out test programs in /DeviceKit sub-directory for some examples of how to build C++ only programs utilizing MMCore library. There is also some info on the Wiki page related to building Device Adapters.

Best
Nenad



On 11/14/2011 2:38 PM, Md.Rezuanul Haque wrote:
Hi,
We want to use C++(MFC) to control hardware through micromanager but firstly we are trying to control by Matlab as a trial basis as there is procedure written in MM website.

I) I tried to use matlab(2008a) to control through MMcore for 64 bit laptop using the instruction 

But it is giving me error after step 5 of the procedure for 1.4.6 mentioning "undefined function CMMCore" as following:
>> edit classpath.txt
>> edit librarypath.txt
>> import mmcorej.*
>> mmc=CMMCore;
??? Undefined function or variable 'CMMCore'.

If anyone please let us know how to solve the issue, it would be helpful for us

II) We also want to develop our own C++ acquisition code to control hardware through micromanager library(MMCore) specifically we want to control Hamamatsu EMCCD camera (EMCCD c9100-02 connected to pc through Phoenix PCI express x1), Olympus BX61W microscope,  Sutter Instrument Lambda XL( Excitation light source). But I did not find any instruction about how to incorporate MMCore libraries in C++ environment and use its function to control hardware. 

Please let us know what are the steps and how to do it, we would really appreciate it.

Thanks & Regards,
Rezuanul
 
-----------------------------------------------------
Md. Rezuanul Haque
Graduate Student,
Dept of Bioengineering,
University of California, Riverside
CA-92521



------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1


_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general


------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general

--
-----------------------------------------------------
Md. Rezuanul Haque
Graduate Student,
Dept of Bioengineering,
University of California, Riverside
CA-92521



------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d


_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general


------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general




--
-----------------------------------------------------
Md. Rezuanul Haque
Graduate Student,
Dept of Bioengineering,
University of California, Riverside
CA-92521

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

kHz TTL pulse generation advice (alternatives to LabView control)

Holden Seamus John
In reply to this post by Nenad Amodaj
Hello,

Bit of a general advice question here, maybe I'll get lucky and someone
has already tried this:

I'm currently in the middle of ordering parts for a new microscope for
stroboscopic illumination. Intended laser pulse width ~0.4ms, and a
repetition period (ie camera exposure time) of between 1 and 2 ms: fast
camera, AOTF, lasers etc.... The upshot is, I need to control all of the
various bits of kit by synchronized TTL pulses.

At my previous lab, we did this sort of thing with an NIdaq card and
LABVIEW. However, this time round, I would really like to control
everything from Micromanager (I don't think I need to get into why MM is
more fun than LabView....), so an NIdaq board is probably not the way to
go. In principle, I think it should be possible to write some code for
an Arduino Mega to generate all of the TTL pulses, and then activate or
deactivate the pulse generation from MM.

Does anyone have any experience with the Arduino for this sort of thing:
my key uncertainties here are whether it would have the time resolution
and timing stability for this sort of 1-2kHz TTL pulse generation? I
guess acceptable timing uncertainty would be <0.05ms.

I also saw a couple of other compatible DAQ boards on the MM website:
Data Translation, Velleman, HEKA - maybe these might be more suitable?

Any advice appreciated! In any case Ill report back when I get it all
working.

Regards
Seamus

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: kHz TTL pulse generation advice (alternatives to LabView control)

ershler
Hi,
The Arduino Mega is inexpensive enough  to get one and try it out. If it works, It is definitely going to be cheaper than any of the alternatives. Get a board and download the Arduino development software for your platform. The boards are even being sold by Radio Shack now. Setup your TTL  pulses and check them with an oscilloscope.

HTH,

Phl

On Nov 18, 2011, at 10:06 AM, Seamus Holden wrote:

Hello,

Bit of a general advice question here, maybe I'll get lucky and someone
has already tried this:

I'm currently in the middle of ordering parts for a new microscope for
stroboscopic illumination. Intended laser pulse width ~0.4ms, and a
repetition period (ie camera exposure time) of between 1 and 2 ms: fast
camera, AOTF, lasers etc.... The upshot is, I need to control all of the
various bits of kit by synchronized TTL pulses.

At my previous lab, we did this sort of thing with an NIdaq card and
LABVIEW. However, this time round, I would really like to control
everything from Micromanager (I don't think I need to get into why MM is
more fun than LabView....), so an NIdaq board is probably not the way to
go. In principle, I think it should be possible to write some code for
an Arduino Mega to generate all of the TTL pulses, and then activate or
deactivate the pulse generation from MM.

Does anyone have any experience with the Arduino for this sort of thing:
my key uncertainties here are whether it would have the time resolution
and timing stability for this sort of 1-2kHz TTL pulse generation? I
guess acceptable timing uncertainty would be <0.05ms.

I also saw a couple of other compatible DAQ boards on the MM website:
Data Translation, Velleman, HEKA - maybe these might be more suitable?

Any advice appreciated! In any case Ill report back when I get it all
working.

Regards
Seamus

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general

Philip R. Ershler Ph.D.
University of Utah
Cardiovascular Research and Training Institute
95 South 2000 East
Salt Lake City, UT 84112-5000

phone: (801) 230-8771
alt ph: (801) 587-9528
fax: (801) 581-3128



------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: kHz TTL pulse generation advice (alternatives to LabView control)

Nico Stuurman-4
In reply to this post by Holden Seamus John
Hi Seamus,

> I'm currently in the middle of ordering parts for a new microscope for
> stroboscopic illumination. Intended laser pulse width ~0.4ms, and a
> repetition period (ie camera exposure time) of between 1 and 2 ms: fast
> camera, AOTF, lasers etc.... The upshot is, I need to control all of the
> various bits of kit by synchronized TTL pulses.
>
> At my previous lab, we did this sort of thing with an NIdaq card and
> LABVIEW. However, this time round, I would really like to control
> everything from Micromanager (I don't think I need to get into why MM is
> more fun than LabView....), so an NIdaq board is probably not the way to
> go. In principle, I think it should be possible to write some code for
> an Arduino Mega to generate all of the TTL pulses, and then activate or
> deactivate the pulse generation from MM.
>
> Does anyone have any experience with the Arduino for this sort of thing:
> my key uncertainties here are whether it would have the time resolution
> and timing stability for this sort of 1-2kHz TTL pulse generation? I
> guess acceptable timing uncertainty would be <0.05ms.

Yes I do.  We worked with a control board based on the Arduino design (same 16 MHz) chip in it, and use it to synchronize camera exposure with AOTF control.  Without putting extreme effort in the Arduino code, we obtained maximal response times of < 10 useconds.  We actually added in code to do strobe illumination and that works very well.  You could increase performance by using interrupts (which still scare me since I had bad experiences with them in the days these were not well supported in the Arduino environment), but it sounds like the < 0.01 ms is already good enough for you.

The boards that Ed Simmons has been working on should make all this very simple.  He has some Ardunio-based boards with DACs on it that can be sequences from within Micro-Manager.  He even build one with pin-layout for the NEOS AOTF controller (and I am sure he could map these to other controllers).  No commercial interest on my side, I really hope that Ed can get these boards out, because it will make setup like yours so much easier to build!

> I also saw a couple of other compatible DAQ boards on the MM website:
> Data Translation, Velleman, HEKA - maybe these might be more suitable?

Velleman boards will not do it.  The ITC18 presumably would (Karl Belve knows more about those).  

Best,

Nico
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: kHz TTL pulse generation advice (alternatives to LabView control)

Karl Bellve-3


On Sat, Nov 19, 2011 at 1:02 AM, Nico Stuurman <[hidden email]> wrote:
<snip> 

The boards that Ed Simmons has been working on should make all this very simple.  He has some Ardunio-based boards with DACs on it that can be sequences from within Micro-Manager.  He even build one with pin-layout for the NEOS AOTF controller (and I am sure he could map these to other controllers).  No commercial interest on my side, I really hope that Ed can get these boards out, because it will make setup like yours so much easier to build!

> I also saw a couple of other compatible DAQ boards on the MM website:
> Data Translation, Velleman, HEKA - maybe these might be more suitable?

Velleman boards will not do it.  The ITC18 presumably would (Karl Belve knows more about those).
 

The ITC18 can do what he wants. I usually run it at 1kHz but I have run it at 10 kHz on a system with a 1500fps camera . There are limitations when you drive it faster. Off of the top of my head, you have to drop TTL/AD/DA inputs/outputs at higher frequencies due to minimum step size.

Minimum step size is 1.24 uSeconds and it can run as fast as 200kHz.


However, the ITC18 is expensive, and requires using custom scripts outside of uManager but it runs asynchronously of uManager as well. I provided csh scripts based on our systems, so they have to be modified to fit another system.

I can't wait to see Ed's hardware. I learned about Arduinos via uManager and recently I have gotten into Arduino programming and hardware design in the last few months for an internal project that I hope to release as a custom Arduino shield with a uManager driver. It is for a specialized function that most people, including us, is a constant issue. It is not a DA/AD/TTL shield, so I hope I am not overlapping with what Ed is doing.


--
Cheers,

Karl Bellvé
Biomedical Imaging Group
University of Massachusetts


------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: kHz TTL pulse generation advice (alternatives to LabView control)

Holden Seamus John
Hi

Thanks to all for the responses. Ill give the Arduino a go, and keep an eye out for that shield!

Thanks
Seamus

On 19/11/11 20:53, Karl Bellve wrote:


On Sat, Nov 19, 2011 at 1:02 AM, Nico Stuurman <[hidden email]> wrote:
<snip> 

The boards that Ed Simmons has been working on should make all this very simple.  He has some Ardunio-based boards with DACs on it that can be sequences from within Micro-Manager.  He even build one with pin-layout for the NEOS AOTF controller (and I am sure he could map these to other controllers).  No commercial interest on my side, I really hope that Ed can get these boards out, because it will make setup like yours so much easier to build!

> I also saw a couple of other compatible DAQ boards on the MM website:
> Data Translation, Velleman, HEKA - maybe these might be more suitable?

Velleman boards will not do it.  The ITC18 presumably would (Karl Belve knows more about those).
 

The ITC18 can do what he wants. I usually run it at 1kHz but I have run it at 10 kHz on a system with a 1500fps camera . There are limitations when you drive it faster. Off of the top of my head, you have to drop TTL/AD/DA inputs/outputs at higher frequencies due to minimum step size.

Minimum step size is 1.24 uSeconds and it can run as fast as 200kHz.


However, the ITC18 is expensive, and requires using custom scripts outside of uManager but it runs asynchronously of uManager as well. I provided csh scripts based on our systems, so they have to be modified to fit another system.

I can't wait to see Ed's hardware. I learned about Arduinos via uManager and recently I have gotten into Arduino programming and hardware design in the last few months for an internal project that I hope to release as a custom Arduino shield with a uManager driver. It is for a specialized function that most people, including us, is a constant issue. It is not a DA/AD/TTL shield, so I hope I am not overlapping with what Ed is doing.


--
Cheers,

Karl Bellvé
Biomedical Imaging Group
University of Massachusetts

------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-novd2d
_______________________________________________ micro-manager-general mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/micro-manager-general

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Loading...