|
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 |
|
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, ------------------------------------------------------------------------------ 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 |
|
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:
------------------------------------------------------------------------------ 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 |
|
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, ------------------------------------------------------------------------------ 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 |
|
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:
----------------------------------------------------- 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 |
|
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 |
|
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:
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 e-mail: [hidden email] ------------------------------------------------------------------------------ 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 |
|
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 |
|
On Sat, Nov 19, 2011 at 1:02 AM, Nico Stuurman <[hidden email]> wrote: -- <snip>
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 |
|
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:
------------------------------------------------------------------------------ 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 |
| Powered by Nabble | See how NAML generates this page |
