Wednesday, July 30, 2008

Un-crashing Netburner Mod5213

When programming the NetBurner Mod5213, I ran into the problem where I would get the error "Failed to Connect to Serial Port" and I could no longer download any programs (even ones that worked previously) to the board.

Apparently the code I was trying to run did something to make the 5213 very unhappy - such as a pointer to a bad location or something along those lines. So, it crashed and entered a state where it resets itself every few seconds which makes it impossible to program. A very helpful tech support person just walked me through the simple (haha) procedure to get out of this loop and back to programming. I'm posting the procedure here because it is apparently a very common problem.

-With power on and serial cable connected, Open MTTTY
-Connect to the board (File -> Connect)
-Cycle power to the board. (You should get the message "Waiting 5sec(s) to start 'A' to abort")
-Type in "A". (You should get a message with valid commands)
-To make sure it is working, load the original factory program from SerialLoad...
-Open Serial Load (Start -> Programs -> Netburner NNDK -> Serial Update Tool)
-Browse to the file Nburn -> MOD5213 -> original -> MOD5213FApp_APP.s19
-Click "Open"
-Click "Update"
-Go back to MTTTY and connect (if disconnected)
-Hit the reset button on the board. (You should get the Factory Demo program Main Menu)
-Fix whatever the heck caused this problem in the first place before trying to re-load the program

Wednesday, July 9, 2008

PMT Controller Update

I have updated the PIC code for the PMT Controller board. I've uploaded the latest code and also a new version of the spec which reflects the recent changes. You can download these items (and any other MPM documentation) here.

Some highlights from the recent updates...

  • The interface between the controller and the PC has been redefined. Now whenever the controller receives any USB command from the PC, it returns a 54-byte array which contains the current status or settings of every controller register.

  • The controller now detects overload errors when a type 3 PMT (Hamamatsu H7422P with cooler and protection circuit) is connected to any of the ports.

  • The controller resets the PMT when it detects an error.

  • There is an error counter for each channel (which rolls over at 255).

Friday, June 20, 2008

MPM Documentation

I have uploaded all of my documentation for the PMT Controller board and the USB to RS232 board. (Specs, Eagle files, and PIC code) I will keep updating this page with the most current versions of the documents.

Read more hardware/firmware docs ...

Wednesday, April 30, 2008

LS2K Macro - Version b1.2

I went to Weill to troubleshoot the macro on the MRC-1024 system there. I found that the "ScanStart" command, which is needed to acquire an image, was causing all of the trouble. The program crashes when this command is called from within a .dll. However, the command works fine when it is called directly from the script editor. Since the .dll was necessary to create my GUI used in all the previous versions, I had to abandon the GUI idea (at least for now) and control the scope using just a Visual Basic script.

The user can specify the number of rows and columns of image tiles, percentage overlap between tiles, directory for saving scanned images, and COM port by changing the default values in the script. In a later version, I will try to include some kind of pop-op input box for these values to make it a little more user-friendly.

Sushmita has successfully used the script to scan and save a series of tiled images. It works well except that the images do not line up perfectly along one edge when "stitched" together. This could be due to backlash in the XY stage motor or perhaps an issue with the image stitching software. We are currently working on this issue.

The script (version b1.2) and instructions on how to use it can be found here.

Note: The "ScanStart" command does work from within a .dll on our Radiance system, so it is possible to use a GUI-based macro for acquiring images on our scope in Ithaca.

Monday, April 28, 2008

Scanware - Version 0.2

Import and export feature for OME-XML data format has been added. Currently, only a portion of the XML schema is implemented for Scanware. The full implementation will be done a little later.

Integrated the Quinn-Curtis (QC) library. Charts, histograms and real-time graphics will be provided by the QC engine.

Read more ...

Download latest project source code.

Wednesday, March 26, 2008

Scanware - Version 0.1

The main change has been the addition of primary MFC Automation capability which enables Scanware to become a scriptable application. The simple sequence of opening the application and clicking the SCAN button can be automated using external VBScript client code.

Read more ...

Download latest project source code.

Monday, March 17, 2008

Autocorrelator Controller - Updated UI

The current version of the UI tool allows the user to continuously display the set of quick sweep samples in an oscilloscope-like fashion.

Also added a save feature to the user interface which enables data output to disk.

Read more ...

Download the latest project source code.

Wednesday, March 12, 2008

Overloaded Quick Sweep Function

I have updated the autocorrelator class to add a quick sweep function that gives data back as it reads it.

The files are here

Also, as per Paul and my discussion this morning, the highest priority right now is to get a version of some sort that can do real time displays so we can test out the device and confirm that the rest of the hardware works. Experience using the device will probably also drive some changes to the UI.

Monday, March 10, 2008

Safer Autocorrelator

I have modified the autocorrelator so that its constructor will not throw exceptions. The communication functions now can throw exceptions. It looks like Paul has the code set up to retrive and display error messages, If I am incorrect on this this someone tell me/fix it.

I couldn't figure out how upload a file to this blog, so I am linking to it on my ftp server, it is here

Friday, March 7, 2008

Autocorrelator Controller

We are currently working on a device that drives and acquires data from a pulse autocorrelator which is an optical instrument used to measure the pulsewidth of our femtosecond lasers. This device acquires a photodiode output with an ADC and drives a linear galvo via a DAC. It communicates with a PC via USB.

The device was designed by Thomas Dimiduk who has also written the communications and data processing software. Paul is working on the user interface, and I helped out with the PCB design and layout.

View the latest documentation.

Download the latest project source code (~6 MB).


Monday, March 3, 2008

Scanware - Version 0.0

Initial prototype of the GUI application that will function as the control and data acquisition software for the next DRBIO MPM. The current version reads streaming data from an external PIC-microcontroller demo board and displays the data as RGB component images.

The latest software API documentation can be found here.

Download the latest MS VC++ project module.


Tuesday, February 19, 2008

LS2KMacro – Status

The macro for the MPM system is progressing, and the current version implements 4 out of the 5 original requirements.

- From the macro GUI, the user can enter the number of columns (X direction) and rows (Y direction) to be included in the scan.

- An input box allows the user to define the degree of overlap between the frames.

- The scan can be interrupted in mid-operation by clicking the “Stop” button. Then, the user can either continue the scan from the current position by clicking the “Resume” button, or the “Start” button can be used to start a new scan from the beginning. If the user-defined settings such as X and Y frames or overlap are changed, these new settings will be used the next time Start is pressed.

- A check-box is used to provide the option of homing back to the starting position at the end of the run.

This version of the code has been tested on our system using LaserSharp2000. The features described above worked successfully, and we were able to view the images scanned by the MPM after each movement of the XY stage to the next frame.

This macro code and installation instructions can be found at
Look for files under the heading "a.92". Please note that some features of the GUI are for development purposes only (such as the listbox and cheesy graphic), and this will not be the final format of the interface. Any comments/suggestions about features wanted in the final format would definitely be appreciated!

As for the next step… I am currently working on automatically saving the image files directly from the macro. I am also working on a method for taking z-stacks of selected frames. I have been developing one possible method for selecting the frames graphically. This involves overlaying a grid (each square represents one frame) on an image of the entire field of view, and the user can click on each frame they want a z-stack of. Another possible method would be selecting the frames numerically. I am also getting input from MPM users on methods they might like. (Again, any comments would be appreciated.) Another feature I will try to add in future versions is the option to move the stage to a user-selected position at the end of the scan.


Tuesday, January 22, 2008

LS2KMacro - First Test

The BioRad Radiance system is supplied with either Marzhauser or Ludl motorized XY stage. So it seems that it works with either one or the other out of the box. We'll need our macro to communicate with a different stage controller (ASI) with its own command set and firmware altogether. As a first step, we need to validate a basic requirement; make sure the LS2K macro can control the XY stage via RS232. A VB macro has been created to do just that. If everything works, it will display a simple user interface and the user should be able to perform basic stage movements with the GUI. The following link has the ActiveX DLL component and other necessary information to conduct the test. Look for version a1.0


Monday, January 21, 2008

ActiveX DLL in VB6.0

The following link is a quick tutorial that covers how to create a very basic ActiveX DLL in Visual Basic 6.0.

This next link gives a much more involved tutorial. It's a bit more complicated to follow, but it can also be a useful tool.

We found these tutorials to be helpful when learning how to create DLLs for a macro used to extend software capabilities of the BioRad LaserSharp2000.

-Lisa Toth
(Research Support Specialist)

Saturday, January 19, 2008

First DRBIO Blog Entry

Hello. I'm Paul Lee and I'm one of the staff members working at DRBIO (Developmental Resource for Biophysical Imaging Opto-Electronics) Research. I created this blog as an experiment for information dissemination on MPM-related software and hardware tasks. This forum seems like an efficient way to organize thoughts and ideas chronologically, while fostering feedback from interested parties. Hopefully, it will make the MPM development process a bit more transparent.